Der DHT11 bzw. DHT22 (gelegentlich auch als AM2302 bezeichnet) ist ein kombinierter Sensor zur Messung von Umgebungstemperatur und Luftfeuchtigkeit. Durch seinen geringen Preis eignet er sich prima, um eine kleine Wetterstation zu realisieren.
Der Sensor befindet sich in einem kleinen Plastikgehäuse. An der Unterseite befinden sich vier Anschlüsse, von denen aber nur drei genutzt werden:
VCC Data x GND
VCC = Versorgungsspannung 3,3 - 6V
Data = Datenleitung
x = nicht belegt
GND = Masse
Um den Sensor nutzen zu können, muss er dem System bekannt gemacht werden. Das geschieht in der Datei /boot/config.txt. Dort wird folgende Zeile eingefügt:
Danach bitte den Raspberry Pi mit sudo reboot neustarten, um den Treiber zu aktivieren
Nun zum Anschluss des Sensors:.
Als GPIO-Pin nutzen wir den Pin 24, was auf der RasPiLC-Platine dem Pin 9 des Modulports entspricht. Dieser ist im Normalfall nicht belegt (auch nicht, wenn ein Modul gesteckt ist) und kann frei genutzt werden.
Angeschlossen werden Pin 1 des Sensors an Pin 1 des Modulports (Betriebsspannung von 5V), Pin 2 des Sensors wird mit Pin 9 des Modulports verbunden (Datenleitung) und Pin 4 des Sensors an Pin 3 des Modulports (Masse).
Das Ganze kann dann so wie im folgenden Bild aussehen (Testaufbau):
Nun muss der Sensor nur noch in ioBroker ausgelesen werden. Dazu nutzen wir den parser-Adapter und legen wie folgt eine neue Zeile an:
Da der Sensor immer zwei Werte liefert,müssen auch zwei Datenpunkte angelegt werden, nämlich für Temperatur und für Luftfeuchtigkeit.
Zu beachten ist, dass der Sensor nur höchstens alle zwei Sekunden einen Wert liefern kann, was aber für normale Zwecke völlig ausreicht. In unserem Fall holen wir nur alle 60 Sekunden einen neuen Wert (Intervall = 60000ms).
Nachdem die Einträge angelegt und gespeichert sind, sollten im Reiter "Objects" die beiden neuen Datenpunkte zu finden sein. Falls nicht, hilft ein Aktualisieren oben rechts.
Nun ist die Einrichtung schon fertig und die Werte können weiterverarbeitet werden (Anzeige in Visualisierung, in Scripten etc.)
ACHTUNG! Durch die neue Installationsroutine von ioBroker wird dieser nun unter einem eigenen Benutzer ausgeführt und nicht mehr als "root". Daher kann es sein, dass der Zugriff auf die Systemdateien verweigert wird, was sich in einer Meldung wie "Datei nicht gefunden" auswirkt. Um dies zu beheben, muss als mit einem Editor (z.B. nano) in der Datei "/lib/systemd/system/iobroker.service" der Eintrag "User=iobroker" in "User=root" geändert werden.
So sollte die geänderte Datei dann aussehen: