Bemerkung
Hallo, willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Community auf Facebook! Tauche tiefer in Raspberry Pi, Arduino und ESP32 mit anderen Technikbegeisterten ein.
Warum beitreten?
Expertenunterstützung: Löse Probleme nach dem Kauf und technische Herausforderungen mit Hilfe unserer Community und unseres Teams.
Lernen & Teilen: Tausche Tipps und Tutorials aus, um deine Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalte frühzeitigen Zugriff auf neue Produktankündigungen und Sneak Peeks.
Spezielle Rabatte: Profitiere von exklusiven Rabatten auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nimm an Gewinnspielen und saisonalen Aktionen teil.
👉 Bereit, mit uns zu experimentieren und zu erschaffen? Klicke auf [hier] und tritt noch heute bei!
6.2 Messen von Temperatur und Luftfeuchtigkeit mit dem DHT11
In dieser Lektion lernen wir, wie man den DHT11 Temperatur- und Luftfeuchtigkeitssensor mit dem Raspberry Pi Pico 2 verwendet. Der DHT11 ist ein kostengünstiger digitaler Sensor, der die Umgebungstemperatur und Luftfeuchtigkeit messen und ein kalibriertes digitales Signal ausgeben kann.
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein komplettes Kit zu kaufen, hier ist der Link:
Name |
ENTHALTENE TEILE |
LINK |
|---|---|---|
Newton Lab Kit |
450+ |
Du kannst sie auch einzeln über die folgenden Links kaufen.
SN |
KOMPONENTE |
MENGE |
LINK |
|---|---|---|---|
1 |
1 |
||
2 |
Micro-USB-Kabel |
1 |
|
3 |
1 |
||
4 |
Mehrere |
||
5 |
1 |
Verständnis des DHT11-Sensors
Der DHT11 Sensor verwendet einen kapazitiven Feuchtigkeitssensor und einen Thermistor, um die Umgebungsluft zu messen. Er gibt ein digitales Signal über den Datenpin aus und ist relativ einfach zu verwenden, erfordert jedoch eine präzise Timing-Steuerung.
Temperaturbereich: 0–50 °C mit ±2 °C Genauigkeit
Luftfeuchtigkeitsbereich: 20–80 % RH mit ±5 % Genauigkeit
Abtastrate: 1 Hz (einmal pro Sekunde)
Schaltplan

Verdrahtungsdiagramm

Code schreiben
Lass uns ein MicroPython-Programm schreiben, um Temperatur- und Luftfeuchtigkeitswerte vom DHT11-Sensor zu lesen.
Bemerkung
Öffne
6.2_temperature_humidity.pyausnewton-lab-kit/micropythonoder kopiere den Code in Thonny und klicke dann auf „Run“ oder drücke F5.Stelle sicher, dass der richtige Interpreter ausgewählt ist: MicroPython (Raspberry Pi Pico).COMxx.
Hier benötigst du die Bibliothek
dht.py. Überprüfe, ob sie bereits auf den Pico hochgeladen wurde. Eine detaillierte Anleitung findest du unter Bibliotheken auf den Pico hochladen.
from machine import Pin
import utime
import dht
# Initialisierung des DHT11-Sensors
sensor = dht.DHT11(Pin(16))
while True:
try:
# Messung auslösen
sensor.measure()
# Werte auslesen
temperature = sensor.temperature # In Celsius
humidity = sensor.humidity # In Prozent
# Werte ausgeben
print("Temperature: {}°C Humidity: {}%".format(temperature, humidity))
except OSError as e:
print("Failed to read sensor.")
# Wartezeit vor der nächsten Messung
utime.sleep(2)
Sobald der Code läuft, werden die Temperatur- und Luftfeuchtigkeitswerte in der Thonny-Shell angezeigt.
Temperature: 29.3°C Humidity: 60.0%
Temperature: 29.2°C Humidity: 60.0%
Temperature: 29.2°C Humidity: 60.0%
Temperature: 29.1°C Humidity: 60.0%
Temperature: 29.2°C Humidity: 60.0%
Temperature: 29.3°C Humidity: 60.0%
Verständnis des Codes
Module importieren:
machine.Pin: Steuert die GPIO-Pins.utime: Enthält zeitbezogene Funktionen.dht: Bibliothek für DHT-Sensoren.
Initialisierung des Sensors:
sensor = dht.DHT11(Pin(16)) Creates an instance of the DHT11 sensor connected to GP16.
Hauptschleife:
sensor.measure(): Löst eine Messung aus.sensor.temperature: Liest die Temperatur in Celsius aus.sensor.humidity: Liest die Luftfeuchtigkeit in Prozent aus.Exception Handling: Fängt Fehler beim Lesen des Sensors ab.utime.sleep(2): Wartet 2 Sekunden zwischen den Messungen.
while True: try: sensor.measure() temperature = sensor.temperature humidity = sensor.humidity print("Temperature: {}°C Humidity: {}%".format(temperature, humidity)) except OSError as e: print("Failed to read sensor.") utime.sleep(2)
Weitere Experimente
Umwandlung der Temperatur in Fahrenheit:
temperature_f = temperature * 9 / 5 + 32 print("Temperature: {}°F Humidity: {}%".format(temperature_f, humidity))
Messwerte auf einem LCD anzeigen:
Integriere ein LCD-Display, um die Werte ohne einen Computer anzuzeigen.
Warnmeldungen einrichten:
Nutze eine LED oder einen Summer, um zu warnen, wenn Temperatur oder Luftfeuchtigkeit bestimmte Schwellenwerte überschreiten.
Fehlersuche
Falsche Werte:
Stelle sicher, dass der Sensor korrekt angeschlossen ist.
Überprüfe lose Verbindungen oder schlechte Kontakte.
Fehler beim Lesen des Sensor:
Dies kann gelegentlich aufgrund von Timing-Problemen auftreten. Der Code enthält eine try-except-Routine, um dies zu handhaben.
Pull-Up-Widerstand:
Falls der Sensor nicht funktioniert, überprüfe, ob ein Pull-Up-Widerstand zwischen VCC und Daten-Pin erforderlich ist.
Fazit
In dieser Lektion hast du gelernt, wie du den DHT11 Temperatur- und Luftfeuchtigkeitssensor mit dem Raspberry Pi Pico 2 verwendest. Die Überwachung von Umweltbedingungen ist eine grundlegende Funktion für viele Projekte, von Wetterstationen bis hin zu Hausautomatisierungssystemen.