#include #include #include // Replace with your network credentials (STATION) const char* ssid = "pinky"; const char* password = "1234"; typedef struct message { int red; int green; int blue; int node; int timer; } message; message myMessage; // ESP8266 Mac address (first peer) uint8_t broadcastAddress[] = {0x5C, 0xCF, 0x7F, 0x00, 0x0C, 0x51}; ESP8266WebServer server(80); const char index_html[] PROGMEM = R"rawliteral( Pink-to-matic Pager

Pink-to-matic Pager

Timer :

Red :

Green :

Blue :

)rawliteral"; void sendMsgtoNodes() { Serial.println("send esp now message"); Serial.println(myMessage.red); Serial.println(myMessage.green); Serial.println(myMessage.blue); Serial.println(myMessage.node); Serial.println(myMessage.timer); esp_now_send(NULL , (uint8_t *) &myMessage, sizeof(myMessage)); } void setup() { // Initialize Serial Monitor Serial.begin(115200); // Set the device as a Station and Soft Access Point simultaneously WiFi.mode(WIFI_AP_STA); WiFi.softAP(ssid); IPAddress IP = WiFi.softAPIP(); Serial.print("AP IP address: "); Serial.println(IP); // Init ESP-NOW if (esp_now_init() != 0) { Serial.println("Error initializing ESP-NOW"); return; } esp_now_set_self_role(ESP_NOW_ROLE_COMBO); esp_now_add_peer(broadcastAddress, ESP_NOW_ROLE_COMBO, 1, NULL, 0); // Once ESPNow is successfully Init, we will register for recv CB to // get recv packer info // esp_now_register_recv_cb(OnDataRecv); server.on("/", HTTP_GET, handleRoot); // Call the 'handleRoot' function when a client requests URI "/" server.on("/dat", HTTP_GET, handleData); // Call the 'handleData' function when a GET request is made to URI "/dat" server.onNotFound(handleNotFound); server.begin(); } void loop() { server.handleClient(); static unsigned long lastEventTime = millis(); static const unsigned long EVENT_INTERVAL_MS = 5000; if ((millis() - lastEventTime) > EVENT_INTERVAL_MS) { //events.send("ping", NULL, millis()); lastEventTime = millis(); } } void handleRoot() { server.send(200, "text/html", index_html); // debug // Serial.println("server show index"); } void handleData() { String inputMessage = "No message sent"; String inputParam = "none"; // debug //Serial.println("server handle data "); if (server.arg("r")) { inputMessage = server.arg("r"); myMessage.red = inputMessage.toInt(); } if (server.arg("g")) { inputMessage = server.arg("g"); myMessage.green = inputMessage.toInt(); } if (server.arg("b")) { inputMessage = server.arg("b"); myMessage.blue = inputMessage.toInt(); } if (server.arg("n")) { inputMessage = server.arg("n"); myMessage.node = inputMessage.toInt(); } if (server.arg("t")) { inputMessage = server.arg("t"); myMessage.timer = inputMessage.toInt(); } // debug //Serial.print("inputMessage = "); // debug // Serial.println(inputMessage); sendMsgtoNodes(); server.send(200, "text/html", index_html); } void handleNotFound() { server.send(404, "text/plain", "404: Not found"); // Send HTTP status 404 (Not Found) when there's no handler for the URI in the request }