ESP – DHT Messdaten auf Waveshare 1,54 Zoll E-Ink anzeigen




Ziele des Projekts

Die Mess­wer­te eines DHT-Sen­sors sol­len auf einem 1,54 Zoll E-Ink-Dis­play dar­ge­stellt wer­den.

Anwen­dungs­bei­spiel, Dan­ke an Nor­bert Schrills
  • als Text
  • als Text und dem Zeit­punkt der letz­ten Mes­sung
  • als Text mit Sym­bo­len und dem Zeit­punkt der letz­ten Mes­sung

Die Hardware

Waveshare 1,54 Zoll E-Ink Display

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 1,54 Zoll E-Ink Dis­play hat eine Auf­lö­sung von 200×200 Pixeln und kann die Far­ben weiß, rot und schwarz dar­stel­len.

DHT-Sensor

Die Sen­so­ren DHT11 und DHT22 mes­sen Tem­pe­ra­tur und Luft­feuch­tig­keit

Vergleich DHT11/DHT22

DHT11DHT22
Mess­be­reich Tem­pe­ra­tur0 - +50°C-40 - +80°C
Auf­lö­sung Tem­pe­ra­tur1°C0,1°C
Mess­ge­nau­ig­keit Tem­pe­ra­tur± 2 °C± 0,5 °C
Mess­be­reich Luft­feuch­tig­keit20 - 90%0 - 100%
Auf­lö­sung Luft­feuch­tig­keit1%0,1%
Mess­ge­nau­ig­keit Luft­feuch­tig­keit± 5 %± 2 %

Benötigte Bauteile

  • ESP32-Mikro­con­trol­ler oder ESP8266-Mikro­con­trol­ler
  • DHT11/DHT22 Tem­pe­ra­tur­sen­so­ren
  • Wavesha­re 1,54 Zoll E-Ink Dis­play
  • Lei­tungs­dräh­te

Konfiguration der Mikrocontroller

Benötigte Bibliotheken

Instal­lie­re auch die benö­tig­ten zusätz­li­chen Biblio­the­ken

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

Beispielprogramm

Das Pro­gramm zeigt

  • mit der inter­nen Funk­ti­on der Biblio­thek Text an
  • mit der Biblio­thek U8g2_for_Adafruit_GFX Text an
    Die­se Biblio­thek ver­fügt über eine gro­ße Aus­wahl von Schrif­ten in ver­schie­de­nen Grö­ßen, sie kann im Gegen­satz zur inter­nen Text­dar­stel­lung auch Son­der­zei­chen und Umlau­te dar­stel­len
  • Krei­se, Lini­en und Recht­ecke
Text mit u8g2Krei­sehori­zon­ta­le Lini­enabge­run­de­te Recht­ecke

Du musst ab Zei­le 10 den ent­spre­chen­den Mikro­con­trol­ler aus­wäh­len.

Bitmaps darstellen

Array des Bitmaps erstellen

Bit­maps kön­nen nicht direkt auf dem Dis­play dar­ge­stellt wer­den, sie müs­sen als Array hexa­de­zi­ma­ler Wer­te vor­lie­gen.
Wäh­le oder erstel­le ein Bild mit den maxi­ma­len Maßen 200×200 Pixeln. Das Online-Tool 🔗https://javl.github.io/image2cpp/ wan­delt das Bild in ein Array um.

Das Programm

Das erstell­te Array muss in den Kopf des Pro­gramms ein­ge­fügt wer­den.
draw­Bit­map zeigt das Bild an.
Du musst ab Zei­le 8 den ent­spre­chen­den Mikro­con­trol­ler aus­wäh­len.

Teilbereiche des Bildschirms verwenden

Das Pro­gramm zeigt im set­up-Teil zunächst auf der lin­ken Sei­te einen Text an. Im loop-Teil wird mit set­Par­ti­al­Win­dow ein Bild­schirm­be­reich defi­niert. Dort wer­den die Bit­maps ange­zeigt, der lin­ke Teil des Bild­schirms bleibt unver­än­dert.

Du musst ab Zei­le 9 den ent­spre­chen­den Mikro­con­trol­ler aus­wäh­len.

Messdaten als Text

Du musst in Zei­le 9 den Pin des DHT-Sen­sors, in Zei­le 13 den Typ des DHT-Sen­sors anpas­sen und ab Zei­le 26 den pas­sen­den Mikro­con­trol­ler aus­wäh­len.

Messdaten als Text und Zeit der letzten Messung

Du musst in Zei­le 16 den Pin des DHT-Sen­­sors, in Zei­le 20 den Typ des DHT-Sen­­sors anpas­sen und ab Zei­le 70 den pas­sen­den Mikro­con­trol­ler aus­wäh­len.
Die Zeit der letz­ten Mes­sung wird erst nach dem ers­ten Durch­lauf (im Bei­spiel nach fünf Minu­ten) ange­zeigt.

Messdaten als Text, mit Symbolen und Zeit der letzten Messung

Du musst in Zei­le 16 den Pin des DHT-Sen­­sors, in Zei­le 20 den Typ des DHT-Sen­­sors anpas­sen und ab Zei­le 67 den pas­sen­den Mikro­con­trol­ler aus­wäh­len.


Quellen


Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen

Ähnliche Projekte


Letzte Aktualisierung: Feb. 5, 2026 @ 19:10

Inhalt