DHT11 Temperatur Sensor per Arduino auslesen

Benötigte Komponenten

  • Arduino UNO kompatibles Board + USB-Kabel
  • DHT11 Modul
  • 3 Dupontkabel Buchse-Stecker

Überblick DHT11 Temperatur- und Luftfeuchtigkeits-sensor

Dieses DHT11 Sensormodul eignet sich ideal zur Überwachung der Temparatur und relativen Luftfeuchtigkeit in Wohnräumen. Der Sensor misst Temperaturen von 0°C bis 50°C mit einer Genauigkeit von +-2°C und die Luftfeuchtigkeit von 20% bis 95% mit einer Genauigkeit von +-5%.

Das DHT11 Modul wird mit nur 3 Pins verkabelt und arbeitet mit 3V bis 5V. Es lässt sich besonders leicht an einen Arduino anschließen, um schnell und unkompliziert Messwerte ermitteln zu können. In der Bibliotheken-Verwaltung der Arduino-Software sind bereits standartmäßig mehrere Bibliotheken mit Beispielcode zur Installation verfügbar, so können Sie den DTH11 Sensor in kürzester Zeit in Betrieb nehmen.

DHT11 vs DHT22

Als Alternative bietet sich der etwas teurere DHT22 Sensor an, welcher größere Messbereiche erkennen, genauer und zwei Mal pro Sekunde messen kann.

Falls Sie sich fragen, welcher Sensor der richtige für Ihr Projekt ist, haben wir hier eine kleine Übersicht zusammengestellt.

Vergleichswert

DHT11

DHT22

Reichweite (Temperatur)

0 - 50°C

-40 – 80°C

Genauigkeit (Temperatur)

+-2°C

+-0.5°C

Reichweite (Luftfeuchtigkeit)

20-95%

0-100%

Genauigkeit (Luftfeuchtigkeit)

+-5%

+-2%

Messintervall

1000 Millisekunden

500 Millisekunden

Als Fazit kann man sagen, dass der DHT22 auf ganzer Linie punktet, außer dem Preis. Trotzdem ist der DHT11 der beliebteste Temperatursensor für Microcontroller-Projekte, da er sehr günstig, genau und stromsparend ist.

Anschlussplan

DHT11_Steckplatine

DHT11

Arduino

S (Datenleitung)

Pin 2

VCC (Stromversorgung 3-5V)

5V

- (GND)

GND

 DHT Sensor Library installieren

Um die ermittelten Messwerte ganz einfach in C° auszugeben, verwenden wir die DHT Bibliothek. Die Installation erfolgt unkompliziert über die Arduino IDE. Die Bibliothek kann auch für andere DHT-Sensoren verwendet werden.

1. Bibliotheken verwalten aufrufen
Bibliotheken_aufrufen

2. Nach DHT11 suchen und die DHT Sensor Library installieren
dht11_bibliothek_installieren

Code für Arduino

Den Code finden Sie ebenfalls unter „Datei –Beispiele –DHT“. Sie müssen nur den DHT11 statt dem DHT22 auskommentieren.

// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain
// REQUIRES the following Arduino libraries:
// - DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library
// - Adafruit Unified Sensor Lib: https://github.com/adafruit/Adafruit_Sensor
#include "DHT.h"
#define DHTPIN 2 // Digital pin connected to the DHT sensor
// Feather HUZZAH ESP8266 note: use pins 3, 4, 5, 12, 13 or 14 --
// Pin 15 can work but DHT must be disconnected during program upload.
// Uncomment whatever type you're using!
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Initialize DHT sensor.
DHT dht(DHTPIN, DHTTYPE);

void setup() {
Serial.begin(9600);
Serial.println(F("DHTxx test!"));
dht.begin();
}
void loop() {
// Wait a few seconds between measurements.
delay(2000);
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.print(f);
Serial.print(F("°F Heat index: "));
Serial.print(hic);
Serial.print(F("°C "));
Serial.print(hif);
Serial.println(F("°F"));
}

Schlagworte: Starter Kit, Arduino, Anleitung

Die mit einem * markierten Felder sind Pflichtfelder.