DHT22 - Fehlermeldung

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Habe mit meinem Temperatursensor des Typs DHT22 schon seit knapp einem Jahr das problem, dass dieser mir sporadisch die folgende Fehlermeldung ausgibt.

    "Lock file is in use, exiting... "

    Ehrlich gesagt habe ich keinerlei Ahnung wo das Problem liegen könnte...oft geht es nach ein paar Tagen dann wieder.
    Muss dazu sagen, dass ich ein Script laufen habe welches alle 5 Minuten die Werte abfragt und in eine TXT Datei schreibt welche dann vom Webserver zusammen mit dem Kamerabild dargestellt werden.

    Am Raspberry Image dürfte es nicht liegen...das selbe Image habe ich auf einem baugleichen B+ ohne jeglich probleme laufen.

    Gruß
    Rainer

  • Hallo Rainer,

    das gleiche Problem wird hier auch beschrieben:

    https://github.com/technion/lol_dht22/issues/2

    Dort werden auch ein paar Lösungsansätze beschrieben. Vielleicht ist auch für Dich etwas dabei?


    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.

  • Moin,

    typischer Fehler, wenn die Abfrage des/der DHT22 misslingt und das Programm weiterhin ausgeführt wird.
    Möglicher Bugfix:
    Vor der Abfrage des DHT22 das Programm killen (hier loldht):

    Code
    killall -q loldht

    Bitte stelle doch mal dein Script ein.

    Bye

    Jürgen

  • es sind wirklich mehrere Prozesse am Laufen.
    Allerdings passiert nach dem killen dieser und dem erneuten ausführen der manuellen Abfrage per sudo ./loldht 7 nichts.
    Die Abfrage kann lediglich per Strg+C abgebrochen werden.

    Hier noch der Code meines Scriptes welches per Crontab alle 5 Minuten ausgeführt wird.
    Wie gesagt auf einem anderen PC funktioniert es problemlos

    Bash
    #!/bin/bash
    
    
    # Im Skript den Ordner wechseln und die Temperaturdaten auslesen
    cd /home/pi/lol_dht22/
    #Ausgabe des Befehl in Datei temp.Hum.txt umleiten
    sudo ./loldht 7 > /home/pi/scripts/tempHum.txt

  • ...
    Wie gesagt auf einem anderen PC funktioniert es problemlos

    Moin,

    wird von dem anderen PC auf den gleichen DHT22 Sensor zugegriffen?????

    Die DHT22 sind Zicken ..... zumindest verhalten sie sich so.
    Wenn die Abfrage in die Hose geht ist meist ein langes/ungeeignetes Kabel oder Spannungsunterversorgung die Ursache.
    Solange der Sensor keine Daten liefert ackert loldht und blockiert eine 2. Parallelabfrage.

    1)
    Was für Kabel verwendest Du, wie lang, Widerstand ?, wie am Pi angeschlossen...

    2)
    Hast Du loldht ausführbar gemacht?
    Wenn ja kannst Du dieses im bash-script wie folgt aufrufen:

    Bash
    #!/bin/bash
    #Ausgabe des Befehl in Datei temp.Hum.txt umleiten
    sudo /home/pi/lol_dht22/loldht 7 > /home/pi/scripts/tempHum.txt

    Bye

    Jürgen

  • Zitat

    wird von dem anderen PC auf den gleichen DHT22 Sensor zugegriffen?????

    Nein beide PI´s arbeiten völlig unabhängig voneinander mit eigenen Sensoren.


    Zitat

    1)
    Was für Kabel verwendest Du, wie lang, Widerstand ?, wie am Pi angeschlossen...

    Verwende diese Steckbrückenkabel mit ca. 30cm länge.
    Angeschlossen habe ich es nach dieser Anleitung.

    Zitat

    Hast Du loldht ausführbar gemacht?

    ja ist ausführbar...wie gesagt ab und an funktioniert es auch mal. Sehe ich dann daran, dass die HTML Seite die Werte aus TempHum.txt korrekt darstellt.


    Gruß
    Rainer

  • Kann ich erst morgen testen...jetzt ist es mir zu kalt draussen :)

    Soll die Verbindung zwischen 3,3V und Data trotzdem vorhanden bleiben oder diese gänzlich entfernen?
    Würde eventuell auch ein anschluss an 5V das problem lösen?

  • Hallo Rainer,

    das mit 5V und ohne Widerstand direkt am GPIO - das lass mal ganz schnell sein.

    Das machst Du nur einmal - und Dein Raspberry Pi geht in die Ewigen Jagdgründe... von jetzt auf gleich.

    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.

  • Zitat


    das mit 5V und ohne Widerstand direkt am GPIO - das lass mal ganz schnell sein.

    Das machst Du nur einmal - und Dein Raspberry Pi geht in die Ewigen Jagdgründe... von jetzt auf gleich.

    Die Frage war natürlich auf die jetzige Konfiguration mit Widerstand bezogen. :^^:

    Beim Vorschlag von "rpivpn" ohne Widerstand dann trotzdem ein Drahtbrücke von 3,3V zu Data oder diese wegfallen lassen?

    Gruß
    Rainer

  • Hallo Rainer,

    Du betreibst den DHT22 mit 5V. Somit besteht zwischen DATA und GND auch eine Potentialdifferenz von 5V. Wenn Du diese mit einem Widerstand (oder einem hinreichend langen Kabel) nicht auf ca. 3,3 V verringerst, dann macht es am beteiligten GPIO-Port "pitch" - und er macht dann keinen Mucks mehr.

    Die DHT22 sind relativ anfällige Sensoren, die bei Auftreten von Fehlern einfach gar nichts mehr machen. Deswegen die Kommandos bzgl. Abschalten und Neustart der Sensoren.

    Nach Durchsicht der von Dir benutzten Anleitung kann ich Dir nur empfehlen, statt des Festwiderstandes ein Potentiometer zu setzen und ein wenig damit herumzuspielen.

    Bei ähnlichen Fehlerbildern - aber auch wesentlich längeren Leitungen - haben andere Anwender durch Verringerung des Widerstandes zwischen 5V und DATA Erfolge erzielt. Einige haben von Widerständen um 760 Ohm berichtet und hatten danach keine Probleme mehr. Das Entscheidende aber ist, dass zwischen DATA und GND nicht mehr als 3,3 Volt anliegen dürfen.

    Was bislang noch nicht betrachtet wurde: Bist Du Dir sicher, dass Dein DHT22 überhaupt innerhalb der Spezifikation arbeitet? Hat er vieleicht eine Macke, die das hier gezeigte Fehlverhalten verursacht? Wenn ja, können wir Dir hier noch viele schöne Tipps geben, die alle ins Leere laufen werden.

    Ansonsten bleibt Dir nur übrig, die Sensoren nach einer erfolgreichen Messung sofort wieder abzuschalten, damit bis zur nächsten Messung kein Ereignis passieren kann, das die Sensoren irritiert und zu einem Fehlverhalten bewegt.

    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.

    Einmal editiert, zuletzt von Andreas (28. Dezember 2014 um 10:47)


  • Du betreibst den DHT22 mit 5V. Somit besteht zwischen DATA und GND auch eine Potentialdifferenz von 5V.

    So ein .... :wallbash:, laut vorgelegter Schaltung liegen 3,3 Volt an VCC an!!

    Rainer

    3,3 Volt an VCC

    GPIO7 an Data

    0/Masse an GND

    sonst nix.

    loldht fragt die Daten recht "tolerant" ab.
    Wenn nur Treffer ausgegeben werden sollen kann die dht22.c angepasst werden.
    (printf Zeilen anpassen im letzten Drittel)
    Und dann ./configure & make

    Bye

    Jürgen

    Einmal editiert, zuletzt von rpivpn (28. Dezember 2014 um 11:27)

  • Hallo Jürgen,

    wenn wirklich 3V3 anliegen, dann nehme ich alles zurück. :cool:


    EDIT: Diese Info hat mir zum besseren Verständnis gefehlt:

    Zitat

    der DHT22 ist ein digitaler Sensor: Das heißt der Raspberry Pi misst keinen Spannungswert sondern frägt den Pin in einem bestimmten Muster ab und stellt fest ob er HIGH oder LOW ist (Einfach gesagt: Ob eine Spannung anliegt oder nicht.). Der Sensor verbindet den PIN jedoch für LOW gegen 0V und für HIGH ist der Ausgang hochohmig.

    Der Widerstand ist dazu da den Pin mit +3.3V zu verbinden, so das beim hochohmigen Zustand des Ausgangspins 3.3V am Raspberry Pi anliegen (Pull-up Widerstand). Dazu brauch man eben einen Widerstand der kleiner ist, als der Sensor im hochohmigen Zustand. Zu klein darf der Widerstand aber auch nicht sein, sonst fließt zu viel Strom, wenn der Sensor den Pin auf 0V liegt. (Bei keinem Widerstand hätten man ja dann einen Kurzschluss.)

    Quelle: http://www.sweetpi.de/blog/436/luftf…berry-pi-messen

    Beste Grüße und gutes Gelingen!

    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.

    Einmal editiert, zuletzt von Andreas (28. Dezember 2014 um 11:58)

  • Moin,

    für den Fall, dass der Prozess klemmen sollte, kannst Du diesen vor einem erneuten Durchlauf beenden:

    Bash
    #!/bin/bash
    # Prozess beenden
    sudo killall -q loldht  > /dev/null 2>&1
    #Ausgabe des Befehl in Datei temp.Hum.txt umleiten und Prozess in den Hintergrund schicken
    sudo /home/pi/lol_dht22/loldht 7 > /home/pi/scripts/tempHum.txt &

    Bye

    Jürgen

Jetzt mitmachen!

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