diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..e69de29 diff --git a/waterishos-gen2-mesh/ESP8266MeshHelloWorld.ino b/waterishos-gen2-mesh/ESP8266MeshHelloWorld.ino deleted file mode 100644 index a77a141..0000000 --- a/waterishos-gen2-mesh/ESP8266MeshHelloWorld.ino +++ /dev/null @@ -1,89 +0,0 @@ -#include "credentials.h" -#include -#include - - -#ifndef LED_PIN - #define LED_PIN LED_BUILTIN -#endif - - -#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(); - pinMode(LED_PIN, OUTPUT); - -} - - -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) { - - - if (0 == strcmp(topic, (const char*) ID.c_str())) { - if(String(msg) == "0") { - digitalWrite(LED_PIN, HIGH); - }else{ - digitalWrite(LED_PIN, LOW); - } - } -} diff --git a/waterishos-gen2-mesh/waterishos-gen2-mesh.ino b/waterishos-gen2-mesh/waterishos-gen2-mesh.ino index 95c2b6e..c122ded 100644 --- a/waterishos-gen2-mesh/waterishos-gen2-mesh.ino +++ b/waterishos-gen2-mesh/waterishos-gen2-mesh.ino @@ -1,9 +1,62 @@ +#include "settings.h" +#include +#include + + +#define FIRMWARE_ID 0x1337 +#define FIRMWARE_VER "0.1" +wifi_conn networks[] = {WIFI_CONN("ssid 1", "Password", NULL, 0),WIFI_CONN("ssid 2", "Another Password", NULL, 0),NULL,}; + +String ID = String(ESP.getChipId()); + + + + +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() { - // put your setup code here, to run once: + + 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() { - // put your main code here, to run repeatedly: + + + 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); +}