Indholdsfortegnelse:

AirVisual Air Quality API Dashboard: 5 trin
AirVisual Air Quality API Dashboard: 5 trin

Video: AirVisual Air Quality API Dashboard: 5 trin

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

AirVisual (https://www.airvisual.com) er et websted, der giver data om luftkvalitet rundt om i verden. De har en API, som vi vil bruge til at få luftkvalitetsdata til at sende til et dashboard. Vi vil interagere med denne API på samme måde som vi gjorde med vejrpanelet.

Dette er et simpelt projekt, der lærer dig, hvordan du bruger et API. Lad os komme igang!

Trin 1: Kom godt i gang

AirVisual API
AirVisual API

Vi har allerede sat det meste af koden sammen, men du skal bruge nogle justeringer undervejs. Der er også masser af muligheder for at udvide det, vi har gjort.

For at hente alle de ting, vi har forberedt til dig, skal du klone depotet fra GitHub. GitHub er en fantastisk service, der giver os mulighed for at gemme, revidere og administrere projekter som dette. Du vil gerne køre dette script på en dedikeret enhed. Du kan bruge en bærbar computer, Raspberry Pi eller en anden enkelt bordcomputer. For at klone depotet er det eneste, vi skal gøre, at gå ind på vores computers eller Pi’s terminal og skrive denne kommando:

$ git -klon

Tryk enter, og du vil se disse oplysninger:

$ git -klon https://github.com/InitialState/airvisual.git Kloning til 'airvisual' … fjernbetjening: Opregning af objekter: 13, udført. fjernbetjening: Optælling af objekter: 100% (13/13), udført. fjernbetjening: Komprimering af objekter: 100% (12/12), udført. fjernbetjening: I alt 13 (delta 2), genbrugt 0 (delta 0), pakke genbrugt 0 Udpakning af objekter: 100% (13/13), udført.

Når du har set dette, så tillykke, du har med succes klonet GitHub Repo og har alle de nødvendige filer til at bygge dette projekt. Lad os gå ind i det nye bibliotek. For at ændre biblioteksværker skal du bare skrive "cd" og derefter skrive navnet på det bibliotek, du vil gå til. I dette tilfælde skriver vi:

$ cd airvisual

Når vi trykker på enter, vil du se, at vi nu er i det airvisuelle bibliotek. Lad os skrive "ls" for at se, hvilke filer vi har installeret. Du skal virke noget som følger:

LICENS README.md airquality.py

Vi har brug for nogle andre elementer, før vi kan redigere koden, så lad os se på Air Quality API næste.

Trin 2: AirVisual API

AirVisual API
AirVisual API
AirVisual API
AirVisual API

AirVisual har en luftkvalitet (AQI) og forurenings -API, der tillader op til 10.000 API -opkald om måneden gratis. Du kan tilmelde dig fællesskabsniveau. Når du har tilmeldt dig, kan du gå til My Air og API -fanen. Det er her, du finder dine API -nøgler og dokumentation på API'et.

Klik på knappen +Ny nøgle for at oprette vores første API -adgangsnøgle. For Vælg plan skal du bruge rullemenuen til at vælge Fællesskab og klikke på Opret. Hvis alt går godt, ser du en succesmeddelelse, og du kan gå tilbage til dit API -dashboard for at finde dine nye vigtige oplysninger. Nøgleværdien (tal og tegn) er, hvad du skal bruge til dette projekt. Hvis du læser API -dokumentationen, vil du se, at der er flere slags API -opkald, du kan foretage. Til dette projekt ønsker vi at få de nærmeste bydata baseret på GPS -koordinater. Til dette opkald skal du bruge din længdegrad, breddegrad og API -nøgle. Indtast disse parametre i opkaldet herunder, læg det i en adresselinje i din browser, og tryk på enter.

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

Dette vil returnere den nærmeste bys data baseret på GPS -koordinaterne. Det vil se sådan ud:

Jeg anbefaler at bruge en JSON -formatering for at få et bedre overblik over dataene. Hvis du bruger det, ser det lidt sådan ud i stedet:

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

Vi kan let se nu, at vi har oplysninger om placering, vejr og forurening. De to værdier, vi fokuserer på for dette projekt, er luftkvalitetsindekset US (aquis) og Main Pollutant (mainus). Luftkvalitetsindeksværdien fortæller os, hvad den lokale luftkvalitetsværdi er, og hvordan det vedrører dit helbred. Det farvekodede diagram er herunder. Det vigtigste forurenende stof fortæller os, hvad der er det vigtigste forurenende stof i luften for dit område (partikler, nitrogenoxid, ozon, kulilte, svovloxid). Disse forurenende stoffer er typisk biprodukter fra røgstabler eller køretøjsemissioner.

Nu hvor vi ved, hvordan vi bruger Air Visual API, er den næste ting, vi skal bruge, en dashboardplatform til at vise dataene.

Trin 3: Oprindelig tilstand

Oprindelig tilstand
Oprindelig tilstand
Oprindelig tilstand
Oprindelig tilstand

Vi vil streame alle vores vejrdata til en skytjeneste og få den service til at gøre vores data til et godt dashboard. Vores data har brug for en destination, så vi vil bruge Initial State som denne destination.

Tilmeld dig den oprindelige statskonto

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

Installer ISStreamer

Installer Initial State Python -modulet på din bærbare computer eller Raspberry Pi. Kør følgende kommando ved en kommandoprompt:

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

Lav noget Automagic

Når du har kørt curl -kommandoen, vil du se noget, der ligner følgende output til skærmen:

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

Adgangskode: Begyndende ISStreamer Python Nem installation! Dette kan tage et par minutter at installere, få en kop kaffe:) Men glem ikke at komme tilbage, jeg har spørgsmål senere! Fundet easy_install: setuptools 1.1.6 Fundet pip: pip 1.5.6 fra /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip major version: 1 pip mindre version: 5 ISStreamer fundet, opdaterer … Krav allerede opdateret: ISStreamer i /Library/Python/2.7/site-packages Rydder op … Vil du automatisk få et eksempel script? [y/N] Hvor vil du gemme eksemplet? [standard:./is_example.py] Vælg, hvilken starttilstandsapp du bruger: 1. app.initialstate.com 2. [NEW!] iot.app.initialstate.com Indtast valg 1 eller 2: Indtast iot.app.initialstate.com brugernavn: Indtast iot.app.initialstate.com adgangskode:

Når du bliver bedt om automatisk at hente et eksempel script, skal du skrive y. Dette vil oprette et test script, som vi kan køre for at sikre, at vi kan streame data til den oprindelige tilstand. Den næste prompt spørger, hvor du vil gemme eksempelfilen. Du kan enten skrive en tilpasset lokal sti eller trykke på enter for at acceptere standardplaceringen. Endelig bliver du spurgt, hvilken Initial State -app du bruger. Hvis du for nylig har oprettet en konto, skal du vælge indstilling 2 og derefter indtaste brugernavn og adgangskode. Herefter vil installationen være fuldført.

Adgangstaster

Lad os se på eksemplet på script, der blev oprettet. $ nano is_example.py På linje 15 vil du se en linje, der starter med streamer = Streamer (bucket_…. Disse linjer opretter en ny databucket med navnet "Python Stream -eksempel" og er knyttet til din konto. Denne tilknytning sker på grund af access_key =”…” parameter på den samme linje. Den lange række bogstaver og tal er din adgangsnøgle til din initialstatskonto. Hvis du går til din oprindelige statskonto i din webbrowser, skal du klikke på dit brugernavn øverst til højre og derefter gå til til "mine indstillinger", finder du den samme adgangsnøgle nederst på siden under "Streamingadgangsnøgler". Hver gang du opretter en datastrøm, leder denne adgangsnøgle den datastrøm til din konto (så lad være med at del din nøgle med nogen).

Kør eksemplet Kør testscriptet for at sikre, at vi kan oprette en datastrøm til din Initial State -konto. Kør følgende i din kommandoprompt:

$ python er_eksempel.py

Eksempel på data

Gå tilbage til din Initial State -konto i din webbrowser. En ny dataskovl kaldet "Python Stream -eksempel" skulle have vist sig til venstre i din skovlhylde (du skal muligvis opdatere siden). Klik på denne spand for at se dataene.

Du er nu klar til at begynde at streame rigtige data fra AirVisual API.

Trin 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

Nu til den sjove del. Vi er klar til at begynde at bruge AirVisual API til at oprette et dashboard for luftkvalitet og registrere data om luftforurening, uanset hvor vi vælger. Dette script til airquality.py kalder simpelthen AirVisual API ved hjælp af din API -nøgle og henter de aktuelle luftforureningsoplysninger. Det streamer også disse data til din Initial State -konto, som giver dig mulighed for at oprette et dashboard for luftkvalitet.

Du kan få adgang til scriptet gennem Github -depotet, som vi klonede tidligere. Den første ting, vi skal gøre, er at sikre, at vi er i AirVisual -biblioteket:

$ cd airvisual

Herfra får du adgang til den python -fil, som vi kører for at oprette vores dashboard for luftkvalitet. Vi skal foretage nogle ændringer i filen, før vi kører den. For at åbne python -filen skal du bruge kommandoen nano til at åbne teksteditoren:

$ nano luftkvalitet. py

Når teksteditoren er åben, vil du se følgende nær toppen af dit script:

# --------- Brugerindstillinger ---------

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 skal indtaste din breddegrad, længdegrad, AirVisual API -nøgle og adgangsnøgle til initial tilstand. Parameteren MINUTES_BETWEEN_READS angiver, hvor ofte dit script vil undersøge AirVisual API for oplysninger om luftkvalitet. 5 minutter nok tid, så du ikke overskrider din grænse på 10.000 API -opkald pr. Måned. Af hensyn til kortsigtet test kan du indstille dette til 0,5 minutter. Når du har indtastet dine parametre, skal du gemme og afslutte indtastningen af teksten ved at skrive Control+X. Nu er du klar til at køre dit script:

$ python airquality.py

Hvis du vil lade dette script køre uafbrudt i lang tid, kan du bruge nohup-kommandoen (ingen afbrydelse) som følger:

$ nohup python airquality.py &

Når dette kører, skal du gå til Initial State for at se dine data. Dit instrumentbræt skal ligne billedet herunder. Du har din GPS -placering, din luftkvalitetsindeksværdi og dit vigtigste forurenende stof.

Min anbefaling er at ændre din AQI -værdi til en måleflise. Flyt også fliserne rundt, og tilpas størrelsen efter behov. Hvis du bruger dette til et integreret instrumentbræt, kan du flytte dem rundt, så de passer efter behov.

Hvis du beslutter dig for at gøre din AQI -værdi til en måler, kan du derefter indstille farvetærsklen til at ligne luftkvalitetsindeksdiagrammet. Dette giver dig en øjeblikkelig opdatering af, hvor AQI -værdien falder på diagrammet, når du tjekker dit dashboard. Du kan tilføje et baggrundsbillede til dit dashboard for at give det mere kontekst.

Så du har alt, hvad du har brug for for at oprette et dashboard til luftkvalitet. Men hvad nu hvis du vil tilføje mere eller tilføje dette til et vejrdashboard, du allerede har oprettet? Hvis det er tilfældet, så fortsæt med at læse!

Trin 5: Lav et Total Weather Dashboard

Lav et Total Weather Dashboard
Lav et Total Weather Dashboard

Er luftkvalitetsdata bare ikke nok for dig? Der er masser af muligheder for at tilføje mere til dit dashboard eller streame disse data til et vejr -dashboard, du allerede har!

Stream vejr og luftkvalitet til et enkelt instrumentbræt

Hvis du allerede har implementeret vores DarkSky API eller Hyper-Local Weather Dashboard-projekt, kan du tilføje disse luftkvalitetsdata til dit eksisterende dashboard. Det er ret simpelt, alt hvad du skal gøre er at ændre dine parametre i luftkvalitetsskriptet for at have det samme skovlnavn, skovlnøgle og adgangsnøgle som det, du brugte til dit vejrdashboard. Dette gør det muligt for dataene at blive sendt til det samme dashboard. Nu har du et samlet vejrdashboard!

Få din Weather Python -fil til at ringe til at køre Python -filen med luftkvalitet

En anden mulighed, hvis du ikke vil køre to separate programmer, er at lægge luftkvalitets python -filen i vejrprojektmappen. Få vejrprojektets python -fil til at ringe til luftkvalitetsfilen, så den kører, når din vejrfil kører. Igen skal du sørge for at angive det samme skovnnavn, bucket -nøgle og adgangsnøgle, så de kører til det samme dashboard.

Opret en enkelt fil med både vejr og luftkvalitet

Og hvis du føler dig rigtig fed, kan du sætte noget af luftkvalitetskoden i dit vejrpython -script og bare have et enkelt script til at køre. Det vil kræve lidt mere kodningsindsats end de to andre muligheder, men det giver et forenklet program.

Stream yderligere oplysninger fra AirVisual API

Som du så, da vi ringede til AirVisual API, har den flere oplysninger end blot luftkvalitet. Det giver også temperatur, fugtighed, vindhastighed, vindretning og atmosfærisk tryk. Vi kan sende disse oplysninger til den oprindelige tilstand på samme måde, som vi sendte værdien for luftkvalitetsindeks og hovedforurenende stof. Det kræver kun, at du skriver et par flere if -udsagn.

Anbefalede: