Seite 1 von 1

Mit dem DHT11-Modul Temperatur und Feuchtigkeit messen

Verfasst: So 29. Jun 2025, 14:58
von Heinrichs
Mit dem DHT11-Modul kann man die Temperatur und die Luftfeuchtigkeit der Umgebung messen. Der Messbereich für die Luftfeuchtigkeit ist 20% - 80% (±5% Genauigkeit) und für die Temperatur: 0°C – 50°C (±2°C Genauigkeit).

Dass Modul benutzt eine Eindraht-Schnittstelle (One Wire). Wie diese Schnittstelle funktioniert, habe ich in diesem Beitrag dargestellt. Für unseren TTGO können wir auf ein Micropython-Modul zurückgreifen, welches unter an dieser Stelle kurz beschrieben wird.

In diesem Beitrag zeigen wir zunächst, wie mit diesem Modul Daten erfasst und im Terminal (von Thonny) angezeigt werden können. Anschließend wird dargestellt, wie der TTGO die Messwerte auch auf dem Display anzeigen kann.


1. Anschließen des DHT11 an den TTGO

DHT11TTGO
+ 3V
Out Pin 25
- G

Beachten Sie: Beim Pin 25 kann ein interner PullUp aktiviert werden; dieser ist für den Lesevorgang wichtig. Nicht bei allen GPIOs ist dies möglich.


2. Programm für Terminal-Anzeige

Code: Alles auswählen

# DHT11_messung_0.py

from time import sleep
import dht
import machine
d = dht.DHT11(machine.Pin(25))

print('DHT11')
while True:
    d.measure()
    t = d.temperature()
    h = d.humidity()
    print('Temperatur:', t, '°C     ', 'Luftfeuchtigkeit:', h, '%')
    sleep(2)

3. Programm für die Anzeige auf dem TTGO-Display

Code: Alles auswählen

# DHT11_messung_1.py

from time import sleep

from machine import Pin, SPI
import st7789
import vga2_16x16 as font1 # normal
import vga2_bold_16x32 as font2 # fett
spi = SPI(1, baudrate=20000000, polarity=1, sck=Pin(18), mosi=Pin(19))
display = st7789.ST7789(spi, 135, 240,  reset=Pin(23, Pin.OUT), cs=Pin(5, Pin.OUT), dc=Pin(16, Pin.OUT), backlight=Pin(4, Pin.OUT), rotation=3)
# Landscape
bg_color = 222
display.init()

import dht
d = dht.DHT11(Pin(25))

print('test DHT11')
while True:
    d.measure()
    t = d.temperature()
    h = d.humidity()
    print('Temperatur:', t, '°C     ', 'Luftfeuchtigkeit:', h, '%')
    display.fill(bg_color)
    display.text(font2, 'DHT11', 20, 10, st7789.WHITE, bg_color)
    t_bytes = bytes('Temp: ' + str(t) + ' ', 'UTF-8')
    display.text(font1, t_bytes + b'\xF8C', 20, 55, st7789.WHITE, bg_color)
    display.text(font1, 'Hum:  ' + str(h) + ' %', 20, 80, st7789.WHITE, bg_color)
    sleep(2)
Um das Sonderzeichen ° (Grad) anzuzeigen, müssen wir den erweiterten Zeichensatz (vga2) benutzen. Mehr zum Umgang mit Sonderzeichen beim TTGO-Display finden Sie hier.