Motion und DHT22-Sensor Abfrage

  • Einen wunderschönen guten Morgen. :)

    Ich benutze im Moment "motion", um einen Livestream meiner Logitech C200 Webcam zu realisieren.
    Dieser läuft auch perfekt mit einer CPU-Grundlast von "35%".
    Nun möchte ich gleichzeitig die Temperatur und die relative Luftfeuchtigkeit meines "DHT22"-Sensors abfragen. Dies funktioniert leider nicht, es wird konstant die Fehlermeldung "Data not good, skip" angezeigt. Sobald ich "motion" beende, klappt die Abfrage wieder ohne Probleme.

    Die Daten des Sensors frage ich mit diesem in "C" geschriebenem Porgramm ab:
    https://github.com/technion/lol_dht22

    Ich war auch schon fleißig im Gespräch mit dem Admin dieser Seite:
    http://www.sweetpi.de/blog/436/luftf…berry-pi-messen
    ... von dem Ich das Tutorial benutzt habe (s. "letzte Kommentare".

    In einem ähnlichen Thread hier im Forum wurde vermutet, dass die hohe CPU-Last ausschlaggebend für den Misserfolg der Abfrage ist:
    Motion CPU Last und 1Wire Sensoren!

    Darauf aufbauend habe ich nach Lösungsmöglichkeiten gesucht:

    Folgende Lösungsmöglichkeiten sind dabei schon fehlgeschlagen:

    • Erhöhung der Priorität der Abfrage mit "nice -n -20" und gleichzeitiger Reduzierung des "motion-Prozesses" mit "nice -n 19".
    • Änderung bestimmter Variablen (delay, delayMicroseconds) in der Konfigurationsdatei für den "DHT22"-Sensor "dht22.c", mit dem Ziel, dem Programm ein bisschen mehr Zeit für die Abfrage zu schaffen. Allerdings bin ich durch den Code auch nicht ganz durchgestiegen, kann also sein, dass ich genau die falschen Werte geändert habe. Die einzelne Abfrage hat aber auf jedenfall länger gedauert, leider immer noch mit dem Fehler "Data not good, skip".
    • Aufruf der Wiring-Pi Priorität mit höchster Priorität, wie hier beschrieben:

    http://wiringpi.com/reference/prio…ts-and-threads/


    Hättet Ihr noch irgendwelche Lösungsvorschläge, oder liege ich mit der Ursache der CPU-Last vielleicht völlig falsch ?

    Gruß,
    bl4ckOut

    Einmal editiert, zuletzt von bl4ckOut (20. März 2014 um 11:45)

  • Hi,

    aha ... typischer Fall von bl4ckOut ;) ...

    Also ich kann da auch nur mutmaßen und im Nebel stochern ...
    Aber für mich sieht das eher so aus, als würde sich die 1Wire-Geschichte mit wiringPi beissen.
    Würde mich nicht wundern: ich hatte einen Systemstillstand bei der Kombination wiringPi und GPIO-Interrupts.

    Hast Du mehrere Programme?
    Poste doch bitte mal das ganze Paket (Sourcen, Makefile, ... - tarball halt) ... so bringt das nix ...

    cheers,
    -ds-

  • Ja ich weiß, mit mir ist das nicht immer so ganz leicht. :D

    Ich habe übrigens auch noch ne 433mhz Sender und ne I²C Echtzeituhr DS1307. Der Sender macht aber nichts im Moment. Es läuft auf jeden Fall auch nicht, wenn ich beide vom Breadboard runternehme.


    Zitat


    Hast Du mehrere Programme?

    Wie meinst du das genau ?
    Ich nutze nur das genannte Programm zur Abfrage des DHT22.
    Ansonsten greift kein anderer Prozess gleichzeitig auf die GPIO's.
    Die Webcam hängt auch per USB am Raspi, deswegen weiß ich jetzt auch nicht genau, wie du das mit 1-Wire in Verbindung bringst. :D

    Nun gut, den Source Code von lol_dht22 mit Skript von motion füge ich im Anhang dazu.
    Falls du noch die Config von motion brauchst oder anderes, sag Bescheid. ;)

Jetzt mitmachen!

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