#include #include int r=6; int g=7; int b=20; // Structure to receive data typedef struct struct_message { int value; } struct_message; struct_message myData; // New ESP-IDF v5.x compatible callback void onDataRecv(const esp_now_recv_info_t *info, const uint8_t *incomingData, int len) { memcpy(&myData, incomingData, sizeof(myData)); Serial.print("Received Value: "); Serial.println(myData.value); if (myData.value ==0) { digitalWrite(r,HIGH); delay(1000); digitalWrite(r,LOW); delay(1000); digitalWrite(g,HIGH); delay(1000); digitalWrite(g,LOW); delay(1000); digitalWrite(b,HIGH); delay(1000); digitalWrite(b,LOW); delay(1000); } if (myData.value ==1) { digitalWrite(r,HIGH); digitalWrite(g,HIGH); digitalWrite(b,HIGH); } } void setup() { Serial.begin(115200); pinMode(r,OUTPUT); pinMode(g,OUTPUT); pinMode(b,OUTPUT); WiFi.mode(WIFI_STA); // Set ESP32 to Station mode // Initialize ESP-NOW if (esp_now_init() != ESP_OK) { Serial.println("ESP-NOW Init Failed!"); return; } esp_now_register_recv_cb(onDataRecv); // Register new ESP-NOW receive callback } void loop() { // Do nothing, waiting for ESP-NOW messages }