Cuprins:

Tabloul de bord al calității aerului AirVisual: 5 pași
Tabloul de bord al calității aerului AirVisual: 5 pași

Video: Tabloul de bord al calității aerului AirVisual: 5 pași

Video: Tabloul de bord al calității aerului AirVisual: 5 pași
Video: 91 martori de bord EXPLICATI 2024, Iulie
Anonim
Image
Image

AirVisual (https://www.airvisual.com) este un site web care oferă date despre calitatea aerului din întreaga lume. Au un API pe care îl vom folosi pentru a obține date privind calitatea aerului pe care le vom trimite la un tablou de bord. Vom interacționa cu acest API similar cu cum am procedat cu tabloul de bord meteo.

Acesta este un proiect simplu care vă învață cum să utilizați un API. Să începem!

Pasul 1: Introducere

API AirVisual
API AirVisual

Am adunat deja cea mai mare parte a codului, dar veți avea nevoie să faceți câteva ajustări pe parcurs. Există o mulțime de oportunități pentru a ne extinde și ceea ce am făcut.

Pentru a prelua toate lucrurile pe care ți le-am pregătit, va trebui să clonezi depozitul din GitHub. GitHub este un serviciu extraordinar care ne permite să stocăm, să revizuim și să gestionăm proiecte de acest gen. Veți dori să rulați acest script pe un dispozitiv dedicat. Puteți utiliza un laptop, Raspberry Pi sau alt computer de bord unic. Pentru a clona depozitul, tot ce trebuie să facem este să intrăm în terminalul computerului sau Pi și să tastați această comandă:

$ git clone

Apăsați pe Enter și veți vedea aceste informații:

$ git clone https://github.com/InitialState/airvisual.git Clonarea în „airvisual” … la distanță: Enumerarea obiectelor: 13, gata. la distanță: Numărarea obiectelor: 100% (13/13), gata. la distanță: Comprimarea obiectelor: 100% (12/12), gata. la distanță: Total 13 (delta 2), reutilizat 0 (delta 0), împachetat reutilizat 0 Obiecte de ambalare: 100% (13/13), gata.

După ce vedeți acest lucru, apoi felicitări, ați clonat cu succes GitHub Repo și aveți toate fișierele necesare pentru a construi acest proiect. Să trecem la noul director. Pentru a schimba directorul, tot ce trebuie să faceți este să tastați „cd” și apoi să tastați numele directorului la care doriți să mergeți. În acest caz, vom introduce:

$ cd airvisual

După ce apăsăm Enter, veți vedea că suntem acum în directorul Airvisual. Să tastăm „ls” pentru a vedea ce fișiere am instalat. Ar trebui să pară ceva după cum urmează:

LICENȚĂ README.md airquality.py

Avem nevoie de alte elemente înainte de a putea edita codul, așa că haideți să analizăm în continuare calitatea aerului API.

Pasul 2: API AirVisual

API AirVisual
API AirVisual
API AirVisual
API AirVisual

AirVisual are o API a calității aerului (AQI) și a poluării care permite până la 10 000 de apeluri API pe lună gratuit. Vă puteți înscrie la nivelul Comunității. După ce vă înscrieți, puteți accesa My Air și fila API. Aici veți găsi cheile și documentația API pe API.

Faceți clic pe butonul + Cheie nouă pentru a crea prima noastră cheie de acces API. Pentru Selectare plan, utilizați meniul derulant pentru a selecta Comunitate și faceți clic pe Creare. Dacă totul merge bine, veți vedea un mesaj de succes și vă puteți întoarce la tabloul de bord API pentru a găsi noile informații cheie. Valoarea cheie (cifre și caractere) este ceea ce veți avea nevoie pentru acest proiect. Dacă parcurgeți documentația API, veți vedea că puteți efectua mai multe tipuri de apeluri API. Pentru acest proiect dorim să obținem cele mai apropiate date despre oraș pe baza coordonatelor GPS. Pentru acest apel veți avea nevoie de longitudine, latitudine și cheia API. Introduceți acei parametri în apelul de mai jos, introduceți-l într-o bară de adrese din browserul dvs. și apăsați Enter.

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

Aceasta va returna datele celui mai apropiat oraș pe baza coordonatelor GPS. Va arăta cam așa:

Vă recomand să utilizați un formatator JSON pentru a obține o vizualizare mai bună a datelor. Dacă o folosiți, va arăta un pic așa în schimb:

"status": "succes", "data": {"city": "Nashville", "state": "Tennessee", "country": "SUA", "location": {"type": "Point", "coordinates": [- 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}, "poluare": {"ts": "2019-04-08T18: 00: 00.000Z", "aqius": 10, "mainus": "p2", "aqicn": 3, "maincn": "p2"}

Putem vedea cu ușurință acum că avem informații despre locație, vreme și poluare. Cele două valori pe care ne concentrăm pentru acest proiect sunt indicele calității aerului SUA (aquis) și poluantul principal (mainus). Valoarea indicelui calității aerului ne spune care este valoarea locală a calității aerului și modul în care aceasta se referă la sănătatea dumneavoastră. Graficul codificat prin culori este mai jos. Principalul poluant ne spune care este principalul poluant din aer pentru zona dvs. (particule, oxid de azot, ozon, monoxid de carbon, oxid de sulf). Acești poluanți sunt în mod obișnuit subproduse ale stivelor de fum sau emisiilor vehiculelor.

Acum, că știm cum să folosim API-ul Air Visual, următorul lucru de care vom avea nevoie este o platformă de bord pentru a afișa datele.

Pasul 3: Starea inițială

Stare initiala
Stare initiala
Stare initiala
Stare initiala

Vrem să transmitem toate datele vremii către un serviciu cloud și să ne transformăm datele într-un tablou de bord frumos. Datele noastre au nevoie de o destinație, așa că vom folosi Starea inițială ca destinație.

Înregistrați-vă pentru contul inițial de stat

Accesați https://iot.app.initialstate.com și creați un cont nou.

Instalați ISStreamer

Instalați modulul Initial State Python pe laptop sau Raspberry Pi. La promptul de comandă, rulați următoarea comandă:

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

Faceți ceva Automagic

După ce executați comanda curl, veți vedea ceva similar cu următoarea ieșire pe ecran:

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

Parolă: Începând cu ISStreamer Python Instalare ușoară! Acest lucru poate dura câteva minute pentru a instala, luați o cafea:) Dar nu uitați să vă întoarceți, voi avea întrebări mai târziu! S-a găsit easy_install: setuptools 1.1.6 S-a găsit pip: pip 1.5.6 din /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) versiune principală pip: 1 versiune pip minoră: 5 ISStreamer găsit, actualizare … Cerință deja actualizată: ISStreamer în /Library/Python/2.7/site-packages Curățare … Doriți să obțineți automat un exemplu de script? [y / N] Unde doriți să salvați exemplul? [implicit:./is_example.py] Vă rugăm să selectați aplicația Stare inițială pe care o utilizați: 1. app.initialstate.com 2. [NOU!] iot.app.initialstate.com Introduceți alegerea 1 sau 2: Introduceți iot.app.initialstate.com nume utilizator: Introduceți parola iot.app.initialstate.com:

Când vi se solicită să obțineți automat un exemplu de script, tastați y. Aceasta va crea un script de testare pe care îl putem rula pentru a ne asigura că putem transmite în flux date în starea inițială. Următorul prompt vă va întreba unde doriți să salvați fișierul de exemplu. Puteți să tastați o cale locală personalizată sau să apăsați Enter pentru a accepta locația implicită. În cele din urmă, veți fi întrebat ce aplicație de stare inițială utilizați. Dacă ați creat recent un cont, selectați opțiunea 2, apoi introduceți numele de utilizator și parola. După aceea, instalarea va fi completă.

Taste de acces

Să aruncăm o privire la exemplul de script care a fost creat. $ nano is_example.py Pe linia 15, veți vedea o linie care începe cu streamer = Streamer (bucket_ …. Această linie creează o nouă bucket de date numită „Exemplu de flux Python” și este asociată contului dvs. access_key = "…" parametru pe aceeași linie. Această serie lungă de litere și cifre este cheia de acces la contul dvs. de stat inițial. Dacă accesați contul dvs. de stat inițial din browserul dvs. web, faceți clic pe numele de utilizator din dreapta sus, apoi accesați la „setările mele”, veți găsi aceeași cheie de acces în partea de jos a paginii sub „Chei de acces în flux”. De fiecare dată când creați un flux de date, acea cheie de acces va direcționa fluxul de date către contul dvs. (deci nu împărtășiți cheia cu oricine).

Rulați Exemplul Rulați scriptul de testare pentru a vă asigura că putem crea un flux de date în contul dvs. de stare inițială. Rulați următoarele în promptul de comandă:

$ python is_example.py

Exemple de date

Reveniți la contul de stat inițial din browserul dvs. web. O nouă găleată de date numită „Exemplu de flux Python” ar fi trebuit să apară în stânga în raftul găleată (este posibil să trebuiască să reîmprospătați pagina). Faceți clic pe acest compartiment pentru a vizualiza datele.

Acum sunteți gata să începeți să transmiteți date reale din API-ul AirVisual.

Pasul 4: Tabloul de bord pentru calitatea aerului

Tabloul de bord pentru calitatea aerului
Tabloul de bord pentru calitatea aerului
Tabloul de bord pentru calitatea aerului
Tabloul de bord pentru calitatea aerului
Tabloul de bord pentru calitatea aerului
Tabloul de bord pentru calitatea aerului
Tabloul de bord pentru calitatea aerului
Tabloul de bord pentru calitatea aerului

Acum, pentru partea distractivă. Suntem gata să începem să folosim API-ul AirVisual pentru a crea un tablou de bord al calității aerului și pentru a captura datele privind poluarea aerului oriunde am alege. Acest script airquality.py apelează pur și simplu API-ul AirVisual folosind cheia API și preia informațiile curente despre poluarea aerului. De asemenea, transmite aceste date în contul dvs. de stat inițial, ceea ce vă va permite să creați un tablou de bord al calității aerului.

Puteți accesa scriptul prin depozitul Github pe care l-am clonat mai devreme. Primul lucru pe care trebuie să-l facem este să ne asigurăm că suntem în directorul AirVisual:

$ cd airvisual

De aici, veți putea accesa fișierul python pe care îl vom rula pentru a crea tabloul nostru de bord pentru calitatea aerului. Trebuie să aducem câteva modificări fișierului înainte de al rula. Pentru a deschide fișierul python, utilizați comanda nano pentru a deschide editorul de text:

$ nano airquality.py

Odată ce editorul de text este deschis, veți vedea următoarele în partea de sus a scriptului:

# --------- Setarile utilizatorului ---------

LATITUDE = "LAT" LONGITUDE = "LONG" AIRVISUAL_API_KEY = "AIR VISUAL API KEY" BUCKET_NAME = "Calitatea aerului local" BUCKET_KEY = "aq1" ACCESS_KEY = "INITIAL STATE ACCES KEY" MINUTES_BETWEEN_READS = 5 # - -------------------------

trebuie să introduceți latitudinea, longitudinea, cheia API AirVisual și cheia de acces la starea inițială. Parametrul MINUTES_BETWEEN_READS va seta cât de des scriptul dvs. va interoga API-ul AirVisual pentru informații despre calitatea aerului. Timp suficient de 5 minute pentru a nu depăși limita de 10 000 de apeluri API pe lună. Din motive de testare pe termen scurt, puteți seta acest lucru la 0,5 minute. Odată ce ați introdus parametrii, salvați și ieșiți din introducerea textului tastând Control + X. Acum sunteți gata să rulați scriptul:

$ python airquality.py

Dacă doriți să lăsați acest script să ruleze neîntrerupt pentru o lungă perioadă de timp, puteți utiliza comanda nohup (fără închidere) după cum urmează:

$ nohup python airquality.py &

Odată ce aceasta rulează, accesați Starea inițială pentru a vizualiza datele. Tabloul de bord ar trebui să arate ca imaginea de mai jos. Aveți locația GPS, valoarea indicelui calității aerului și poluantul principal.

Recomandarea mea ar fi să vă schimbați valoarea AQI într-o țiglă de calibru. De asemenea, mutați plăcile și redimensionați-le după cum este necesar. Dacă utilizați acest lucru pentru un tablou de bord încorporat, le puteți deplasa pentru a se potrivi după cum este necesar.

Dacă decideți să faceți ca valoarea AQI să fie un ecartament, puteți seta pragul de culoare să fie similar cu graficul indicelui calității aerului. Acest lucru vă oferă o actualizare instantanee cu privire la locul în care valoarea AQI cade pe grafic atunci când vă verificați tabloul de bord. Puteți adăuga o imagine de fundal la tabloul de bord pentru a-i oferi mai mult context.

Așadar, aveți tot ce aveți nevoie pentru a crea un tablou de bord de calitate a aerului. Dar dacă doriți să adăugați mai multe sau să adăugați acest lucru la un tablou de bord meteo pe care l-ați creat deja? Dacă acesta este cazul, continuați să citiți!

Pasul 5: creați un tablou de bord cu vreme totală

Creați un tablou de bord cu vreme totală
Creați un tablou de bord cu vreme totală

Datele privind calitatea aerului nu sunt suficiente pentru dvs.? Ei bine, există o mulțime de opțiuni pentru a adăuga mai multe la tabloul de bord sau pentru a transmite aceste date într-un tablou de bord meteo pe care îl aveți deja!

Transmiteți vremea și calitatea aerului într-un singur tablou de bord

Dacă ați implementat deja API-ul nostru DarkSky sau proiectul Hyper-Local Weather Dashboard, puteți adăuga aceste date privind calitatea aerului în tabloul dvs. de bord existent. Este destul de simplu, tot ce trebuie să faceți este să vă schimbați parametrii în scriptul de calitate a aerului pentru a avea același nume de cupă, cheie de cupă și cheie de acces ca ceea ce ați folosit pentru tabloul de bord meteo. Aceasta va permite trimiterea datelor în același tablou de bord. Acum veți avea un tablou de bord meteo total!

Solicitați fișierului dvs. Python Weather să efectuați un apel pentru a rula fișierul Python de calitate a aerului

O altă opțiune dacă nu doriți să rulați două programe separate este să introduceți fișierul Python de calitate a aerului în directorul proiectului meteo. Solicitați fișierului python proiect meteo să efectueze un apel către fișierul calității aerului, astfel încât acesta să ruleze atunci când fișierul dvs. meteo rulează. Din nou, asigurați-vă că puneți același nume de bucket, cheie de bucket și cheie de acces, astfel încât acestea să ruleze pe același tablou de bord.

Creați un singur fișier atât cu vremea cât și cu calitatea aerului

Și dacă vă simțiți foarte îndrăzneți, puteți introduce o parte din codul calității aerului în scriptul dvs. python meteo și aveți doar un singur script de rulat. Va necesita un pic mai mult efort de codare decât celelalte două opțiuni, dar face un program simplificat.

Transmiteți informații suplimentare din API-ul AirVisual

După cum ați văzut când am apelat la API-ul AirVisual, acesta are mai multe informații decât calitatea aerului. De asemenea, oferă temperatura, umiditatea, viteza vântului, direcția vântului și presiunea atmosferică. Putem trimite aceste informații către statul inițial în același mod în care am trimis valoarea indicelui de calitate a aerului și poluantul principal. Este nevoie doar să mai scrieți câteva dacă declarații.

Recomandat: