// défini les bibliotheques utilisées #include #include #include #include #include // défini parametres connection Wifi const char *ssid = "xxxx"; const char *password = "xxxxxxxxxxxxxx"; // Neopixel Config #define PIXEL_PIN 2 // On définit le pin où est connecté la patte DATA du bandeau #define PIXEL_COUNT 60 // On définit le nombre de LED compris sur le Ruban de LED soit 150 pour le ruban de 5m50 Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800); // Paramètre l'objet strip qui correspond à toute les LED du ruban // défini les ports GPIO const int ledfigurine = 5; const int boutonpoussoir = 14; const int rubanled = 2; // défini les parametre du serveur Web AsyncWebServer server(80); // variables bool etatLedVoulu = 0; int valeurDelayLed = 1000; boolean buttonWasUp = true; boolean ledEnabled = false; void setup() { //----------------------------------------------------temps Timezone Paris; //----------------------------------------------------Serial Serial.begin(115200); Serial.println("\n"); //----------------------------------------------------GPIO pinMode(ledfigurine, OUTPUT); pinMode(boutonpoussoir, INPUT_PULLUP); digitalWrite(ledfigurine, LOW); //----------------------------------------------------SPIFFS if(!SPIFFS.begin()) { Serial.println("Erreur SPIFFS..."); return; } File root = SPIFFS.open("/", "w"); File file = root.openNextFile(); while(file) { Serial.print("File: "); Serial.println(file.name()); file.close(); file = root.openNextFile(); } //----------------------------------------------------WIFI WiFi.begin(ssid, password); Serial.print("Tentative de connexion..."); while(WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(100); } Serial.println("\n"); Serial.println("Connexion etablie!"); Serial.print("Adresse IP: "); Serial.println(WiFi.localIP()); //---------------------- Teste et monte le système de fichiers SPIFFS ------------------------- Serial.print("\n- Liste les fichiers présents dans la mémoire flash SPIFFS... "); //----------------------------------------------------SERVER server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) { request->send(SPIFFS, "/index.html", "text/html"); }); server.on("/w3.css", HTTP_GET, [](AsyncWebServerRequest *request) { request->send(SPIFFS, "/w3.css", "text/css"); }); server.on("/script.js", HTTP_GET, [](AsyncWebServerRequest *request) { request->send(SPIFFS, "/script.js", "text/javascript"); }); server.on("/jquery-3.5.1.min.js", HTTP_GET, [](AsyncWebServerRequest *request) { request->send(SPIFFS, "/jquery-3.5.1.min.js", "text/javascript"); }); server.on("/on", HTTP_GET, [](AsyncWebServerRequest *request) { digitalWrite(ledfigurine, HIGH); request->send(204); }); server.on("/off", HTTP_GET, [](AsyncWebServerRequest *request) { digitalWrite(ledfigurine, LOW); request->send(204); }); server.on("/delayLed", HTTP_POST, [](AsyncWebServerRequest *request) { if(request->hasParam("valeurDelayLed", true)) { String message; message = request->getParam("valeurDelayLed", true)->value(); valeurDelayLed = message.toInt(); } request->send(204); }); server.begin(); Serial.println("Serveur actif!"); } void loop() { // mise en route de la minuterie if(valeurDelayLed >= 20000) { delay(valeurDelayLed); valeurDelayLed=1000; digitalWrite(ledfigurine, LOW); } // gestion du bouton poussoir boolean buttonIsUp = digitalRead(boutonpoussoir); if (buttonWasUp && !buttonIsUp) { delay(10); buttonIsUp = digitalRead(boutonpoussoir); if (!buttonIsUp) { ledEnabled = !ledEnabled; digitalWrite(ledfigurine, ledEnabled); } } buttonWasUp = buttonIsUp; }