Raspberry Pi Luftfeuchtigkeit bestimmen
Mit dem Raspberry Pi Luftfeuchtigkeit bestimmen geht relativ einfach, man benötigt nur einen Feuchtigkeitssensor wie den DHT11 oder den DHT22 und einen 10k Widerstand. Die Messung der Luftfeuchtigkeit ist über die GPIO Schnittstelle so aufwendig wie die Messung der aktuellen Temperatur. Durch die Luftfeuchtigkeit können wir unsere Wetterstation nun um einen weiteren Wert erweitern.
Raspberry Pi Luftfeuchtigkeit bestimmen
In einem meiner letzten Artikel habe ich gezeigt wie man mit einem 18B20 Temperatur Sensor am Raspberry Pi die aktuelle Temperatur auslesen kann. Um eine vernünftige Wetterstation bauen zu können benötigen wir aber noch mehr Werte. Eines der wichtigsten ist die Luftfeuchtigkeit. Gängige Sensoren dafür sind:
Diese Sensoren sind recht günstig. Sie sind perfekt für den Raspberry Pi geeignet, da sie eine Versorgungsspannung von 3-5 V benötigen, genau der Bereich den man über die GPIO Schnittstelle zur Verfügung hat. Die einzelnen Sensoren unterscheiden sich hauptsächlich in der Genauigkeit der Messungen. Alle 3 Sensoren können neben der Luftfeuchtigkeit auch die Temperatur messen. Sofern man also keinen genaueren Temperatursensor angeschlossen hat spricht nichts dagegen den Wert des Luftfeuchtigkeitssensors zu verwenden. Hat der DHT11 noch eine Genauigkeit von ±2°C bei der Temperatur und 5% Abweichung bei der Luftfeuchtigkeit, so ist die Temperaturgenauigkeit beim DHT22 bereits ±0.5°C und die Abweichung bei der Luftfeuchtigkeit bei ca. 2%.
Die Hardware
In meinem Artikel verwende ich den DHT11 Sensor. Der DHT22 ist baugleich, hat also die genau selbe Pinbelegung und kann mit dieser Anleitung ebenso verwendet werden. Der Sensor hat folgende Pins:
- Spannung
- Daten
- NC
- Masse (GND)
Für unsere Messung benötigen wir lediglich 3 der 4 Pins. Das ist links die Eingangsspannung, welche laut Angaben zwischen 3 und 5 Volt sein kann. Rechts befindet sich die Masse (GND). Die Messwerte werden über die Datenleitung (zweite von Links) ausgelesen. Diese kann direkt an einen der GPIO Pins angeschlossen werden.
Wenn man einen Standard DHT11 Sensor verwendet, dann benötigt man noch einen 10k Ohm Widerstand der vorgeschalten wird.
Der Wert des Widerstands kann über den Farbcode ermittelt werden.
Alternativer Sensor
Ich habe mir ein großes Set mit Sensoren gekauft. In diesem Set war unter anderem auch der DHT11 Sensor. Dieser Sensor hat nur 3 Pins, ein extra Widerstand ist nicht nötig, da dieser bereits auf der kleinen Platine integriert ist. Achtung: diese Sensor unterscheidet sich in der Pin Belegung vom ursprünglichen Sensor. Das bitte beim Nachbau der Versuchsanordnung bedenken.
Versuchsaufbau
Der Aufbau der Messung ist sehr einfach. Neben dem Luftfeuchtigkeitssensor und dem Widerstand benötigen wir noch 3 Steckdrähte und ein Steckbrett. Wir verwenden den roten Draht für die Eingangsspannung (+3.3 Volt Pin am Raspberry Pi), einen schwarzen Draht für die Erdung (GND Pin auf der GPIO Schnittstelle) und zuletzt noch einen beliebigen GPIO Pin für das Auslesen der Daten. Der GPIO 4 Pin hat sich dafür bewährt, ich habe einen violetten Steckdraht verwendet.
Bei dem Versuchsaufbau ist es gut, wenn man den Sensor nicht unnötig falscher Spannung aussetzt. Obwohl ich den DHT11 Sensor falsch angesteckt hatte war aber keine Beschädigung erkennbar. Die gemessenen Werte waren auch alle im korrekten Bereich. Der DHT11 Sensor scheint sehr robust zu sein und liefert auch noch Dauereinsatz immer noch richtige Werte. Billig aber gut!
Fazit
Der Aufbau der Messvorrichtung um mit dem Raspberry Pi Luftfeuchtigkeit bestimmen zu können ist recht simpel. Man benötigt außer dem Sensor nur wenig zusätzliche Materialien. Komplexer wird dann die Erfassung der Messdaten. Dieser Problematik habe ich einen eigenen Artikel gewidmet. Im nächsten Teil sehen wir also an warum wir die Luftfeuchtigkeit nicht nur über Python ermitteln können und warum wir eine in C geschriebene Bibliothek verwenden. Außerdem zeige ich den Source Code und gebe euch Informationen wie ihr den Code für externe Programme (zum Beispiel einer Wetterstation) verwenden könnt.
Kann der Versuchsaufbau auch eine Email senden wenn die Luftfeuchtigkeit zu hoch wird?
Kann ich auch zwei Sensoren betreiben?
ja kann man. Wie man eMails von einem Skript sendet habe ich schon mal gezeigt: https://developer-blog.net/administration/externe-ip-adresse-abfragen/