AM2301 / DHT22

DHT22 AM2301

Heute möchte ich meine Erfahrungen zum Multisensor AM2301 teilen. Der AM2301 ist eigentlich identisch mit dem DHT22 bis auf die Tatsache dass der AM2301 bereits den sog. Pullup Widerstand integriert hat. D.h. man spart sich die Rumlöterei mit dem Widerstand – theoretisch.

Softwareseitig gibt es von Adafruit gute Python Libraries welche die Sensorabfrage sehr einfach machen.
Installieren kann man diese wie folgt:

Im Ordner examples findet Ihr nun auch die Möglichkeit einen Sensor abzufragen. Das sieht wie folgt aus:

Wobei hier die 2302 für den Sensortyp steht (11 oder 22 stehen jeweils für DHT11 oder DHT22). Die Zahl dahinter steht für den GPIO Pin.

Praktisch sehen meine Erfahrungen damit ernüchternd aus. Wenn man den AM2301 mit einen kurzen Zuleitung – sagen wir Mal 1m – direkt am Pi anschliesst ist alles gut.
Der Sensor arbeitet mit einer Versorgungsspannung zwischen 3,3 und 5,2 Volt. So kann man das ganze dann idealerweise direkt anschließen:

  • Versorgungsspannung an 3,3 Volt am Raspberry
  • Data(=Signalleitung) auf einen GPIO Eurer Wahl
  • Ground oder ‘-‘ an Masse am Raspberry

Fertig. Das funktionierte bei mir einwandfrei.

Nun möchte man das Ganze natürlich auch als Sensorik im smarten Haus nutzen. D.h. nun müssen die Kabel vom Raspberry zu den jeweiligen Räumen im Haus geführt werden. So enstehen schnell Mal Kabellängen von 15-30 Meter. Dementsprechend war nun der zweite Test das ganze mit einem ca. 15 Meter langen(geschirmten) Telefonkabel zu machen. Und da versagte das Setup kläglich.

Zunächst Mal kamen mit 3,3 Volt gar keine Daten mehr an. Die Abrage von oben lief zu 95% in einen Timeout.

Also… weiter recherchiert und herausgefunden dass man das Setup dann so ändern muss dass der Sensor mit 5 Volt Spannung versorgt wird. Aber ACHTUNG! Dies funktioniert wiederum nur über einen Pullup Widerstand. Werden die 5Volt ohne Pullup auf den GPIO Pin gelegt zerstört dies den GPIO oder den ganzen Pi.

Also habe ich dann doch wieder den Lötkolben ausgepackt und den Pullup Widerstand eingebaut. Dieser muss den 3,3 Volt PIN und den GPIO Pin verbinden. Außerdem geht vom GPIO Pin dann die Datenleitung ab in Richtung Sensor. Der 5 Volt Pin geht in Richtung VCC Sensor – ebenso der Masse Pin.

Also so ungefähr:

Mit diesem Setup kamen dann plötzlich wieder Werte – leider oft die falschen 🙁

Abgesehen vom völlig schwachsinnigen Wert für die Luftfeuchtigkeit ist der Temperaturmesswert i.d.R immer die Hälfte vom korrekten Wert.
Gut – jetzt könnte man sagen man filtert die falschen Werte softwareseitig raus. Problem ist nur dass ich fast 50% falsche Werte erhalte. Im Sommer kann ich dann vielleicht ahnen dass 26C eher stimmen als 13C.

FAZIT:
Nach 2-3 Stunden Google Recherche habe ich den AM2301 dann zu den Akten gelegt. Ich möchte gar nicht wissen wie die Ergebnisse aussehen würden wenn statt einem Sensor 10 am Pi hängen.
Ich habe mir vorgenommen als nächstes das 1Wire Protokoll bzw. die Hardware genauer anzuschauen um herauszufinden ob das besser funktioniert. Wenn ich den DHT22 am kurzen Kabel nutze um z.B. die Temperatur in meinem Raspberry Gehäuse zu überwachen funktioniert das sicherlich. Für professionelle Smarthome Lösungen würde ich mich darauf nicht verlassen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.