Files
2026-09-22 16:50:29 +02:00

52 lines
1.9 KiB
C++

#include <ESP8266WiFi.h>
#include <WiFiManager.h> // 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
}