L'e-paper est une technologie d'affichage qui se ressent différemment à l'utilisation. Elle conserve l'image sans aucune consommation d'énergie — pas de rafraîchissement, pas de rétroéclairage, rien. Une fois l'image dessinée, on peut tout débrancher et elle reste là. C'est utile pour tout ce qui n'a pas besoin de se mettre à jour constamment : badges, tableaux de bord, relevés de capteurs qu'on consulte de temps en temps.
Voici le module WeAct 4,2 pouces. Huit broches, fonctionne sous 3,3 V et communique via SPI — même si les étiquettes indiquent SDA et SCL, ce qui ressemble à de l'I2C. Ce n'est pas le cas. Ça m'a un peu embrouillé avant de vérifier la fiche technique.
Composants
- ESP8266 (NodeMCU ou similaire)
- Module e-paper WeAct 4,2"
- Câbles dupont
Câblage
L'écran a huit broches. Les connecter à l'ESP8266 comme suit :
- VCC → 3,3 V
- GND → GND
- SDA → D7 (MOSI)
- SCL → D5 (CLK)
- CS → D8
- D/C → D3
- RES → D4
- BUSY → D2
Malgré les étiquettes SDA/SCL, c'est du SPI, pas de l'I2C. Le chip select, data/command, reset et la broche busy sont tous nécessaires — ne laisser aucun en l'air.
Bibliothèques
Deux bibliothèques depuis le gestionnaire de bibliothèques Arduino : GxEPD2 et Adafruit GFX. Installer les deux. GxEPD2 gère le driver d'affichage et la boucle de rendu par pages. Adafruit GFX fournit les polices et les primitives de dessin.
Sketch
La bibliothèque GxEPD2 utilise une approche par tampon de pages — on dessine à l'intérieur d'une boucle do { ... } while (display.nextPage()). Voici un sketch minimal qui affiche du texte :
#include <GxEPD2_BW.h>
#include <Fonts/FreeMonoBold9pt7b.h>
GxEPD2_BW<GxEPD2_420_GDEY042T81, GxEPD2_420_GDEY042T81::HEIGHT> display(
GxEPD2_420_GDEY042T81(/*CS=*/ D8, /*DC=*/ D3, /*RES=*/ D4, /*BUSY=*/ D2));
void setup() {
display.init();
display.setRotation(1);
display.setFont(&FreeMonoBold9pt7b);
display.setTextColor(GxEPD_BLACK);
display.setFullWindow();
display.firstPage();
do {
display.fillScreen(GxEPD_WHITE);
display.setCursor(10, 30);
display.print("Hello, World");
} while (display.nextPage());
}
void loop() {}
Téléversement et résultat
Téléverser le sketch, attendre quelques secondes le temps que l'écran s'initialise, et l'image apparaît. Il y a du scintillement pendant le rafraîchissement — c'est normal. L'e-paper remet tous les pixels à zéro avant de dessiner une nouvelle image, ce qui provoque ce clignotement noir et blanc. Une fois terminé, l'image est figée. Débrancher l'alimentation et elle reste.
Le code complet est sur mon GitHub et lié depuis mon site. Si vous câblez le vôtre ou construisez quelque chose avec, partagez-le dans le Discord — j'aimerais voir ce que les gens font avec l'image persistante.