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.
 
 
scayac c670cde9cf Premier commit 10 months ago
.vscode Premier commit 10 months ago
data Premier commit 10 months ago
src Premier commit 10 months ago
test Premier commit 10 months ago
.gitignore Premier commit 10 months ago
README.md Premier commit 10 months ago
platformio.ini Premier commit 10 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:

  1. Générer le hash SHA-256 de votre nouveau mot de passe:

    Sous Linux/Mac:

    echo -n "votre_nouveau_mot_de_passe" | sha256sum
    

    Sous 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 Hash
    

    Ou utilisez un outil en ligne: https://emn178.github.io/online-tools/sha256.html

  2. Éditer le fichier data/config.json:

    {
      "auth": {
        "username": "admin",
        "password_hash": "VOTRE_NOUVEAU_HASH_ICI"
      }
    }
    
  3. 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)

  1. Compiler et uploader le code:

    platformio run --target upload
    
  2. Uploader le filesystem LittleFS:

    platformio run --target uploadfs
    

Mises à jour ultérieures

Via l'interface web /update.html:

  1. Accédez à http://[IP_de_votre_ESP]/update.html
  2. Sélectionnez le fichier .bin approprié:
    • Firmware: .pio/build/esp32/firmware.bin
    • Filesystem: .pio/build/esp32/littlefs.bin
  3. 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

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.json a é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 = littlefs est dans platformio.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.css a été supprimé, il n'est plus nécessaire.

Licence

MIT