Einleitung
Die Sensoren DHT11, DHT22 und AM2302 sind drei Varianten digitaler Temperatur- und Feuchtigkeitssensoren.
Der große Vorteil: diese Sensoren sind recht kostengünstig, und man benötigt nicht viele Komponenten um sie mit einem Raspberry Pi anzusteuern. Sie sind digital, d.h. es ist kein Analogkonverter und keine spezielle Kalibration nötig um sie auszulesen. Damit sind sie perfekt für den Einstieg mit Sensoren am Pi.
Die Nachteile dieser Sensoren möchte ich aber auch kurz anreißen:
- relativ langsam ( Abfragerate empfohlen jede dritte Sekunde bei DHT22)
- Sensor kann "abstürzen" bzw. "einfrieren", und muss dann vom Strom genommen werden für einen Neustart
- Protokoll zum Sensor ist timing-sensitiv und spezifisch nur für diese Sensoren
Ich stelle hier die Unterschiede der drei Varianten, die Anbindung und das Auslesen der Sensoren mit zwei verschiedenen Methoden vor. Am Ende sehen wir auf der Kommandozeile die Werte, die der Sensor im Moment ermittelt. Und es gibt von mir noch einen Spezial-Tipp, wie man den Sensor gleich testen kann :-)
Die drei Varianten
links der DHT11, rechts der DHT22. Foto: lady ada / Adafruit, CC-BY-SA
DHT11
- besonders kostengünstig
- 3 - 5 V Spannungsversorgung und I/O
- 2,5 mA Stromaufnahme
- 20 bis 80 % Luftfeuchtigkeit-Messbereich, mit 5 % Genauigkeit
- 0 bis 50° Temperatur-Messbereich, mit +- 2°C Genauigkeit
- maximal 1 Hz Sampling Rate ( 1 x pro Sekunde)
- Abmessungen: 15,5 mm x 12 mm x 5,5 mm (ohne Pins)
- 4 pins mit 0.1'' Abstand (geeignet für Breadboards)
Pinbelegung: siehe DHT22 (identisch).
DHT22
- kostengünstig
- 3 - 5 V Spannungsversorgung und I/O
- 2,5 mA Stromaufnahme
- 0 bis 100 % Luftfeuchtigkeit-Messbereich, mit 2 bis 5 % Genauigkeit
- -40 bis 80° Temperatur-Messbereich, mit +- 0,5°C Genauigkeit
- maximal 0.5 Hz Sampling Rate ( einmal jede zweite Sekunde)
- Abmessungen: 15,1 mm x 25 mm x 7,7 mm (ohne Pins)
- 4 pins mit 0.1'' Abstand (geeignet für Breadboards)
Pinbelegung:
(Sensor von vorne betrachtet, Seite mit dem Lufteinlassgitter)
Der dritte Pin von links gezählt (zwischen DATA und GND) ist nicht belegt.
AM2302
Foto: Adafruit
Der AM2302 ist eine Version des DHT22 mit Anschlusskabeln statt Pins in einem großen Plastikgehäuse, mit Loch zum montieren. Es gelten die gleichen Spezifikationen wie beim DHT22.
Kabelbelegung:
- rot: 3 - 5 V Spannungsversorgung (Pluspol)
- gelb: Daten
- schwarz: Erde / Ground / Minuspol
Die 3 Kabel sind 23 cm lang (9''). Sensorabmessungen (ohne Kabel): 27 mm x 58,75 mm x 13,30 mm
Diese Sensorvariante enthält bereits einen 5,1 K Pullup-Widerstand zwischen Plus und Daten, daher muss kein weiterer Widerstand hinzugefügt werden (siehe unten).
Welchen Sensor wählen?
Zum Verbauen ist die Variante AM2302 vermutlich die einfachste und praktischste. Für das Experimentieren mit dem Breadboard empfehle ich den DHT22 oder den DHT11, wenn es besonders günstig sein soll und die Genauigkeit nicht so wichtig ist.
DHT22 Bundles bei buyzero
Wir bieten in unserem Onlineshop zwei praktische Bundles - einmal mit Pi 3B+ und Zubehör im Lieferumfang, einmal das Basisset mit Breadboard (beispielsweise um den DHT22 an einen Pi Zero WH anzuschließen).
zum Online Shop: DHT 22 Pi 3B+ Full Bundle mit Breadboard
zum Online Shop: DHT22 Breadboard Bundle
Anschluss am Pi
Die Sensoren können zwar mit bis zu 5 V Eingangsspannung umgehen, nutzen diese aber dann auch am digitalen Ausgang. Der Pi kann an seinen GPIO Eingängen nur mit 3.3V (max 3.6 V) Spannung umgehen. Daher dürfen wir diese Sensoren für den Pi nur mit 3,3V Spannungsversorgung anschließen. Die 5 V Option ist eher für den Arduino interessant.
Im Folgenden beschreibe ich wie man den Raspberry Pi mit dem DHT22 verbindet. Der Aufbau ist für den DHT11 identisch, sie unterscheiden sich nur später in der Softwareansteuerung. Der Anschluss des AM2303 ist ebenso gleich (er wird als DHT22 angesteuert), allerdings wird der Pullup Widerstand weggelassen.
In dem Bild sind sowohl der Anschluss auf dem Breadboard, als auch ein Übersichtsdiagramm dargestellt.
Wichtig: Ich empfehle diese Anschlüsse bei ausgeschaltetem Pi, mit abgetrenntem 5 V Netzteil vorzunehmen - um die Komponenten vor Schäden zu schützen. Die GPIO Pins am Pi sind besonders empfindlich, und sollten beispielsweise nicht gegen 5 V kurzgeschlossen werden, da sie nur 3,3V tolerieren. GPIO steht übrigens für General Purpose Input Output.
Kurze Einführung in das Breadboard
(Für Einsteiger relevant, die noch nie mit einem Breadboard gearbeitet haben)
Das Breadboard hilft, Schaltungen schnell und mit wechselbaren Anschlüssen, Widerständen, etc. aufzubauen, bis man zufrieden ist und die Schaltung "fester" macht (bspw. indem man eine Lochrasterplatine nimmt und die Komponenten einlötet, eine Platine designed, u.s.w.). Für Experimente mit dem Pi und Elektronikkomponenten, bspw. um LEDs blinken zu lassen, verschiedene Sensoren anzusteuern, etc. ist das Breadboard optimal geeignet.
Das Breadboard verfügt über vier Bereiche, zwei davon zur Spannungsversorgung gedacht (oben und unten, hier mit durchgezogenen Linien markiert), und zwei Bereiche für Komponenten in der Mitte (mit Buchstaben A-E und F-J markiert) .
Das Besondere dabei ist, dass die einzelnen Steckplätze miteinander auf eine spezielle Art und Weise verbunden sind. Bei den Bereichen der Spannungsversorgung sind jeweils alle Pins entlang der Linie / horizontal miteinander verbunden. (siehe Bild, schwarze Linien illustrieren was alles verbunden ist).
D.h. ich stecke meine 3,3V Spannungsversorgung vom Pi an einen der Pins entlang der blauen Linie (egal welchen - aber beispielsweise den ersten von links), und alle anderen entlang der Linie sind auch auf 3,3V Spannung.
Genauso mache ich es mit GND (Erde), aber ich stecke ihn hier in einen Pin entlang der schwarzen Linie "darüber" - sonst gibt es gleich einen Kurzschluss! Alle Pins entlang der schwarzen Linie sind jetzt auch auf Erdpotential / GND.
Auf der gegenüberliegenden Seite des Breadboards befindet sich ein zweiter Spannungsversorgungsbereich. Er ist vom ersten unabhängig, könnte also zum Beispiel für 5 V vom Pi verwendet werden. Oder wir können ihn mit einem male/male Jumperkabel an den ersten Bereich anschließen, und damit auf das gleiche Potential bringen. Oder er könnte dazu dienen mehrere Komponenten entlang einer Linie miteinander zu verbinden (bspw. I2C, ...). Wichtig ist, dass die Verbindung hier auch horizontal ist, wie meine Illustration es andeutet.
Die Pins im Komponentenbereich des Breadboards sind hingegen vertikal miteinander verbunden. Auch hier ist das Breadboard zweigeteilt: die Pins A,B,C,D,E liegen jeweils auf einer Verbindung, und F,G,H,I und J ebenso.
Der Sensor ist im Bild etwas aus dem Breadboard herausgezogen worden, für eine gute Anschlussqualität empfiehlt es sich, ihn bis auf Anschlag hereinzuschieben.
Ich stecke den DHT-22 Sensor also mit seinen vier Pins horizontal ein, so dass ich mit jedem Pin Jumperkabel individuell verbinden kann. Würde ich den Sensor stattdessen vertikal einstecken (bspw. in 5 A B C D E), würden alle Pins vom Sensor miteinander kurzgeschlossen werden.
Jumper zum Pi
Von hier aus ist es keine große Hexerei mehr. Wie beschrieben wird der linke untere GPIO Pin des Pi (links in der unteren Reihe direkt über dem WLAN-Modul mit dem Raspberry Pi Logo) an die 3,3V "Schiene" des Breadboards angeschlossen. Ich benutze dazu ein female auf male Jumperkabel, da der Pi "männliche" Pins hat, und das Breadboard "weibliche" (zum Einstecken).
Die 3,3V Schiene wird mit einem weiteren Jumperkabel an den VCC Pin des Sensors angeschlossen (bspw. wenn der VCC Pin des Sensors in C6 steckt, stecke ich den Jumper in E6).
GND wird an den 3 Pin oben von links am GPIO Port des Pi's, und in die GND Schiene gesteckt. Ein weiteres Jumperkabel bringt das Erdpotential (GND) zum Sensor - das GND Beinchen des Sensors steckt in meinem Fall in C9, und das Jumperkabel entsprechend in E9.
Der Datenpin des Sensors ist C7. Ich stecke hier ein gelbes Jumperkabel in D7, und dann in den zweiten Pin unten von links in der GPIO Leiste des Pi's. Das ist ein GPIO Pin, mit der Broadcom Nummer (BCM) 2. Es ist wichtig diese Nummer für die Ansteuerung des Sensors zu wissen.
Wenn man hier für die Daten am Pi einen anderen GPIO Pin wählen möchte (man kann übrigens auch mehrere Sensoren parallel anschließen! Aber jeder braucht seinen eigenen Daten-Pin), sollte man "Rasberry Pi GPIO Pinout" suchen, und sich informieren welche Broadcom Nummer der gewählte Pin hat, und dass es tatsächlich ein GPIO Pin ist.
Der Pullup Widerstand
Wie bereits beim AM2303 erwähnt wird für den DHT22 und den DHT11 ein Pullup-Widerstand benötigt. Dieser Widerstand sorgt dafür, dass die Datenleitung nicht "floated" (d.h. auf einem undefinierten Zustand ist), sondern entweder auf +3,3V oder auf GND / 0 V (der Sensor zieht die Leitung zum kommunizieren auf GND, bzw. die Datenleitung wird durch den Pi auf GND / 0 V gezogen um die Auslesung zu starten). Im AM2303 ist dieser Widerstand bereits eingebaut, daher trifft dieser Abschnitt auf ihn nicht zu.
Üblicherweise sind Pullupwiderstände im Bereich von 10 kilo-Ohm. Falls der Sensor das Beinchen auf Ground zieht, entsteht ein Stromkreis, und Strom fließt von der Versorgungsspannung ab - durch einen relativ hohen Widerstandswert wird der unnötige Verlust hier in diesem Fall minimiert (U = R*I, wenn der Widerstand R hoch ist, ist der Strom I klein).
Das eine Beinchen des Widerstandes stecke ich dazu in die 3,3V Schiene - in einen beliebigen Steckplatz dort. Das andere Beinchen des Widerstandes stecke ich in E7, da der Datenpin des Sensors bei mir auf C7 steckt, und daher in einer vertikalen Linie fortgesetzt gedacht werden muss.
Damit ist der Sensor angeschlossen, und wir können uns an die Softwareseite machen.
DHT22 Sensor ansteuern
Die folgenden Ausführungen gelten natürlich auch sinngemäß für den DHT11 und den AM2302.
Grundlagen: Protokoll
Der Raspberry Pi unterstützt verschiedene Kommunikations- und Schnittstellen-Protokolle in Hardware, bspw. UART ("serielle Schnittstelle"), SPI, I2C.
Es gibt auch etwas, das sich "Dallas 1-Wire" nennt - hier wird die gleiche Leitung für Spannungsversorgung und Daten genutzt. Üblicherweise würde man unter 1-Wire Schnittstelle diese Dallas 1-Wire Schnittstelle verstehen.
Der Hersteller des Sensors sagt im Datenblatt spezifisch, dass es ein selbtdesigntes "1-Wire" Protokoll ist, das nicht mit dem Dallas 1-Wire kompatibel ist.
Daher brauchen wir einen speziellen Treiber, und betreiben sogenanntes "Bit-Banging" vom Pi aus - wir timen in Software, statt in Hardware. Das macht das ganze etwas anfälliger für Kommunikationsstörungen, und Softwareseitig etwas aufwändiger, aber deutlich flexibler.
Grundlagen: GPIO Pins
Abbildung CC-BY-SA: https://www.raspberrypi.org/documentation/usage/gpio/
Nicht alle 40 Pins am Pi sind GPIO Pins. Es gibt zusätzlich Spannungs-Versorgungs-Pins (5 V und 3,3V sowie GND), und die ID EEPROM pins (für HATs reserviert). Das Schema oben zeigt diese Pins mit ihren Broadcom (BCM) GPIO Nummern.
Die GPIO Pins am Raspberry Pi können per Software auf verschiedene Funktionen eingestellt werden. Einerseits kann man sie als Eingabe Pins verwenden, oder als Ausgabepins, oder für spezielle Funktionen, die je nach Pin unterschiedlich sind.
Da wir den Pin nicht für spezielle Funktionen (wie UART, SPI, I2C etc) verwenden, sondern als GPIO Pin, ist es prinzipiell egal welchen der GPIO Pins man am Pi nutzt. Ich habe mich für den mit BCM 2 bezeichneten Pin entschieden, da er direkt neben der Spannungsversorgung liegt, und das ganze Kabelgewirr am Pi dann übersichtlicher wird.
Wir arbeiten mit digitaler Logik, die durch analoge Spannungen dargestellt wird. Dabei stehen Spannungsbereiche in der Nähe von 0 V (bspw 0 - 0,8 V) für eine logische 0 (oder auch "low"), und Spannungsbereiche in der Nähe von 3,3 V (bspw. 2.0 - 3,3 V) für eine logische 1 (oder auch "high"). Dazwischen ist der Zustand undefiniert.
Grundlagen: Ansteuerung DHT22 "behind the scenes"
Der Pullup Widerstand zieht den Input unseres DHT22 normalerweise auf VCC (+3,3V). D.h. am Pi UND am Sensor liegt ständig eine logische 1 an.
Um den Kommunikationsprozess mit dem Sensor zu starten zieht der Pi den Pin für eine bestimmte Zeit auf GND, und anschließend wieder hoch.
Der Sensor wacht aus seinem Stromsparmodus auf, und führt eine Messung durch. Anschließend sendet der Sensor 40 bit Daten, in denen die Luftfeuchtigkeit und die Temperatur kodiert sind, und geht wieder in den Schlafmodus. Dabei wechselt er periodisch zwischen High und Low. Die Daten sind hier durch die Länge der Periode in der der Sensor VCC an den Datenpin anlegt definiert. 26-28 microsec Länge entspricht einer 0, und 70 microsec Länge einer 1. Daher ist ein präzises Timing sehr wichtig um diesen Sensor auszulesen, was daher nicht aus beispielsweise Python oder Java direkt erfolgen kann, da diese Sprachen nicht nahe genug an der CPU ausgeführt werden. Es wird kompilierter C Code benötigt.
Der Sensor DHT22 sollte nicht öfter als alle drei Sekunden abgefragt werden, da er sich sonst aufhängen kann. Wenn er aufgehängt ist und nicht mehr antwortet, kann man den VCC Jumper aus dem Breadboard kurz herausziehen, und wieder einsetzen um ihn zurückzusetzen.
Den DHT11 kann man alle zwei Sekunden abfragen.
Glücklicherweise müssen wir keinen eigenen C Code schreiben, sondern können eine der zwei folgenden Methoden anwenden:
Adafruit Methode
Adafruit hat einen Open Source Treiber für die Sensoren entwickelt. Wie oben bereits erwähnt ist der Grundcode in C, da der Sensor sehr genaues Timing erfordert und wir das Timing in Software durchführen müssen. Adafruit stellt auf Basis dieses C Codes eine Pythonschnittstelle zur Verfügung, über die der Sensor in eigenen Anwendungen eingebunden werden kann.
Führe die folgenden Kommandos in der Konsole aus:
sudo apt-get update
sudo apt-get install build-essential python-dev python-openssl git-core
cd ~
Die ersten zwei Kommandos installieren benötigte Pakete, das zweite Kommando wechselt in das Heimverzeichnis des momentanen Nutzers (vermutlich der Nutzer "pi")
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
Das kopiert den Code von Adafruit in das Verzeichnis Adafruit_Python_DHT, in das wir auch gleich wechseln.
sudo python setup.py install
Das kompiliert den Code und installiert ihn so, dass alle Python Programme auf das Modul zugreifen können.
Bild: ein kleiner Ausschnitt aus der Ausgabe des Kommandos.
Wichtiger Hinweis: Das Timing ist Pi-Modell spezifisch. D.h. man kann die selbe SD Karte potentiell nicht in Pi 1 und Pi 3 verwenden um den Sensor anzusteuern! Daher kompilieren wir den Code lieber gesondert für jedes Pi Modell auf dem er zum Einsatz kommt.
Im Ordner examples befindet sich ein Beispielskript, das den C Code ansteuert. Damit können wir jetzt dann gleich starten. Das zweite Kommando erwartet zuerst den Typ des Sensors (11, 22 oder 2302 für jeweils DHT11, DHT22 und AM2302) und als zweiten Parameter den GPIO Pin des Pis als Broadcom BCM Nummer. Ich habe beispielsweise den DHT22 and den BCM Pin Nummer 2 angeschlossen, daher:
cd examples
sudo ./AdafruitDHT.py 22 2
So schaut die Ausgabe des Skriptes aus:
Temp=21.0* Humidity=59.8%
Wenn ich zum Beispiel den falschen Pin angegeben hätte, würde das Skript wesentlich länger warten, und dann folgendes ausgeben:
Failed to get reading. Try again!
Das ist an dieser Stelle auch schon alles - man kann sich den Code des Skriptes anschauen, und dann eigenen Python Code schreiben, zum Beispiel um die Temperatur und Luftfeuchtigkeit zu loggen. Oder einfach das Beispielskript manuell aufrufen wenn man den Sensor auslesen möchte.
pigpio Methode
pigpio ist eine Bibliothek für den Pi die Zugriff auf den GPIO Port ermöglicht. Dabei erlaubt pigpio ein ziemlich präzises Timing, PWM (Pulse Width Modulation) und vieles mehr. Auch pigpio nutzt Broadcom Nummern zum Zugriff auf die GPIO Pins.
pigpio kann als Daemon konstant im Hintergrund laufen, und den Zugriff auf die GPIO Pins verwalten. Er erlaubt den Zugriff auf die Pins via Sockets und Pipes. Eine C Bibliothek und ein Python Modul stehen zur Verfügung um mit dem pigpio daemon zu kommunizieren.
pigpio sollte auf aktuellen Raspbian Versionen bereits dabei sein. Falls nicht, kann man es so installieren:
sudo apt-get update
sudo apt-get install pigpio
Anschließend starten wir den pigpio daemon, pigpiod:
sudo pigpiod
Der Daemon muss als root gestartet werden, Programme können aber anschließend von beliebigen Nutzern aus auf pigpio zur Kontrolle auf die GPIO Pins zugreifen.
Wir können wie folgt verifizieren dass der Daemon läuft:
ps aux | grep pigpio
In der ersten Zeile sehen wir, dass der Prozess pigpiod läuft. (Die zweite Zeile ist das von uns aufgerufene Kommando).
Joan, der Autor der mächtigen pigpio Anwendung hat auch Beispiele in Python für den Zugriff auf den DHT22 geschrieben. Die Timing-sensitiven Anteile werden komplett vom pigpio - Daemon übernommen, in Python sagen wir der pigpio Bibliothek nur was sie tun hat.
cd ~
mkdir DHT22
cd DHT22
wget https://github.com/joan2937/pigpio/raw/master/EXAMPLES/Python/DHT22_AM2302_SENSOR/DHT22.py
Wir müssen die Datei noch bearbeiten um den korrekten Daten-Pin einzustellen:
nano DHT22.py
Suche die Zeile 257 (relativ weit unten), die wie folgt aussieht:
s = DHT22.sensor(pi, 22, LED=16, power=8)
Ersetze 22 durch 2 bzw. die GPIO Broadcom Nummer des GPIO Pins an der du den Sensor angeschlossen hast.
s = DHT22.sensor(pi, 2, LED=16, power=8)
Hinweis: der Code erlaubt hier auch noch bei jedem Auslesevorgang zusätzlich eine LED blinken zu lassen, sowie nach einigen fehlgeschlagenen Ausleseversuchen den Sensor neuzustarten indem er von einem GPIO Pin aus mit Strom versorgt wird, statt von dem +3.3V Pin. Diese weitergehenden Möglichkeiten habe ich in diesem Artikel nicht verwendet, da es den Rahmen sprengen würde.
Wir speichern mittels Ctrl + O, Enter, Ctrl + X, und führen das Programm aus:
python3 DHT22.py
Wie man sieht gibt dieses Programm kontinuierlich Messwerte aus.
Die erste Zahl ist eine fortlaufende Nummer der Messung, die zweite Zahl die Luftfeuchtigkeit (56,6 %). Die dritte Zahl die Temperatur ( 22,0° C). Die dritte ist die "Staleness" der Messung (0.19), die vierte Bad Checksum Counter (0), die fünfte Short Message Counter (0), die sechste Missing Message Counter (0), die siebte Sensor Resets (0). Wirklich wichtig sind natürlich nur Temperatur und Luftfeuchtigkeit - die anderen Parameter dienen zum Debugging.
Sensor testen
OK, wir wissen jetzt wie man den Sensor anschließt und ansteuert - wie kann man Veränderungen herbeiführen?
Ein einfacher Trick ist den Sensor anzufassen und zu halten - dazu habe ich meinen Daumen vorne auf ihn gelegt, und meinen Zeigefinger hinten. Quasi wie als ob man ihn aus dem Breadboard herausziehen würde:
Eine andere Idee ist, eine Tischlampe mit Glühbirne direkt vor dem Sensor einzuschalten und damit den Sensor künstlich zu beheizen. Die Glühbirne darf natürlich keine Energiesparbirne sein :-)
Ich hoffe euch hat der Artikel gefallen und unterstützt euch beim Einstieg mit Sensoren am Raspberry Pi, und speziell mit dem DHT22.
Quellen
Bei der Erstellung dieses Artikels dienten mir folgende Grundlagen, ich danke herzlich:
- https://learn.adafruit.com/dht
- http://www.abyz.me.uk/rpi/pigpio/
- https://cdn-shop.adafruit.com/datasheets/DHT22.pdf
- http://www.mosaic-industries.com/embedded-systems/microcontroller-projects/raspberry-pi/gpio-pin-electrical-specifications
- https://www.rototron.info/dht22-tutorial-for-raspberry-pi/
- https://github.com/joan2937/pigpio/blob/master/EXAMPLES/Python/DHT22_AM2302_SENSOR/DHT22.py
- https://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/software-install-updated
DHT22 Bundles bei buyzero
Wir bieten in unserem Onlineshop zwei praktische Bundles - einmal mit Pi 3B+ und Zubehör im Lieferumfang, einmal das Basisset mit Breadboard (beispielsweise um den DHT22 an einen Pi Zero WH anzuschließen).
zum Online Shop: DHT 22 Pi 3B+ Full Bundle mit Breadboard
12 comments
Stephanie
Hallo Beorn,
leider sind wir momentan unterbesetzt, sodass wir den Fehler momentan leider nicht analysieren können. Danke für dein Verständnis.
Liebe Grüße,
Stephie
Beorn
Hi danke für die Anleitung … bei mir ergab sich aber folgendes Problem… ich habe deinen Code wie von dir beschrieben genutzt… und ich konnte mit den gelieferten Daten nichts anfangen.
1 1177.6000000000001 512.2 0.19 0 0 0 0
2 1100.8 512.4 0.19 0 0 0 0
3 1075.2 512.4 0.20 0 0 0 0
4 1075.2 512.4 0.20 0 0 0 0
5 1075.2 512.4 0.20 0 0 0 0
6 1075.2 512.4 0.20 0 0 0 0
7 1075.2 512.4 0.20 0 0 0 0
8 1075.2 512.4 0.19 0 0 0 0
9 1075.2 512.4 0.19 0 0 0 0
10 1075.2 512.5 0.19 0 0 0 0
Da ich daneben saß kann ich ganz klar sagen, dass es weder 1075% Luftfeuchte hatte noch 512.5 °C.
Durch Danebenstellen einer Wetterstation konnte ich durch einen einfachen Dreisatz einen Faktor von 25,9951690821 also ungefähr 26 errechnen.
Was habe ich falsch gemacht? :-O
ich hab mir erstmal beholfen, indem ich den Rückgabewert der Temp und Luftfeuchte durch 26 geteilt habe.
Aber es interessiert mich trotzdem wo mein Fehler liegt.
Gruß Beorn
Stephanie
Hallo Manuel,
ich soll dir von Max ausrichten:
Danke für deinen Hinweis. Leider habe ich mit Influx Datenbanken keine Erfahrung, aber mit entsprechender Softwareprogrammierung sollte natürlich alles möglich sein :)
Liebe Grüße,
Stephie
Manuel
Moin,
super Anleitung. Leider muss man beim Raspberry Zero noch was extra installieren.
You also need to install the pigpio Python modules.
sudo apt-get install python-pigpio python3-pigpio
Dann lief es aber. Kann man nun diese Daten auch an eine Datenbank senden ? Die Datenbank wäre eine Influx Datenbank.
Gruß
Sven
@Jürgen Dir fehlen die setuptools. Wird leider in den meisten Anleitungen nicht gesondert erwähnt.
sudo apt-get install python-setuptools sollte dein Problem beheben.
Jürgen
Hallo
Die Abfolge von “sudo apt-get update” bis hin zum Verzeichniswechsel “cd Adafruit_Python_DHT” hat funktioniert.
Die Befehlszeile “sudo python setup.py install” schlägt bei mir fehl und wird mit folgender Fehlermeldung quittiert:
Traceback (most recent call last):
File “setup.py”, line 1, in
from setuptools import setup, find_packages, Extension
ImportError: No module named setuptools
Es wäre nett, wenn mir jemand helfen könnte.
Falls es von Hilfe ist, hier ein paar Zusatzinformationen:
- Ich habe bisher keine Ahnung vom RaspberryPi und möchte ihn aktuell lediglich mit OctoPi in Verbindung mit einem 3D-Drucker verwenden und den Sensor DHT22 abfragen.
- Hilfestellung deshalb bitte möglichst ausführlich für einen Dummi
- Linux octopi 4.19.75-v71+ #1290
- OctoPi version: 0.17.0
Markus
Großartig zu lesen! Dank Dir!
Dom
sehr gute Anleitung, Danke
Klaus
Perfekt mit pigpio.
Joey
Absolut Klasse, dankeschön
Perfekte Beschreibung mit Signalwertbeschreibungen und Quellennachweise. 1a.
Thomas
Super dokumentiert, habe die Adafruit-Methode verwendet und erfolgreich im Projekt “Temperaturüberwachung Sauna” umgesetzt. Im Netz stösst man auf unzählige, teilweise unvollständige oder unpräzise Dokumentationen.
Leo
Sehr Gutttt?