#include #include // https://github.com/tzapu/WiFiManager // Définition de la broche de reset (ex: D5 / GPIO14) #define PIN_CONFIG D5 void setup() { Serial.begin(115200); delay(100); Serial.println("\n--- Démarrage de l'ESP ---"); // 1. Configuration de la broche du bouton avec résistance de Pull-Up interne // Le bouton doit être câblé entre PIN_CONFIG et le GND (Masse). pinMode(PIN_CONFIG, INPUT_PULLUP); // Instanciation de WiFiManager WiFiManager wm; // 2. Vérification de l'état du bouton de reset // Si le bouton est appuyé au démarrage (état LOW), on efface la configuration if (digitalRead(PIN_CONFIG) == LOW) { Serial.println("-> PIN_CONFIG à l'état BAS détecté ! Réinitialisation du Wi-Fi..."); // Efface les identifiants Wi-Fi enregistrés dans la mémoire Flash / EEPROM wm.resetSettings(); // Attente optionnelle pour laisser le temps de relâcher le bouton delay(2000); } // (Optionnel) Temps d'attente max du portail captif en secondes (ex: 3 minutes = 180s) // wm.setConfigPortalTimeout(180); // 3. Connexion automatique ou lancement du Portail Captif // Paramètres : (Nom du PA créé par l'ESP, Mot de passe optionnel du PA) bool result = wm.autoConnect("ESP-Config-AP", "password123"); if (!result) { Serial.println("Échec de la connexion ou dépassement du délai du portail captif."); // Optionnel : Redémarrage si le timeout expire sans configuration // ESP.restart(); } else { // Si la connexion réussit (soit via le Wi-Fi enregistré, soit après saisie sur le portail) Serial.println("-> Connecté au Wi-Fi avec succès !"); Serial.print("Adresse IP attribuée : "); Serial.println(WiFi.localIP()); } } void loop() { // Votre code principal s'exécute ici une fois la connexion Wi-Fi établie }