//************************************************************ // send to port #29 //************************************************************ #include "painlessMesh.h" #define MESH_PREFIX "orb" #define MESH_PASSWORD "password" #define MESH_PORT 5555 #define ON_OFF_BUTTON 2 #define SERVO_BUTTON 21 #define UP_BUTTON 4 #define DOWN_BUTTON 6 int FREQ = TASK_SECOND / 4; Scheduler userScheduler; // to control your personal task painlessMesh mesh; // User stub void sendMessage() ; // Prototype so PlatformIO doesn't complain Task taskSendMessage(FREQ, TASK_FOREVER, &sendMessage); void sendMessage() { int on_off_read = digitalRead(ON_OFF_BUTTON); int servo_read = digitalRead(SERVO_BUTTON); int up_read = digitalRead(UP_BUTTON); int down_read = digitalRead(DOWN_BUTTON); String buttons_string = String(on_off_read) + String(servo_read) + String(up_read) + String(down_read);//, servo_button); Serial.println(buttons_string); mesh.sendBroadcast(buttons_string); taskSendMessage.setInterval(FREQ); while (digitalRead(ON_OFF_BUTTON) == 0){ delay(100); } } // Needed for painless library void receivedCallback( uint32_t from, String &msg ) { Serial.println(msg.c_str()); } void newConnectionCallback(uint32_t nodeId) { Serial.printf("--> new connection, nodeId = %u\n", nodeId); } void changedConnectionCallback() { Serial.printf("Changed connections\n"); } void nodeTimeAdjustedCallback(int32_t offset) { Serial.printf("Adjusted time %u. Offset = %d\n", mesh.getNodeTime(),offset); } void setup() { Serial.begin(115200); pinMode(ON_OFF_BUTTON, INPUT_PULLUP); pinMode(SERVO_BUTTON, INPUT_PULLUP); pinMode(UP_BUTTON, INPUT_PULLUP); pinMode(DOWN_BUTTON, INPUT_PULLUP); //mesh.setDebugMsgTypes( ERROR | MESH_STATUS | CONNECTION | SYNC | COMMUNICATION | GENERAL | MSG_TYPES | REMOTE ); // all types on mesh.setDebugMsgTypes(ERROR | STARTUP); // set before init() so that you can see startup messages mesh.init(MESH_PREFIX, MESH_PASSWORD, &userScheduler, MESH_PORT); mesh.onReceive(&receivedCallback); mesh.onNewConnection(&newConnectionCallback); mesh.onChangedConnections(&changedConnectionCallback); mesh.onNodeTimeAdjusted(&nodeTimeAdjustedCallback); userScheduler.addTask(taskSendMessage); taskSendMessage.enable(); } void loop() { // it will run the user scheduler as well mesh.update(); }