// IDE Arduino // https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WebServer // Bibliothèques #include #include // Connexion au wifi #include // mDNS pour la résolution des noms des hôtes #include // EEPROM : émule une EEPROM dans l'ESP8266 #include // Serveur HTTP #include // --------------------------------------------------------------------------------- // Structure pour la configuration de la connexion au réseau wifi struct EEconf { // Les champs sont remplis avec les données préalablement placées en EEPROM émulée // en utilisant le croquis infoClientMQTT_ESP8266.ino char ssid[32]; // SSID du réseau. Exemple : SynBoxLAN, char password[64]; // Mot de passe du réseau. Exemple : 12345678 char myhostname[32]; // Nom donné au client MQTT. Exemple : ESP8266_1 } readconf; // Objet pour la connexion au réseau wifi WiFiClient espClient; // Création d'un serveur HTTP ESP8266WebServer server(80); // Connexion au réseau Wifi // --------------------------------------------------------------------------------- void setup_wifi() { // Mode station WiFi.mode(WIFI_STA); Serial.println(); Serial.print("Tentative de connexion à "); Serial.println(readconf.ssid); // Connexion au Wifi WiFi.begin(readconf.ssid, readconf.password); while (WiFi.status() != WL_CONNECTED) { delay(5000); Serial.print("."); } // Affichage Serial.println(""); Serial.println("Connexion au Wifi ok"); Serial.print("MAC: "); Serial.println(WiFi.macAddress()); Serial.print("Adresse IP : "); Serial.println(WiFi.localIP()); // Configuration de mDNS WiFi.hostname(readconf.myhostname); if (!MDNS.begin(readconf.myhostname)) { Serial.println("Erreur de configuration mDNS !"); } else { Serial.println("Répondeur mDNS démarré"); Serial.println(readconf.myhostname); } } // Initialisation void setup() { // Configuration du moniteur série Serial.begin(115200); // pour les tests delay(500); // Lecture des paramètres sauvegardés en EEPROM par ARD_ESP_SauveInfosClientMqtt.ino EEPROM.begin(sizeof(readconf)); EEPROM.get(0, readconf); // Connexion au Wifi setup_wifi(); // Démarrage du système de fichiers if (!LittleFS.begin()) { Serial.println("Erreur initialisation LittleFS"); } // Gestionnaires de requête // (Les requêtes sont automatiquement gérées par la bibliothèque ESP8266WebServer) server.serveStatic("/", LittleFS, "/index.html"); server.serveStatic("/index.html", LittleFS, "/index.html"); server.serveStatic("/page1.html", LittleFS, "/page1.html"); server.serveStatic("/page2.html", LittleFS, "/page2.html"); server.serveStatic("/page3.html", LittleFS, "/page3.html"); server.serveStatic("/physique.png", LittleFSS, "/physique.png"); server.serveStatic("/menu.css", LittleFS, "/menu.css"); server.serveStatic("/style.css", LittleFS, "/style.css"); server.begin(); } void loop() { // Attente et gestion des requêtes server.handleClient(); }