37 lines
883 B
C++
37 lines
883 B
C++
#include "mqtt_client.h"
|
|
|
|
MQTTClient::MQTTClient() {
|
|
_wifi_client = new WiFiClient();
|
|
_mqtt = new PubSubClient(*_wifi_client);
|
|
|
|
_mqtt->setServer("10.10.2.1", 1883);
|
|
_last_reconnect_attempt = 0;
|
|
}
|
|
|
|
void MQTTClient::loop() {
|
|
if (!_mqtt->connected()) {
|
|
unsigned long now = millis();
|
|
if (now - _last_reconnect_attempt > 5000) {
|
|
DEBUG("Connecting to MQTT server...\n");
|
|
_last_reconnect_attempt = now;
|
|
_reconnect();
|
|
}
|
|
} else {
|
|
_mqtt->loop();
|
|
}
|
|
}
|
|
|
|
void MQTTClient::_reconnect() {
|
|
_mqtt->connect("esmp3", "esmp3", "pairugp598hpknfblaaagvaie58oh", "esmp3/state", 0, true, "OFFLINE");
|
|
_mqtt->publish("esmp3/state", "ONLINE", true);
|
|
}
|
|
|
|
void MQTTClient::publish_status(String s) {
|
|
_mqtt->publish("esmp3/status", s.c_str(), true);
|
|
}
|
|
|
|
void MQTTClient::publish_rfid_uid(uint32_t uid) {
|
|
String s = String(uid, HEX);
|
|
_mqtt->publish("esmp3/rfid_uid", s.c_str(), true);
|
|
}
|