Die Installation des DHT22-Sensors hat mich einiges an Recherchearbeit gekostet. Zunächst musste ich herausfinden, wie genau man den Sensor mit dem Raspberry Pi 5 verkabelt – doch dann gingen die Probleme erst richtig los, da mir in der indi-allsky-Software die Fehlermeldung „Python modules not installed“ angezeigt wurde. Hier zeige ich euch, wie ihr den DHT22 verdrahtet und die Fehlermeldung in indi-allsky loswerdet!
Zur Installation des DHT22-Sensors muss dieser zunächst (bei ausgeschaltetem System) an den Raspberry Pi 5 angeschlossen werden. Dank Breakout-Board geht das relativ simpel: GND gehört an Pin 6, +3,3V gehört an Pin 1 und die Datenleitung wird (bei mir) an Pin 15 gelegt. Theoretisch könnt ihr jeden Pin nutzen, der in der Grafik mit GPI bezeichnet wird. Gezählt werden die PINs von innen nach außen, d.h. 1 ist der erste Pin links „oben“, wenn ihr euren Raspberry Pi mit den USB-Anschlüssen zu euch gedreht habt.
Bei der Einrichtung des DHT22-Sensors in der indi-allsky-Software habe ich zunächst unter „Config“->“Sensors“ den DHT22-Sensor ausgewählt und anschließend „D22“ unter Pin/Port eingetragen, da die Daten über den dritten GPIO-Pin übertragen werden. Dann wurde mir die Fehlermeldung „Python Modules not installed“ angezeigt. Nach einiger Sucherei habe ich herausgefunden, dass diese Fehlermeldung – so habe ich mir das rekonstruiert – dadurch, dass die RPi.GPIO auf dem Raspberry Pi 5 nicht mehr vernünftig funktioniert. Stattdessen muss das Paket „rpi.lgpio“ installiert werden. Und das geht so:
- Installation des Pakets lgpio
1 | sudo apt install python3-lgpio |
2. Deinstallation der gpio-Library
1 | sudo apt remove python3-rpi.gpio |
3. Erstellung und Aktivierung einer virtuellen Umgebung
1 | python3 -m venv --system-site-packages sysvenv |
1 | source sysvenv/bin/activate |
Installation der lgpio-Library in der virtuellen Umgebung
1 | pip3 install rpi-lgpio |
Ob der DHT22-Sensor funktioniert, könnt ihr mit einem Script herausfinden, das sich in der indi-allsky-Installation befindet. Hierzu navigiert ihr zuerst in den indi-allsky-Ordner (bei mir: /indi-allsky) und aktiviert dann ein virtuelles Environment, in dem ihr das Test-Script sensor_test.py aufruft. Dieses befindet sich im Ordner /indi-allsky/misc/
1 2 3 | source virtualenv/indi-allsky/bin/activate ./misc/sensor_test.py |
Die Ausgabe sollte dann so aussehen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | (indi-allsky) <b>DEIN-BENUTZERNAME@DEIN-SERVERNAME</b>:<b>~/indi-allsky $</b> ./misc/sensor_test.py [WARNING]: Initializing [DHT22] DHT22 temperature device [WARNING]: No sensor B - Initializing sensor simulator [WARNING]: No sensor C - Initializing sensor simulator [INFO]: [DHT22] DHT - temp: 21.9c, humidity: 65.9% [INFO]: Sensor 0: {'dew_point': 15.22959905721085, 'frost_point': 12.259692399634446, 'heat_index': 23.946660090693005, 'data': (21.9, 65.9)} [INFO]: Sensor 1: {'data': ()} [INFO]: Sensor 2: {'data': ()} |
Man sieht hier ganz schön, dass der DHT22 sauber erkannt wird und „brav“ Temperatur und relative Feuchte ausgibt.
Diese Werte lassen sich dann auch als Teil des Bild-Overlays ausgeben (mehr Infos hier – in Arbeit).