INHOUDSOPGAWE:

AirVisual Air Quality API -dashboard: 5 stappe
AirVisual Air Quality API -dashboard: 5 stappe

Video: AirVisual Air Quality API -dashboard: 5 stappe

Video: AirVisual Air Quality API -dashboard: 5 stappe
Video: IQAir AirVisual Pro RETURNED // Not Accurate? // Horrible Customer Service // Micro USB in 2023 😹👎🏻 2024, November
Anonim
Image
Image

AirVisual (https://www.airvisual.com) is 'n webwerf wat data verskaf oor luggehalte regoor die wêreld. Hulle het 'n API wat ons sal gebruik om data van luggehalte na 'n paneelbord te stuur. Ons sal interaksie hê met hierdie API, net soos ons met die weerpaneelbord gedoen het.

Dit is 'n eenvoudige projek wat u leer hoe om 'n API te gebruik. Laat ons begin!

Stap 1: Aan die gang

AirVisual API
AirVisual API

Ons het reeds die grootste deel van die kode saamgestel, maar u moet 'n paar aanpassings maak. Daar is ook baie geleenthede om uit te brei op wat ons gedoen het.

Om al die dinge wat ons vir u voorberei het, op te haal, moet u die bewaarplek van GitHub kloon. GitHub is 'n wonderlike diens waarmee ons projekte soos hierdie kan stoor, hersien en bestuur. U sal hierdie skrif op 'n toegewyde toestel wil uitvoer. U kan 'n skootrekenaar, Raspberry Pi of 'n ander enkelbordrekenaar gebruik. Om die bewaarplek te kloon, is alles wat ons hoef te doen, in die terminale van ons rekenaar of Pi te gaan en hierdie opdrag in te voer:

$ git kloon

Tik op enter en u sien hierdie inligting:

$ git -kloon https://github.com/InitialState/airvisual.git Kloning in 'airvisual' … afstandsbediening: opsomming van voorwerpe: 13, klaar. afgeleë: voorwerpe tel: 100% (13/13), klaar. afgeleë: voorwerpe saamgepers: 100% (12/12), klaar. afgeleë: Totaal 13 (delta 2), hergebruik 0 (delta 0), hergebruik in pakket 0 Voorwerpe uitpak: 100% (13/13), klaar.

As u dit eers sien, dan geluk, u het die GitHub Repo suksesvol gekloon en al die nodige lêers gehad om hierdie projek te bou. Kom ons gaan na die nuwe gids. Om die gids te verander, tik u slegs 'cd' en tik die naam van die gids waarna u wil gaan. In hierdie geval tik ons:

$ cd airvisual

Sodra ons op enter druk, sal u sien dat ons nou in die lugvisuele gids is. Kom ons tik "ls" om te sien watter lêers ons geïnstalleer het. U moet iets soos volg lyk:

LISENSIE -README.md airquality.py

Ons benodig 'n paar ander items voordat ons die kode kan wysig, dus kyk ons daarna na die Air Quality API.

Stap 2: AirVisual API

AirVisual API
AirVisual API
AirVisual API
AirVisual API

AirVisual het 'n luggehalte (AQI) en besoedelings -API wat tot 10 000 API -oproepe per maand gratis moontlik maak. U kan inteken op die Community -vlak. Sodra u aangemeld het, kan u na My Air en die API -oortjie gaan. Hier vind u u API -sleutels en dokumentasie oor die API.

Klik op die knoppie +Nuwe sleutel om ons eerste API -toegangssleutel te skep. Vir die kies plan, gebruik die aftreklys om gemeenskap te kies en klik op skep. As alles goed gaan, sien u 'n suksesboodskap en kan u terugkeer na u API -dashboard om u nuwe belangrike inligting te vind. Die sleutelwaarde (getalle en karakters) is wat u benodig vir hierdie projek. As u die API -dokumentasie lees, sal u sien dat daar verskillende soorte API -oproepe is. Vir hierdie projek wil ons die naaste stadsdata kry op grond van GPS -koördinate. Vir hierdie oproep benodig u u lengtegraad, breedtegraad en API -sleutel. Voer die parameters in die oproep hieronder in, plaas dit in die adresbalk van u blaaier en druk enter.

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

Dit sal die data van die naaste stad teruggee op grond van die GPS -koördinate. Dit sal so iets lyk:

Ek beveel aan dat u 'n JSON -formater gebruik om die data beter te sien. As u dit gebruik, sal dit eerder 'n bietjie soos volg lyk:

"status": "sukses", "data": {"city": "Nashville", "state": "Tennessee", "country": "USA", "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}, "besoedeling": {"ts": "2019-04-08T18: 00: 00.000Z", "aqius": 10, "mainus": "p2", "aqicn": 3, "maincn": "p2"}

Ons kan maklik sien dat ons nou inligting het oor ligging, weer en besoedeling. Die twee waardes waarop ons fokus vir hierdie projek is die Air Quality Index US (aquis) en Main Pollutant (mainus). Die waarde van die luggehalte -indeks vertel ons wat die plaaslike luggehaltewaarde is en hoe dit op u gesondheid betrekking het. Die kleurgekodeerde grafiek is hieronder. Die belangrikste besoedelende stof vertel ons wat die belangrikste besoedeling in u lug is (deeltjies, stikstofoksied, osoon, koolstofmonoksied, swaeloksied). Hierdie besoedelstowwe is tipies byprodukte van rookstapels of voertuigvrystellings.

Noudat ons weet hoe ons die Air Visual API moet gebruik, is die volgende ding wat ons nodig het 'n dashboard -platform om die data te vertoon.

Stap 3: Aanvanklike toestand

Aanvanklike staat
Aanvanklike staat
Aanvanklike staat
Aanvanklike staat

Ons wil al ons weerdata na 'n wolkdiens stroom, en met hierdie diens kan ons ons data in 'n goeie dashboard verander. Ons data benodig 'n bestemming, sodat ons die oorspronklike staat as die bestemming sal gebruik.

Registreer vir die aanvanklike staatrekening

Gaan na https://iot.app.initialstate.com en skep 'n nuwe rekening.

Installeer die ISStreamer

Installeer die Initial State Python -module op u skootrekenaar of Raspberry Pi. Voer die volgende opdrag uit by 'n opdragprompt:

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

Maak 'n bietjie Automagic

Nadat u die krulopdrag uitgevoer het, sien u iets soortgelyk aan die volgende uitset op die skerm:

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

Wagwoord: Begin met die eenvoudige installering van ISStreamer Python! Dit kan 'n paar minute neem om te installeer, koffie te drink:) Maar vergeet nie om terug te kom nie, ek het later vrae! Easy_install: setuptools 1.1.6 Gevind pip: pip 1.5.6 van /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip hoof weergawe: 1 pip minor weergawe: 5 ISStreamer gevind, word opgedateer … Vereis reeds op datum: ISStreamer in /Library/Python/2.7/site-packages Maak skoon … Wil u outomaties 'n voorbeeldskrif kry? [j/n] Waar wil u die voorbeeld stoor? [standaard:./is_example.py] Kies asseblief watter aanvanklike staatsprogram u gebruik: 1. app.initialstate.com 2. [NUUT!] iot.app.initialstate.com Voer keuse 1 of 2 in: voer iot.app in.initialstate.com gebruikersnaam: Voer wagwoord iot.app.initialstate.com in:

Tik y as u gevra word om 'n voorbeeldskrip outomaties te kry. Dit sal 'n toetsskrif skep wat ons kan uitvoer om te verseker dat ons data na die oorspronklike toestand kan stroom. Die volgende aanwysing vra waar u die voorbeeldlêer wil stoor. U kan 'n aangepaste plaaslike pad tik of op Enter druk om die standaard ligging te aanvaar. Uiteindelik sal u gevra word watter aanvanklike staat -app u gebruik. As u onlangs 'n rekening geskep het, kies opsie 2 en voer gebruikersnaam en wagwoord in. Daarna sal die installasie voltooi wees.

Toegangssleutels

Kom ons kyk na die voorbeeldskrif wat geskep is. $ nano is_example.py Op reël 15 sien u 'n reël wat begin met streamer = Streamer (bucket_ …. Hierdie reëls skep 'n nuwe data -emmer met die naam "Python Stream -voorbeeld" en word met u rekening geassosieer. Hierdie assosiasie gebeur as gevolg van die access_key = "…" parameter op dieselfde reël. Daardie lang reeks letters en syfers is die toegangsleutel van u aanvanklike staatrekening. As u na u aanvanklike staatrekening in u webblaaier gaan, klik dan op u gebruikersnaam regs bo en gaan dan na "my instellings", vind u dieselfde toegangsleutel onderaan die bladsy onder "Toegangssleutels vir streaming". Elke keer as u 'n datastroom skep, sal die toegangsleutel die datastroom na u rekening stuur (dus moenie deel u sleutel met enigiemand).

Begin die voorbeeldRun die test script om seker te maak dat ons 'n datastroom na u aanvanklike staat rekening kan skep. Voer die volgende in u opdragprompt uit:

$ python is_voorbeeld.py

Voorbeeld data

Gaan terug na u aanvanklike staatrekening in u webblaaier. 'N Nuwe data -emmer genaamd "Python Stream -voorbeeld" moes links in u emmerrak verskyn (u moet die bladsy moontlik herlaai). Klik op hierdie emmer om die data te sien.

U is nou gereed om regte data vanaf die AirVisual API te begin stroom.

Stap 4: Air Quality Dashboard

Air Quality Dashboard
Air Quality Dashboard
Air Quality Dashboard
Air Quality Dashboard
Air Quality Dashboard
Air Quality Dashboard
Air Quality Dashboard
Air Quality Dashboard

Nou vir die lekker deel. Ons is gereed om die AirVisual API te begin gebruik om 'n paneelbord vir luggehalte te skep en die lugbesoedelingsdata vas te lê vir waar ons ook al kies. Hierdie script vir airquality.py skakel eenvoudig die AirVisual API met u API -sleutel en haal die huidige lugbesoedelingsinligting op. Dit stroom ook die data na u aanvanklike staatrekening, waarmee u 'n paneelbord vir luggehalte kan skep.

U het toegang tot die script via die Github -bewaarplek wat ons vroeër gekloon het. Die eerste ding wat ons moet doen, is om seker te maak dat ons in die AirVisual -gids is:

$ cd airvisual

Van hier af het u toegang tot die python -lêer wat ons sal uitvoer om ons luggehalte -paneelbord te skep. Ons moet 'n paar veranderinge aan die lêer aanbring voordat ons dit begin. Om die python -lêer oop te maak, gebruik die nano -opdrag om die teksredakteur oop te maak:

$ nano lugkwaliteit.py

Sodra die teksredakteur oop is, sien u die volgende bo -aan u skrif:

# --------- Gebruikersinstellings ---------

LATITUDE = "LAT" LONGITUDE = "LONG" AIRVISUAL_API_KEY = "AIR VISUAL API KEY" BUCKET_NAME = "Plaaslike lugkwaliteit" BUCKET_KEY = "aq1" ACCESS_KEY = "INITIAL STATE ACCES KEY" MINUTES_BETWE = 5 -------------------------

U moet u breedtegraad, lengtegraad, AirVisual API -sleutel en toegangsleutel vir aanvanklike toestande invoer. Die parameter MINUTES_BETWEEN_READS bepaal hoe gereeld u script die AirVisual -API vir inligting oor luggehalte sal ondersoek. 5 minute genoeg tyd sodat u nie die limiet van 10 000 API -oproepe per maand oorskry nie. Ter wille van korttermyntoetse kan u dit op 0,5 minute stel. Sodra u parameters ingevoer is, stoor en verlaat die teks deur die toets Control+X in te tik. Nou is u gereed om u script uit te voer:

$ python lugkwaliteit.py

As u hierdie script vir 'n lang tyd ononderbroke wil laat werk, kan u die nohup-opdrag (geen ophanging) soos volg gebruik:

$ nohup python airquality.py &

Sodra dit loop, gaan na die aanvanklike toestand om u data te sien. Jou paneelbord moet ongeveer soos die prentjie hieronder lyk. U het u GPS -ligging, die waarde van u luggehalte -indeks en u belangrikste besoedeling.

My aanbeveling is om u AQI -waarde na 'n maatteël te verander. Beweeg ook die teëls rond en verander die grootte indien nodig. As u dit vir 'n ingeboude paneelbord gebruik, kan u dit na die regte plek skuif.

As u besluit om u AQI -waarde 'n meter te maak, kan u die kleurdrempel stel om dieselfde te wees as die indeks van die luggehalte. Dit gee u 'n onmiddellike opdatering van die plek waar die AQI -waarde op die grafiek val as u na u kontroleskerm kyk. U kan 'n agtergrondprent by u dashboard voeg om dit meer konteks te gee.

U het dus alles wat u nodig het om 'n paneelbord vir luggehalte te skep. Maar wat as u meer wil byvoeg of dit wil byvoeg by 'n weerpaneel wat u reeds gemaak het? As dit die geval is, bly lees!

Stap 5: Maak 'n totale weer -dashboard

Maak 'n totale weer -dashboard
Maak 'n totale weer -dashboard

Is data oor luggehalte net nie genoeg vir u nie? Daar is baie opsies om meer by u dashboard te voeg of om hierdie data na 'n weer -dashboard te stuur wat u reeds het!

Stroom weer en luggehalte na 'n enkele dashboard

As u reeds ons DarkSky API of Hyper-Local Weather Dashboard-projek geïmplementeer het, kan u hierdie luggehalte-data by u bestaande paneelbord voeg. Dit is redelik eenvoudig; al wat u hoef te doen is om u parameters in die lugkwaliteitskrip te verander om dieselfde emmernaam, emmersleutel en toegangsleutel te hê as wat u vir u weerpaneelbord gebruik het. Dit sal toelaat dat die data na dieselfde paneelbord gestuur word. Nou het u 'n totale weerpaneelbord!

Bel u weer -Python -lêer om 'n Python -lêer van luggehalte uit te voer

'N Ander opsie as u nie twee afsonderlike programme wil uitvoer nie, is om die python -lêer van luggehalte in die weerprojekgids te plaas. Laat die weerprojek -python -lêer 'n oproep maak na die luggehalte -lêer, sodat dit loop wanneer u weerlêer loop. Maak weer seker dat u dieselfde emmernaam, emmersleutel en toegangsleutel plaas sodat hulle na dieselfde paneelbord kan loop.

Skep 'n enkele lêer met beide weer- en luggehalte

En as u regtig vet voel, kan u 'n deel van die luggehalte -kode in u weer -python -script plaas en net 'n enkele script laat loop. Dit verg 'n bietjie meer kodering as die ander twee opsies, maar dit sorg vir 'n vereenvoudigde program.

Stroom bykomende inligting vanaf die AirVisual API

Soos u gesien het toe ons 'n oproep gemaak het na die AirVisual API, het dit meer inligting as net luggehalte. Dit bied ook temperatuur, humiditeit, windspoed, windrigting en atmosferiese druk. Ons kan die inligting na die oorspronklike toestand stuur op dieselfde manier as wat ons die luggehalte -indekswaarde en die belangrikste besoedeling gestuur het. Dit vereis slegs dat u nog 'n paar as -stellings skryf.

Aanbeveel: