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 37c3151131 Supprimer 'data/config.json' 2 months ago
.vscode Premier commit 2 months ago
data Supprimer 'data/config.json' 2 months ago
src Premier commit 2 months ago
test Premier commit 2 months ago
.gitignore Premier commit 2 months ago
README.md Premier commit 2 months ago
platformio.ini Premier commit 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:

  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