You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
2 months ago | |
|---|---|---|
| .vscode | 2 months ago | |
| data | 2 months ago | |
| src | 2 months ago | |
| test | 2 months ago | |
| .gitignore | 2 months ago | |
| README.md | 2 months ago | |
| platformio.ini | 2 months ago | |
README.md
ESP32 Contrôleur Solaire pour Chauffe-Eau
Application ESP32 avec serveur web, stockage LittleFS et mises à jour OTA.
Fonctionnalités
- ✅ Serveur web avec stockage HTML sur LittleFS
- ✅ Protection par mot de passe (authentification SHA-256)
- ✅ Page d'accueil "Hello World" à la racine
- ✅ Interface de mise à jour OTA accessible via
/update.html - ✅ Mise à jour du firmware via OTA
- ✅ Mise à jour du filesystem via OTA
- ✅ Support ArduinoOTA pour mise à jour via l'IDE
Configuration
1. Modifier les identifiants WiFi
Éditez src/main.cpp et modifiez les lignes suivantes:
const char* ssid = "VotreSSID"; // Votre nom de réseau WiFi
const char* password = "VotreMotDePasse"; // Votre mot de passe WiFi
2. Configuration OTA (optionnel)
const char* otaHostname = "ESP32-Controleur-Solaire"; // Nom de l'appareil sur le réseau
const char* otaPassword = "admin"; // Mot de passe pour OTA via IDE
3. Configuration de l'authentification web
Par défaut, l'accès au serveur web est protégé par mot de passe:
- Utilisateur:
admin - Mot de passe:
password
Changer le mot de passe:
-
Générer le hash SHA-256 de votre nouveau mot de passe:
Sous Linux/Mac:
echo -n "votre_nouveau_mot_de_passe" | sha256sumSous Windows (PowerShell):
$stringAsStream = [System.IO.MemoryStream]::new() $writer = [System.IO.StreamWriter]::new($stringAsStream) $writer.write("votre_nouveau_mot_de_passe") $writer.Flush() $stringAsStream.Position = 0 Get-FileHash -InputStream $stringAsStream -Algorithm SHA256 | Select-Object HashOu utilisez un outil en ligne: https://emn178.github.io/online-tools/sha256.html
-
Éditer le fichier
data/config.json:{ "auth": { "username": "admin", "password_hash": "VOTRE_NOUVEAU_HASH_ICI" } } -
Re-uploader le filesystem:
platformio run --target uploadfs
⚠️ Important: Le mot de passe est stocké sous forme de hash SHA-256 dans le fichier de configuration pour plus de sécurité.
Installation
Première installation (câble USB)
-
Compiler et uploader le code:
platformio run --target upload -
Uploader le filesystem LittleFS:
platformio run --target uploadfs
Mises à jour ultérieures
Via l'interface web /update.html:
- Accédez à
http://[IP_de_votre_ESP]/update.html - Sélectionnez le fichier
.binapproprié:- Firmware:
.pio/build/esp32/firmware.bin - Filesystem:
.pio/build/esp32/littlefs.bin
- Firmware:
- Cliquez sur le bouton d'upload correspondant
Via ArduinoOTA (depuis PlatformIO):
# Mise à jour du firmware
platformio run --target upload --upload-port [IP_de_votre_ESP]
# Mise à jour du filesystem
platformio run --target uploadfs --upload-port [IP_de_votre_ESP]
Structure du projet
esp32_controleur_solaire/
├── platformio.ini # Configuration PlatformIO
├── src/
│ └── main.cpp # Code principal
├── data/ # Fichiers pour LittleFS
│ ├── config.json # Configuration (hash du mot de passe)
│ ├── index.html # Console principale (tout CSS inclus inline)
│ ├── login.html # Page de connexion (tout CSS inclus inline)
│ ├── update.html # Interface de mise à jour OTA (tout CSS inclus inline)
│ └── settings.html # Page de configuration (tout CSS inclus inline)
├── include/
├── lib/
└── test/
URLs disponibles
- http://[IP]/login - Page de connexion
- http://[IP]/ - Console principale (protégée)
- http://[IP]/settings.html - Configuration (protégée)
- http://[IP]/update.html - Interface de mise à jour OTA (protégée)
- http://[IP]/logout - Déconnexion
Note: Toutes les pages sauf /login nécessitent une authentification.
Moniteur série
Pour voir les logs de démarrage:
platformio device monitor
Vous verrez:
- L'adresse IP attribuée
- Le statut de montage de LittleFS
- Les informations de connexion WiFi
- Les événements OTA
Dépannage
Impossible de se connecter (authentification)
- Vérifiez les identifiants par défaut:
admin/password - Assurez-vous que le fichier
config.jsona été uploadé avec le filesystem - Vérifiez les logs série pour confirmer que la configuration a été chargée
- Effacez les cookies de votre navigateur et réessayez
LittleFS ne monte pas
- Assurez-vous d'avoir uploadé le filesystem avec
uploadfs - Vérifiez que
board_build.filesystem = littlefsest dansplatformio.ini
Impossible de se connecter au WiFi
- Vérifiez les identifiants WiFi dans
main.cpp - Vérifiez la force du signal WiFi
OTA ne fonctionne pas
- Vérifiez que l'ESP et votre ordinateur sont sur le même réseau
- Vérifiez le mot de passe OTA si vous utilisez ArduinoOTA
- Assurez-vous que le port 8266 n'est pas bloqué par un pare-feu
Style CSS
- Tous les styles sont désormais inclus directement dans chaque fichier HTML (
<style>...</style>). - Le fichier
style.cssa été supprimé, il n'est plus nécessaire.
Licence
MIT