Arduino Lektion 6: Sensor DHT11, Temperatur und relative Luftfeuchtigkeit messen

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, dorft findet man verschiedene Model 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.

DHT11 Sensor
DHT11 Sensor zum messen von Temperatur und der relativen Luftfeuchtigkeit

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 5V

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.

DHT11 Sensor
Anschluss des DHT11 Sensors.

Zu beachten ist das die Schaltung aus der Lektion5 über den analogen PIN erfolgt und der DHT11 über einen 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.

DHT11 Sensor
Angeschlossener DHT11 Sensor am Mega2560
Temperatursensor DHT11 am Saintsmart Mega2360
Dieses Video ansehen auf YouTube.

 

Hier der Quellcode zum Download

8 Gedanken zu „Arduino Lektion 6: Sensor DHT11, Temperatur und relative Luftfeuchtigkeit messen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.