• Arduino
  • Raspberry Pi
  • Raspberry Pi Pico
  • Micro:Bit

Der DHT11 Sensor ist eine Kombination aus Temperatur- und Luftfeuchtigkeitssensor in einer kompakten Bauform. Er misst Temperaturen von 0 °C bis 50 °C mit einer Genauigkeit von ±2 °C und relative Luftfeuchtigkeit von 20 % bis 90 % mit einer Genauigkeit von ±5 %. Aufgrund seiner geringen Abtastrate liefert der Sensor nur alle zwei Sekunden neue Messwerte, was ihn ideal für Langzeitmessungen macht. Der DHT11 ist einfach in Mikrocontroller-Plattformen wie Arduino und Raspberry Pi zu integrieren und erfordert dank werkseitiger Kalibrierung keine zusätzliche Kalibrierung. Seine robuste Bauweise und Zuverlässigkeit machen ihn zur optimalen Wahl für kontinuierliche Überwachungsprojekte wie Gewächshäuser, Klimakontrollsysteme und Lagerüberwachung.

Technische Daten
Chipsatz DHT11
Kommunikationsprotokoll 1-Wire
Messbereich 0°C bis 50°C
Messgenauigkeit ±2°C
Messgenauigkeit ±5%RH
Messbare Luftfeuchtigkeit 20-90%RH

Anschlussbelegung


Arduino Sensor
Pin 2 Signal
5 V +V
GND GND

Code-Beispiel

Um das folgende Codebeispiel auf Ihren Arduino zu laden, empfehlen wir die Verwendung der Arduino IDE. In der IDE können Sie den passenden Port und das richtige Board für Ihr Gerät auswählen.

Es werden für das Codebeispiel auch die folgenden Bibliotheken verwendet:

DHT sensor library von Adafruit | veröffentlicht unter der MIT License

Adafruit Unified Sensor von Adafruit | veröffentlicht unter der Apache License 2.0

Diese Bibliotheken können Sie bequem über den Bibliotheken-Manager der Arduino IDE hinzufügen. Kopieren Sie anschließend den unten stehenden Code in Ihre IDE. Um den Code auf den Arduino hochzuladen, klicken Sie einfach auf den Upload-Button.

Dieser Sensor gibt sein Messergebnis nicht als analoges Signal auf einen Ausgangspin aus, sondern kommuniziert diesen digital kodiert.

// Adafruit_DHT Library wird eingefügt
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
 
// Hier kann der jeweilige EingangsPin deklariert werden
#define DHTPIN 2     
 
// Der Sensor wird initialisiert
#define DHTTYPE DHT11   // DHT 11
DHT dht(DHTPIN, DHTTYPE);
 
void setup() {
  Serial.begin(9600);
  Serial.println("KY-015 Test - Temperatur und Luftfeuchtigkeits-Test:");
  // Messung wird gestartet
  dht.begin();
}
 
// Hauptprogrammschleife
// Das Programm startet die Messung und liest die gemessenen Werte aus
// Zwischen den Messungen wird eine Pause von 2 Sekunden eingelegt,
// damit beim nächsten Druchlauf eine neue Messung erfasst werden kann.
void loop() {
  // Zwei Sekunden Pause zwischen den Messungen
  delay(2000);
  // Luftfeuchtigkeit wird gemessen
  float h = dht.readHumidity();
  // Temperatur wird gemessen
  float t = dht.readTemperature();
  // Hier wird überprüft, ob die Messungen fehlerfrei druchgelaufen sind
  // Bei Detektion eines Fehlers, wird hier eine Fehelrmeldung ausgegeben
  if (isnan(h) || isnan(t)) {
    Serial.println("Fehler beim Auslesen des Sensors");
    return;
  }
  // Ausgabe in die serrielle Konsole
  Serial.println("-----------------------------------------------------------");
  Serial.print("Luftfeuchtigkeit: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperatur: ");
  Serial.print(t);
  Serial.println(" °C ");
  Serial.println("-----------------------------------------------------------");
  Serial.println(" ");
}

Bitte beachten Sie, dass der Sensor nur etwa alle 2 Sekunden ein neues Messergebnis zur Verfügung stellt.

