#include #define LED_PIN 12 #define POWER_PIN 11 #define NUMPIXELS 1 Adafruit_NeoPixel pixels(NUMPIXELS, LED_PIN, NEO_GRB + NEO_KHZ800); int id = 1; String message = ""; void setup() { Serial.begin(9600); Serial1.begin(115200); pinMode(POWER_PIN, OUTPUT); digitalWrite(POWER_PIN, HIGH); pixels.begin(); pixels.setBrightness(50); } void loop() { if (Serial.available() > 0) { String myInput = Serial.readString(); myInput = id + ": " + myInput; Serial1.println(myInput); } if (Serial1.available() > 0) { String networkIncoming = Serial1.readString(); int specialCharIndex = networkIncoming.indexOf('@'); Serial.println(networkIncoming); if (specialCharIndex != -1) { message = networkIncoming.substring(0, specialCharIndex); String destination = networkIncoming.substring(specialCharIndex + 1); int receiver = destination.toInt(); if (receiver == id) { int r, g, b; //int colon = message.indexOf(';'); int firstComma = message.indexOf(','); int secondComma = message.indexOf(',', firstComma + 1); Serial.println("message= " + message + ", receiver=" + String(receiver)); if (firstComma != -1 && secondComma != -1) { r = message.substring(0, firstComma).toInt(); Serial.println(r); g = message.substring(firstComma + 1, secondComma).toInt(); b = message.substring(secondComma + 1).toInt(); setColor(r, g, b); } }else{ Serial.println("Relaying message..."); Serial1.println(networkIncoming); //Serial.println("Not my message..."); } message = ""; } } } void setColor(int r, int g, int b) { pixels.setPixelColor(0, pixels.Color(r, g, b)); pixels.show(); }