52 lines
1.9 KiB
C++
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
|
|
} |