Adafruit_CircuitPython_DHT funktioniert nicht

  • Hallo zusammen,


    ich versuche schon seit Stunden, einen DHT22-Sensor auszulesen. Zuerst habe ich mit dem veralteten Adafruit-Paket auf Github gearbeitet (es hat nicht funktioniert), dann bin ich auf das neue Paket (Adafruit_CircuitPython_DHT) übergegangen. Anhand dieser Anleitung wollte ich es nun schaffen, aber es kommt bei exakt dem selben Code die folgende Fehlermeldung:

    Code
    Traceback (most recent call last):
      File "/home/pi/Python/sensor.py", line 6, in <module>
        dhtDevice = adafruit_dht.DHT22(board.D18)
    AttributeError: module 'board' has no attribute 'D18'

    Ein Wechsel auf GPIO26 bringt auch keine Änderung. Die Vorbereitungen, die in der Anleitung genannt werden, habe ich auch alle erledigt.


    Ich hoffe, ihr könnt mir helfen.


    Grüße

    Michael

    • Official Post
  • Lieber hyle, ich weiß, dass man den Code anpassen muss ;) aber bei einer solchen Anpassung verändert sich halt auch die Fehlermeldung dementsprechend.

  • und adafruit_blinka ist auch installiert?

    Ja, ist es.



    Hast Du I2C und SPI aktiviert?

    Ja, habe ich.


    Wie hast Du das Skript gestartet?

    Sowohl über die Python Shell las auch über das Terminal mithilfe von

    Code
    sudo python3 /home/pi/Python/sensor.py


    Schreibe mal bitte was Du bisher getan hast!

    Ganz am Anfang habe ich mich an diesem Tutorial orientiert, bis beim Starten der Demo-Datei verschiedene Fehlermeldungen nacheinander gekommen sind, die durch die veraltete Version hervorgerufen wurden.

    Ich habe dann alles nochmal von vorne gemacht, weil ich noch nichts von der veralteten Version wusste. Danach habe ich mich an diesem Tutorial orientiert, was allerdings ebenfalls die veraltete Version nutzt.


    Anschließend habe ich das Internet durchforstet und bin schließlich, nachdem ich irgendwo von der aktuellen Version gelesen habe, bei dem anderen Thread gelandet, in dem ich ursprünglich gepostet habe. Nachträgliche Ergänzung: Dort fand ich die jetzige Anleitung mit dem aktuellen CircuitPython-Skript.

    Ich kopierte den Code, passte erforderliches an und startete das Skript schlussendlich auf die oben genannten Arten, leider ohne Erfolg.

    Edited once, last by Arcturus ().

  • Danach habe ich mich an diesem Tutorial orientiert, was allerdings ebenfalls die veraltete Version nutzt.

    Deine Fehlermeldung passt aber nicht zu dem Skript aus diesem Tutorial.


    Zeig uns doch mal bitte, welches Skript du jetzt nutzt. Damit hat es bei mir funktioniert.


    Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?

  • Habe gerade gesehen, dass ich ich oben einen Satz vergessen habe:

    Anschließend habe ich das Internet durchforstet und bin schließlich, nachdem ich irgendwo von der aktuellen Version gelesen habe, bei dem anderen Thread gelandet, in dem ich ursprünglich gepostet habe. Dort fand ich die jetzige Anleitung mit dem aktuellen CircuitPython-Skript.

    Ich kopierte den Code, passte erforderliches an und startete das Skript schlussendlich auf die oben genannten Arten, leider ohne Erfolg.

    Ergo: Die Fehlermeldung passt schon zum Skript, nur ich habe mich falsch ausgedrückt. Sorry ?(

    Edited once, last by Arcturus ().

  • Moin!


    Dennis89 Der User nutzt CircuitPython


    Arcturus

    Was ich komisch finde. board ist eigentlich die Hardwareanpassung und die sagt D18 kenne ich nicht.

    Ich habe nun nix davon installiert, aber gibt es die Möglichkeit in blinka/board mal rum zu stöbern? Ich konnte im Netz nicht so richtig was finden.


    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.

  • Bernd666 Wenn du auf den Link von mir anspielst. Dass ist der gleiche Link den der User vor seinem Edit verlinkt hatte. Ich hatte ihn so verstanden, dass er das jetzt nutzt. Aber das hat sich gerade geklärt :thumbup:


    Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?

    • Official Post

    sudo python3 /home/pi/Python/sensor.py

    Was passiert ohne sudo vor dem Aufruf? Wenn Du der Anleitung wirklich (zumindest zum Teil) gefolgt sein solltest, dann hast Du adafruit-circuitpython-dht nur für den User pi installiert.


    //Edit

    Wie ist der DHT22 bei Dir verkabelt?

  • sudo

    Die ursprünglich verlinkte Anleitung funktioniert übrigens auf Anhieb, dieses vermaledeite sudo kommt auch kaum (wenn überhaupt) vor.;)


    Arcturus Es gibt ein Overlay für die DHTs, die Beschreibung findet sich im README unter /boot/overlays. Da brauchts erst einmal weder Python noch Zusätzliches.

  • Entschuldigt bitte die späte Rückmeldung, aber ihr wisst ja....Weihnachten.

    Was passiert ohne sudo vor dem Aufruf?

    Es kommt die gleiche Fehlermeldung.



    Wie ist der DHT22 bei Dir verkabelt?


    Es gibt ein Overlay für die DHTs, die Beschreibung findet sich im README unter /boot/overlays. Da brauchts erst einmal weder Python noch Zusätzliches.

    Ok. Wie benutze ich dieses Overlay?

    • Official Post

    Vielleicht wird es so deutlicher.

    Von derselben "Power-Rail" geht ein rotes Kabel zu einem 1K-Widerstand, das zwischen dem zweiten Sensor-Pin und dem braunen GPIO26-Kabel landet.

    - - -

    geht ein rotes Kabel zu einem 1K-Widerstand

    For DHT11 and DHT22 sensors, don't forget to connect a 4.7K - 10K resistor from the data pin to VCC


    & if 4.7K doesnt work, try 10K

    - - -

    Ok. Wie benutze ich dieses Overlay?

    Quote from /boot/overlays/README
    Code
    Name:   dht11
    Info:   Overlay for the DHT11/DHT21/DHT22 humidity/temperature sensors
            Also sometimes found with the part number(s) AM230x.
    Load:   dtoverlay=dht11,<param>=<val>
    Params: gpiopin                 GPIO connected to the sensor's DATA output.
                                    (default 4)
  • In der Anleitung sind doch GPIO4 bzw. GPIO18 gemeint, oder?


    Jedenfalls habe ich das Kabel jetzt bei GPIO4 angeschlossen, den Widerstand auf 10K ausgetauscht und den Code angepasst, aber es funktioniert immer noch nicht. Die Fehlermeldung lautet:

    Code
    Traceback (most recent call last):
      File "/home/pi/Python/sensor.py", line 7, in <module>
        dhtDevice = adafruit_dht.DHT22(board.D4)
    AttributeError: module 'board' has no attribute 'D4'


    Bzgl. des Overlays:

    Soll ich dtoverlay=dht11,gpiopin=4 ins Terminal eingeben?

  • Was jetzt

    Wenn Du alles richtig gemacht hast, dann erscheinen Textdateien unter


    Code
    /sys/devices/platform/dht22.....

    Dort stehen dann Temperatur und die Luftfeuchte drin.

  • Vielen, vielen Dank für eure Hilfe bisher!


    Den Ordner gibt es, die Temperatur und Luftfeuchtigkeit habe ich auch gefunden. Wisst ihr, wie oft diese aktualisiert werden? Beim Öffnen der Dateien?