Temperatursensor DHT22 am Raspberry Pi

dht22titelSehr oft wird der relativ günstige Sensor DHT22 (oder auch AM2302) eingesetzt, um am Raspberry Pi Temperaturen und die Luftfeuchtigkeit auszulesen. Wie dieser angeschlossen wird und welche Software dazu verwendet werden kann, möchte ich in diesem Beitrag beschreiben.

 

Material
Für unser Projekt benötigen wir folgendes:

  1. Sensor DHT22 (z.B. hier halbwegs günstig)
  2. Widerstand 10 kΩ
  3. Anschlusskabel (z.B. solche)
  4. natürlich einen Raspberry Pi inkl. Zubehör

 

In diesem Artikel verwendetes Zubehör
!slideshow_deploy!

 

Schritt 1: Sensor anschließen

Nachdem wir den Raspberry Pi ordnungsgemäß mit

heruntergefahren und von der Spannungsversorgung getrennt haben,
können wir den DHT22-Sensor nach folgenden Schema anschließen:

 

dht22

 

Erläuterung:
Pin eins des Sensors wird mit einem freien 3,3V-PIN des Raspberrys verbunden, Pin zwei mit einem
GPIO-PIN (in unserem Beispiel GPIO 17, was dem PIN 11 entspricht). Der dritte Pin bleibt
ungenutzt und den vierten verbinden wir mit einem freien Ground-PIN (beispielsweise PIN 9 des Raspberrys).
Zwischen den Pins eins und zwei des Sensors verlöten wir zudem den 10 kΩ Widerstand wie im Bild gezeigt.

 

Schritt 2: wiringPi

Wir benötigen für diesen Artikel die winringPi-Bibliothek. Die Installation und Verwendung wird in diesem Beitrag erläutert.
Achtung! Die wiringPi-Library nutzt eine andere Nummerierung der GPIO-Ports.
Daher wird in unserem Beispiel aus dem Raspberry-GPIO-Port 17 der wiringPi-Port 0.

Eine Übersicht der Pin-Belegungen der verschiedenen Raspberry-Versionen zeigt dieser Beitrag.

 

Schritt 3: lol_dht22

Nun installieren wir auf der Himbeere ein Script, welches den Sensor abfragt und die
übermittelten Werte ausgibt. Neben vielen anderen Verfügbaren nutzen wir in diesem
Projekt „lol_dht22„. Zur Installation bedarf es weniger Schritte:

Das Script kann nun mittels (0=wiringPi-Port)

gestartet werden und gibt nach einer kurzen Zeit die Datenwerte des DHT22 aus:

Sollte gelegentlich die Zeile „Data not good, skip“ erscheinen, ist das nicht weiter tragisch
und kann ignoriert werden. Zu beachten ist lediglich, dass der Sensor nicht öfter als alle
2 Sekunden ausgelesen werden kann.

 

Schritt 4: openHAB

Eine Einbindung des Sensors in das Hausautomatisierungssystem openHAB
habe ich in diesem Beitrag beschrieben.

 

Update
Aufgrund dessen, dass es hin und wieder zu „Ausreißern“ bei den Messergebnissen kommt,
habe ich ein kleines Script gebastelt, um solche fehlerhaften Messergebnisse auszusortieren.

 

Dieses Script liefert nur dann die Messwerte aus, wenn sie „MIN“ nicht unter- und „MAX“ nicht überschreiten. Sonst wird der vorherige Wert ausgegeben, der in einer temporären Datei bei der letzten erfolgreichen Messung hinterlegt wurde.

Das Script ist darauf ausgelegt, Messwerte remote von anderen Himbeeren auszulesen. Dazu ist ein passwortloser SSH-Login notwendig, wie es in diesem Beitrag beschrieben wurde. Aufgerufen wird das Script beispielsweise wie folgt:

 

Dabei steht die Zahl „123“ für das letzte Oktett der IP-Adresse des Raspberry, die Ziffer „4“ für den GPIO-Port, an dem der DHT22-Sensor am entfernten Raspberry angeschlossen ist und der Begriff „TEMP“ dafür, dass man in diesem Beispiel die Temperatur abrufen möchte. Alternativ wäre hier „HUM“ anzugeben.