waterishosgen2_public/waterishos-gen2-mesh/waterishos-gen2-mesh.ino

65 lines
1.5 KiB
Arduino
Raw Normal View History

2019-08-21 12:31:52 +00:00
#include "settings.h"
#include <ESP8266MQTTMesh.h>
#include <FS.h>
#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;
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);
2019-08-21 12:06:21 +00:00
void setup() {
2019-08-21 12:31:52 +00:00
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();
2019-08-21 12:06:21 +00:00
}
2019-08-21 12:31:52 +00:00
2019-08-21 12:06:21 +00:00
void loop() {
2019-08-21 12:31:52 +00:00
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);
2019-08-21 12:06:21 +00:00
}