DHT22/AM2302: kann keine Daten auslesen

  • Hallo Alleseits,

    ich bin seit ca. einer Woche Besitzer eines Rapberry 4B mit 4GB RAM.

    Der Grund, weshalb ich ihn mir gekauft habe, war das Erlernen der Programmiersprache Python3.

    Ja, man kann das auch auf anderen Plattformen tun. ABER: Ich habe immer Probleme damit, etwas "Sinnvolles" beim Programmieren-Lernen zu machen. Und durch die Kombi aus Hard- und Software hat man da schon so einige Ziele, die man sich sezen kann.


    Nun zu meinem Problem:

    Ich habe mir drei DHT22/AM2302-Sensoren gekauft. Es ist ein Typ mit "nur" drei Beinchen- also mit einem auf der Platine verbauten Pull-Up-Widerstand. Somit sollte der Anschluss an den Raspi kein Problem darstellen: 3,3V (PIN1) an "+", Ground (PIN6) an "-" und GPIO4 (PIN7) an "OUT".

    Dann die Adafruit_DHT geladen und installiert, wie auf diversen Seiten beschrieben ist.


    Nun die erste Abfrage mittels "sudo ./AdafruitDHT.py 22 4" losgeschickt - Ergebniss: Failed to get reading. Try again!

    Ich habe andere GPIOs probiert, auch andere Sensoren - immer das gleiche Ergebnis.


    Wenn ich in Python direkt die Werte auslesen will, kommt "none" als Ergebnis.

    >>>import Adafruit_DHT

    >>>hum, temp = Adafruit_DHT.read(22, 4)

    >>>print (hum, temp)

    >>>none, none


    Installiert habe ich RaspberryPi OS in der neuesten Version (20.08.2020)

    Hardware: Raspberry 4B mit 4GB Ram und einer 64GB SD-Card

    Ein Extensionboard (blau), welches in eine Breadboard steckt.


    Ich habe auch eine LED mittels GPIO an- und ausgeschaltet bekommen - an allen GPIOs, die ich auch für den DHT22 verwendet habe. Also dürften diese Ports in Ordnung und der Strom ordnungsgemäß vorhanden sein.


    Was mache ich verkehrt?:helpnew:


    Vielen Dank für eure Hilfe.


    MfG

    Joerg

  • Hallo,

    Hast Du den DHT Sensor im dtoverlay aktiviert ?

    (siehe /boot/overlays/README)

    Ja, in der "/boot/config.txt" steht der Eintrag: "dtoverlay=dht11". Ohne Angabe der gpiopin ist ja PIN4 defaultmäßig eingestellt. An diesem ist ja der DHT22 dran (also der mittlere PIN des Sensor (OUT).


    Nach einem Test mit "cat /sys/bus/iio/devices/iio\:device0/in_temp_input" im Terminal-Fenster bekomme ich einen Wert (z.B. 23800).

    Mit "cat /sys/bus/iio/devices/iio\:device0/in_humidityrelative_input" bekomme ich ebenfalls Werte (z.B. 47000) - also ist der Sensor in Ordnung und der GPIO04 auch:thumbup:.


    Ich bekomme aber nicht ständig Werte, sondern nur sehr unregelmäßig. Zu 50% bekomme ich die Meldung "Eingabe-/Ausgabefehler".


    Jetzt habe ich erst recht Fragezeichen in den Augen:/

  • Moin delphin69,


    erstmal: Herzlich Willkommen im Forum!


    Schalte, spaßeshalber, mal das Overlay wieder aus. Dann testen..


    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.

  • Sorry, DHT und Adafruit ist nicht meins.

    Ich weiss nur, dass man nicht zu schnell abfragen darf, und dass Python 2 Module nach Python 2 und Python 3 Module nach Python 3 installiert werden müssen. Möglicherweise hast Du aus alten Anleitungen einen Versionsmissmatch gebaut.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Hallo Bernd,

    Schalte, spaßeshalber, mal das Overlay wieder aus. Dann testen..

    nachdem ich das Overlay wieder aus der conf.txt gelöscht habe, ging nix mehr.

    Also wieder eingefügt und die Date kamen sind wieder auslesbar.

    Ich weiss nur, dass man nicht zu schnell abfragen darf, und dass Python 2 Module nach Python 2 und Python 3 Module nach Python 3 installiert werden müssen. Möglicherweise hast Du aus alten Anleitungen einen Versionsmissmatch gebaut.

    Das ist sicherlich noch eine Möglichkeit. Ist mir sowieso unklar, dass man zwei oder mehr Varianten von Python auf einem System laufen hat. Derzeit sind bei mir V2.7, V3.7 und V3.8 drauf. Da ist sicherlich beim Installieren der Packete etwas schiefgelaufen. Allein beim Aufruf "python" muss man verdammt aufpassen, welche Version man dann bekommt. Da steh'ste als Neuling in Sachen Raspi und Python ziemlich doof da.


    Ich werde wohl oder übel noch einmal eine Neuinstallation des Raspi machen, denn diesen Murks, den ich mir da eingefangen habe, bekomme ich so nicht mehr aufgelöst.


    Und Python V3.8 bleibt erstmal aussen vor. Oder wie kann man eine V3.7 auf die V3.8 upgraden, ohne dass die V3.7 immer noch da ist?

  • Ich werde wohl oder übel noch einmal eine Neuinstallation des Raspi machen, denn diesen Murks, den ich mir da eingefangen habe, bekomme ich so nicht mehr aufgelöst.

    Grundsätzlich könntest du Python mit all seinen Versionen löschen, da ist nicht kompliziertes dabei. Problematisch ist, wenn du Programme nutzt, die Python benötigen. Ansonsten hilft

    Code
    sudo purge pythonx.x

    x.x ist die Version die du loswerden möchtest.

  • Standard war bisher:

    python = Python2.7

    python3 = Python3.7.3

    Nun, da hängst du der Zeit etwas hinterher. Die Anzeige

    python -V = Python3.8.4

    python3 -V = Python3.7.3

    ist so wie sie sein soll. Python 2 ist seit April tot. Mit dem shebang ...python werden seit April (sofern das System aktuell ist) die Scripte unter Python 3 ausgeführt. Also python ruft nun die aktuelle Python 3 Version auf. Will jemand noch mit 2er Versionen arbeiten, müssen die erstens installiert und zweitens explizit aufgerufen werden.

  • Hallo delphin69,


    benutzt du wirklich Circuitpython DHT? Es gibt auch noch eine alte Programmbibliothek, die hier im Forum in der Vergangenheit immer wieder für Probleme gesorgt hat und nicht mehr unterstützt wird. Ich würde zunächst das Beispielskript mit Thonny ausprobieren. Die Sensoren sind scheinbar nicht so einfach auszulesen. Ich habe Phasen dabei, in denen viele Fehlmessungen am Stück vorkommen, genauso wie auch längere Zeit zuverlässige Werte ermittelt werden und auch gelegentlich einzelne Fehlmessungen auftauchen. Alles in allem sehr durchwachsen. Mich stört es nicht, da ich nur ermittelte Werte weiterverarbeite.

    • Official Post

    Nun, da hängst du der Zeit etwas hinterher. Die Anzeige

    ist so wie sie sein soll. Python 2 ist seit April tot.

    Nö! Ich weiß ja nicht welches Release von welchem OS von Dir gemeint ist, aber beim aktuellen Raspberry Pi OS ist alles wie immer. Habe gerade extra, um keinen Miist zu schreiben, mit dem Raspberry Pi Imager das aktuelle Raspberry Pi OS mit Desktop runter geladen und aufgesetzt. Das Ergebnis ist wie von mir oben beschrieben:


    Auch nach einem full-upgrade, wie Hofei an anderer Stelle erwähnte, das selbe Ergebnis.

  • Interessant, ich arbeite nie mit den full images. Dann hinkt Raspberry Pi OS also auch noch der Zeit etwas hinterher. Wie gesagt, Python 2 ist out und sollte nicht mehr verwendet werden. Dabei schlägt nun die Tatsache, dass das Internet so schnell nichts vergisst ordentlich zu, weil natürlich niemand alte Beiträge mit Python 2 Code überarbeitet und viele Newbies garnicht wissen, dass es Unterschiede bei Python 2 und 3 gibt.

    Ich würde trotzdem dazu raten, die Konfiguration wie delphin69 sie hat zu belassen und strikt mit Python 3 zu arbeiten.

  • Moin delphin69,


    was machen die Sensoren??


    Wenn das Thema für dich erledigt ist dann markiere es entsprechend. Das geht oben bei "Thema bearbeiten".


    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.