Raspberry Pi: Luftfeuchtigkeit und Temperatur messen

Mit dem Raspberry Pi und einigen Sensoren ist es ohne viel Aufwand die Temperatur zu messen. Daneben kann aber auch die Luftfeuchtigkeit in gewissen Situationen oder Projekten (z.B. einer Wetterstation) aufschlussreich sein. Sensoren wie der DHT11 bzw. DHT22 sind nicht nur für wenige Euros zu haben, sondern können neben der Luftfeuchte auch noch die Tempratur messen.

Zubehör

Da die Sensoren bereits (fast) alles mit sich tragen ist außer einem Widerstand nicht viel weiteres Zubehör nötig. Dieses habe ich verwendet:

Den Unterschied zwischen DHT11 und DHT22 kannst du hier nachlesen. Demzufolge ist der DHT11 (blau) zwar günstiger, dafür der DHT22 (weiß) präziser und überdauert länger. Für Anwendungen in „extremen“ Gebieten (0-20% bzw. 80-100% Luftfeuchte) sollte auf den DHT22 zurückgegriffen werden, da er diese Bereiche im Gegensatz zum DHT11 auch unterstützt. Ich habe bspw. in meinem Kühlschrank einen DHT22 Sensor, um Temperatur und Luftfeuchtigkeit zu messen und zu loggen. In der Regel sollte das 11er Modell aber auch genügen.

 

Aufbau

Raspberry Pi Luftfeuchtigkeit/Temperatur Sensor AufbauDer linke Pin des Sensors wird an 3V3 von Pi (Pin1) angeschlossen, der zweite Sensor Pin über einen Pull-Up Widerstand (4.7k – 10kΩ) mit einen freien GPIO des Raspberrys (bei mir GPIO4, Pin7) und der rechte Senior Pin kommt an GND (Pin6) vom Pi. Der zweite Pin von rechts des Sensors bleibt frei.

Der Aufbau ist für DHT11 bzw. DHT22 identisch, da die Pins gleich vergeben sind.

 

Raspberry Pi Luftfeuchtigkeit Software installieren und Testen

Zunächst einmal müssen einige Pakete installiert werden:

sudo apt-get update
sudo apt-get install build-essential python-dev python-openssl git

Nun kann die Bibliothek für die Sensoren geladen werden. Ich verwende hierfür eine vorgefertigte Bibliothek von Adafruit, welche verschiedene Sensoren unterstützt

sudo pip3 install adafruit-circuitpython-dht
sudo apt-get install libgpiod2

Dann erstellen wir eine neue Datei mit unserem Code:

sudo nano dht_example.py

Beachte dabei, dass du adafruit_dht.DHT22 mit adafruit_dht.DHT11 ersetzt, falls du einen DHT11 Temperatursensor verwendest.

Die Datei speichern wir mittels STRG + O und beenden den Editor mit STRG + X. Anschließend führen wir unseren Code aus:

sudo python dht_example.py

 

 

Frühere Version

Daneben gibt es ein weiteres Repository von Adafruit, welches aber inzwischen nicht mehr verwendet werden sollte. Der Vollständigkeit halber zeige ich es hier dennoch an (du kannst diesen Teil überspringen, sofern davor alles funktioniert hat):

git clone https://github.com/adafruit/Adafruit_Python_DHT.git && cd Adafruit_Python_DHT
sudo python setup.py install

Dadurch wird eine Python Bibliothek angelegt, die wir einfach in unsere Projekte einbinden können.

Hat alles geklappt können wir bereits die Temperatur und Luftfeuchtigkeit auslesen. Am Einfachsten ist das erst einmal mit den Demofiles:

cd examples
sudo ./AdafruitDHT.py 11 4

Der erste Parameter (11) gibt an, welcher Sensor benutzt wurde (22 für den DHT22) und der zweite, an welchem GPIO er angeschlossen ist (Nicht die Pin Nummer, sondern die GPIO Nummer). Das erzeugt eine Ausgabe wie folgende:

$ sudo ./AdafruitDHT.py 11 4
Temp=24.0*  Humidity=41.0%

Achtung: Die Sensoren sind nur alle zwei Sekunden bereit. Achte also darauf nicht direkt jede Sekunde eine Abfrage zu starten.

 

Um die Raspberry Pi Luftfeuchtigkeit Bibliothek in andere (Python) Projekte einzubinden, braucht man nur folgendes:

 

Daten dauerhaft loggen

Für Wetterstationen und ähnliche Projekte zur Überwachung der Temperatur und Luftfeuchtigkeit bietet es sich an diese Werte in regelmäßigen Zeitintervallen zu speichern um diese dann später analysieren zu können. Eine Möglichkeit wäre das Speichern in lokaler Datenbank, allerdings hat das den Nachteil, dass unter Umständen die SD-Karte zu sehr belastet werden könnte.

Daher habe ich eine andere Methode gewählt, welche die Daten auf einem externen Server speichert. Dieser Service ist bei normaler Nutzung kostenlos und es können sehr einfach Daten gespeichert werden, wie hier zu sehen ist:

Das komplette Tutorial dazu findest du hier:

Raspberry Pi Sensordaten mit ThingSpeak loggen und auswerten

 

186 Kommentare

  1. Komme bis CD examples.

    Gebe ich: sudo ./AdafruitDHT.py 11 4 ein,

    folgt die Meldung Failed to get reading. Try again. Verkabelung habe ich gemäß Bild vorgenommen.
    Widerstand müsste auch der richtige sein.
    Woran kann es liegen. Bis CD examples lief alles richtig. Habe den Raspberry Pi 2 Modell B

    Antworten
    • hast du auch den blauen DHT11 Sensor?
      Du kannst mal einen anderen GPIO Pin versuchen. Evtl arbeitet auch der Sensor nicht richtig, falls du sicher bist alles richtig verbunden zu haben.
      LG Felix

      Antworten
      • Dieses Problem hatte ich auch wo ich mehrere Senoren probiert hatte, das Problem liegt an der Stromversorgung.

    • Hallo zusammen
      Ich habe den Raspberry erst seit zwei Tagen. Deshalb bin ich auch noch ein Anfänger.
      Ich habe das Problem, dass ich an der ersten Zeile schon scheitere: sudo apt-get update
      Da kommt immer der Fehler SyntaxError: invalid syntax und markiert ist das Wort apt.
      Kann mir jemand helfen?

      Antworten
      • Ich habe einen Fehler gemacht nun klappte es mit dem Update. Nun habe ich ein weiteres Problem: bis hier hat alles wunderbar geklappt: sudo ./AdafruitDHT.py 11 4
        Ich erhalte sogar zwei Werte: Temp=1.0* Humidity=2.0%. Aber es ist bei mir im Raum weder so Kalt noch so trocken. Manchmal erhalte ich auch T=0.0* und 3.0% Feuchte. Weiss jemand was das Problem sein könnte?

      • Hallo Pascal dein Problem ist ganz einfach dein Rasperry benötigt eine Internetverbindung und da du diese nicht aufweisen kannst kann dein Rasperry dieses Package nicht herunterladen!
        Mit freundlichen Grüßen
        Dagmar Sieverding

    • Habe die gleiche Fehlermeldung erhalten. Lag aber an mir, hatte den falschen GPIO gewählt.
      Am Pi2 ist GPIO4 Pin 5

      Antworten
  2. Hi
    ich wollte dein Tut probieren scheitere aber beim installieren des python.
    Ich bekomm nach
    „sudo python setup.py install“ angezeigt :

    running build_ext
    building ‚Adafruit_DHT.Raspberry_Pi_2_Driver‘ extension
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototy pes -fPIC -I/usr/include/python2.7 -c source/_Raspberry_Pi_2_Driver.c -o build/t emp.linux-armv7l-2.7/source/_Raspberry_Pi_2_Driver.o -std=gnu99
    unable to execute gcc: No such file or directory
    error: command ‚gcc‘ failed with exit status 1

    System auf dem Pi ist Wheezy.
    Danke für hilfe 🙂
    Grüße

    Antworten
    • Hi,
      danke für deine schnelle Antwort.
      Leider kommt :
      „pi@raspberrypi ~ $ sudo apt-get gcc python-dev
      E: Invalid operation gcc “

      ich habe auch bereits versucht die entwickler tools zu installieren. Die sind drauf da sollte doch eigentlich alle C Kompiler dabei sein ?

      pi@raspberrypi ~ $ sudo apt-get install build-essential
      Reading package lists... Done
      Building dependency tree
      Reading state information... Done
      build-essential is already the newest version.
      0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded. 

      noch ne idee was ich machen kann ?
      Danke und Grüße

      Antworten
      • Deine Packages und Pfade sind auch aktuell?

        sudo apt-get update
        sudo apt-get upgrade
        sudo apt-get install -f
        sudo apt-get install build-essential
    • Du knall kopf. sudo apt-get INSTALL …….. usw. Dein fehlendes Wort ist der install Parameter 😀 Aber is mir damals auch oft passiert

      Antworten