Novice: Trenutno ni obvestil.
Dobrodošel, Gost. Prosim, prijavi se ali se registriraj.

 ZEVS ForumTehnikaMerilniki in instrumentiDavis Airlink
Strani: [1]
Natisni
Avtor Tema: Davis Airlink  (Prebrano 354 krat)
0 Člani in 1 Gost gledajo to temo.
Tminc
Cirostratus

Odsoten Odsoten

RD: 0000-00-00
Sporočila: 172


Lokacija: Tolmin

WWW
« dne: 04. Oktober 2020, 19:36:16 »

Nekaj informacij v pomoč komu, ki bo v prihodnosti nabavil omenjeni detektor.
Namesti se lahko zunaj, zaščiten je pred dežjem. Za priklop potrebuje 5 V napajanje (kabel je priložen, napajalnik ne). Nameščen mora biti v dosegu brezžičnega omrežja. Če je nameščen v domačem omrežju, so podatki dostopni lokalno.

Detektor na klice odgovarja z json stringom, ki se ga lahko enostavno razčleni in vrednosti shrani v datoteko. Trenutno je detektor že podprt v Weather Display, ki skrbi za logiranje in analizo ter grafe. Za tiste, ki uporabljate/mo/jo weewx ali kakšen drug program pa se lahko podatke shrani v datoteko. Spisal sem enostavno python skripto (testirano na Linux, verjetno bi z malimi spremembami delalo tudi v Windows).
V skripti je potrebno zamenjati IP naslov (moj primer 10.0.0.21:8080) in direktorij za logiranje.

Preračun AQI izvaja Weather Display, narediti ga je moč tudi ročno, vendar je treba izbrati ustrezen standard (recimo US ali EU).

lp Peter


Koda:
#!/usr/bin/env python

# referencna stran: https://weatherlink.github.io/airlink-local-api/

from datetime import datetime
import sys
import urllib2
import json
import time

dir ="/home/pi/data"

# curl -X GET -H "application/json" http://10.0.0.21:8080/v1/current_conditions

data = json.load(urllib2.urlopen('http://10.0.0.21:8080/v1/current_conditions'))

razmere = data['data']['conditions'][0]
cas = data['data']['ts']

print "Lokacija: ", data['data']['name']
print "Cas: ", ( datetime.fromtimestamp(cas).strftime("%H:%M %d.%m.%Y") )
print "--------------------------------"
print "Trenutne razmere"
print "Temperatura zraka: %.1f stC" % ( (float(razmere['temp'])-32)*5/9 )
print "Temperatura rosisca: %.1f stC" % ( (float(razmere['dew_point'])-32)*5/9 )
print "Relativna vlaznost: %.0f %%" % ( razmere['hum'] )
print "--------------------------------"
print "  Trenutni podatki  "
print "PM 2.5: %.0f ug/m3" % ( razmere['pm_2p5'] )
print "PM  10: %.0f ug/m3" % ( razmere['pm_10p0'] )
print "\n"
print "  Zadnja ura  "
print "PM 2.5: %.0f ug/m3" % ( razmere['pm_2p5_last_1_hour'] )
print "PM  10: %.0f ug/m3" % ( razmere['pm_10p0_last_1_hour'] )
print "\n"
print "  Zadnje 3 ure  "
print "PM 2.5: %.0f ug/m3" % ( razmere['pm_2p5_last_3_hours'] )
print "PM  10: %.0f ug/m3" % ( razmere['pm_10p0_last_3_hours'] )
print "\n"
print "  Zadnjih 24 ur  "
print "PM 2.5: %.0f ug/m3" % ( razmere['pm_2p5_last_24_hours'] )
print "PM  10: %.0f ug/m3" % ( razmere['pm_10p0_last_24_hours'] )


# Log v fajl
filename=datetime.now().strftime(dir + "/DAL_%Y-%m.log")
aqi=open(filename,"a+")
aqi.write("%s,%s,%s,%s,%s,%s,%s,%s,%s\n" %(cas,razmere['pm_2p5'],razmere['pm_10p0'],razmere['pm_2p5_last_1_hour'],razmere['pm_10p0_last_1_hour'],razmere['pm_2p5_last_3_hours'],razmere['pm_10p0_last_3_hours'],razmere['pm_2p5_last_24_hours'],razmere['pm_10p0_last_24_hours'],))
aqi.close()
Prijavljen

Davis Vantage Pro2 | Davis AirLink | SDS011 | 2x AS3935 | VL53L0X | 2x WeatherFlow
Strani: [1]
Natisni
Pojdi na: