4.9 KiB
🌐 Portail Captif ESP32 - Résumé des Modifications
✅ Modifications Terminées
Votre projet ESP32 P10 RGB Digital Clock a été modifié avec succès pour inclure un portail captif fonctionnel.
📋 Fichiers Modifiés
-
platformio.ini- ✅ Ajout de la dépendance
DNSServerà l'environnementmain - ✅ Ajout de l'environnement de test
captive_portal_test
- ✅ Ajout de la dépendance
-
src/main.cpp- ✅ Inclusion de la bibliothèque
#include <DNSServer.h> - ✅ Déclaration des objets
DNSServer dnsServeretIPAddress apIP - ✅ Modification de
set_ESP32_Access_Point()pour démarrer le serveur DNS - ✅ Ajout des fonctions
handleCaptivePortal()ethandleNotFound() - ✅ Configuration des routes spéciales pour Android, iOS, Windows
- ✅ Intégration du traitement DNS dans
WebServerTask()
- ✅ Inclusion de la bibliothèque
-
.vscode/tasks.json- ✅ Ajout de la tâche "PlatformIO: Test Captive Portal"
📁 Fichiers Créés
-
examples/captive_portal_test.cpp- Test simplifié pour vérifier uniquement le portail captif
-
CAPTIVE_PORTAL_README.md- Documentation complète des modifications
-
CAPTIVE_PORTAL_QUICK_TEST.md- Guide de test rapide
🚀 Comment Utiliser le Portail Captif
Mode de Fonctionnement
Par défaut, le projet est configuré en mode Point d'Accès avec portail captif :
- Variable
useStationMode = falsedans le code - Création d'un réseau WiFi "HOKA_Clock"
- Redirection automatique de toutes les requêtes web
Étapes pour Tester
-
Compilez et téléversez :
pio run -e main --target upload -
Connectez-vous au WiFi :
- Nom :
HOKA_Clock - Mot de passe :
hoka
- Nom :
-
Testez la redirection :
- Ouvrez un navigateur
- Essayez d'aller sur n'importe quel site
- Vous êtes automatiquement redirigé vers l'interface de l'horloge
🔧 Configuration Actuelle
// WiFi Point d'Accès
const char* ap_ssid = "HOKA_Clock";
const char* ap_password = "hoka";
// IP du portail captif
const IPAddress apIP(192, 168, 1, 1);
// Clé d'accès interface web
#define KEY_TXT "hoka"
// Mode par défaut
bool useStationMode = false; // Portail captif activé
🌍 Compatibilité Universelle
Le portail captif fonctionne avec :
| Plateforme | Comportement |
|---|---|
| Android | 📱 Notification automatique "Se connecter au réseau" |
| iOS/iPadOS | 🍎 Ouverture automatique du navigateur captif |
| Windows | 🪟 Redirection lors de la première navigation |
| macOS | 🖥️ Détection automatique du portail |
| Linux | 🐧 Redirection manuelle nécessaire |
🛠️ Tests Disponibles
Test Principal (Horloge + Portail Captif)
pio run -e main --target upload
Test Portail Captif Uniquement
pio run -e captive_portal_test --target upload
📊 Avantages du Portail Captif
✅ Facilité d'accès : Plus besoin de connaître l'IP
✅ Expérience intuitive : Ouverture automatique
✅ Compatibilité universelle : Tous appareils/OS
✅ Configuration simple : Guidage automatique
✅ Professionnel : Comme les hotspots WiFi publics
🔍 Surveillance et Debug
Monitoring série
pio device monitor
Messages de succès attendus
WIFI mode : AP avec Portail Captif
Serveur DNS démarré pour portail captif
HTTP server started
Captive Portal active - navigate to any website
🎯 Fonctionnement Technique
- DNS Hijacking : Toutes les requêtes DNS → 192.168.1.1
- Route Interception : Capture des URLs de détection OS
- Redirection HTTP : Code 302 vers l'interface ESP32
- FreeRTOS Integration : Traitement asynchrone DNS + HTTP
📝 Notes Importantes
- Le portail captif n'est actif qu'en mode Point d'Accès (
useStationMode = false) - En mode Station WiFi, le comportement reste inchangé
- La charge CPU additionnelle est négligeable
- Compatible avec l'architecture FreeRTOS existante
🚨 Dépannage Rapide
| Problème | Solution |
|---|---|
| Portail ne s'ouvre pas | Vérifier useStationMode = false |
| Redirection ne fonctionne pas | Tester http://192.168.1.1 directement |
| Erreur compilation | Vérifier dépendance DNSServer |
🎉 Félicitations ! Votre horloge ESP32 dispose maintenant d'un portail captif professionnel avec accès libre sans authentification. Les utilisateurs seront automatiquement redirigés vers l'interface de configuration, rendant l'expérience beaucoup plus intuitive et moderne.
🔓 Mise à Jour : Accès Sans Authentification
Nouvelle fonctionnalité : La validation de clé a été supprimée pour simplifier l'accès.
- ✅ Accès immédiat à l'interface web
- ✅ Pas de clé à saisir
- ✅ Configuration directe via le portail captif
- ⚠️ Sécurité : Protection par mot de passe WiFi uniquement