Messdaten DHT/BMP280 mit GFXcanvas auf TFT anzeigen

Kate­go­rie: ,



Ziele des Projekts

  • Mess­wer­te der Sen­so­ren DHT11/DHT22 und BMP280 ermit­teln und anzei­gen
  • Datum und Uhr­zeit mit der Biblio­thek time.h fest­stel­len und anzei­gen
  • mit der Can­vas-Funk­ti­on der Biblio­thek AdafruitGFX die Daten auf einem TFT mit 320×240 Pixeln dar­stel­len

Benötigte Bauteile

Board installieren

Als Mikro­con­trol­ler kön­nen belie­bi­ge Modu­le aus der Fami­lie der ESP32-Mikro­con­trol­ler ver­wen­det wer­den.

SPI-Pins der Mikrocontroller

Pinbelegung

Bei­spiel: ESP32-Wroom mit 30 Pins

⇒ Pin­be­le­gun­gen ver­schie­de­ner TFTs

Benötigte Bibliotheken

GFXcanvas

Soll ein schnell wech­seln­der Text oder ein sich ver­än­dern­des gra­fi­sches Ele­ment an der glei­chen Posi­ti­on dar­ge­stellt wer­den, gibt es zwei Pro­ble­me:

  • der geän­der­te Text ist län­ger oder kür­zer als der vor­he­ri­ge, dadurch über­lap­pen sich die Buch­sta­ben
    das neue gra­fi­sche Ele­ment unter­schei­det sich in der Grö­ße vom Bis­he­ri­gen
  • weil der Bild­schirm immer gelöscht und wie­der neu auf­ge­baut wird, ver­ur­sacht das neue Ele­ment ein Fla­ckern des TFTs

Das ers­te Pro­blem lässt sich lösen indem der bis­he­ri­ge Text oder das gra­fi­sche Ele­ment durch ein aus­ge­füll­tes Recht­eck „gelöscht“ wird. Das ver­hin­dert aller­dings nicht das Fla­ckern des TFTs.

Die durch die Instal­la­ti­on der Biblio­thek Adafruit ILI9341 zusätz­lich instal­lier­te Biblio­thek Adafruit GFX ent­hält die Funk­ti­on GFX­can­vas. Sie legt zunächst ein Bild der dar­zu­stel­len­den Daten im Spei­cher an, auf Anfor­de­rung wird die­ses Bild auf dem TFT dar­ge­stellt.

Im Film wird der blau dar­ge­stell­te Bereich mit GFX­can­vas erzeugt, im roten Bereich wird der Text zunächst durch ein rotes Recht­eck „gelöscht“ und anschlie­ßend neu geschrie­ben. Als Text wird die mit ⇒mil­lis() gemes­se­ne Zeit, die seit dem Start des Pro­gramms ver­gan­gen ist, dar­ge­stellt.
Man kann den Unter­schied gut erken­nen.

Du musst die // vor den Pins des ver­wen­de­ten Mikro­con­trol­lers ent­fer­nen.

Jedes Objekt vom Typ GFXcanvas16 benö­tigt pro zwei Bit pro Pixel. Wie im Bei­spiel eines Bereichs mit 320×240 Pixeln sind das 153.600 Bits, das ent­spricht 19200 Bytes oder 19,2 kilo­Bytes.

  • die gra­fi­schen Ele­men­te oder der Text wer­den zunächst auf die Lein­wand geschrie­ben, der Name des Objekts ist jetzt nicht das Dis­play, son­dern der Name des Land­wand-Objekts (Bereich)
  • die erstell­te Lein­wand wird als Gan­zes auf den Bild­schirm geschrie­ben
    die ers­ten bei­den Para­me­ter legen fest an wel­cher Stel­le das Bild auf dem TFT geschrie­ben wird

Das Programm

Bibliotheken und Variable

Not­wen­di­ge Anpas­sun­gen:

  • Zei­le 14:: SPI-Pins des ver­wen­de­ten Mikro­con­trol­lers
  • Zei­le 75: WiFi-Daten
  • Zei­le 81: Daten-Pin und Typ des DHT-Sen­sors

setup-Teil

Die Mel­dun­gen zei­gen auf dem TFT den Ver­lauf des Start­vor­gangs.

Funktion BildschirmAufbauen

Im loop-Teil wird die Funk­ti­on Bild­schirm­Auf­bau­en auf­ge­ru­fen. Sie stellt die aktu­el­le Zeit fest, ermit­telt die Mess­wer­te der Sen­so­ren, legt die Lein­wand an und zeigt sie an.

loop-Teil

Quellen


Letzte Aktualisierung: Apr. 26, 2026 @ 13:09

Inhalt