Warm und Trocken

In einem vorherigen Post habe ich die Basis für unsere Heimautomatisierung beschrieben: den Raspberry Pi. In diesem Post geht es nun um den ersten dort angeschlossenen Sensortyp: der DHT22. Dabei handelt es sich um einen kombinierten Temperatur- und Luftfeuchtigkeitssensor.

dht22Um den Sensor verwenden zu können, muss er zunächst an den Raspberry Pi angeschlossen werden. Von den vier Pins werden dazu drei benötigt: Versorgungsspannung 3.3V, Datenkanal und Masse. Der Pin mit der Vorsorgungsspannung und der Datenpin werden über einen Widerstand (hier 5.6 kOhm) miteinander gekoppelt. Versorgung und Masse werden auf der GPIO-Steckerleiste des Raspberry Pis an den entsprechenden Pins angeschlossen. Der Datenkanal kann an einen beliebigen GPIO-Port angelegt werden. Weitere Details zum Anschließen des Sensors finden sich an vielen Stellen (Google ist dein Freund: “DHT22 Raspberry Pi”) im Netz.

Die Ansteuerung des Sensors direkt über Java (darin ist meine zentrale Software auf dem Raspberry Pi geschrieben) ist nicht ganz einfach. Glücklicherweise habe ich hier sehr kompakten und übersichtlichen C-Code gefunden, den ich in eine einfache C++-Klasse integrieren konnte. Über einen Java-Native-Interface- (oder auch JNI)-Wrapper (konkret SWIG) bekomme ich Java-Klassen, die sich nahtlos in die übrige Software integrieren. Damit lässt sich der Sensor wunderbar ansprechen.

Die Sensorwerte lese ich regelmäßig aus und lege sie in der Datenbank ab. Damit lässt sich der Temperaturverlauf über beliebige Zeiträume überwachen. Zur übersichtlichen Darstellung verwende ich die JFreeChart-Bibliothek. Hier beispielsweise die Temperaturkurve in unserem Keller aus dem letzten 24h:

tempertature_24hGegen 15 Uhr habe ich das Kellerfenster geöffnet und dies bis 20 Uhr vergessen …

Und fertig ist der erste Schritt auf dem Weg hin zu Big-Brother.