No description
Find a file
eymeric f204bfc702
feat: Add email alert configuration and handling
- Integrated email alert system into the main application.
- Implemented functions to load and save email configuration in NVS.
- Added HTTP handlers for email configuration page and API endpoints.
- Enhanced ultrasonic task to check and trigger email alerts based on distance measurements.
- Updated web server to serve email configuration and handle POST requests for saving settings.
2025-11-08 20:07:11 +01:00
.vscode Implement WiFi Manager and Web Server for FuelLevel App 2025-11-07 21:41:14 +01:00
components/led_strip Add LED strip support using RMT and SPI interfaces 2025-11-08 18:31:45 +01:00
html feat: Remove HTML to C conversion script and integrate ultrasonic sensor functionality 2025-11-08 19:20:39 +01:00
include initial commit 2025-11-07 19:48:35 +01:00
lib initial commit 2025-11-07 19:48:35 +01:00
src feat: Add email alert configuration and handling 2025-11-08 20:07:11 +01:00
test initial commit 2025-11-07 19:48:35 +01:00
.gitignore feat: Add email alert configuration and handling 2025-11-08 20:07:11 +01:00
CMakeLists.txt initial commit 2025-11-07 19:48:35 +01:00
dependencies.lock Add LED strip support using RMT and SPI interfaces 2025-11-08 18:31:45 +01:00
EMAIL_ALERTS.md feat: Add email alert configuration and handling 2025-11-08 20:07:11 +01:00
html_pages.h feat: Add email alert configuration and handling 2025-11-08 20:07:11 +01:00
platformio.ini Add LED strip support using RMT and SPI interfaces 2025-11-08 18:31:45 +01:00
README.md Refactor: Remove web server and WiFi manager implementation 2025-11-08 18:01:18 +01:00
sdkconfig.esp32-c6-devkitc-1 Refactor HC-SR04 distance measurement in main.c to use esp_rom_delay_us and add averaging for improved accuracy 2025-11-07 19:55:34 +01:00
sdkconfig.seeed_xiao_esp32_c6 feat: Add email alert configuration and handling 2025-11-08 20:07:11 +01:00

ESP32 WiFi Manager

Système de configuration WiFi pour ESP32 avec interface web.

🎯 Fonctionnalités

  • Point d'accès WiFi automatique au démarrage
  • Interface web pour la configuration WiFi
  • Scan des réseaux WiFi disponibles
  • Sauvegarde persistante des credentials en NVS (Non-Volatile Storage)
  • Connexion automatique au WiFi sauvegardé après redémarrage
  • Retour en mode AP si la connexion échoue

🚀 Utilisation

Premier démarrage

  1. Flasher l'ESP32 avec le firmware :

    platformio run --target upload --upload-port /dev/ttyACM1
    
  2. L'ESP32 démarre en mode Point d'Accès :

    • SSID : ESP32-Config
    • Mot de passe : 12345678
  3. Connectez-vous au réseau WiFi ESP32-Config

  4. Ouvrez un navigateur et accédez à : http://192.168.4.1

  5. Page de configuration :

    • La page affiche automatiquement les réseaux WiFi disponibles
    • Cliquez sur le réseau souhaité
    • Entrez le mot de passe
    • Cliquez sur "Se connecter"
  6. L'ESP32 redémarre et se connecte au WiFi configuré

Redémarrages suivants

  • L'ESP32 se connecte automatiquement au WiFi sauvegardé
  • Si la connexion échoue (réseau indisponible, mot de passe incorrect), il revient en mode AP

📝 Configuration

Modifiez les constantes dans src/main.c si nécessaire :

#define WIFI_AP_SSID      "ESP32-Config"  // SSID du point d'accès
#define WIFI_AP_PASS      "12345678"       // Mot de passe (min 8 caractères)
#define WIFI_AP_CHANNEL   1                 // Canal WiFi
#define MAX_STA_CONN      4                 // Nombre max de connexions

🔧 Architecture technique

Stockage NVS

Les credentials WiFi sont stockés dans la partition NVS (Non-Volatile Storage) :

  • Namespace : wifi_config
  • Clés :
    • ssid : Nom du réseau WiFi
    • password : Mot de passe WiFi

Serveur HTTP

Le serveur HTTP expose 3 endpoints :

  1. GET / : Page HTML de configuration
  2. GET /scan : Retourne la liste des réseaux WiFi au format JSON
  3. POST /connect : Reçoit les credentials et redémarre l'ESP32

Workflow

Démarrage
    ↓
Lecture NVS
    ↓
Credentials trouvés ? ─── Non ──→ Mode AP + Serveur Web
    ↓ Oui
    ↓
Connexion WiFi
    ↓
Succès ? ─── Non ──→ Mode AP + Serveur Web
    ↓ Oui
    ↓
Mode Station (connecté)

🌐 Interface Web

L'interface web est responsive et moderne :

  • Liste des réseaux avec indicateur de signal
  • Sélection visuelle du réseau
  • Scan automatique toutes les 10 secondes
  • Feedback visuel (succès/erreur)

🔒 Sécurité

  • Le point d'accès utilise WPA2-PSK
  • Les credentials sont stockés en clair dans NVS (à améliorer pour production)
  • PMF (Protected Management Frames) activé pour la connexion WiFi

📊 Logs UART

Pour visualiser les logs :

platformio device monitor --port /dev/ttyACM1

Messages importants :

  • WiFi Manager : Tag principal
  • Tentative de connexion au WiFi sauvegardé... : Lecture NVS
  • Connecté avec succès au WiFi! : Connexion réussie
  • Démarrage en mode Point d'Accès : Mode configuration

🛠️ Améliorations possibles

  • Chiffrement des credentials dans NVS
  • Timeout configurable pour la connexion WiFi
  • Mode AP + STA simultané (pour ne pas perdre la connexion web)
  • Page web pour effacer les credentials
  • Support de plusieurs réseaux WiFi (priorité)
  • API REST pour configuration programmatique
  • Captive Portal pour redirection automatique
  • OTA (Over-The-Air) updates

📦 Dépendances

Inclus dans ESP-IDF :

  • esp_wifi : Gestion WiFi
  • esp_http_server : Serveur HTTP
  • nvs_flash : Stockage non-volatile
  • esp_event : Gestion d'événements
  • freertos : RTOS

🐛 Dépannage

L'ESP32 ne démarre pas en mode AP

  • Vérifiez que le mot de passe a au moins 8 caractères
  • Consultez les logs UART

Impossible de se connecter au WiFi

  • Vérifiez que le mot de passe est correct
  • Vérifiez que le réseau est en WPA2
  • L'ESP32 redémarrera en mode AP automatiquement

La page web ne charge pas

  • Vérifiez que vous êtes connecté au réseau ESP32-Config
  • Essayez http://192.168.4.1 (pas HTTPS)
  • Désactivez les données mobiles sur votre appareil

📄 Licence

Code libre d'utilisation pour vos projets.