Si la connexion WiFi échoue ou n'est pas configurée, l'ESP32 démarre automatiquement en mode Point d'Accès (AP).
Si la connexion WiFi échoue ou n'est pas configurée, l'ESP32 démarre automatiquement en mode Point d'Accès (AP).
### Reconnexion automatique
Lorsque la connexion WiFi STA est perdue, l'ESP32 tente automatiquement de se reconnecter toutes les **30 secondes** :
- **WPA2-PSK** : `WiFi.setAutoReconnect(true)` gère la reconnexion en premier lieu ; la vérification périodique sert de fallback
- **WPA2-PEAP** : les credentials entreprise (`esp_wifi_sta_wpa2_ent_*`) sont réappliqués manuellement à chaque tentative
- En cas de succès, l'AP de secours (`<hostname>-setup`) est restauré automatiquement
## 📱 Interface Web
## 📱 Interface Web
### Pages disponibles
### Pages disponibles
@ -176,7 +187,36 @@ Tous les assets CSS, JS et HTML sont compressés automatiquement en gzip avant l
},
},
"wifi": {
"wifi": {
"ssid": "Nom_du_réseau",
"ssid": "Nom_du_réseau",
"security": "wpa2",
"password": "mot_de_passe_wifi",
"password": "mot_de_passe_wifi",
"eap_username": "utilisateur_peap",
"eap_password": "mot_de_passe_peap",
"ap_password": "webapp123"
},
"system": {
"hostname": "ESP32-Webapp",
"session_timeout": 60
},
"params": {
"app_name": "ESP32 Webapp"
}
}
```
### Exemple sécurisé prêt à copier (WPA2-Enterprise PEAP)
```json
{
"auth": {
"username": "admin",
"password_hash": "hash_sha256_du_mot_de_passe"
},
"wifi": {
"ssid": "Mon-SSID-Entreprise",
"security": "wpa2_peap",
"password": "",
"eap_username": "prenom.nom",
"eap_password": "",
"ap_password": "webapp123"
"ap_password": "webapp123"
},
},
"system": {
"system": {
@ -189,6 +229,18 @@ Tous les assets CSS, JS et HTML sont compressés automatiquement en gzip avant l
}
}
```
```
Notes:
- Aucun certificat n'est requis pour ce mode PEAP.
- Le mode PEAP est configuré en auto avec authentification interne MSCHAPv2.
- Remplacez `eap_username` par votre identifiant entreprise.
- Laissez `eap_password` vide dans le fichier, puis saisissez-le uniquement dans l'interface web.
Procédure recommandée (sans secret en clair dans les fichiers):
1. Téléversez cette configuration avec `eap_password` vide.
2. Ouvrez la page Paramètres de l'ESP32.
3. Sélectionnez `WPA2-Enterprise PEAP`, saisissez l'utilisateur et le mot de passe PEAP.
4. Enregistrez : l'ESP32 redémarre et se connecte.
## 🛠️ Dépendances
## 🛠️ Dépendances
- **ESPAsyncWebServer** - Serveur web asynchrone
- **ESPAsyncWebServer** - Serveur web asynchrone
@ -204,8 +256,10 @@ Tous les assets CSS, JS et HTML sont compressés automatiquement en gzip avant l
### L'ESP32 ne se connecte pas au WiFi
### L'ESP32 ne se connecte pas au WiFi
1. Vérifiez le SSID et le mot de passe dans la configuration
1. Vérifiez le SSID et le mot de passe dans la configuration
2. En mode WPA2-PEAP, vérifiez l'utilisateur/mot de passe PEAP
2. Assurez-vous que le réseau WiFi est en 2.4 GHz (l'ESP32 ne supporte pas le 5 GHz)
2. Assurez-vous que le réseau WiFi est en 2.4 GHz (l'ESP32 ne supporte pas le 5 GHz)
3. L'ESP32 passera automatiquement en mode AP si la connexion échoue
3. L'ESP32 passera automatiquement en mode AP si la connexion échoue
4. En cas de perte de connexion après démarrage, l'ESP32 retente automatiquement toutes les 30 secondes (visible dans les logs série : `WiFi déconnecté, tentative de reconnexion...`)
### Impossible de se connecter à l'interface web
### Impossible de se connecter à l'interface web
@ -213,6 +267,18 @@ Tous les assets CSS, JS et HTML sont compressés automatiquement en gzip avant l
2. En mode AP, l'adresse est toujours `192.168.4.1`
2. En mode AP, l'adresse est toujours `192.168.4.1`
3. En mode Station, trouvez l'IP dans les logs du moniteur série
3. En mode Station, trouvez l'IP dans les logs du moniteur série
4. Désactivez le cache du navigateur (Ctrl+F5)
4. Désactivez le cache du navigateur (Ctrl+F5)
5. En réseau entreprise (PEAP), un filtrage « client isolation » peut bloquer ping/HTTP entre clients WiFi
6. Utilisez l'AP de secours `ESP32-Webapp-setup` (ou `<hostname>-setup`) avec l'IP `192.168.4.1`
### Diagnostic rapide réseau (2 minutes)
1. Ouvrez le moniteur série et vérifiez `Serveur web démarré sur le port 80`
2. Depuis votre PC, testez l'endpoint de santé:
- en STA: `curl -v http://<ip_sta>/api/health`
- en AP de secours: `curl -v http://192.168.4.1/api/health`
3. Vérifiez les logs série:
- si vous voyez `HTTP GET /api/health depuis ...`, le trafic arrive bien
- si rien n'apparaît, le réseau filtre la communication vers l'ESP32