#include "settings.h" #include #include #define FIRMWARE_ID 0x1337 #define FIRMWARE_VER "0.1" wifi_conn networks[] = {WIFI_CONN("ssid 1", NETWORK_PASSWORD, NULL, 0),WIFI_CONN("ssid 2", NETWORK_PASSWORD, NULL, 0),NULL,}; const char* mesh_password = MESH_PASSWORD; const char* mqtt_server = MQTT_SERVER; const int mqtt_port = MQTT_PORT; #if ASYNC_TCP_SSL_ENABLED const uint8_t *mqtt_fingerprint = MQTT_FINGERPRINT; bool mqtt_secure = MQTT_SECURE; #if MESH_SECURE #include "ssl_cert.h" #endif #endif #ifdef ESP32 String ID = String((unsigned long)ESP.getEfuseMac()); #else String ID = String(ESP.getChipId()); #endif unsigned long previousMillis = 0; const long interval = 5000; int cnt = 0; // Note: All of the '.set' options below are optional. The default values can be // found in ESP8266MQTTMeshBuilder.h ESP8266MQTTMesh mesh = ESP8266MQTTMesh::Builder(networks, mqtt_server, mqtt_port).setVersion(FIRMWARE_VER, FIRMWARE_ID).setMeshPassword(mesh_password).build(); void callback(const char *topic, const char *msg); void setup() { Serial.begin(115200); delay(1000); //This is only here to make it easier to catch the startup messages. It isn't required mesh.setCallback(callback); mesh.begin(); } void loop() { if (! mesh.connected()) return; unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { String cntStr = String(cnt); String msg = "hello from " + ID + " cnt: " + cntStr; mesh.publish(ID.c_str(), msg.c_str()); previousMillis = currentMillis; cnt++; } } void callback(const char *topic, const char *msg) { Serial.print(topic); Serial.print(msg); }