Ankündigung

Einklappen
Keine Ankündigung bisher.

Luftfeuchtigkeitsmessung mit DHT22, Logik

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Luftfeuchtigkeitsmessung mit DHT22, Logik

    Hallo,

    ich habe mir einen DHT22 zru Luftfeuchtemessung beschafft und diesen an den RPi GPIO angeschlossen.
    Zur Unterstützung gibt es das Modul AdafruitDHT. Siehe auch hier https://www.einplatinencomputer.com/...ssensor-dht22/

    Dort gibt es auch eine Beispielskript, dass ich in eine Logik umwandeln möchte. Übergeben bzw. paramatrisiert werden können der Sensortyp (DHT11, DHT22) und welcher GPIO am RPi verwendet wird.
    Ich stelle es mir so vor, dass man diese beiden Dinge via Item an die Logik übergibt, die wieder um per cycle zyklisch läuft und die Werte für Temp und Luftfeuchtigkeit wieder Items zuweist.

    das BeispielSktipt sieht so aus:
    Code:
      # Adafruit Bibliothek importieren
      import Adafruit_DHT
       
       
      #Sensortyp und GPIO festlegen
      sensor = Adafruit_DHT.DHT22
      gpio = 4
       
      # Daten auslesen
      humidity, temperature = Adafruit_DHT.read_retry(sensor, gpio)
       
      # Ausgabe
      print 'Temperatur: {0:0.1f}*C Luftfeuchtigkeit: {1:0.1f}%'.format(temperature,humidity)
     
    [FONT=arial][/FONT]

    Das muss natürlich noch angepasst werden.

    Wie würdet ihr das machen? Ist die Logik der richtige Weg? Wie könnte man dann mehrere Sensoren abfragen?
    DANKE für Eure Tipps.

    #2
    ich würde dafür ein kleiners Plugin basteln, schaue Dir das mal im Wiki an, es ist recht gut mit der Anleitung zu schaffen. Dann könntest Du im Item eine Variabel setzen, welches das Plugin dann lesen kann (z.B. den GPIO an welchem der Sensor angeschlossen ist: Adafruit_DHT_Gpio = 4 und eine andere Variabel: Adafruit_DHT_Type = DHT22).

    Kommentar


      #3
      Hallo,

      ich habe das heute ebenfalls probiert und den code in eine logic gepackt.
      bei der Ausführung bekomme ich aber Probleme mit den Rechten.

      was muss ich denn tun, damit smarthome.py dies ausführen darf ?
      Code:
      Init SmartHome.py 1.0-45-g02cf972+
      2017-05-05 19:41:14 INFO     Main         Start SmartHome.py 1.0-45-g02cf972+
      2017-05-05 19:41:14 INFO     Main         Init Scheduler
      2017-05-05 19:41:14 INFO     Main         Init Plugins
      2017-05-05 19:41:32 INFO     Main         Init Items
      2017-05-05 19:41:38 WARNING  Main         Item EG.Office.Luft: problem reading cache: [Errno 2] No such file or directory: '/usr/smarthome/var/cache/EG.Office.Luft'
      2017-05-05 19:41:38 WARNING  Main         Item EG.Office.Feuchte: problem reading cache: [Errno 2] No such file or directory: '/usr/smarthome/var/cache/EG.Office.Feuchte'
      2017-05-05 19:41:39 INFO     Main         Start Plugins
      2017-05-05 19:41:40 INFO     Main         Start Logics
      2017-05-05 19:41:47 ERROR    Office       Logic: Office, File: /usr/local/lib/python3.2/dist-packages/Adafruit_DHT-1.3.2-py3.2-linux-armv6l.egg/Adafruit_DHT/Raspberry_Pi.py, Line: 35, Method: read, Exception: Error accessing GPIO. If `/dev/gpiomem` does not exist run this program as root or sudo.
      Traceback (most recent call last):
        File "/usr/smarthome/lib/scheduler.py", line 327, in _task
          exec(obj.bytecode)
        File "/usr/smarthome/logics/Office.py", line 14, in <module>
          humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
        File "/usr/local/lib/python3.2/dist-packages/Adafruit_DHT-1.3.2-py3.2-linux-armv6l.egg/Adafruit_DHT/common.py", line 94, in read_retry
          humidity, temperature = read(sensor, pin, platform)
        File "/usr/local/lib/python3.2/dist-packages/Adafruit_DHT-1.3.2-py3.2-linux-armv6l.egg/Adafruit_DHT/common.py", line 81, in read
          return platform.read(sensor, pin)
        File "/usr/local/lib/python3.2/dist-packages/Adafruit_DHT-1.3.2-py3.2-linux-armv6l.egg/Adafruit_DHT/Raspberry_Pi.py", line 35, in read
          'Error accessing GPIO. If `/dev/gpiomem` does not exist '
      RuntimeError: Error accessing GPIO. If `/dev/gpiomem` does not exist run this program as root or sudo.
      2017-05-05 19:41:47 INFO     hello        Hello World!
      Zuletzt geändert von whe; 05.05.2017, 19:58.

      Kommentar


        #4
        wie löse ich denn jetzt mein problem und führe eine logic mit root aus ?
        sudo smarthome.py (wie in einem anderen Thread empfohlen) geht natürlich nicht.

        Kommentar


          #5
          Ich habe http://www.netzmafia.de/skripten/har...PIO_Shell.html
          verstanden, kann aber mangels Original Pi nicht testen.

          Kommentar

          Lädt...
          X