Mit dem Sensor DHT11 kann man die Temperatur sowie die relative Luftfeuchtigkeit messen und das ganze mit nur einem Sensor.
Diesen Sensor habe ich über Amazon.de bezogen, dort findet man verschiedene Modelle, welche jedoch baugleich sind. Wer etwas mehr Zeit investiert kann wie gerne auf das Model aus Singapur zurückgreifen. Der Preis ist hier sehr niedrig nur leider die Lieferzeit mit 3 Wochen extrem hoch.
Inhaltsverzeichnis
Technische Daten des Sensors DHT11
- Messbereich der relativen Luftfeuchtigkeit 20 % bis 90 %
- Toleranz des Messbereiches für die relative Luftfeuchtigkeit ±5 %
- Messbereich der Temperatur 0 bis 60 °C
- Toleranz des Messbereiches für die Temperatur ±2 °C
- Betriebsspannung 5 V
Wer hier etwas mehr investiert und auf das Model DHT22 umsteigt, kann mit verbesserten Werten arbeiten.
Technische Daten des Sensors DHT22:
- Messbereich der relativen Luftfeuchtigkeit 0 % bis 100 %
- Messbereich der Temperatur -40 °C bis 80 °C
Die Schaltung
Hier nun die kurze Schaltung für den DHT11 Sensor.
Zu beachten ist das die Schaltung aus der Lektion5 über den analogen PIN erfolgt und der DHT11 über einer digitalen PIN angesteuert wird.
Der Quellcode
Für den Betrieb des DHT11 Sensors am Sainsmart Mega2560 wird die DHTLibrary benötigt, welche aus dem GitHub Repository von Rob Tilaart geladen werden kann.
#include <dht.h> // DHT Library von Arduino dht DHT; // Zuweisen eines Objektes zur Bibliothek int sensorPin = 13 ;// Bestimmen das der Sensor DHT11 an den PWM PIN 13 angeschlossen ist. void setup() { Serial.begin(115200); // Verbindungsgeschwindigkeit (Baudrate) auf 115200 setzen. Dieses muss mit der Übertragungsrate im Serial Monitor übereinstimmen. } void loop() { int chk = DHT.read11(sensorPin); //Status holen switch (chk) { //Wenn alles OK ist. case DHTLIB_OK: break; //Bei einem Checksummenfehler case DHTLIB_ERROR_CHECKSUM: Serial.print("Checksummenfehler"); break; //Bei einer Zeitüberschreitung der Anforderung. case DHTLIB_ERROR_TIMEOUT: Serial.print("Zeitüberschreitung"); break; default: break; } //Werte ausgeben Serial.print("Temperatur: "); Serial.print(DHT.temperature, 1); //Die Temperatur auslesen. Serial.println("C"); Serial.print("Luftfeuchtigkeit: "); Serial.print(DHT.humidity, 1); // Die Luftfeuchtigkeit auslesen. Serial.println("%"); Serial.println(""); //Eine Pause von 2sek. der Sensor DHT11 stellt alle 2sek neue Werte zur Verfügung daher //ist ein Wert < 2sek. nicht möglich bzw. unnötig. delay(2000); }
Das Video
Wie bei der Schaltung mit dem einfachen Temperatursensor ist, hier auch nur ein Bild des Aufbaues, denn das eigentlich interessante erscheint am Monitor.
Hier der Quellcode zum Download
Hallo, ich kann kaum auf Deinen Photos kaum erkennen was wohin,
mein Tip Du solltest Fritzing Diagramme nutzen.
Hier ne kleine Info :
“Fritzing ist eine Software, mit der man leicht und unkompliziert Aufbaupläne vor allem für Steckboard-Projekte erstellen kann. Viele verschiedene Arduino Controller aber auch Raspberry Pi und andere Boards weden schon in der Software unterstütz und erleichern so den Nutzern, einen übersichtlichen Plan zu erstellen. Dadurch fällt es einem selbst und auch anderen Nutzern leicht, das Projekt nachzuvollziehen und nachzubauen”.
Lieben Gruss Arkadius
Hallo Arkadius,
danke für dein Kommentar. Ich habe das schon frühzeitig gemerkt und in den nachfolgenden Tutorials eingebunden.
Gruß,
Stefan Draeger
Hallo, ich suche ein Tutorial zum Grove DHT20 oder DHT11 mit dem Caliope mini. Ich wollte die Werte für Temperatur und Luftfeuchte auslesen und ggf. auf einen Grove LCD 16×2 vom Calliope anzeigen lassen.
Können sie mir da weiterhelfen? Ich bin noch “Frischling” bzgl. Programmierung mit Calliope.
VG