Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "painlessMesh.h"
- #define LED 2
- #define MESH_PREFIX "Test"
- #define MESH_PASSWORD "somethingSneaky"
- #define MESH_PORT 5555
- Scheduler userScheduler;
- painlessMesh mesh;
- String str;
- int Value = 0;
- void receivedCallback( uint32_t from, String &msg );
- size_t logServerId = 2135709220;
- Task myLoggingTask(1500, TASK_FOREVER, []() {
- if (mesh.isConnected(2135709220)) {
- DynamicJsonDocument jsonBuffer(1024);
- JsonObject msg = jsonBuffer.to<JsonObject>();
- msg["topic"] = "sensor";
- msg["value"] = Value;
- str = "";
- serializeJson(msg, str);
- mesh.sendSingle(logServerId, str);
- }
- });
- void setup() {
- pinMode(LED, OUTPUT);
- digitalWrite(LED, 0);
- Serial.begin(115200);
- Serial.println("");
- Serial.println(" ON ********* ");
- mesh.init( MESH_PREFIX, MESH_PASSWORD, &userScheduler, MESH_PORT, WIFI_AP_STA, 6 );
- mesh.onReceive(&receivedCallback);
- userScheduler.addTask(myLoggingTask);
- myLoggingTask.enable();
- }
- void loop() {
- userScheduler.execute(); // it will run mesh scheduler as well
- mesh.update();
- }
- void receivedCallback( uint32_t from, String &msg ) {
- Serial.printf("logClient: Received from %u msg=%s\n", from, msg.c_str());
- DynamicJsonDocument jsonBuffer(1024 + msg.length());
- DeserializationError error = deserializeJson(jsonBuffer, msg);
- if (error) {
- Serial.printf("DeserializationError\n");
- return;
- }
- JsonObject root = jsonBuffer.as<JsonObject>();
- if (root.containsKey("value")) {
- if (String("Received").equals(root["value"].as<String>())) {
- Serial.printf("logServer responded!!!\n");
- Serial.println("Job done, going to sleep");
- ESP.deepSleep(0);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement