Files
establo/hardware/ESP_ARDUINO/core/core.ino
2024-08-13 16:46:44 -04:00

109 lines
2.2 KiB
C++

// pip install pyserial
// MQTT JOEL GÄhwiller
// Telnetstream Andrassi
#include "bluetooth.h"
#include <WiFi.h>
#include <ArduinoOTA.h>
#include <MQTT.h>
#include "RFID.h"
#include "logger.h"
#define rxRFID 15 // COM2: 16 -- 18
#define txRFID 2 // COM2: 17 -- 19
#define GPIO6 6
const char* ssid = "coral";
const char* password = "135798642";
const char* OTApassword = "135798642";
IPAddress apIP(192, 168, 200, 1);
IPAddress Gateway(192, 168, 200, 100);
IPAddress MQTTserver(192, 168, 200, 2);
unsigned long StartTime = millis();
WiFiClient net;
MQTTClient client;
RFID rfid;
int loopCounter = 0;
String buffer;
unsigned long TimeStamp;
bool readProgress;
BLUETOOTH bt;
void setup() {
Serial.begin(115200);
bt.setup();
WiFi.mode(WIFI_AP_STA);
WiFi.softAPConfig(apIP, Gateway, IPAddress(255, 255, 255, 0));
WiFi.softAP(ssid, password);
pinMode(rxRFID, INPUT);
pinMode(txRFID, OUTPUT);
Serial2.begin(57600, SERIAL_8N1,rxRFID,txRFID );
client.begin(MQTTserver, net);
client.setTimeout (500);
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
});
ArduinoOTA.setHostname("Coral");
ArduinoOTA.setPassword(OTApassword);
ArduinoOTA.begin();
logger.setup();
buffer = "";
readProgress = false;
Serial.println("END SETUP");
}
void loop() {
logger.loop();
bt.loop();
ArduinoOTA.handle();
// ********************** READ RFID ******************
if (!logger.serialBridge)
{
while (Serial2.available()) {
ArduinoOTA.handle();
buffer = buffer + rfid.toHex ( Serial2.read() );
TimeStamp = millis();
readProgress = true;
}
if (((millis() - TimeStamp)>200) && readProgress) // ABORT WHEN TIMEOUT
{
if (rfid.validate (buffer)) {
buffer.toUpperCase();
client.publish("tag", buffer);
logger.log(5, buffer);
}
buffer = "";
readProgress = false;
}
// ************ CALCULATE LOOP TIME ************************
loopCounter++;
if (loopCounter > 10000) {
unsigned long delta = millis() - StartTime;
char buf[50];
sprintf(buf, "Loop time: %lu - %lu - %lu", millis(), StartTime, delta);
logger.log(5, buf);
StartTime = millis();
loopCounter = 0;
if (!client.connected()) { client.connect("coral", "public", "public"); }
}
}
}