Talaan ng mga Nilalaman:

AirVisual Air Quality API Dashboard: 5 Hakbang
AirVisual Air Quality API Dashboard: 5 Hakbang

Video: AirVisual Air Quality API Dashboard: 5 Hakbang

Video: AirVisual Air Quality API Dashboard: 5 Hakbang
Video: Stream Air Quality with Air Visual API | GIT TECH'D 2024, Nobyembre
Anonim
Image
Image

Ang AirVisual (https://www.airvisual.com) ay isang website na nagbibigay ng data sa kalidad ng hangin sa buong mundo. Mayroon silang isang API na gagamitin namin upang makakuha ng data ng kalidad ng hangin na ipadala sa isang dashboard. Makikipag-ugnay kami sa API na ito na katulad sa kung paano namin nagawa sa dashboard ng panahon.

Ito ay isang simpleng proyekto na nagtuturo sa iyo kung paano gumamit ng isang API. Magsimula na tayo!

Hakbang 1: Pagsisimula

AirVisual API
AirVisual API

Pinagsama na namin ang halos lahat ng code, ngunit kakailanganin mong gumawa ka ng ilang mga pagsasaayos. Mayroong maraming mga pagkakataon para sa pagpapalawak ng kung ano ang aming nagawa, masyadong.

Upang makuha ang lahat ng mga bagay na inihanda namin para sa iyo, kakailanganin mong i-clone ang imbakan mula sa GitHub. Ang GitHub ay isang kahanga-hangang serbisyo na nagbibigay-daan sa amin upang mag-imbak, baguhin, at pamahalaan ang mga proyekto tulad nito. Gugustuhin mong patakbuhin ang script na ito sa isang nakatuong aparato. Maaari kang gumamit ng isang laptop, Raspberry Pi, o iba pang solong board computer. Upang mai-clone ang repository na kailangan lang nating gawin ay pumunta sa terminal ng aming computer o Pi, at i-type ang utos na ito:

$ git clone

Pindutin ang enter at makikita mo ang impormasyong ito:

$ git clone https://github.com/InitialState/airvisual.git Pag-clone sa 'airvisual'… remote: Pag-enumer ng mga bagay: 13, tapos na. remote: Nagbibilang ng mga bagay: 100% (13/13), tapos na. remote: Pag-compress ng mga bagay: 100% (12/12), tapos na. remote: Kabuuang 13 (delta 2), muling ginamit na 0 (delta 0), muling ginamit na pack 0 Pag-unpack ng mga bagay: 100% (13/13), tapos na.

Kapag nakita mo ito pagkatapos ay bumabati, matagumpay mong na-clone ang GitHub Repo at magkaroon ng lahat ng kinakailangang mga file upang mabuo ang proyektong ito. Lumipat tayo sa bagong direktoryo. Upang baguhin ang direktoryo, ang kailangan mo lang gawin ay i-type ang "cd" at pagkatapos ay i-type ang pangalan ng direktoryo na nais mong puntahan. Sa kasong ito, magta-type kami ng:

$ cd airvisual

Kapag na-hit ang enter, makikita mo na nasa direktoryo na kami ng airvisual. Mag-type tayo ng "ls" upang makita kung anong mga file ang na-install natin. Dapat ay parang isang bagay ka tulad ng sumusunod:

LICENSE README.md airquality.py

Kailangan namin ng ilang iba pang mga item bago namin mai-edit ang code upang tingnan natin sa susunod ang Air Quality API.

Hakbang 2: AirVisual API

AirVisual API
AirVisual API
AirVisual API
AirVisual API

Ang AirVisual ay may kalidad sa hangin (AQI) at polusyon API na nagbibigay-daan sa hanggang sa 10, 000 mga tawag sa API bawat buwan nang libre. Maaari kang mag-sign up para sa antas ng Komunidad. Kapag nag-sign up ka, maaari kang pumunta sa My Air at sa tab na API. Dito mo makikita ang iyong mga API key at dokumentasyon sa API.

I-click ang button na + Bagong Key upang likhain ang aming unang key sa pag-access sa API. Para sa Select Plan, gamitin ang dropdown upang piliin ang Komunidad at i-click ang Lumikha. Kung maayos ang lahat makakakita ka ng isang mensahe sa tagumpay at maaari kang bumalik sa iyong dashboard ng API upang mahanap ang iyong bagong pangunahing impormasyon. Ang Key halaga (mga numero at character) ay kung ano ang kailangan mo para sa proyektong ito. Kung susuriin mo ang dokumentasyon ng API makikita mo maraming mga uri ng mga tawag sa API na maaari kang tumawag. Para sa proyektong ito nais naming makuha ang pinakamalapit na data ng lungsod batay sa mga coordinate ng GPS. Para sa tawag na ito kakailanganin mo ang iyong longitude, latitude, at API key. Ipasok ang mga parameter na iyon sa tawag sa ibaba, ilagay iyon sa isang address bar sa iyong browser, at pindutin ang enter.

API

Ibabalik nito ang data ng pinakamalapit na lungsod batay sa mga coordinate ng GPS. Magmumukha ito ng ganito:

Inirerekumenda ko ang paggamit ng isang JSON formatter upang makakuha ng isang mas mahusay na pagtingin sa data. Kung gagamitin mo ito ay magmukhang ganito ang hitsura:

"katayuan": "tagumpay", "data": {"city": "Nashville", "state": "Tennessee", "country": "USA", "location": {"type": "Point", "coordinate": [- 86.7386, 36.1767]}, "kasalukuyang": {"panahon": {"ts": "2019-04-08T19: 00: 00.000Z", "_v": 0, "nilikhaAt": "2019-04-08T19: 04: 18.662Z "," hu ": 88," ic ":" 04d "," pr ": 1012," tp ": 18," na-updateAt ":" 2019-04-08T19: 46: 53.140Z "," wd ": 90, "ws": 3.1}, "polusyon": {"ts": "2019-04-08T18: 00: 00.000Z", "aqius": 10, "mainus": "p2", "aqicn": 3, "maincn": "p2"}

Madali nating makikita ngayon na mayroon tayong impormasyon sa lokasyon, panahon, at polusyon. Ang dalawang halagang pinagtutuunan namin ng pansin para sa proyektong ito ay ang Air Quality Index US (aquis) at Main Pollutant (mainus). Sinasabi sa amin ng halagang Air Quality Index kung ano ang lokal na halaga ng kalidad ng hangin at kung paano ito nauugnay sa iyong kalusugan. Nasa ibaba ang color chart na tsart. Sinasabi sa amin ng pangunahing pollutant kung ano ang pangunahing polusyon sa hangin para sa iyong lugar (particulate matter, nitrogen oxide, ozone, carbon monoxide, sulfur oxide). Ang mga pollutant na ito ay karaniwang mga byproduct ng mga stack ng usok o paglabas ng sasakyan.

Ngayon alam na namin kung paano gamitin ang Air Visual API, ang susunod na kakailanganin namin ay isang dashboard platform upang maipakita ang data.

Hakbang 3: Paunang Estado

Paunang Estado
Paunang Estado
Paunang Estado
Paunang Estado

Nais naming i-stream ang lahat ng aming data ng panahon sa isang serbisyong cloud at gawin ang serbisyong iyon na isang magandang dashboard. Ang aming data ay nangangailangan ng isang patutunguhan upang gagamitin namin ang Initial State bilang patutunguhan.

Magrehistro para sa Paunang Account ng Estado

Pumunta sa https://iot.app.initialstate.com at lumikha ng isang bagong account.

I-install ang ISStreamer

I-install ang Initial State Python module sa iyong laptop o Raspberry Pi. Sa isang prompt ng utos, patakbuhin ang sumusunod na utos:

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

Gumawa ng ilang Automagic

Matapos mong patakbuhin ang curl command, makakakita ka ng katulad sa sumusunod na output sa screen:

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

Password: Simula ng ISStreamer Python Madaling Pag-install! Maaari itong tumagal ng ilang minuto upang mai-install, kumuha ng kape:) Ngunit huwag kalimutang bumalik, magkakaroon ako ng mga katanungan sa paglaon! Natagpuan easy_install: setuptools 1.1.6 Natagpuan pip: pip 1.5.6 mula sa /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip pangunahing bersyon: 1 pip menor de edad na bersyon: Natagpuan ang 5 ISStreamer, ina-update… Napapanahon na ang kinakailangan: ISStreamer sa /Library/Python/2.7/site-packages Nililinis … Nais mo bang awtomatikong makakuha ng isang halimbawa ng script? [y / N] Saan mo nais i-save ang halimbawa? [default:./is_example.py] Mangyaring piliin kung aling Initial State app ang iyong ginagamit: 1. app.initialstate.com 2. [BAGO!] iot.app.initialstate.com Ipasok ang pagpipilian 1 o 2: Ipasok ang iot.app.initialstate.com pangalan ng gumagamit: Ipasok ang iot.app.initialstate.com password:

Kapag na-prompt na awtomatikong makakuha ng isang halimbawa ng script, i-type ang y. Lilikha ito ng isang script ng pagsubok na maaari naming patakbuhin upang matiyak na maaari naming mai-stream ang data sa Paunang Estado. Ang susunod na prompt ay magtatanong kung saan mo nais i-save ang halimbawang file. Maaari kang mag-type ng isang pasadyang lokal na landas o pindutin ang enter upang tanggapin ang default na lokasyon. Panghuli, tatanungin ka kung aling Initial State app ang iyong ginagamit. Kung nakagawa ka kamakailan ng isang account, piliin ang pagpipilian 2 pagkatapos ay ipasok ang pangalan ng gumagamit at password. Pagkatapos ng pag-install na iyon ay kumpleto.

Mga Access Key

Tingnan natin ang halimbawa ng script na nilikha. $ nano is_example.py Sa linya 15, makikita mo ang isang linya na nagsisimula sa streamer = Streamer (bucket_…. Lumilikha ang mga linyang ito ng isang bagong data bucket na pinangalanang "Halimbawa ng Python Stream" at nauugnay sa iyong account. Nangyayari ang ugnayan na ito dahil sa access_key =”…” na parameter sa parehong linya. Ang mahabang serye ng mga titik at numero ay ang iyong key ng pag-access ng Initial State account. Kung pupunta ka sa iyong Initial State account sa iyong web browser, mag-click sa iyong username sa kanang tuktok, pagkatapos ay pumunta sa "aking mga setting", mahahanap mo ang parehong key ng pag-access sa ilalim ng pahina sa ilalim ng "Streaming Access Keys". Sa tuwing lumikha ka ng isang stream ng data, ididirekta ng access key na iyon ang data stream sa iyong account (kaya huwag ibahagi ang iyong susi sa sinuman).

Patakbuhin ang HalimbawaIpatakbo ang script ng pagsubok upang matiyak na makakalikha kami ng isang data stream sa iyong Initial State account. Patakbuhin ang sumusunod sa iyong prompt ng utos:

$ python ay_example.py

Halimbawa ng Data

Bumalik sa iyong Initial State account sa iyong web browser. Ang isang bagong bucket ng data na tinatawag na "Halimbawa ng Python Stream" ay dapat na lumabas sa kaliwa sa iyong bucket shelf (maaaring kailanganin mong i-refresh ang pahina). Mag-click sa bucket na ito upang matingnan ang data.

Handa ka na ngayon upang simulang mag-streaming ng totoong data mula sa AirVisual API.

Hakbang 4: Dashboard ng Kalidad ng Hangin

Dashboard ng Kalidad ng Hangin
Dashboard ng Kalidad ng Hangin
Dashboard ng Kalidad ng Hangin
Dashboard ng Kalidad ng Hangin
Dashboard ng Kalidad ng Hangin
Dashboard ng Kalidad ng Hangin
Dashboard ng Kalidad ng Hangin
Dashboard ng Kalidad ng Hangin

Ngayon para sa kasiya-siyang bahagi. Handa na kaming magsimulang gumamit ng AirVisual API upang lumikha ng isang dashboard na may kalidad na hangin at makuha ang data ng polusyon sa hangin para saan man namin pumili. Ang script ng airquality.py na ito ay tumatawag lamang sa AirVisual API gamit ang iyong API key at kinukuha ang kasalukuyang impormasyon sa polusyon sa hangin. Mag-stream din ang data na iyon sa iyong Initial State account, na magbibigay-daan sa iyo upang lumikha ng isang dashboard na kalidad ng hangin.

Maaari mong ma-access ang script sa pamamagitan ng repository ng Github na na-clone namin nang mas maaga. Ang unang bagay na kailangan nating gawin ay tiyakin na nasa direktoryo ng AirVisual kami:

$ cd airvisual

Mula dito, maa-access mo ang python file na tatakbo namin upang likhain ang aming dashboard na kalidad ng hangin. Kailangan naming gumawa ng ilang mga pagbabago sa file bago namin ito patakbuhin. Upang buksan ang python file, gamitin ang nano command upang buksan ang text editor:

$ nano airquality.py

Kapag ang text editor ay bukas, makikita mo ang sumusunod malapit sa tuktok ng iyong script:

# --------- Mga Setting ng Gumagamit ----

LATITUDE = "LAT" LONGITUDE = "LONG" AIRVISUAL_API_KEY = "AIR VISUAL API KEY" BUCKET_NAME = "Local Air Quality" BUCKET_KEY = "aq1" ACCESS_KEY = "INITIAL STATE ACCES KEY" MINUTES_BETWEEN_READS = 5 -----------------

kailangan kong ipasok ang iyong latitude, longitude, AirVisual API key, at key ng pag-access ng Inisyal na Estado. Itatakda ng parameter ng MINUTES_BETWEEN_READS kung gaano kadalas i-poll ng iyong script ang AirVisual API para sa impormasyon sa kalidad ng hangin. 5 minuto sapat na oras upang hindi ka lumampas sa iyong 10, 000 API na tawag sa bawat buwan na limitasyon. Alang-alang sa panandaliang pagsubok, maaari mong itakda ito sa 0.5 minuto. Kapag naipasok na ang iyong mga parameter, i-save at lumabas sa text enter sa pamamagitan ng pagta-type sa Control + X. Handa ka na ngayong patakbuhin ang iyong script:

$ python airquality.py

Kung nais na iwanan ang script na tumatakbo nang hindi nagagambala sa mahabang panahon, maaari mong gamitin ang nohup na utos (walang hang-up) tulad ng sumusunod:

$ nohup python airquality.py &

Kapag tumatakbo na ito, pumunta sa Paunang Estado upang matingnan ang iyong data. Ang iyong dashboard ay dapat magmukhang katulad ng larawan sa ibaba. Nasa iyo ang lokasyon ng GPS, ang halaga ng index ng kalidad ng hangin, at ang iyong pangunahing polusyon.

Gusto ng aking rekomendasyon na baguhin ang iyong halaga ng AQI sa isang gauge tile. Gayundin, ilipat ang mga tile sa paligid at baguhin ang laki kung kinakailangan. Kung ginagamit mo ito para sa isang naka-embed na dashboard, maaari mong ilipat ang mga ito sa paligid upang magkasya kung kinakailangan.

Kung magpapasya kang gawing isang sukat ang iyong AQI, maaari mong itakda ang kulay ng threshold na maging katulad sa tsart ng indeks ng kalidad ng hangin. Binibigyan ka nito ng isang instant na pag-update kung saan ang halaga ng AQI ay nahuhulog sa tsart kapag tiningnan mo ang iyong dashboard. Maaari kang magdagdag ng isang imahe sa background sa iyong dashboard upang bigyan ito ng higit pang konteksto.

Kaya mayroon kang lahat na kailangan mo upang lumikha ng isang dashboard na kalidad ng hangin. Ngunit paano kung nais mong magdagdag ng higit o idagdag ito sa isang dashboard ng panahon na nilikha mo? Kung iyon ang kaso pagkatapos ay patuloy na basahin!

Hakbang 5: Gumawa ng isang Kabuuang Dashboard ng Panahon

Gumawa ng isang Kabuuang Dashboard ng Panahon
Gumawa ng isang Kabuuang Dashboard ng Panahon

Ang data ba sa kalidad ng hangin ay hindi sapat para sa iyo? Kaya maraming mga pagpipilian upang magdagdag ng higit pa sa iyong dashboard o i-stream ang data na ito sa isang dashboard ng panahon na mayroon ka na!

Mag-stream ng Panahon at Kalidad ng Hangin Sa Isang Dashboard

Kung naipatupad mo na ang aming proyekto ng DarkSky API o Hyper-Local Weather Dashboard, maaari mong idagdag ang data ng kalidad ng hangin na ito sa iyong mayroon nang dashboard. Medyo simple, ang kailangan mo lang gawin ay baguhin ang iyong mga parameter sa script ng kalidad ng hangin upang magkaroon ng parehong pangalan ng bucket, bucket key, at access key tulad ng ginamit mo para sa iyong dashboard ng panahon. Papayagan nitong maipadala ang data sa parehong dashboard na iyon. Ngayon magkakaroon ka ng isang kabuuang dashboard ng panahon!

Ipagawa ang Iyong Weather Python File Gumawa ng isang Tawag upang Patakbuhin ang Air Quality Python File

Ang isa pang pagpipilian kung hindi mo nais na magpatakbo ng dalawang magkakahiwalay na programa ay ilagay ang file ng kalidad na sawa ng sawa sa direktoryo ng proyekto ng panahon. Ipagawa ang tawag sa file ng proyekto sa lagay ng panahon ng isang tawag sa kalidad ng file ng hangin upang tumakbo ito kapag tumatakbo ang iyong file ng panahon. Muli, tiyaking ilagay ang parehong pangalan ng bucket, bucket key, at access key upang tumakbo sila sa parehong dashboard.

Lumikha ng Isang solong File na may Parehong Panahon at Kalidad sa Hangin

At kung sa tingin mo ay tunay na naka-bold, maaari kang maglagay ng ilan sa mga code sa kalidad ng hangin sa iyong script ng sawa ng panahon at magkaroon lamang ng isang solong script upang tumakbo. Mangangailangan ito ng kaunti pang pagsisikap sa pag-coding kaysa sa iba pang dalawang mga pagpipilian ngunit gumagawa ito para sa isang pinasimple na programa.

Mag-stream ng Karagdagang Impormasyon mula sa AirVisual API

Tulad ng nakita mo noong tumawag kami sa AirVisual API, mayroon itong maraming impormasyon kaysa sa kalidad lamang ng hangin. Nagbibigay din ito ng temperatura, kahalumigmigan, bilis ng hangin, direksyon ng hangin, at presyon ng atmospera. Maaari naming ipadala ang impormasyong iyon sa Paunang Estado sa parehong paraan na ipinadala namin ang halaga ng index ng kalidad ng hangin at pangunahing pollutant. Kailangan lamang sa iyo na sumulat ng ilan pa kung mga pahayag.

Inirerekumendang: