LE CARNET DU LABO / AFFICHAGE & ÉNERGIE
Un écran qui
garde la mémoire.
Un ESP32, huit fils et une petite dalle e-paper. Construisez un tableau lisible même lorsque l’écran dort.

01 / DU CROQUIS À L’ÉCRAN
Votre premier tableau e-paper.
Le projet affiche le logo iLM, l’année, une température, une humidité, la date et l’heure. Aucun capteur n’est nécessaire pour cet essai.
Le matériel
- Une carte uPesy ESP32 Wroom Low Power
- Un module Waveshare e-paper 1,54″ noir et blanc, avec carte de commande et câble à 8 fils
- Une plaque d’essai, des fils et un câble USB de données
- Arduino IDE et les bibliothèques GxEPD2 et Adafruit GFX
Des valeurs de démonstration
La température varie doucement entre 18 et 22 °C et l’humidité entre 45 et 55 % HR. Il ne s’agit pas de mesures réelles. L’écran est actualisé toutes les 60 secondes dans ce programme de démonstration.

02 / HUIT FILS, UNE LIAISON SPI
Relier l’écran à l’ESP32.
Débranchez l’USB et la batterie avant de câbler. Repérez les noms inscrits sur les cartes : les numéros GPIO ne sont pas des numéros de position.
| Fil du câble fourni | Écran | ESP32 |
|---|---|---|
| Rouge | VCC | 3V3 |
| Noir | GND | GND |
| Bleu | DIN / MOSI | GPIO23 |
| Jaune | CLK / SCK | GPIO18 |
| Orange | CS | GPIO27 |
| Vert | DC | GPIO26 |
| Blanc | RST | GPIO25 |
| Violet | BUSY | GPIO33 |
Les couleurs correspondent au câble photographié. Sur un autre câble, suivez les inscriptions du module.


03 / UN PROGRAMME À REPRENDRE
Le code complet. Le logo inclus.
Cette version a été compilée et téléversée sur le montage présenté. Elle met l’écran en veille après chaque affichage ; l’ESP32 reste actif entre deux mises à jour.
- Installer les outils. Dans Arduino IDE, ajoutez le paquet de cartes esp32 d’Espressif. Installez GxEPD2, Adafruit GFX Library et les dépendances proposées, dont Adafruit BusIO.
- Ouvrir le projet. Téléchargez et extrayez l’archive. Placez
EpaperTableau.inoetlogo_ilm.hdans un dossier nomméEpaperTableau, puis ouvrez le fichier .ino. - Choisir la carte et le port. Pour cette uPesy Wroom, sélectionnez « ESP32 Dev Module ». Le port utilisé lors de cet essai était COM4 ; choisissez celui de votre ordinateur.
- Téléverser et observer. Un clignotement au rafraîchissement complet est normal. Le moniteur série fonctionne à 115200 bauds.
Chargement du code…Accès direct : programme .ino · logo .h
04 / AFFICHER, PUIS DORMIR
L’image reste.
La consommation baisse.
Les pigments d’un écran e-paper conservent leur position sans rafraîchissement permanent. La veille de l’écran et celle de l’ESP32 sont deux actions distinctes.
Réveiller
L’ESP32 démarre et initialise l’écran.
Mettre à jour
Le programme calcule les valeurs et dessine le tableau.
Endormir
L’écran entre en veille ; l’ESP32 peut ensuite dormir à son tour.
Ce que fait déjà le programme
display.hibernate();Avec le pilote V1, cette commande coupe les tensions de commande de la dalle et demande la veille profonde du contrôleur. L’image reste visible. La carte bleue reste raccordée au 3,3 V.
Ce qu’il reste à ajouter pour l’ESP32
Un simple delay() ne met pas la carte en veille profonde. Pour un fonctionnement sur batterie, l’ESP32 peut se réveiller périodiquement, afficher, puis dormir.
#include <esp_sleep.h>
// Exemple de principe, après l’affichage :
display.hibernate();
esp_sleep_enable_timer_wakeup(300ULL * 1000000ULL);
esp_deep_sleep_start();Extrait pédagogique, non intégré à l’archive. Après 5 minutes de sommeil, l’exécution reprend dans setup(). Il faut adapter l’initialisation de l’heure pour ne pas la remettre à l’heure de compilation à chaque réveil et conserver le compteur de simulation en mémoire RTC si nécessaire. Le cycle complet inclut aussi le temps passé éveillé.
Les bons ordres de grandeur
Courant de veille profonde de la dalle GDEP015OC1 associée au pilote V1 : typique 2 µA, maximum indiqué 5 µA dans la fiche technique. Ce n’est pas une mesure du module complet.
Consommation annoncée par uPesy pour sa carte Low Power seule en deep sleep, via batterie ou VIN dans les conditions prévues. Ce chiffre n’inclut ni l’écran ni les capteurs. L’alimentation USB n’est pas le mode optimisé.
Faut-il tout rafraîchir si un chiffre change ?
Non : le pilote V1 prend en charge le rafraîchissement partiel. Une zone peut être mise à jour plus rapidement, avec moins de clignotements. Des rafraîchissements complets périodiques effacent les traces résiduelles ; leur fréquence dépend de la dalle et de l’usage.
Après hibernation, la RAM du contrôleur n’est plus conservée : une reprise partielle fiable demande de restaurer les données et l’état nécessaires. Le programme fourni privilégie un rafraîchissement complet après chaque réveil de l’écran.
| Stratégie | Intérêt | Compromis |
|---|---|---|
| Complet + hibernation | Simple, veille profonde entre les affichages | Clignotements et énergie du rafraîchissement complet |
| Partiel + mémoire conservée | Adapté aux petites variations fréquentes | Veille potentiellement plus coûteuse, nettoyage complet périodique |
| Écran et ESP32 en veille profonde | Adapté aux informations peu fréquentes | Gestion du réveil, de l’heure et des états à prévoir |
Le bon choix se mesure sur un cycle entier : I moyen = (I actif × t actif + I veille × t veille) / durée du cycle. Gardez la même unité de courant et de temps. Réduire les réveils et le temps radio peut compter autant que la veille de l’écran.
LE COIN DE L’ÉTABLI
Si rien ne s’affiche.
Écran blanc ou « Busy Timeout »
Vérifiez 3V3, GND, BUSY sur GPIO33 et RST sur GPIO25, puis DIN et CLK. Confirmez le modèle de dalle : ce montage fonctionne avec GxEPD2_154. Un autre 1,54″ peut demander un pilote différent. Ne modifiez pas le pilote au hasard si le câblage n’a pas été contrôlé.
Le tableau reste après avoir débranché l’USB
C’est normal : l’image e-paper persiste sans alimentation. Cela ne prouve pas que le contrôleur est encore actif, ni que de nouvelles valeurs peuvent être affichées.
Les valeurs ne correspondent pas à la pièce
La température et l’humidité sont simulées. Pour des mesures réelles, ajoutez un capteur et remplacez les calculs de démonstration par ses lectures.
L’heure est décalée après un redémarrage
Sans Wi-Fi, la date de compilation est réutilisée. Activez NTP dans votre copie ou prévoyez une horloge RTC. En deep sleep, préservez l’horloge au lieu de la réinitialiser à chaque passage dans setup().
Consultations comptées à partir de l’activation du compteur, sans cookie. Les rechargements depuis une même connexion à moins de 30 secondes sont regroupés. Les versions française et anglaise partagent ce compteur. Ce total n’est pas un nombre de visiteurs uniques ; certains robots peuvent être comptés. Le compteur ne conserve pas d’adresse IP dans sa base ; les journaux habituels du serveur web restent distincts.
POUR ALLER PLUS LOIN
Les références de l’atelier.
- Waveshare — utilisation et précautions du module 1,54″ ↗
- GxEPD2 — bibliothèque et pilotes e-paper ↗
- Fiche technique de la dalle GDEP015OC1 (copie PDF) ↗
- uPesy — carte ESP32 Wroom Low Power ↗
- Espressif — principe des modes basse consommation ↗
Montage et photographies de l’atelier · 23 octobre 2026. Logo iLM fourni pour cet exemple.