Der DHT11 Sensor ist eine Kombination aus Temperatur- und Luftfeuchtigkeitssensor in einer kompakten Bauform. Er misst Temperaturen von 0°C bis 50°C mit einer Genauigkeit von ±2°C und relative Luftfeuchtigkeit von 20% bis 90% mit einer Genauigkeit von ±5%. Aufgrund seiner geringen Abtastrate liefert der Sensor nur alle zwei Sekunden neue Messwerte, was ihn ideal für Langzeitmessungen macht. Der DHT11 ist einfach in Mikrocontroller-Plattformen wie Arduino und Raspberry Pi zu integrieren und erfordert dank werkseitiger Kalibrierung keine zusätzliche Kalibrierung. Seine robuste Bauweise und Zuverlässigkeit machen ihn zur optimalen Wahl für kontinuierliche Überwachungsprojekte wie Gewächshäuser, Klimakontrollsysteme und Lagerüberwachung.

Technische Daten
Chipsatz DHT11
Kommunikationsprotokoll 1-Wire
Messbereich 0°C bis 50°C
Messgenauigkeit ±2°C
Messgenauigkeit ±5%RH
Messbare Luftfeuchtigkeit 20-90%RH

Anschlussbelegung


Raspberry Pi Sensor
GPIO 23 [Pin 16] Signal
+3,3V [Pin 1] +V
GND [Pin 6] GND

Code-Beispiel

Das Programm nutzt zur Ansteuerung des DHT11-Sensors die entsprechende Adafruit_CircuitPython_DHT Library der Firma Adafruit. Diese wurde mit der MIT OpenSource-Lizenz veröffentlicht.

Diese muss zuvor installiert werden. Führen Sie dazu die folgenden Befehle aus:

sudo apt-get update
sudo apt-get install build-essential python-dev
sudo apt install gpiod
sudo pip3 install python3-pip

Erstellen Sie nun die notwendige virtuelle Umgebung für das Projekt mit den folgenden Befehlen:

mkdir dein_projekt
cd dein_projekt
python -m venv --system-site-packages env
source env/bin/activate

Installieren Sie nun die Bibliothek mit dem folgenden Befehl:

pip3 install adafruit-circuitpython-dht

Nachdem Sie die Bibliothek heruntergeladen haben, brauchen Sie nur mit folgendem Befehl...

nano KY015-RPi.py

...eine neue Datei auf Ihrem Raspberry Pi zu erstellen und dann den folgenden Code in die so eben erstellte Datei kopieren.

import time
import board
import adafruit_dht

# Initialisieren Sie das dht-Gerät, wobei der Datenpin mit Pin 16 (GPIO 23) des Raspberry Pi verbunden ist:
dhtDevice = adafruit_dht.DHT11(board.D23)

# Sie können DHT22 use_pulseio=False übergeben, wenn Sie pulseio nicht verwenden möchten.
# Dies kann auf einem Linux-Einplatinencomputer wie dem Raspberry Pi notwendig sein,
# aber es wird nicht in CircuitPython funktionieren.
# dhtDevice = adafruit_dht.DHT22(board.D18, use_pulseio=False)

while True:
    try:
        # Drucken der Werte über die serielle Schnittstelle
        temperature_c = dhtDevice.temperature
        temperature_f = temperature_c * (9 / 5) + 32
        humidity = dhtDevice.humidity
        print("Temp: {:.1f} F / {:.1f} C    Humidity: {}% ".format(temperature_f, temperature_c, humidity))

    except RuntimeError as error:
        # Fehler passieren ziemlich oft, DHT's sind schwer zu lesen, einfach weitermachen
        print(error.args[0])
        time.sleep(2.0)
        continue
    except Exception as error:
        dhtDevice.exit()
        raise error

    time.sleep(2.0)

Bitte beachten Sie, dass der Sensor nur etwa alle 2 Sekunden ein neues Messergebnis zur Verfügung stellt.

Der DHT11 Sensor ist eine Kombination aus Temperatur- und Luftfeuchtigkeitssensor in einer kompakten Bauform. Er misst Temperaturen von 0°C bis 50°C mit einer Genauigkeit von ±2°C und relative Luftfeuchtigkeit von 20% bis 90% mit einer Genauigkeit von ±5%. Aufgrund seiner geringen Abtastrate liefert der Sensor nur alle zwei Sekunden neue Messwerte, was ihn ideal für Langzeitmessungen macht. Der DHT11 ist einfach in Mikrocontroller-Plattformen wie Arduino und Raspberry Pi zu integrieren und erfordert dank werkseitiger Kalibrierung keine zusätzliche Kalibrierung. Seine robuste Bauweise und Zuverlässigkeit machen ihn zur optimalen Wahl für kontinuierliche Überwachungsprojekte wie Gewächshäuser, Klimakontrollsysteme und Lagerüberwachung.

Technische Daten
Chipsatz DHT11
Kommunikationsprotokoll 1-Wire
Messbereich 0°C bis 50°C
Messgenauigkeit ±2°C
Messgenauigkeit ±5%RH
Messbare Luftfeuchtigkeit 20-90%RH

Anschlussbelegung


Micro:Bit Sensor
Pin 1 Signal
3V +V
GND GND

Code-Beispiel

Für das folgende Codebeispiel wird eine zusätzliche Library benötigt:

pxt-DHT11_DHT22 von alankrantas | veröffentlicht unter der MIT License

Diese Library müssen Sie vor der Benutzung des Codes zu Ihrer IDE hinzufügen. Fügen Sie die Library zu Ihrer IDE hinzu, indem Sie auf "Erweiterungen" klicken und die folgende URL in das Suchfeld eingeben: https://github.com/alankrantas/pxt-DHT11_DHT22.git. Bestätigen Sie die Suche mit [Enter].

	
		basic.forever(function () {
		    dht11_dht22.queryData(
		    DHTtype.DHT11,
		    DigitalPin.P1,
		    true,
		    false,
		    true
		    )
		    basic.showString("T:" + dht11_dht22.readData(dataType.temperature) + "C")
		    basic.pause(2000)
		    dht11_dht22.queryData(
		    DHTtype.DHT11,
		    DigitalPin.P1,
		    true,
		    false,
		    true
		    )
		    basic.showString("H:" + dht11_dht22.readData(dataType.humidity) + "%")
		    basic.pause(2000)
		})
	

Beispielprogramm Download

microbit-KY-015.zip

Der DHT11 Sensor ist eine Kombination aus Temperatur- und Luftfeuchtigkeitssensor in einer kompakten Bauform. Er misst Temperaturen von 0°C bis 50°C mit einer Genauigkeit von ±2°C und relative Luftfeuchtigkeit von 20% bis 90% mit einer Genauigkeit von ±5%. Aufgrund seiner geringen Abtastrate liefert der Sensor nur alle zwei Sekunden neue Messwerte, was ihn ideal für Langzeitmessungen macht. Der DHT11 ist einfach in Mikrocontroller-Plattformen wie Arduino und Raspberry Pi zu integrieren und erfordert dank werkseitiger Kalibrierung keine zusätzliche Kalibrierung. Seine robuste Bauweise und Zuverlässigkeit machen ihn zur optimalen Wahl für kontinuierliche Überwachungsprojekte wie Gewächshäuser, Klimakontrollsysteme und Lagerüberwachung.

Technische Daten
Chipsatz DHT11
Kommunikationsprotokoll 1-Wire
Messbereich 0°C bis 50°C
Messgenauigkeit ±2°C
Messgenauigkeit ±5%RH
Messbare Luftfeuchtigkeit 20-90%RH

Anschlussbelegung


Raspberry Pi Pico Sensor
GPIO14 Signal
3.3V +V
GND GND

Code-Beispiel

Um das folgende Codebeispiel auf Ihren Pico zu laden, empfehlen wir die Verwendung von der Thonny IDE. Sie müssen nur zunächst unter Run > Configure interpreter … > Interpreter > Which kind of interpreter should Thonny use for running your code? > MicroPython (Raspberry Pi Pico) auswählen.

Kopieren Sie den untenstehenden Code nun in Ihre IDE und klicken Sie auf Run.

Dieser Sensor gibt sein Messergebnis nicht als analoges Signal auf einen Ausgangspin aus, sondern kommuniziert diesen digital kodiert.

# Bibliotheken laden
from machine import Pin
from utime import sleep
from dht import DHT11

# Initialisierung GPIO14 und DHT11
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: {}°C   Luftfeuchtigkeit: {:.0f}% ".format(temp, humi))
    print()
    sleep(2)

Bitte beachten Sie, dass der Sensor nur etwa alle 2 Sekunden ein neues Messergebnis zur Verfügung stellt.