Wollen wir uns in unseren vier Wänden wohlfühlen, dann sind Temperatur und Luftfeuchtigkeit die beiden wesentlichen Faktoren. Für Wohn- und Büroräume wird eine relative Luftfeuchtigkeit von 40 bis 50 % empfohlen. Liegen die Werte darüber oder darunter kann das Raumgefühl als unangenehm empfunden werden. Es empfiehlt sich, in den Wohnräumen die aktuelle Luftfeuchtigkeit zu messen und gegebenenfalls mittels regelmäßigem Stoßlüften oder Luftentfeuchtern entgegenzuwirken. Um so schöner ist es, dass diese Werte schnell mit einem Arduino und einem günstigen DHT11 Sensor für wenig Geld ermittelt werden können. Der Sensor DHT11 liefert uns Temperatur und die relative Luftfeuchtigkeit. Die Daten werden über das ein Datenbus System (1-Wire Protocol) digital übergeben.

 

Lernziele:

  • DHT11 Sensor mit Arduino verbinden
  • Programm Bibliothek für DHTxx in die Arduino IDE einbinden
  • Daten über die serielle Schnittstelle auslesen

Folgendes wird benötigt:Watch Full Movie Online Streaming Online and Download

  • Arduino Uno inkl. USB Kabel
  • DHT11 Sensor (DHT11 bei Amazonaktuelle Temperatur) <-  DHT21 oder DHT22 geht auch
  • Breadboard
  • 3 x Steckverbinder

Aufbau für Luftfeuchtigkeit und aktuelle Temperatur

Der Hardware Einsatz bei diesem Projekt ist sehr überschaubar. Lediglich der DHT11 Sensor muss mit 5v auf VCC, Date auf den Arduino Pin 4 und GND mit Null verbunden werden.

DHT11

Informationen zum DHT11

Der DHT11 Sensor wird entweder über vier Pin oder über ein Breakoutboard mit drei Pin ausgeliefert und arbeitet mit 3,5 bis 5,5 Volt. Er kann Temperaturen in Bereich von 0 bis 50 Grad Celsius mit einer Genauigkeit von ±2°C und die relative Luftfeuchtigkeit von 20 bis 95% mit einer Genauigkeit von ±5% messen. Der Sensor kalibriert die digitalen Signale automatisch und überträgt diese mit dem 1-wire Protokoll. Eine direkte Kommunikation mit dem Arduino und den einzelnen „rohen“ Sensoren ist somit nicht möglich.

 

Bibliothek in die Arduino Entwicklungsumgebung einbinden

Die Adruino IDE (Entwicklungsumgebung) hat nach der ersten Installation bereits einige Bibliotheken im Bauch. Will man diese Erweitern so geht dies in dem die neue Bibliothek einfach in den entsprechenden Ordner (Dokumente/Arduino/Library) kopiert wird, oder über das Menü Sketch > Library importieren … > Add Library importiert wird. Of werden die Bibliotheken als ZIP Date zum Download angeboten, so dass Ihr diese vor dem Kopieren entdecken solltet.

Nach dem Importieren ist die Bibliothek in der Lise der geladenen Libraries enthalten. Um euch das Leben ein wenig zu erleichtern haben wir die Bibliothek und das fertige Sketch in folgender Datei (DHT.zip) zusammen gefasst. Diese einfach wie beschrieben im Library Ordner entdecken und die Arduino IDE neu starten.

Das fertige Arduino Sketch

 

Fazit:

In diesem Tutorial habt Ihr gelernt wie schnell sich einfache Basiswerte überwachen lassen. Dieses Projekt könnt Ihr nach belieben erweitern – zum Beispiel mit einem LCD Display – und eure eigene Smart Home Hard- und Software bauen. In diesem Beispiel haben wir den DHT11 Sensor verwendet. Genauso gut kannst Du einen DHT22 verwenden. Dieser kostet etwas mehr als der DHT11, ist dafür aber auf 1/2 Grad Celsius genau.

 

 

Temperatur und Luftfeuchtigkeit messen – DHT11
Markiert in:        

4 Gedanken zu „Temperatur und Luftfeuchtigkeit messen – DHT11

  • 19. Februar 2015 um 15:26
    Permalink

    Gute Anleitung, allerdings würde ich beim DHT11 immer den Mittelwert aus mehreren Messungen zur Weiterverarbeitung nutzen. Die Ausrutscher sind beim DHT11 schon stellenweise riesig. Mit der Mittelwert Methode von 5 Messungen fahre ich bei meinem Growduino eigentlich immer ganz gut.

    Antworten
    • 19. Februar 2015 um 15:51
      Permalink

      Danke für den Hinweis Hauke. Stimmt schon. Ich habe mal in einem Projekt mit folgendem Code einen TMP35 „geglättet“:

      // Variablen zum Glätten der Temperatur Werte
      int rawVal = 0; // Sensor Wert
      float tempSensorValue = 0.0; // Variable zum Speichern der Sensorwerte
      float smoothStrength = 10; // Grad der Glättung

      rawVal = analogRead(TempSensorPin);
      delay(10); // kleine Pause für den Analog Digital Wandler
      tempSensorValue = smooth(rawVal, tempSensorValue);

      float smooth(int t_rawVal, int t_smoothedVal) {
      return t_smoothedVal + ((t_rawVal – t_smoothedVal) + 0.5) / smoothStrength;
      }

      Das hat in meinem Fall ganz gut funktioniert und verhindert, dass die Temperaturen zu schnell gestiegen oder gefallen sind. Ich denke, dazu werde ich mal eine weitere Anleitung schreiben.

      Viel Spaß bei deinem Projekt!

      Antworten
  • Pingback: Du musst nicht Informatik Studieren, um interaktive Roboter zu bauen.

Schreibe einen Kommentar

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