Innholdsfortegnelse:

AirVisual Air Quality API Dashboard: 5 trinn
AirVisual Air Quality API Dashboard: 5 trinn

Video: AirVisual Air Quality API Dashboard: 5 trinn

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

AirVisual (https://www.airvisual.com) er et nettsted som gir data om luftkvalitet rundt om i verden. De har et API som vi vil bruke for å få luftkvalitetsdata til å sende til et dashbord. Vi vil samhandle med denne API -en på samme måte som vi gjorde med været -dashbordet.

Dette er et enkelt prosjekt som lærer deg hvordan du bruker et API. La oss komme i gang!

Trinn 1: Komme i gang

AirVisual API
AirVisual API

Vi har allerede satt sammen det meste av koden, men du må gjøre noen justeringer underveis. Det er mange muligheter for å utvide det vi har gjort også.

For å hente alt vi har forberedt for deg, må du klone depotet fra GitHub. GitHub er en fantastisk tjeneste som lar oss lagre, revidere og administrere prosjekter som dette. Du vil kjøre dette skriptet på en dedikert enhet. Du kan bruke en bærbar datamaskin, Raspberry Pi eller en enkelt bord. For å klone depotet trenger vi bare å gå inn på datamaskinens eller Pi -terminalen og skrive denne kommandoen:

$ git -klone

Trykk enter og du vil se denne informasjonen:

$ git -klon https://github.com/InitialState/airvisual.git Kloning til 'airvisual' … fjernkontroll: Oppregning av objekter: 13, ferdig. fjernkontroll: Teller objekter: 100% (13/13), ferdig. fjernkontroll: Komprimering av objekter: 100% (12/12), ferdig. fjernkontroll: Totalt 13 (delta 2), gjenbrukt 0 (delta 0), pakke gjenbrukt 0 Utpakning av objekter: 100% (13/13), ferdig.

Når du ser dette og gratulerer, har du klonet GitHub Repo og har alle de nødvendige filene for å bygge dette prosjektet. La oss gå inn i den nye katalogen. For å endre kataloger, trenger du bare å skrive "cd" og deretter skrive inn navnet på katalogen du vil gå til. I dette tilfellet skriver vi:

$ cd airvisual

Når vi trykker enter, vil du se at vi nå er i airvisual -katalogen. La oss skrive "ls" for å se hvilke filer vi har installert. Du skal virke noe som følger:

LISENSLESTE.md airquality.py

Vi trenger noen andre elementer før vi kan redigere koden, så la oss se på Air Quality API neste.

Trinn 2: AirVisual API

AirVisual API
AirVisual API
AirVisual API
AirVisual API

AirVisual har en luftkvalitet (AQI) og forurensnings -API som tillater opptil 10 000 API -anrop per måned gratis. Du kan registrere deg for fellesskapsnivået. Når du har registrert deg, kan du gå til My Air og API -fanen. Det er her du finner API -nøklene og dokumentasjonen på API -en.

Klikk på knappen +Ny nøkkel for å opprette vår første API -tilgangsnøkkel. For Velg plan, bruk rullegardinmenyen til å velge Fellesskap og klikk på Opprett. Hvis alt går bra, ser du en suksessmelding, og du kan gå tilbake til API -dashbordet for å finne din nye viktige informasjon. Nøkkelverdien (tall og tegn) er det du trenger for dette prosjektet. Hvis du leser API -dokumentasjonen, ser du at det er flere typer API -anrop du kan ringe. For dette prosjektet ønsker vi å få de nærmeste bydataene basert på GPS -koordinater. For denne samtalen trenger du lengdegrad, breddegrad og API -nøkkel. Skriv inn disse parameterne i samtalen nedenfor, legg det inn i en adresselinje i nettleseren din, og trykk enter.

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

Dette vil returnere den nærmeste byens data basert på GPS -koordinatene. Det vil se slik ut:

Jeg anbefaler å bruke en JSON -formatering for å få et bedre overblikk over dataene. Hvis du bruker det vil det se litt slik ut i stedet:

"status": "suksess", "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}, "forurensning": {"ts": "2019-04-08T18: 00: 00.000Z", "aqius": 10, "mainus": "p2", "aqicn": 3, "maincn": "p2"}

Vi kan lett se nå at vi har informasjon om beliggenhet, vær og forurensning. De to verdiene vi fokuserer på for dette prosjektet er Air Quality Index US (aquis) og Main Pollutant (mainus). Luftkvalitetsindeksverdien forteller oss hva den lokale luftkvalitetsverdien er og hvordan det gjelder helsen din. Det fargekodede diagrammet er nedenfor. Hovedforurensningen forteller oss hva som er hovedforurensningen i luften for ditt område (partikler, nitrogenoksid, ozon, karbonmonoksid, svoveloksid). Disse forurensningene er vanligvis biprodukter av røykstabler eller kjøretøyutslipp.

Nå som vi vet hvordan vi bruker Air Visual API, er det neste vi trenger en dashbordplattform for å vise dataene.

Trinn 3: Opprinnelig tilstand

Opprinnelige tilstand
Opprinnelige tilstand
Opprinnelige tilstand
Opprinnelige tilstand

Vi ønsker å streame alle værdataene våre til en skytjeneste og få den til å gjøre dataene våre til et fint dashbord. Dataene våre trenger en destinasjon, så vi vil bruke Initial State som den destinasjonen.

Registrer deg for den første statskontoen

Gå til https://iot.app.initialstate.com og opprett en ny konto.

Installer ISStreamer

Installer Initial State Python -modulen på den bærbare datamaskinen eller Raspberry Pi. Kjør følgende kommando ved en ledetekst:

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

Lag litt Automagic

Etter at du har kjørt curl -kommandoen, vil du se noe som ligner på følgende utgang til skjermen:

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

Passord: Start ISStreamer Python Enkel installasjon! Dette kan ta et par minutter å installere, ta en kaffe:) Men ikke glem å komme tilbake, jeg har spørsmål senere! Funnet easy_install: setuptools 1.1.6 Funnet pip: pip 1.5.6 fra /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip hovedversjon: 1 pip mindre versjon: 5 ISStreamer funnet, oppdaterer … Krav allerede oppdatert: ISStreamer i /Library/Python/2.7/site-packages Rydder opp … Vil du automatisk få et eksempelskript? [y/N] Hvor vil du lagre eksemplet? [standard:./is_example.py] Velg hvilken Initial State -app du bruker: 1. app.initialstate.com 2. [NEW!] iot.app.initialstate.com Angi valg 1 eller 2: Skriv inn iot.app.initialstate.com brukernavn: Skriv inn iot.app.initialstate.com passord:

Når du blir bedt om å automatisk få et eksempelskript, skriver du y. Dette vil opprette et testskript som vi kan kjøre for å sikre at vi kan streame data til opprinnelig tilstand. Den neste ledeteksten vil spørre hvor du vil lagre eksempelfilen. Du kan enten skrive en tilpasset lokal bane eller trykke enter for å godta standardplasseringen. Til slutt blir du spurt hvilken Initial State -app du bruker. Hvis du nylig har opprettet en konto, velger du alternativ 2 og skriver inn brukernavn og passord. Etter at installasjonen er fullført.

Tilgangstaster

La oss se på eksempelskriptet som ble opprettet. $ nano is_example.py På linje 15 vil du se en linje som starter med streamer = Streamer (bucket_…. Denne linjen oppretter en ny databøtte med navnet "Python Stream -eksempel" og er knyttet til kontoen din. Denne tilknytningen skjer på grunn av access_key =”…” parameter på den samme linjen. Den lange serien med bokstaver og tall er tilgangsnøkkelen til din opprinnelige statskonto. Hvis du går til din opprinnelige statskonto i nettleseren din, klikker du på brukernavnet ditt øverst til høyre og går deretter til "mine innstillinger", finner du den samme tilgangsnøkkelen nederst på siden under "Streaming Access Keys". Hver gang du oppretter en datastrøm, vil denne tilgangsnøkkelen lede datastrømmen til kontoen din (så ikke del nøkkelen din med noen).

Kjør eksempelkjør testskriptet for å sikre at vi kan opprette en datastrøm til din opprinnelige statskonto. Kjør følgende i ledeteksten:

$ python er_eksempel.py

Eksempeldata

Gå tilbake til din opprinnelige statskonto i nettleseren din. En ny databøtte kalt "Python Stream -eksempel" burde ha dukket opp til venstre i bøttehyllen din (du må kanskje oppdatere siden). Klikk på denne bøtta for å se dataene.

Du er nå klar til å begynne å streame ekte data fra AirVisual API.

Trinn 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

Nå for den morsomme delen. Vi er klare til å begynne å bruke AirVisual API for å lage et dashbord for luftkvalitet og fange opp data om luftforurensning uansett hvor vi velger. Dette scriptet airquality.py kaller ganske enkelt AirVisual API ved hjelp av API -nøkkelen din og henter gjeldende informasjon om luftforurensning. Den strømmer også disse dataene til din opprinnelige statskonto, som lar deg lage et dashbord for luftkvalitet.

Du kan få tilgang til skriptet gjennom Github -depotet som vi klonet tidligere. Det første vi må gjøre er å kontrollere at vi er i AirVisual -katalogen:

$ cd airvisual

Herfra får du tilgang til python -filen som vi kjører for å lage dashbordet for luftkvalitet. Vi må gjøre noen endringer i filen før vi kjører den. For å åpne python -filen, bruk kommandoen nano for å åpne tekstredigeringsprogrammet:

$ nano luftkvalitet. py

Når tekstredigereren er åpen, vil du se følgende nær toppen av skriptet:

# --------- Brukerinstillinger ---------

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

Du må angi breddegrad, lengdegrad, AirVisual API -nøkkel og initialnøkkel. Parameteren MINUTES_BETWEEN_READS angir hvor ofte skriptet ditt skal undersøke AirVisual API for informasjon om luftkvalitet. 5 minutter nok tid til at du ikke går over grensen på 10 000 API -anrop per måned. Av hensyn til kortsiktig testing kan du sette dette til 0,5 minutter. Når du har angitt parametrene dine, lagre og avslutt tekstinnføringen ved å skrive Ctrl+X. Nå er du klar til å kjøre skriptet ditt:

$ python airquality.py

Hvis du vil la dette skriptet kjøre uavbrutt i lang tid, kan du bruke nohup-kommandoen (uten å legge på) som følger:

$ nohup python airquality.py &

Når dette kjører, gå til Initial State for å se dataene dine. Dashbordet skal se ut som bildet nedenfor. Du har GPS -posisjonen din, luftkvalitetsindeksverdien og hovedforurensningen din.

Min anbefaling er å endre AQI -verdien til en måleflis. Flytt også flisene rundt og endre størrelsen etter behov. Hvis du bruker dette til et innebygd dashbord, kan du flytte disse rundt for å passe etter behov.

Hvis du bestemmer deg for å gjøre AQI -verdien din til en måler, kan du deretter sette fargeterskelen til å være lik luftkvalitetsindeksdiagrammet. Dette gir deg en umiddelbar oppdatering av hvor AQI -verdien faller på diagrammet når du sjekker dashbordet. Du kan legge til et bakgrunnsbilde på dashbordet for å gi det mer kontekst.

Så du har alt du trenger for å lage et dashbord for luftkvalitet. Men hva om du vil legge til mer eller legge dette til et værdashboard du allerede har opprettet? Hvis det er tilfelle, fortsett å lese!

Trinn 5: Lag et totalværdashboard

Lag et Total Weather Dashboard
Lag et Total Weather Dashboard

Er data om luftkvalitet bare ikke nok for deg? Det er mange alternativer for å legge til mer på dashbordet eller streame disse dataene til et værdashboard du allerede har!

Stream vær og luftkvalitet til et enkelt dashbord

Hvis du allerede har implementert DarkSky API eller Hyper-Local Weather Dashboard-prosjektet, kan du legge disse luftkvalitetsdataene til det eksisterende dashbordet. Det er ganske enkelt, alt du trenger å gjøre er å endre parametrene i luftkvalitetsskriptet for å ha det samme bøttenavnet, bøttenøkkelen og tilgangsnøkkelen som det du brukte for værdashbordet. Dette vil tillate dataene å bli sendt til det samme dashbordet. Nå har du et totalværdashboard!

Be din Weather Python -fil ringe for å kjøre luftkvalitets Python -filen

Et annet alternativ hvis du ikke vil kjøre to separate programmer, er å sette luftkvalitets python -filen i værprosjektkatalogen. Be værprosjektets python -fil ringe luftkvalitetsfilen slik at den kjører når værfilen din kjører. Igjen, sørg for å sette det samme bøttenavnet, bøttenøkkelen og tilgangsnøkkelen slik at de kjører til det samme dashbordet.

Lag en enkelt fil med både vær og luftkvalitet

Og hvis du føler deg virkelig dristig, kan du sette inn noen av luftkvalitetskodene i vær -python -skriptet ditt og bare ha et enkelt skript å kjøre. Det vil kreve litt mer kodingsinnsats enn de to andre alternativene, men det gir et forenklet program.

Stream tilleggsinformasjon fra AirVisual API

Som du så da vi ringte til AirVisual API, har den mer informasjon enn bare luftkvalitet. Det gir også temperatur, fuktighet, vindhastighet, vindretning og atmosfærisk trykk. Vi kan sende denne informasjonen til opprinnelig tilstand på samme måte som vi sendte luftkvalitetsindeksverdien og hovedforurensningen. Det krever bare at du skriver noen flere if -utsagn.

Anbefalt: