KY-015 Kombi-Sensor (Temperatur & Feuchtigkeit)
Dieser Sensor ist ein Mischung aus Temperatursensor und Luftfeuchtigkeitssensor in einer kompakten Bauform.
- 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
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.