Français · English
Horloge et station météo minimaliste sur écran e-paper CrowPanel ESP32 5.79" (792×272, ESP32-S3), programmée en PlatformIO. Heure synchronisée par NTP, météo via OpenWeatherMap, navigation par la roue crantée entre plusieurs pages.
- ⏰ Horloge synchronisée NTP (fuseau + heure d'été gérés)
- 🌤️ Météo temps réel (OpenWeatherMap) : conditions, température, humidité, vent, lever/coucher du soleil
- 🖥️ 4 pages navigables à la roue crantée :
- Horloge + météo (bandeau : heure, prévisions +3h/+6h/+9h, infos)
- Horloge plein écran
- Graphe de température sur 24h + probabilité de pluie
- Prévisions 5 jours (icône + min/max)
- 🎛️ Menu de sélection (appui sur la roue) pour choisir l'affichage
- ✨ Grandes polices nettes (rendues à la vraie résolution, pas agrandies)
- 🔄 Rafraîchissement partiel à la minute sans ghosting + full refresh périodique
- Elecrow CrowPanel ESP32 E-Paper HMI 5.79" (792×272, N&B)
- Câble USB-C (alimentation + flash)
Aucun câblage supplémentaire : l'écran, l'ESP32-S3 et la roue crantée sont sur la carte.
- Installe PlatformIO (Core ou l'extension VS Code).
- Copie le modèle de config et remplis-le :
Renseigne : SSID/mot de passe WiFi (2,4 GHz), clé API OpenWeatherMap (gratuite) et ta ville (format
cp src/config.template.h src/config.h
Ville,FR, sans accents). - Compile et flashe :
pio run -t upload
Si l'upload échoue à 921600 bauds, il est déjà réglé sur 460800 dans
platformio.ini(la puce UART n'aime pas la vitesse max).
src/config.h contient tes secrets : il est exclu du dépôt (.gitignore).
| Action | Effet |
|---|---|
| Tourner la roue | Page suivante / précédente |
| Appui (OK) | Ouvrir le menu de sélection |
| Dans le menu : tourner | Déplacer le curseur |
| Dans le menu : OK | Valider le choix |
| Dans le menu : Exit | Annuler |
Les gros chiffres sont générés depuis une police TTF (Roboto Condensed par défaut) :
pip install pillow
python3 tools/genfont.py /chemin/vers/police.ttf # met à jour bigfont.h, bigfontxl.h, textfont.h- GPIO 7 = alimentation de la dalle. Il faut
digitalWrite(7, HIGH)avant toute utilisation, sinon le contrôleur ne répond pas et le code se bloque dans la boucle d'attenteBUSY(écran vide). Non documenté dans les vieux exemples. - GxEPD2 ne fonctionne pas sur ce panneau : il est piloté par deux contrôleurs SSD1683 en cascade (2×396×272 avec décalage). On utilise le pilote Elecrow (SPI logiciel).
- Rafraîchissement :
EPD_FastMode1Init()fait un reset matériel — ne pas l'appeler à chaque minute (ça casse le différentiel et crée du ghosting). Init une fois, puisEPD_Display+EPD_PartUpdatepour les mises à jour rapides, et un full refresh périodique pour nettoyer. - Accents : la police de texte est générée avec les caractères français
accentués (
src/textfont.h) et rendue par un moteur UTF-8 (EPD_ShowText), donc « Température », « dégagé », « août »… s'affichent correctement. - Roue crantée = switch 5 directions lu comme des boutons actifs à l'état bas (GPIO 4 = suivant, 6 = précédent, 5 = OK, 1 = exit).
Basé sur le pilote de cubic9com (MIT) et le code de démo Elecrow. Voir CREDITS.md pour le détail.
Code de ce projet sous licence MIT.
