Anfängerfrage DHT 22

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo zusammen,

    ich besitze seit ein paar Tagen meinen Raspberry Pi 2 Model B. Installation des Betriebssystems sowie Einsatz als Webserver und VNC Zugriff hat alles wunderbar geklappt. Was allerdings gar nicht funktionieren will ist mein erstes Mini Projekt und zwar eine kleine Wetterstation über den DHT 22 Sensor. Anbei erstmal der Aufbau auf dem Steckbrett. Der Widerstand ist ein 10k Ohm Widerstand:

    http://imgur.com/a/R4l7a


    Ich habe zwei Tutorials ausprobiert. Beide laufen über die Adafruits Bibliothek. Bei der ersten Variante hört es bei "Using Pin 4" auf und dann kommt nichts mehr. Weder Fehlermeldung noch ein Wert. Beim zweiten Tutorial geht es auch über Adafruit und dann in die Pyton Shell. Hier kriege ich zwar ein Ergebnis, dieses ist aber in Temperatur und Luftfeuchtigkeit konstant (auch noch 5 Minuten Fön). Meiner Meinung nach könnten es drei verschiedene Fehler sein:

    - Falscher Aufbau auf dem Steckbrett
    - Fehlerhafte Installation der Software (Glaube ich eher nicht)
    - Defekter Sensor

    Es wäre super, wenn jemand bei der Fehleranalyse helfen könnte. Falls noch Fragen sind dann gerne.

    Viele Grüße
    Stex

  • Der Widerstand ist falsch verbunten er sollte an pin 2 des DHT 22 und nicht an pin 3 der ist nicht belegt.
    Und GND am Rpi sieht so aus als wenn er am Pin 4 =5V, (Pin 6 ist GND) die perspektive kann auch täuschen.
    Und den GPIO 4 würd ich auch nicht nehmen der ist für andere Sachen vorgesehen (DS18x20).

  • Wie müsste er den richtig verbunden sein?
    Automatisch zusammengefügt:
    Ok doch eine ausführliche Antwort ^^. Der Widerstand liegt definitiv auf Pin 2 ist wohl kaum zu sehen. Der Strom für Pin 1 und Pin 2 kommt auch über den 3,3 V Anschluss. In den Tutorials wird immer Pin 4 genommen... Deswegen bin ich etwas ratlos

    Einmal editiert, zuletzt von Stex (4. Januar 2016 um 19:41)

  • GPIO4 kann man nehmen ist aber Verschwendung da die DS18x20 nur an dem geht (1-wire).
    Ich hab die Erfahrung gemacht das die dünnen Anschlüsse des DHT 22 in den Steckbrett nicht immer kontakt haben.
    Außerdem sind die Vorkonfektionierten Kabel auch Fehleranfällig von meinen 65 Stück hatten 7 keinen Durchgang.
    Außerdem GND am rpi Prüfen ob an Pin6=GND.


  • GPIO4 kann man nehmen ist aber Verschwendung da DS18x20 nur an dem geht (1-wire).

    Tach'chen,

    Immer wieder erstaunlich, dass sich das noch nicht herumgesprochen hat. DS18Sx20 Sensoren kann man auch an allen anderen
    Pins anstelle von GPIO4 verwenden. Das war mal bis Kernel Version 3.10.25+ so, weil die Pin-Nr. "hardcoded" war. Inzwischen kann man
    aber einen beliebigen Pin in /boot/cmdline.txt einstellen, und zwar mit dem Parameter:

    bcm2708.w1_gpio_pin=4

    Statt '4' trägt man die gewünschte Pin-Nummer für den 1-wire Bus ein.

    /luetzel

  • So ich habe nun nochmal alle Kabel ausgetauscht und überprüft ob der DHT richtig sitzt. Zudem habe ich nochmal einen anderen Ground sowie einen anderen GPIO (17) genommen. Das gleiche Spiel wie davor. Gleichbleibende Temparatur bzw. Using Pin 17 und dann Schluss...

  • Tach'chen,

    Immer wieder erstaunlich, dass sich das noch nicht herumgesprochen hat. DS18Sx20 Sensoren kann man auch an allen anderen
    Pins anstelle von GPIO4 verwenden.

    bcm2708.w1_gpio_pin=4

    Statt '4' trägt man die gewünschte Pin-Nummer für den 1-wire Bus ein.

    /luetzel


    Gut zu wissen der GPIO 4 ist aber schon so Definiert, was für einen Anfänger wenn er den DS18x20 mal verwänden sollte weniger umstände macht.
    Man sollte noch erwähnen das es mindestens noch 3 unterschiedliche Pin Bezeichnungen gibt (WiringPi, GPIO, und den Raspberry Pin)mit unterschiedlichen Nummern.

  • So kleines Statusupdate:

    - Ich habe die Schaltung genau nach Plan hier aus dem Forum gemacht (https://www.forum-raspberrypi.de/attachment.php?aid=1399) und nochmal den Widerstand getauscht
    - Ich habe mit wiringPI einen PinTest durchlaufen lassen und da ist alles ok.
    - Ich habe nach dem Thread hier (https://www.forum-raspberrypi.de/Thread-gpio-defekt) den Code angepasst und es war nun kurzzeitig eine Änderung vorhanden. Anstatt dass das Programm auf Dauerschleife kommt gab er mir nun beim Befehl sudo ./Adafruit_DHT 22 4 ein Data (0): 0x0 etc. aus. Als ich dann von auf Pin 17 umgeschaltet habe kam wieder die Dauerschleife. Im Phyton Shell ist nun alles verschwunden :(

    Daher vermute ich dass der Sensor kaputt ist oder die Verdrahtung immer noch falsch ist. Meine Ratlosigkeit wird

  • wirigPi Verwendet beim GPIO 4 die Nummer 7 das überprüfen. Und Pin17 ist 3,3V am Raspberry, daher die genauen Bezeichnungen verwenden.
    Ein Link der zwei Tutorials wäre hilfreicher.
    Ich verwende GPIO 5 und muss im Programmcode die Nummer 21 Angeben da mit wiringPi gearbeitet wird, das wäre zum Beispiel Pin 29 also 3 verschiedenen Nummern für ein und denselben Anschluss.

  • Hallo zusammen,

    vor einiger Zeit habe ich mir mal die Mühe gemacht, ein paar Informationen zu GPIO insbesondere deren unterschiedlichen Kennzeichnungssysteme und Alternativ-Funktionen zusammenzutragen. Link

    Vielleicht liegt alles auch an der unterschiedlichen Deutung der Pins...

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    2 Mal editiert, zuletzt von Andreas (14. Oktober 2017 um 23:19)

  • Vielen Dank Andreas. Ist nochmal eine gute Übersicht. Allderings habe ich das schon in die richtigen Pins gesteckt. Gibt ja genug Anleitungen mit Bildchen im Internet ;)

  • :D Hab ich schon gemacht. Funktionieren tu es immer noch nicht. Allerdings konnte ich ein merkwürdiges Verhalten beobachten:

    Bei allen geraden GPIO Nummern hängt er sich auf. Bei allen ungeraden GPIO Nummern kommt ein Data (0) zurück. Das Verhalten bleibt gleich egal ob der die Data Leitung an den Pin angeschlossen ist oder nicht. Was mach ich nur falsch ???


  • :D Hab ich schon gemacht. Funktionieren tu es immer noch nicht. Allerdings konnte ich ein merkwürdiges Verhalten beobachten:

    Bei allen geraden GPIO Nummern hängt er sich auf. Bei allen ungeraden GPIO Nummern kommt ein Data (0) zurück. Das Verhalten bleibt gleich egal ob der die Data Leitung an den Pin angeschlossen ist oder nicht. Was mach ich nur falsch ???

    Tach'chen,

    auch wenn der Sensor mit dem Python Code eigentlich funktionieren sollte, würde ich lieber versuchen den Sensor damit
    https://github.com/sweetpi/rpi_dht22
    auszulesen. Mit dem Adafruit_DHT Python Modul hatte ich immer wieder Probleme mit dem "timing"
    und gelegentlichen Lockups. Die Installation von rpi_dht22 dürfte auch für einen Anfänger möglich sein.

    Code
    git clone https://github.com/sweetpi/rpi_dht22
    cd rpi_dht22
    ./configure 
    make
    sudo ./rpi_dht22 pin1 [pin2...]

    Falls das nicht schon geschehen ist, muss vorher noch Wiring Pi (https://github.com/WiringPi/WiringPi)
    installiert werden.

    Bei meinem Sensor kam es gelegentlich zu "Lockups", d.h. bei meinem Raspi, der 24/7 läuft, war der Sensor
    ca. 1x pro Woche nicht mehr ansprechbar. Ein 100nF Kondensator zwischen GND und +VCC hat das auf ein
    erträgliches Maß reduziert.

    /luetzel


  • Habe wiringPi nochmal runtergeschmissen und wollte es neu installieren. Aktuell kommt bei mir nach dem Befehl git clone git://http://git.drogon.net/wiringPi die Meldung: Fatal: read error: Die Verbindung wurde vom Kommunikationspartner zurückgesetzt.

    Allgemeines Problem oder nur mein Problem ?

    Versuch mal git clone https://http://github.com/WiringPi/WiringPi

    /luetzel

  • Ok mehrere Sachen mal strukturiert:

    - Bei der Installation auf dem von dir beschriebenen Weg sagt er mit immer einen Error bei ./build (Makefile:45:Recipe for target 'gpio' failed) . Wenn ich über sudo apt-get install wiringPi gehe sagt er mir wiringPi ist schon die neuste Version. Wenn ja wo kann ich diese finden???

    - Wenn ich dein Paket installiere und danach den Befehl ausführen will sagt er mir Kommando nicht gefunden. In der Installation (make). Sag er mir Warning Zeile 52: autoheader is missing on your system. Kann es was damit zu tun haben?

    Viele Dank!


  • Ok mehrere Sachen mal strukturiert:

    - Bei der Installation auf dem von dir beschriebenen Weg sagt er mit immer einen Error bei ./build (Makefile:45:Recipe for target 'gpio' failed) . Wenn ich über sudo apt-get install wiringPi gehe sagt er mir wiringPi ist schon die neuste Version. Wenn ja wo kann ich diese finden???

    - Wenn ich dein Paket installiere und danach den Befehl ausführen will sagt er mir Kommando nicht gefunden. In der Installation (make). Sag er mir Warning Zeile 52: autoheader is missing on your system. Kann es was damit zu tun haben?

    Viele Dank!


    Ah, ok wir kommen der Sache schon näher. In jedem Fall fehlen Dir noch einige Pakete, die Du vor dem Kompilieren nach-installieren solltest:

    apt-get install build-essential
    apt-get install automake autoconf

    Wenn Du das bereits installierte WiringPi verwenden möchtest, dann benötigst Du auch noch WiringPi-dev. Danach sollte sich rpi_dht22
    wie beschrieben installieren lassen.

    /luetzel

  • Ich glaub ich gebe es langsam auf...

    Build Essential war schon installiert und auf dem aktuellsten Stand. Beim installieren der Automake Autoconf kam zuerst ein Fehler nach erneuter Installation aber weiter durchgelaufen. Die Fehler bleiben aber weiterhin wie beschrieben...

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!