Inhoudsopgave:

AirVisual Air Quality API-dashboard - Ajarnpa
AirVisual Air Quality API-dashboard - Ajarnpa

Video: AirVisual Air Quality API-dashboard - Ajarnpa

Video: AirVisual Air Quality API-dashboard - Ajarnpa
Video: IQAir AirVisual - Trusted Air Quality Data For Everywhere You Go 2024, November
Anonim
Image
Image

AirVisual (https://www.airvisual.com) is een website die gegevens levert over de luchtkwaliteit over de hele wereld. Ze hebben een API die we zullen gebruiken om luchtkwaliteitsgegevens naar een dashboard te sturen. We zullen met deze API communiceren op dezelfde manier als we deden met het weerdashboard.

Dit is een eenvoudig project dat je leert hoe je een API gebruikt. Laten we beginnen!

Stap 1: Aan de slag

AirVisual-API
AirVisual-API

We hebben het grootste deel van de code al samengesteld, maar je zult onderweg een paar aanpassingen moeten maken. Er zijn ook veel mogelijkheden om uit te breiden op wat we hebben gedaan.

Om alle dingen op te halen die we voor je hebben voorbereid, moet je de repository van GitHub klonen. GitHub is een geweldige service waarmee we projecten zoals deze kunnen opslaan, herzien en beheren. U wilt dit script op een speciaal apparaat uitvoeren. U kunt een laptop, Raspberry Pi of andere computer met één bord gebruiken. Om de repository te klonen, hoeven we alleen maar naar de terminal van onze computer of Pi te gaan en deze opdracht te typen:

$ git-kloon

Druk op enter en je ziet deze informatie:

$ git clone https://github.com/InitialState/airvisual.git Klonen naar 'airvisual'… remote: Objecten opsommen: 13, klaar. afstandsbediening: Objecten tellen: 100% (13/13), klaar. afstandsbediening: Objecten comprimeren: 100% (12/12), klaar. remote: Totaal 13 (delta 2), hergebruikt 0 (delta 0), pack-hergebruikt 0 Objecten uitpakken: 100% (13/13), klaar.

Zodra je dit ziet, gefeliciteerd, heb je de GitHub Repo met succes gekloond en heb je alle benodigde bestanden om dit project te bouwen. Laten we naar de nieuwe map gaan. Om de directory's te wijzigen, hoeft u alleen maar "cd" in te typen en vervolgens de naam van de directory in te voeren waar u naartoe wilt. In dit geval typen we:

$ cd airvisual

Zodra we op enter hebben gedrukt, zul je zien dat we nu in de airvisual-directory zijn. Laten we "ls" typen om te zien welke bestanden we hebben geïnstalleerd. Je zou iets als volgt moeten lijken:

LICENTIE README.md airquality.py

We hebben een aantal andere items nodig voordat we de code kunnen bewerken, dus laten we eens kijken naar de Air Quality API.

Stap 2: AirVisual API

AirVisual-API
AirVisual-API
AirVisual-API
AirVisual-API

AirVisual heeft een luchtkwaliteit (AQI) en vervuilings-API die tot 10.000 API-aanroepen per maand gratis toestaat. U kunt zich aanmelden voor de Community-laag. Zodra u zich aanmeldt, kunt u naar My Air en het tabblad API gaan. Hier vindt u uw API-sleutels en documentatie over de API.

Klik op de knop +Nieuwe sleutel om onze eerste API-toegangssleutel te maken. Gebruik voor Plan selecteren de vervolgkeuzelijst om Community te selecteren en klik op Maken. Als alles goed gaat, ziet u een succesbericht en kunt u teruggaan naar uw API-dashboard om uw nieuwe belangrijke informatie te vinden. De sleutelwaarde (cijfers en tekens) is wat je nodig hebt voor dit project. Als je de API-documentatie doorleest, zul je zien dat er meerdere soorten API-aanroepen zijn die je kunt doen. Voor dit project willen we de dichtstbijzijnde stadsgegevens krijgen op basis van GPS-coördinaten. Voor deze aanroep heb je je lengtegraad, breedtegraad en API-sleutel nodig. Voer die parameters in de onderstaande oproep in, plaats die in een adresbalk in uw browser en druk op Enter.

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

Hiermee worden de gegevens van de dichtstbijzijnde stad geretourneerd op basis van de GPS-coördinaten. Het zal er ongeveer zo uitzien:

Ik raad aan om een JSON-formatter te gebruiken om een beter zicht op de gegevens te krijgen. Als je dat gebruikt, ziet het er in plaats daarvan een beetje zo uit:

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

We kunnen nu gemakkelijk zien dat we informatie hebben over locatie, weer en vervuiling. De twee waarden waar we ons voor dit project op richten zijn de Air Quality Index US (aquis) en Main Pollutant (mainus). De Air Quality Index-waarde vertelt ons wat de lokale luchtkwaliteitswaarde is en hoe die zich verhoudt tot uw gezondheid. De kleurgecodeerde grafiek staat hieronder. De belangrijkste verontreinigende stof vertelt ons wat de belangrijkste verontreinigende stof in de lucht is voor uw gebied (fijnstof, stikstofoxide, ozon, koolmonoxide, zwaveloxide). Deze verontreinigende stoffen zijn meestal bijproducten van schoorstenen of voertuigemissies.

Nu we weten hoe we de Air Visual API moeten gebruiken, is het volgende dat we nodig hebben een dashboardplatform om de gegevens weer te geven.

Stap 3: Oorspronkelijke staat

Oorspronkelijke toestand
Oorspronkelijke toestand
Oorspronkelijke toestand
Oorspronkelijke toestand

We willen al onze weergegevens naar een cloudservice streamen en die service onze gegevens laten omzetten in een mooi dashboard. Onze gegevens hebben een bestemming nodig, dus we gebruiken de beginstatus als die bestemming.

Registreer voor eerste staatsaccount

Ga naar https://iot.app.initialstate.com en maak een nieuw account aan.

Installeer de ISstreamer

Installeer de Initial State Python-module op uw laptop of Raspberry Pi. Voer bij een opdrachtprompt de volgende opdracht uit:

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

Maak wat Automagic

Nadat u de curl-opdracht hebt uitgevoerd, ziet u iets dat lijkt op de volgende uitvoer op het scherm:

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

Wachtwoord: Begin ISStreamer Python Eenvoudige installatie! Dit kan een paar minuten duren om te installeren, neem wat koffie:) Maar vergeet niet terug te komen, ik heb later vragen! Easy_install gevonden: setuptools 1.1.6 Gevonden pip: pip 1.5.6 van /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip hoofdversie: 1 pip kleine versie: 5 ISStreamer gevonden, updaten… Vereiste al up-to-date: ISStreamer in /Library/Python/2.7/site-packages Opruimen… Wil je automatisch een voorbeeldscript krijgen? [j/N] Waar wil je het voorbeeld opslaan? [default:./is_example.py] Selecteer a.u.b. welke Initial State-app u gebruikt: 1. app.initialstate.com 2. [NIEUW!] iot.app.initialstate.com Voer keuze 1 of 2 in: Voer iot.app in.initialstate.com gebruikersnaam: Voer het iot.app.initialstate.com wachtwoord in:

Wanneer u wordt gevraagd om automatisch een voorbeeldscript op te halen, typt u y. Hiermee wordt een testscript gemaakt dat we kunnen uitvoeren om ervoor te zorgen dat we gegevens naar de oorspronkelijke status kunnen streamen. De volgende prompt zal vragen waar u het voorbeeldbestand wilt opslaan. U kunt een aangepast lokaal pad typen of op Enter drukken om de standaardlocatie te accepteren. Ten slotte wordt u gevraagd welke Initial State-app u gebruikt. Als u onlangs een account heeft aangemaakt, selecteert u optie 2 en voert u de gebruikersnaam en het wachtwoord in. Daarna is de installatie voltooid.

Toegangssleutels

Laten we eens kijken naar het voorbeeldscript dat is gemaakt. $ nano is_example.py Op regel 15 ziet u een regel die begint met streamer = Streamer(bucket_ …. Deze regel maakt een nieuwe gegevensbucket aan met de naam "Python Stream Voorbeeld" en is gekoppeld aan uw account. Deze koppeling vindt plaats vanwege de access_key="…" parameter op diezelfde regel. Die lange reeks letters en cijfers is de toegangssleutel van uw Initial State-account. Als u in uw webbrowser naar uw Initial State-account gaat, klikt u op uw gebruikersnaam in de rechterbovenhoek en gaat u naar "mijn instellingen", vindt u diezelfde toegangssleutel onderaan de pagina onder "Toegangssleutels streamen". Elke keer dat u een datastroom aanmaakt, zal die toegangssleutel die datastroom naar uw account leiden (dus niet deel uw sleutel met iedereen).

Voer het voorbeeld uit Voer het testscript uit om ervoor te zorgen dat we een gegevensstroom naar uw Initial State-account kunnen maken. Voer het volgende uit in uw opdrachtprompt:

$ python is_voorbeeld.py

Voorbeeldgegevens

Ga terug naar uw Initial State-account in uw webbrowser. Een nieuwe gegevensbucket met de naam "Python Stream-voorbeeld" zou aan de linkerkant in uw bucketplank moeten verschijnen (mogelijk moet u de pagina vernieuwen). Klik op deze bucket om de gegevens te bekijken.

U bent nu klaar om echte gegevens te streamen vanuit de AirVisual API.

Stap 4: Dashboard voor luchtkwaliteit

Luchtkwaliteitsdashboard
Luchtkwaliteitsdashboard
Luchtkwaliteitsdashboard
Luchtkwaliteitsdashboard
Luchtkwaliteitsdashboard
Luchtkwaliteitsdashboard
Luchtkwaliteitsdashboard
Luchtkwaliteitsdashboard

Nu voor het leuke gedeelte. We zijn klaar om de AirVisual API te gaan gebruiken om een luchtkwaliteitsdashboard te maken en de luchtvervuilingsgegevens vast te leggen voor waar we maar willen. Dit airquality.py-script roept eenvoudig de AirVisual API aan met behulp van uw API-sleutel en haalt de huidige informatie over luchtvervuiling op. Het streamt die gegevens ook naar uw Initial State-account, waarmee u een dashboard voor luchtkwaliteit kunt maken.

Je hebt toegang tot het script via de Github-repository die we eerder hebben gekloond. Het eerste dat we moeten doen, is ervoor zorgen dat we ons in de AirVisual-directory bevinden:

$ cd airvisual

Vanaf hier heb je toegang tot het python-bestand dat we zullen uitvoeren om ons luchtkwaliteitsdashboard te maken. We moeten enkele wijzigingen in het bestand aanbrengen voordat we het uitvoeren. Om het python-bestand te openen, gebruikt u de nano-opdracht om de teksteditor te openen:

$ nano luchtkwaliteit.py

Zodra de teksteditor is geopend, ziet u het volgende bovenaan uw script:

# --------- Gebruikersinstellingen ---------

LATITUDE = "LAT" LONGITUDE = "LONG" AIRVISUAL_API_KEY = "AIR VISUAL API KEY" BUCKET_NAME = "Lokale luchtkwaliteit" BUCKET_KEY = "aq1" ACCESS_KEY = "INITIAL STATE TOEGANGSSLEUTEL" MINUTES_BETWEEN_READS = 5-- ------ -------------------------

U moet uw breedtegraad, lengtegraad, AirVisual API-sleutel en Initial State-toegangssleutel invoeren. De parameter MINUTES_BETWEEN_READS stelt in hoe vaak uw script de AirVisual API zal pollen voor informatie over de luchtkwaliteit. 5 minuten genoeg tijd om uw limiet van 10.000 API-aanroepen per maand niet te overschrijden. Voor het testen op korte termijn kun je dit instellen op 0,5 minuut. Nadat u uw parameters hebt ingevoerd, slaat u de tekst op en sluit u deze af door Control+X te typen. Nu ben je klaar om je script uit te voeren:

$ python luchtkwaliteit.py

Als u dit script lange tijd ononderbroken wilt laten werken, kunt u het nohup-commando (geen ophangen) als volgt gebruiken:

$ nohup python luchtkwaliteit.py &

Zodra dit actief is, gaat u naar de beginstatus om uw gegevens te bekijken. Uw dashboard zou er ongeveer zo uit moeten zien als de onderstaande afbeelding. U hebt uw GPS-locatie, uw luchtkwaliteitsindexwaarde en uw belangrijkste vervuiler.

Mijn aanbeveling zou zijn om uw AQI-waarde te wijzigen in een metertegel. Verplaats ook de tegels en pas het formaat aan als dat nodig is. Als u dit voor een ingesloten dashboard gebruikt, kunt u deze naar behoefte verplaatsen.

Als u besluit om van uw AQI-waarde een meter te maken, kunt u de kleurdrempel zo instellen dat deze vergelijkbaar is met de luchtkwaliteitsindexgrafiek. Dit geeft u een onmiddellijke update over waar de AQI-waarde in de grafiek valt wanneer u uw dashboard controleert. U kunt een achtergrondafbeelding aan uw dashboard toevoegen om het meer context te geven.

U heeft dus alles in huis om een luchtkwaliteitsdashboard te maken. Maar wat als u meer wilt toevoegen of dit wilt toevoegen aan een weerdashboard dat u al heeft gemaakt? Als dat het geval is, lees dan verder!

Stap 5: Maak een Total Weather Dashboard

Een Total Weather-dashboard maken
Een Total Weather-dashboard maken

Zijn luchtkwaliteitsgegevens gewoon niet genoeg voor u? Welnu, er zijn tal van opties om meer toe te voegen aan uw dashboard of deze gegevens te streamen naar een weerdashboard dat u al heeft!

Stream weer en luchtkwaliteit in een enkel dashboard

Als u ons DarkSky API- of Hyper-Local Weather Dashboard-project al heeft geïmplementeerd, kunt u deze luchtkwaliteitsgegevens toevoegen aan uw bestaande dashboard. Het is vrij eenvoudig, het enige wat u hoeft te doen is uw parameters in het luchtkwaliteitsscript te wijzigen om dezelfde bucketnaam, bucketsleutel en toegangssleutel te hebben als wat u voor uw weerdashboard hebt gebruikt. Hierdoor kunnen de gegevens naar datzelfde dashboard worden verzonden. Nu heb je een totaal weer-dashboard!

Laat uw weer-python-bestand een oproep doen om het luchtkwaliteit-python-bestand uit te voeren

Een andere optie als u geen twee afzonderlijke programma's wilt uitvoeren, is door het luchtkwaliteitspython-bestand in de weerprojectdirectory te plaatsen. Laat het python-bestand van het weerproject een aanroep doen naar het luchtkwaliteitsbestand zodat het wordt uitgevoerd wanneer uw weerbestand wordt uitgevoerd. Nogmaals, zorg ervoor dat u dezelfde bucketnaam, bucketsleutel en toegangssleutel invoert, zodat ze naar hetzelfde dashboard lopen.

Maak een enkel bestand met zowel weer- als luchtkwaliteit

En als je je echt stoutmoedig voelt, kun je een deel van de luchtkwaliteitscode in je weerpython-script plaatsen en slechts één script hebben om uit te voeren. Het vereist iets meer codeerinspanning dan de andere twee opties, maar het zorgt voor een vereenvoudigd programma.

Stream aanvullende informatie van de AirVisual API

Zoals je zag toen we de AirVisual API belden, bevat deze meer informatie dan alleen luchtkwaliteit. Het geeft ook temperatuur, vochtigheid, windsnelheid, windrichting en atmosferische druk. We kunnen die informatie op dezelfde manier naar de initiële staat sturen als de luchtkwaliteitsindex en de belangrijkste verontreinigende stof. U hoeft alleen nog een paar if-statements te schrijven.

Aanbevolen: