//#include <Arduino.h> // EPS8266 // #include <ESP8266WiFi.h> // EPS8266 // #include <ESPAsyncTCP.h> // EPS8266 #include <ESPAsyncWebServer.h> #include <WiFi.h> // ESP32 //#include "LittleFS.h" // EPS8266 #include <SPIFFS.h> // ESP32 #define Version "2022-1208" const char *ssid ="ON_AIR2022"; // attention aux probleme avec guillemets (anglais) orientés !!! const char *password ="cGT...........................................................4"; // Create AsyncWebServer object on port 80 AsyncWebServer server(80); // Create a WebSocket object AsyncWebSocket ws("/ws"); // Set LED GPIO //const int ledPin1 = 18; //const int ledPin2 = 19; //const int ledPin3 = 15; const int LED_I = 2; // inbuilt Led const int LED_Verte = 18; // verte const int LED_Bleue = 15; //bleue const int LED_Rouge = 19; // rouge int DHTPIN = 5 ; // GPIO 5 <-- Broche du capteur AM2302 String message = ""; String sliderValue1 = "0"; String sliderValue2 = "0"; String sliderValue3 = "0"; int dutyCycle1; int dutyCycle2; int dutyCycle3; // Initialize LittleFS void initFS() { // pour ESP32 if(!SPIFFS.begin()) { Serial.println("An Error has occurred while mounting SPIFFS"); return; } // pour ESP8266 // if (!LittleFS.begin()) { // Serial.println("An error has occurred while mounting LittleFS"); // } // Serial.println("LittleFS mounted successfully"); } // Initialize WiFi void initWiFi() { WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); Serial.print("Connecting to WiFi .."); while (WiFi.status() != WL_CONNECTED) { Serial.print('.'); delay(1000); } Serial.println(WiFi.localIP()); } void handleWebSocketMessage(void *arg, uint8_t *data, size_t len) { AwsFrameInfo *info = (AwsFrameInfo*)arg; if (info->final && info->index == 0 && info->len == len && info->opcode == WS_TEXT) { data[len] = 0; message = (char*)data; if (message.indexOf("1s") >= 0) { sliderValue1 = message.substring(2); dutyCycle1 = map(sliderValue1.toInt(), 0, 100, 0, 1023); Serial.println(dutyCycle1); } if (message.indexOf("2s") >= 0) { sliderValue2 = message.substring(2); dutyCycle2 = map(sliderValue2.toInt(), 0, 100, 0, 1023); Serial.println(dutyCycle2); } if (message.indexOf("3s") >= 0) { sliderValue3 = message.substring(2); dutyCycle3 = map(sliderValue3.toInt(), 0, 100, 0, 1023); Serial.println(dutyCycle3); } } } void onEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len) { switch (type) { case WS_EVT_CONNECT: Serial.printf("WebSocket client #%u connected from %s\n", client->id(), client->remoteIP().toString().c_str()); break; case WS_EVT_DISCONNECT: Serial.printf("WebSocket client #%u disconnected\n", client->id()); break; case WS_EVT_DATA: handleWebSocketMessage(arg, data, len); break; case WS_EVT_PONG: case WS_EVT_ERROR: break; } } void initWebSocket() { ws.onEvent(onEvent); server.addHandler(&ws); } void setup() { Serial.begin(115200); pinMode(LED_Verte, OUTPUT); pinMode(LED_Rouge, OUTPUT); pinMode(LED_Bleue, OUTPUT); pinMode(LED_I, OUTPUT); // builtin blue led on module Serial.print("ESP32_bleu_Web_Server_Multiple_Sliders_"); Serial.println(Version); initFS(); initWiFi(); initWebSocket(); // Web Server Root URL server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){ request->send(SPIFFS, "/index.html", "text/html"); // request->send(LittleFS, "/index.html", "text/html"); }); // server.serveStatic("/", LittleFS, "/"); server.serveStatic("/", SPIFFS, "/"); server.on("/currentValue1", HTTP_GET, [](AsyncWebServerRequest *request){ request->send(200, "/text/plain", String(sliderValue1).c_str()); }); server.on("/currentValue2", HTTP_GET, [](AsyncWebServerRequest *request){ request->send(200, "/text/plain", String(sliderValue2).c_str()); }); server.on("/currentValue3", HTTP_GET, [](AsyncWebServerRequest *request){ request->send(200, "/text/plain", String(sliderValue3).c_str()); }); // Start server server.begin(); } void loop() { digitalWrite(LED_I, HIGH); delay(500); analogWrite(LED_Verte, dutyCycle1); analogWrite(LED_Rouge, dutyCycle2); analogWrite(LED_Bleue, dutyCycle3); ws.cleanupClients(); digitalWrite(LED_I, LOW); delay(500); }