Zeit auf Waveshare E-Ink 2,9 Zoll anzeigen



Zeit
Zeit und Tem­pe­ra­tur

Ziel des Projekts

Auf einem 2,9 Zoll gro­ßen Wavesha­re E-Ink-Dis­play soll die Uhr­zeit und in einem wei­te­ren Schritt sol­len zusätz­lich die Mess­wer­te eines DHT-Sen­sors ange­zeigt wer­den.

Die Hardware

Als Elek­tro­ni­sches Papier (E-Paper/-E-Ink) wird die Tech­nik bezeich­net das Aus­se­hen von Tin­te auf Papier nach­zu­bil­den. Die Anzei­ge leuch­tet nicht selbst, der Inhalt wird solan­ge dar­ge­stellt bis eine Ände­rung erfolgt. Die Anzei­ge ist trä­ge, ein Wech­sel des Inhalts dau­ert meh­re­re Sekun­den, schnel­le Bild­wech­sel sind nicht mög­lich. Das Dis­play kann nur bei Tages­licht betrach­tet wer­den.
Das Wavesha­re 2,9 Zoll E-Ink Dis­play hat eine Auf­lö­sung von 296×128 Pixeln und kann die Far­ben weiß und schwarz dar­stel­len.

Konfiguration der Mikrocontroller

Anschluss des Displays

Die Pins CLK, DIN (COPI) und CS sind durch den SPI-Bus des jewei­li­gen Mikro­con­trol­lers fest­ge­legt, die ande­ren Pins kön­nen frei ver­ge­ben wer­den.

Pin ESP32 WROOMNodeM­CUESP32-C6Ardui­no Nano ESP32
BUSY4D111D9
RST22D22D7
DC23D63D6
CS5 (SPI)D8 (SPI)18 (SPI)D10 (SPI)
CLK18 (SPI)D5 (SPI)21 (SPI)D13 (SPI)
DIN23 (SPI)D7 (SPI)19 (SPI)D11 (SPI)
GNDGNDGNDGNDGND
VCC3,3V3,3V3,3V3,3V

Grafikfunktionen

Funktionen der Bibliothek GxEPD2

Schlüs­sel­wortPara­me­terAkti­on
width();Bild­schirm­brei­te fest­stel­len
height();Bild­schirm­hö­he fest­stel­len
init();Dis­play star­ten
setRotation(Richtung);Rich­tung = 0 → nicht dre­hen
Rich­tung = 1 → 90° dre­hen
Rich­tung = 2 → 180° dre­hen
Rich­tung = 3 → 270 ° dre­hen
Bild­schirm aus­rich­ten
fillScreen(Farbe);Stan­dard­far­ben:
GxEPD_WHITE
GxEPD_BLACK
GxEPD_RED
Bild­schirm­hin­ter­grund
setFull­Win­dow();gesam­ten Bild­schirm nut­zen
setPartialWindow(StartX, Star­tY, End­eX, EndeY);Teil des Bild­schirm nut­zen
drawPixel(x, y, Far­be);ein­zel­nen Pixel zeich­nen
drawLine(StartX, Star­tY, End­eX, EndeY, Far­be);Linie zeich­nen
drawFastHLine(StartX, Star­tY, Län­ge, Far­be);hori­zon­ta­le Linie zeich­nen
drawFastVLine(StartX, Star­tY, Län­ge, Far­be);ver­ti­ka­le Linie zeich­nen
drawRect(StartX, Star­tY,, Brei­te, Höhe, Far­be);Recht­eck zeich­nen
drawRoundRect(StartX, Star­tY, Brei­te, Höhe, Ecken­ra­di­us, Far­be);abge­run­de­tes Recht­eck zeich­nen
fillRect(StartX, Star­tY, Brei­te, Höhe, Füll­far­be);aus­ge­füll­tes Recht­eck zeich­nen
drawCircle(MittelpunkX, Mit­tel­punk­tY, Radi­us, Far­be);Kreis zeich­nen
fillCircle(MittelpunktX, Mit­tel­punk­tY, Radi­us, Füll­far­be);Aus­ge­füll­ten Kreis zeich­nen
setCursor(x, y);Cur­sor set­zen
setTextSize(Textgröße);Text­grö­ße bestim­men
setTextColor(Farbe);Text­far­be set­zen
print("Text"); println("Text");Text schrei­ben
setTextWrap(true/false);fal­se → Text fließt über den Rand des Dis­plays hin­aus
true → Text wird am Ende umge­bro­chen
Zei­len­um­bruch
drawBitmap(x, y, Bitmap_Array, Brei­te, Höhe, Far­be);Bit­map dart­sel­len

Benötigte Bibliotheken

Die Aus­wahl des Trei­bers erfor­dert gele­gent­lich etwas Aus­pro­bie­ren. Eine Lis­te der ver­füg­ba­ren Trei­ber gibt es 🔗hier.

Die inter­nen Schrif­ten wer­den durch die Schrif­ten der Biblio­thek u8g2 ersetzt.

Das Programm

Zeit anzeigen

  • Du musst den pas­sen­den Mikro­con­trol­ler aus­wäh­len und die Daten dei­nes WiFi-Rou­ters anpas­sen.
  • Beim Start des Pro­gramms zei­gen die Mel­dun­gen ob Datum und Zeit kor­rekt sind. Wenn in 90 Sekun­den kei­ne Ver­bin­dung zu einem Zeit­ser­ver her­ge­stellt wer­den konn­te, wird das Pro­gramm been­det. Nach einem erneu­ten Hoch­la­den kommt zumeist die Ver­bin­dung schnell zustan­de.
  • #ifdef ESP8266 …
    #else …
    Die ver­wen­de­te WiFi-Biblio­thek wird auto­ma­tisch ermit­telt
  • ab Zei­le 26 musst du den ver­wen­de­ten Mikro­con­trol­ler fest­le­gen
  • die Daten dei­nes WiFi-Netz­wer­kes ein­tra­gen

Zeit und Messwerte des DHT-Sensors anzeigen

Zusätz­lich benö­tig­te Biblio­thek


Letzte Aktualisierung: Feb. 5, 2026 @ 18:45

Inhalt