Raspberry Pi Pico: Temperatur messen mit dem DHT11
Temperatur und Luftfeuchtigkeit messen ist die klassische Anwendung für Mikrocontroller mit Klimasensoren. Die dabei ermittelten Werte haben durchaus praktische Relevanz. Es gibt viele Anwendungen, bei denen Motoren, Pumpen, Heizungen und Lüfter temperaturabhängig geschaltet oder gesteuert werden.
Der DHT11 ist ein digitaler Temperatur- und Luftfeuchtigkeitssensor. Im folgenden Aufbau wollen wir die Temperatur und Luftfeuchtigkeit mit einem DHT11 messen und anzeigen.
Aufbau und Bauteile
Raspberry Pi Pico | DHT11 | |
---|---|---|
Pin 36 | 3V3 +3,3V | 1 (VCC) |
Pin 19 | GPIO 14 | 2 (Data) |
Pin 18 | GND | 4 (GND) |
Programmcode für MicroPython
Der Programmcode verwendet die interne DHT11-Unterstützung in MicroPython. In einer Endlos-Schleife werden die Werte für Temperatur und Luftfeuchtigkeit ausgelesen und angezeigt.
# Bibliotheken laden from machine import Pin from utime import sleep from dht import DHT11 # Initialisierung GPIO und DHT11 sleep(1) dht11_sensor = DHT11(Pin(14, Pin.IN, Pin.PULL_UP)) # Wiederholung (Endlos-Schleife) while True: # Messung durchführen dht11_sensor.measure() # Werte lesen temp = dht11_sensor.temperature() humi = dht11_sensor.humidity() # Werte ausgeben print(' Temperatur:', temp, '°C') print('Luftfeuchtigkeit:', humi, '%') print() sleep(3)
Nach der Inbetriebnahme durch die Verbindung mit der Betriebsspannung wird im Programmcode mindestens 1 Sekunde gewartet, bis der Sensor abfragt wird, um den unbestimmten Zustand zu übergehen. Das ist insbesondere dann wichtig, wenn der Raspberry Pi Pico mit dem DHT11 autark betrieben wird.
Troubleshooting
Beim Ausführen des Programmcodes erscheint folgende Fehlermeldung. Was ist das Problem und was ist zur Lösung zu tun?
ImportError: no module named 'dht'
Die Fehlermeldung sagt, dass es kein Import-Modul mit dem Namen „dht“ gibt. Das könnte ein Fehler im Programmcode sein. In diesem Fall aber nicht. Vermutlich befindet sich auf dem Raspberry Pi Pico eine veraltete MicroPython-Firmware in der noch keine DHT-Unterstützung vorhanden ist
DHTs werden ab MicroPython Version 1.18 unterstützt.
Welche MicroPython-Version auf Deinem Raspberry Pi Pico drauf ist, kannst Du Dir mit einem Klick auf den STOP-Button in der Kommandozeile von Thonny anzeigen lassen.
Beim Ausführen des Programmcodes erscheint folgende Fehlermeldung. Was ist das Problem und was ist zur Lösung zu tun?
OSError: [Errno 116] ETIMEDOUT
Die Fehlermeldung deutet an, dass die Kommunikation mit dem DHT11-Temperatursensor nicht möglich ist. Das wird an einer fehlerhaften oder instabilen Verkabelung des Sensors mit dem Raspberry Pi Pico liegen.
Kontrolliere die Steckverbindungen. Selbst wenn die korrekt sind, kann ein Wackelkontakt die Verbindung stören. Hilfreich ist es, wenn die Verbindungen kurz gehalten werden.
Dauerhaft lösen kann man dieses Problem dadurch, an der Daten-Leitung einen Pullup-Widerstand zwischen 1 und 10 kOhm vorzusehen. Ein Pullup-Widerstand verbindet die Datenleitung mit +VCC und sorgt für stabile elektrische Verhältnisse auf der Datenleitung. Es gibt DHT11-Module auf deren Platine der Widerstand bereits aufgelötet ist.
Programmcode für MMBasic
DIM FLOAT temp, humidity BITBANG HUMID GP14, temp, humidity, 1 PRINT "Temperatur:" temp "°C" PRINT "Luftfeuchtigkeit:" humidity "%"
Experimente und Beobachtungen
Bei diesem Aufbau und dem Programmcode bietet es sich an, mehrere Experimente durchzuführen, um die Leistungsfähigkeit des DHT11 bei der Temperatur- und Luftfeuchtigkeitsmessung festzustellen.
Hinweis: Messen heißt Vergleichen einer bekannten mit einer unbekannten Größe. Das heißt, wir brauchen ein Thermometer, dass uns Referenzwerte für Temperatur und Luftfeuchtigkeit anzeigt.
- Um die Luftfeuchtigkeit am Sensor zu ändern, reicht es aus, wenn man in kurz und kräftig anhaucht. Der menschliche Atem ist so feucht, dass dadurch der Messwert auf den Maximalwert springt und innerhalb einer Minute langsam wieder auf einen normalen Wert absinkt.
- Um die Temperatur am Sensor zu ändern wird man das Gehäuse mit zwei Fingern für etwa eine Minute umschließen müssen. In dieser Zeit wird die Temperatur ansteigen. Wenn man den Sensor wieder loslässt, wird die Temperatur auf einen normalen Wert wieder absinken.
Darf es ein bisschen mehr sein?
Wie wäre es, einfach mal mehrere Temperatursensoren miteinander zu vergleichen, um herauszufinden wie gut oder wie schlecht die messen?
Weitere verwandte Themen:
- Raspberry Pi Pico: Temperatur messen
- Raspberry Pi Pico: Temperaturregler / Temperaturregelung
- Raspberry Pi Pico: Temperatur messen mit dem DHT22/AM2302
- Raspberry Pi Pico: Temperatur messen mit dem DS18B20
- Raspberry Pi Pico: Temperaturen mit mehreren DS18B20 messen
Teilen:
Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython
Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.
- LED: Einschalten, ausschalten, blinken und Helligkeit steuern
- Taster: Entprellen und Zustände anzeigen
- LED mit Taster einschalten und ausschalten
- Ampel- und Lauflicht-Steuerung
- Elektronischer Würfel
- Eigene Steuerungen programmieren
Online-Workshop
Hardware-nahes Programmieren mit dem Raspberry Pi Pico
Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.
Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)
Elektronik-Set Pico Edition
Raspberry Pi Pico: Hardware-nahes Programmieren mit MicroPython
Leichter Einstieg mit All-in-one-Set zum sofort Loslegen, um eigene Steuerungen programmieren.
Elektronik-Set Pico WLAN Edition
Raspberry Pi Pico W: IoT und Smart Home mit WLAN und MQTT
Betreibe Deinen Raspberry Pi Pico W als drahtloser Sensor in Deinem WLAN, versende E-Mails mit Daten und kommuniziere per MQTT im Internet of Things oder Smart Home.
Elektronik-Set Sensor Edition
Erweiterung zu den Elektronik-Sets Pico Edition und Pico WLAN Edition
Elektronik-Set mit den beliebtesten Sensoren zum Messen von Temperatur, Helligkeit, Bewegung, Lautstärke und Entfernung.
Elektronik-Set Eingabe Ausgabe Edition
Erweiterung zu den Elektronik-Sets Pico Edition und Pico WLAN Edition
Damit kannst Du MP3-Dateien abspielen, eine Stoppuhr bauen, einen Servo-Motor mit Drehschalter oder Joystick steuern, Lichteffekte mit einem WS2812-LED-Lichtstreifen erzeugen, Schalten mit einem Relais und Signalisieren mit einem Vibrationsmotor.