Turinys:

„AirVisual Air Quality“API prietaisų skydelis: 5 žingsniai
„AirVisual Air Quality“API prietaisų skydelis: 5 žingsniai

Video: „AirVisual Air Quality“API prietaisų skydelis: 5 žingsniai

Video: „AirVisual Air Quality“API prietaisų skydelis: 5 žingsniai
Video: Home Assistant How To - Get on top of local air quality with AirVisual 2024, Lapkritis
Anonim
Image
Image

„AirVisual“(https://www.airvisual.com) yra svetainė, kurioje pateikiami duomenys apie oro kokybę visame pasaulyje. Jie turi API, kurią naudosime norėdami gauti oro kokybės duomenis ir nusiųsti juos į prietaisų skydelį. Mes sąveikausime su šia API panašiai, kaip tai darėme su orų prietaisų skydeliu.

Tai paprastas projektas, mokantis jus naudoti API. Pradėkime!

1 žingsnis: Darbo pradžia

„AirVisual“API
„AirVisual“API

Mes jau surinkome didžiąją kodo dalį, tačiau pakeliui turėsite atlikti keletą pakeitimų. Taip pat yra daug galimybių išplėsti tai, ką padarėme.

Norėdami gauti viską, ką mes jums paruošėme, turėsite klonuoti saugyklą iš „GitHub“. „GitHub“yra nuostabi paslauga, leidžianti mums saugoti, peržiūrėti ir valdyti tokius projektus. Šį scenarijų norėsite paleisti tam skirtame įrenginyje. Galite naudoti nešiojamąjį kompiuterį, „Raspberry Pi“ar kitą vienos plokštės kompiuterį. Norėdami klonuoti saugyklą, viskas, ką mums reikia padaryti, yra eiti į kompiuterio ar „Pi“terminalą ir įvesti šią komandą:

$ git klonas

Paspauskite „Enter“ir pamatysite šią informaciją:

$ git klonas https://github.com/InitialState/airvisual.git Klonavimas į „airvisual“… nuotolinis: objektų išvardijimas: 13, padaryta. nuotolinis: objektų skaičiavimas: 100% (13/13), padaryta. nuotolinis: objektų suspaudimas: 100% (12/12), padaryta. nuotolinio valdymo pultas: iš viso 13 (delta 2), pakartotinai panaudota 0 (delta 0), pakartotinai panaudota pakuotėje 0 Objektų išpakavimas: 100% (13/13), padaryta.

Kai tai pamatysite, sveikiname, sėkmingai klonavote „GitHub Repo“ir turite visus reikalingus failus šiam projektui sukurti. Pereikime prie naujo katalogo. Norėdami pakeisti katalogą, jums tereikia įvesti „cd“ir įvesti katalogo, į kurį norite eiti, pavadinimą. Šiuo atveju įvesime:

$ cd airvisual

Kai paspausime Enter, pamatysite, kad dabar esame aviacijos kataloge. Įveskite „ls“, kad pamatytumėte, kokius failus įdiegėme. Turėtumėte atrodyti taip:

LICENCIJOS README.md airquality.py

Prieš redaguodami kodą, mums reikia kitų elementų, todėl toliau pažvelkime į oro kokybės API.

2 veiksmas: „AirVisual“API

„AirVisual“API
„AirVisual“API
„AirVisual“API
„AirVisual“API

„AirVisual“turi oro kokybės (AQI) ir taršos API, kuri leidžia nemokamai skambinti iki 10 000 API per mėnesį. Galite prisiregistruoti prie bendruomenės pakopos. Prisiregistravę galite pereiti į „My Air“ir „API“skirtuką. Čia rasite savo API raktus ir dokumentus API.

Spustelėkite mygtuką +Naujas raktas, kad sukurtumėte pirmąjį API prieigos raktą. Norėdami pasirinkti planą, išskleidžiamajame meniu pasirinkite Bendruomenė ir spustelėkite Kurti. Jei viskas gerai, pamatysite sėkmės pranešimą ir galėsite grįžti į savo API informacijos suvestinę, kad surastumėte naują pagrindinę informaciją. Pagrindinė vertė (skaičiai ir simboliai) yra tai, ko jums reikės šiam projektui. Jei peržiūrėsite API dokumentus, pamatysite, kad galite atlikti kelių rūšių API skambučius. Šiam projektui norime gauti artimiausius miesto duomenis pagal GPS koordinates. Šiam skambučiui jums reikės ilgumos, platumos ir API rakto. Įveskite šiuos parametrus į žemiau esantį skambutį, įdėkite jį į naršyklės adreso juostą ir paspauskite „Enter“.

api.airvisual.com/v2/nearest_city?lat={{LATITUDE}}&lon={{LONGITUDE}}&key={{YOUR_API_KEY}}

Bus pateikti artimiausio miesto duomenys pagal GPS koordinates. Tai atrodys maždaug taip:

Rekomenduoju naudoti JSON formatavimo priemonę, kad geriau matytumėte duomenis. Jei jį naudosite, jis atrodys šiek tiek taip:

"statusas": "sėkmė", "data": {"miestas": "Nešvilis", "valstija": "Tenesis", "šalis": "JAV", "vieta": {"type": "Taškas", "koordinatės": [-86.7386, 36.1767]}, "current": {"weather": {"ts": "2019-04-08T19: 00: 00.000Z", "_v": 0, "createdAt": "2019-04-08T19: 04: 18.662Z "," hu ": 88," ic ":" 04d "," pr ": 1012," tp ": 18," updatedAt ":" 2019-04-08T19: 46: 53.140Z "," wd ": 90, "ws": 3.1}, "tarša": {"ts": "2019-04-08T18: 00: 00.000Z", "aqius": 10, "mainus": "p2", "aqicn": 3, "maincn": "p2"}

Dabar galime lengvai pamatyti, kad turime informacijos apie vietą, orus ir taršą. Dvi vertybės, į kurias mes sutelkiame dėmesį šiame projekte, yra JAV oro kokybės indeksas (aquis) ir pagrindinis teršalas (mainus). Oro kokybės indekso vertė parodo, kokia yra vietinė oro kokybės vertė ir kaip tai susiję su jūsų sveikata. Spalvų koduota lentelė pateikta žemiau. Pagrindinis teršalas nurodo, koks yra pagrindinis jūsų teritorijos oras (kietosios dalelės, azoto oksidas, ozonas, anglies monoksidas, sieros oksidas). Šie teršalai paprastai yra šalutinis dūmų kaminų ar transporto priemonių išmetamų teršalų produktas.

Dabar, kai žinome, kaip naudoti „Air Visual“API, kitas dalykas, kurio mums reikės, yra prietaisų skydelio platforma duomenims rodyti.

3 žingsnis: pradinė būsena

Pradinė būsena
Pradinė būsena
Pradinė būsena
Pradinė būsena

Mes norime srautiniu būdu perduoti visus savo orų duomenis į debesies paslaugą ir ta paslauga paversti mūsų duomenis gražiu prietaisų skydeliu. Mūsų duomenims reikia paskirties vietos, todėl kaip tikslą naudosime pradinę būseną.

Užregistruokite pradinę valstybės sąskaitą

Eikite į https://iot.app.initialstate.com ir sukurkite naują paskyrą.

Įdiekite „ISStreamer“

Įdiekite „Initial State Python“modulį į nešiojamąjį kompiuterį arba „Raspberry Pi“. Komandų eilutėje paleiskite šią komandą:

$ / curl -sSL https://iot.app.initialstate.com -o -| sudo bash

Padarykite „Automagic“

Paleidę curl komandą, ekrane pamatysite kažką panašaus į šią išvestį:

$ / curl -sSL https://iot.app.initialstate.com -o -| sudo bash

Slaptažodis: „ISStreamer Python“paprastas diegimas nuo pat pradžių! Tai gali užtrukti kelias minutes, kol bus įdiegta, išgerkite kavos:) Bet nepamirškite sugrįžti, vėliau turėsiu klausimų! Rasta easy_install: setuptools 1.1.6 Rasta pip: pip 1.5.6 iš /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip pagrindinė versija: 1 pip minor versija: 5 ISStreamer rastas, atnaujinamas … Reikalavimas jau atnaujintas: ISStreamer /Library/Python/2.7/site-packages Valymas … Ar norite automatiškai gauti scenarijaus pavyzdį? [y/N] Kur norite išsaugoti pavyzdį? [numatytasis:./is_example.py] Pasirinkite, kurią pradinės būsenos programą naudojate: 1. app.initialstate.com 2. [NAUJIENA!].initialstate.com vartotojo vardas: įveskite iot.app.initialstate.com slaptažodį:

Kai būsite paraginti automatiškai gauti scenarijaus pavyzdį, įveskite y. Taip bus sukurtas bandomasis scenarijus, kurį galime paleisti, kad užtikrintume, jog galime perduoti duomenis į pradinę būseną. Kitame raginime bus klausiama, kur norite išsaugoti pavyzdinį failą. Galite įvesti pasirinktinį vietinį kelią arba paspausti Enter, kad patvirtintumėte numatytąją vietą. Galiausiai jūsų paklaus, kurią pradinės būsenos programą naudojate. Jei neseniai sukūrėte paskyrą, pasirinkite 2 parinktį, tada įveskite vartotojo vardą ir slaptažodį. Po to diegimas bus baigtas.

Prieigos raktai

Pažvelkime į sukurto scenarijaus pavyzdį. $ nano is_example.py 15 eilutėje pamatysite eilutę, prasidedančią streamer = Streamer (bucket_…. Šios eilutės sukuria naują duomenų grupę pavadinimu „Python Stream Example“ir yra susieta su jūsų paskyra. Šis susiejimas įvyksta dėl access_key =”…” parametras toje pačioje eilutėje. Ši ilga raidžių ir skaičių serija yra jūsų pradinės būsenos paskyros prieigos raktas. Jei žiniatinklio naršyklėje einate į pradinės būsenos paskyrą, viršuje dešinėje spustelėkite savo vartotojo vardą, tada eikite „Mano nustatymai“, tą patį prieigos raktą rasite puslapio apačioje skiltyje „Srautinio perdavimo prieigos raktai“. Kiekvieną kartą, kai sukuriate duomenų srautą, tas prieigos raktas nukreipia tą duomenų srautą į jūsų paskyrą (todėl pasidalykite savo raktu su bet kuo).

Paleiskite „ExampleRun“, kad įsitikintumėte, jog galime sukurti duomenų srautą į jūsų pradinės būsenos paskyrą. Komandų eilutėje vykdykite šiuos veiksmus:

$ python is_example.py

Duomenų pavyzdys

Grįžkite į pradinės būsenos paskyrą žiniatinklio naršyklėje. Kairėje kaušo lentynos pusėje turėtų būti rodomas naujas duomenų rinkinys „Python Stream Example“(gali tekti atnaujinti puslapį). Norėdami peržiūrėti duomenis, spustelėkite šį segmentą.

Dabar esate pasirengęs pradėti transliuoti tikrus duomenis iš „AirVisual“API.

4 žingsnis: oro kokybės prietaisų skydelis

Oro kokybės prietaisų skydelis
Oro kokybės prietaisų skydelis
Oro kokybės prietaisų skydelis
Oro kokybės prietaisų skydelis
Oro kokybės prietaisų skydelis
Oro kokybės prietaisų skydelis
Oro kokybės prietaisų skydelis
Oro kokybės prietaisų skydelis

Dabar apie linksmąją dalį. Esame pasirengę pradėti naudoti „AirVisual“API, kad sukurtume oro kokybės prietaisų skydelį ir fiksuotume oro taršos duomenis, kad ir kur pasirinktume. Šis scenarijus „airquality.py“paprasčiausiai iškviečia „AirVisual“API naudodami jūsų API raktą ir nuskaito dabartinę oro taršos informaciją. Ji taip pat perduoda šiuos duomenis į jūsų pradinės būsenos paskyrą, kuri leis jums sukurti oro kokybės prietaisų skydelį.

Galite pasiekti scenarijų naudodami „Github“saugyklą, kurią anksčiau klonavome. Pirmas dalykas, kurį turime padaryti, yra įsitikinti, kad esame „AirVisual“kataloge:

$ cd airvisual

Iš čia galėsite pasiekti „python“failą, kurį paleisime kurdami oro kokybės prietaisų skydelį. Prieš paleisdami failą turime atlikti tam tikrus pakeitimus. Norėdami atidaryti „python“failą, naudokite komandą „nano“, kad atidarytumėte teksto rengyklę:

$ nano airquality.py

Kai teksto redaktorius bus atidarytas, scenarijaus viršuje pamatysite:

# --------- Vartotojo nustatymai ---------

LATITUDE = "LAT" LONGITUDE = "LONG" AIRVISUAL_API_KEY = "ORO VISUAL API RAKTAS" BUCKET_NAME = "Vietinė oro kokybė" BUCKET_KEY = "aq1" ACCESS_KEY = "PRADINĖS VALSTYBĖS PASIŪLYMŲ RAKTAS" MINUTES_BETWE -------------------------

turite įvesti savo platumą, ilgumą, „AirVisual“API raktą ir pradinės būsenos prieigos raktą. Parametras MINUTES_BETWEEN_READS nustatys, kaip dažnai scenarijus apklausos „AirVisual“API informaciją apie oro kokybę. Pakanka 5 minučių laiko, kad neviršytumėte 10 000 API skambučių per mėnesį limito. Norėdami atlikti trumpalaikius bandymus, galite nustatyti 0,5 minutės. Įvedę parametrus, išsaugokite ir išeikite iš įvesto teksto įvesdami „Control“+X. Dabar esate pasiruošę paleisti scenarijų:

$ python airquality.py

Jei norite, kad šis scenarijus veiktų nepertraukiamai ilgą laiką, galite naudoti komandą nohup (be pokalbio) taip:

$ nohup python airquality.py &

Kai tai bus paleista, eikite į pradinę būseną ir peržiūrėkite savo duomenis. Jūsų prietaisų skydelis turėtų atrodyti kaip paveikslėlis žemiau. Turite savo GPS vietą, oro kokybės indekso vertę ir pagrindinį teršalą.

Mano rekomendacija būtų pakeisti jūsų AQI vertę į matuoklį. Be to, perkelkite plyteles ir, jei reikia, pakeiskite dydį. Jei naudojate tai įterptajam prietaisų skydeliui, galite juos perkelti, kad prireikus tilptų.

Jei nuspręsite savo AQI vertę matuoti, galite nustatyti, kad spalvų slenkstis būtų panašus į oro kokybės indekso lentelę. Tai suteikia jums tiesioginį atnaujinimą, kur AQI vertė patenka į diagramą, kai tikrinate prietaisų skydelį. Prie prietaisų skydelio galite pridėti fono paveikslėlį, kad suteiktumėte daugiau konteksto.

Taigi jūs turite viską, ko reikia oro kokybės prietaisų skydui sukurti. Bet ką daryti, jei norite pridėti daugiau arba pridėti prie jau sukurtos orų informacijos suvestinės? Jei taip yra, skaitykite toliau!

5 veiksmas: sukurkite viso oro informacijos suvestinę

Sukurkite viso oro informacijos suvestinę
Sukurkite viso oro informacijos suvestinę

Ar jums nepakanka oro kokybės duomenų? Na, yra daugybė galimybių pridėti daugiau prie savo prietaisų skydelio arba srautu perduoti šiuos duomenis į orų prietaisų skydelį, kurį jau turite!

Siųskite orą ir oro kokybę į vieną prietaisų skydelį

Jei jau įdiegėte mūsų „DarkSky“API arba „Hyper-Local Weather Dashboard“projektą, galite pridėti šiuos oro kokybės duomenis prie esamos informacijos suvestinės. Tai gana paprasta. Viskas, ką jums reikia padaryti, tai pakeisti oro kokybės scenarijaus parametrus, kad gautumėte tą patį segmento pavadinimą, kibiro raktą ir prieigos raktą, kurį naudojote savo orų prietaisų skydelyje. Tai leis duomenis siųsti į tą pačią prietaisų skydelį. Dabar turėsite viso oro prietaisų skydelį!

Leiskite savo orų „Python“failui paskambinti, kad paleistumėte oro kokybės „Python“failą

Kita galimybė, jei nenorite paleisti dviejų atskirų programų, yra oro kokybės „python“failas į orų projektų katalogą. Leiskite orų projekto „python“failui paskambinti į oro kokybės failą, kad jis būtų paleistas, kai jūsų orų failas veikia. Dar kartą įsitikinkite, kad įdėjote tą patį segmento pavadinimą, segmento raktą ir prieigos raktą, kad jie būtų rodomi toje pačioje prietaisų skydelyje.

Sukurkite vieną failą su oro ir oro kokybe

Ir jei jaučiatės tikrai drąsus, galite įvesti oro kokybės kodą į savo oro python scenarijų ir tiesiog paleisti vieną scenarijų. Tai pareikalaus šiek tiek daugiau kodavimo pastangų nei kitos dvi parinktys, tačiau tai reiškia supaprastintą programą.

Srautu perduokite papildomą informaciją iš „AirVisual“API

Kaip matėte, kai skambinome į „AirVisual“API, joje yra daugiau informacijos nei tik oro kokybė. Taip pat pateikiama temperatūra, drėgmė, vėjo greitis, vėjo kryptis ir atmosferos slėgis. Šią informaciją galime siųsti į pradinę būseną taip pat, kaip siuntėme oro kokybės indekso vertę ir pagrindinį teršalą. Jums tereikia parašyti dar keletą pareiškimų.

Rekomenduojamas: