Új hozzászólás Aktív témák

  • sanchomuzax

    aktív tag

    RPi-Monitor és DHT11 szenzor - lyukas rögzítés megoldva

    A DHT11 szenzor ugye mint az köztudott, nem mindig ad vissza megfelelően adatot. Ettől a RPi-Monitor szép fésűs jelet rögzít a grafikonjaiban. Egy nagyon egyszerű, kézenfekvő megoldással átvertem. Nem is értem, miért nem tette meg eddig, vagy miért nem ezzel kezdtem.

    A python script-et használom, azt írtam át egy kicsit. A RPi-Monitor nem közvetlenül a szenzort kéri le, hanem egy percenként CRON-nal frissített log fájlból olvas (azt is ugye 2x kérné le szerencsétlen a két adat miatt).

    A script-ben a vége így módosult, azaz nem tesz semmit, ha nincsen érték, hagyja a logot érintetlenül, ha van érték, akkor pedig közvetlenül ír a logba, nem a print-et használja adat átadásra:

    ...
    if humidity is not None and temperature is not None:

    line= 'Temp = {0:0.0f} *C, Hum = {1:0.0f} %'.format(temperature, humidity)
    print line
    file = open("/var/log/dht11.log", "w")
    file.write(line)
    file.close()

    else:
    print 'Failed to get reading. Try again!'

    Ezt percenként futtatja a CRON:

    */1 * * * * sudo /home/pi/Adafruit_Python_DHT/examples/./AdafruitDHT.py 11 4 >/dev/null 2>&1

    Az RPi-Monitor pedig a log fájlt olvassa csak. Ennyi a temp.conf-om erre vonatkozó része:

    dynamic.16.name=temp_in
    dynamic.16.source=cat /var/log/dht11.log
    dynamic.16.regexp=Temp = (\S+)
    dynamic.16.postprocess=$1/1
    dynamic.16.rrd=GAUGE

    dynamic.17.name=humidity_in
    dynamic.17.source=cat /var/log/dht11.log
    dynamic.17.regexp=Hum = (\S+)
    dynamic.17.postprocess=$1/1
    dynamic.17.rrd=GAUGE
    ...

    Persze, még majd cizellálom annyival az egészet, hogy ha a log öregebb, mint 5 perc, akkor törlésre kerül, így nem lesz a szenzor levételekor, vagy elromlásakor egy vízszintes hamis érték.

    Itt az este már normális értékeket rögíztő grafikon, melynek első fele igen csak randa, de megérte este fent maradni a jobb feléért:

Új hozzászólás Aktív témák

Hirdetés