Innehållsförteckning:
- Steg 1: Komma igång
- Steg 2: AirVisual API
- Steg 3: Ursprunglig status
- Steg 4: Air Quality Dashboard
- Steg 5: Gör en Total Weather Dashboard
Video: AirVisual Air Quality API Dashboard: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:41
AirVisual (https://www.airvisual.com) är en webbplats som tillhandahåller data om luftkvalitet runt om i världen. De har ett API som vi kommer att använda för att få luftkvalitetsdata att skicka till en instrumentpanel. Vi kommer att interagera med detta API på samma sätt som vi gjorde med väderpanelen.
Detta är ett enkelt projekt som lär dig hur du använder ett API. Låt oss börja!
Steg 1: Komma igång
Vi har redan satt ihop det mesta av koden, men du måste göra några justeringar under vägen. Det finns också många möjligheter att utöka vad vi har gjort.
För att hämta allt vi har förberett för dig måste du klona förvaret från GitHub. GitHub är en fantastisk tjänst som låter oss lagra, revidera och hantera sådana här projekt. Du kommer att vilja köra detta skript på en dedikerad enhet. Du kan använda en bärbar dator, Raspberry Pi eller en annan datorkort. För att klona förvaret behöver vi bara gå in på vår dators eller Pi -terminal och skriva det här kommandot:
$ git -klon
Tryck på enter så ser du denna information:
$ git -klon https://github.com/InitialState/airvisual.git Kloning till 'airvisual' … fjärrkontroll: Räknar upp objekt: 13, gjort. fjärrkontroll: Räkna objekt: 100% (13/13), klart. fjärrkontroll: Komprimera objekt: 100% (12/12), klart. fjärrkontroll: Totalt 13 (delta 2), återanvänd 0 (delta 0), pack återanvänd 0 Uppackning av objekt: 100% (13/13), klar.
När du väl har sett detta och grattis, har du framgångsrikt klonat GitHub Repo och har alla nödvändiga filer för att bygga detta projekt. Låt oss gå in i den nya katalogen. För att ändra kataloger är allt du behöver göra att skriva "cd" och sedan skriva namnet på katalogen som du vill gå till. I det här fallet skriver vi:
$ cd airvisual
När vi tryckt på enter ser du att vi nu är i airvisual -katalogen. Låt oss skriva "ls" för att se vilka filer vi har installerat. Du ska se ut så här:
LICENSLÄSEN.md airquality.py
Vi behöver några andra objekt innan vi kan redigera koden så låt oss titta på Air Quality API nästa.
Steg 2: AirVisual API
AirVisual har ett luftkvalitets- (AQI) och förorenings -API som tillåter upp till 10 000 API -samtal per månad gratis. Du kan registrera dig för gemenskapsnivån. När du har registrerat dig kan du gå till My Air och API -fliken. Det är här du hittar dina API -nycklar och dokumentation om API: et.
Klicka på knappen +Ny nyckel för att skapa vår första API -åtkomstnyckel. För Välj plan, använd rullgardinsmenyn för att välja Community och klicka på Skapa. Om allt går bra ser du ett framgångsmeddelande och du kan gå tillbaka till din API -instrumentpanel för att hitta din nya viktiga information. Nyckelvärdet (siffror och tecken) är vad du behöver för det här projektet. Om du läser API -dokumentationen ser du att det finns flera typer av API -samtal du kan ringa. För detta projekt vill vi få närmaste stadsdata baserat på GPS -koordinater. För detta samtal behöver du din longitud, latitud och API -nyckel. Ange dessa parametrar i samtalet nedan, lägg det i ett adressfält i din webbläsare och tryck på enter.
api.airvisual.com/v2/nearest_city?lat={{LATITUDE}}&lon={{LONGITUDE}}&key={{YOUR_API_KEY}}
Detta returnerar den närmaste stadens data baserat på GPS -koordinaterna. Det kommer att se ut ungefär så här:
Jag rekommenderar att du använder en JSON -formaterare för att få en bättre bild av data. Om du använder det kommer det att se ut lite så här istället:
"status": "framgång", "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}, "förorening": {"ts": "2019-04-08T18: 00: 00.000Z", "aqius": 10, "mainus": "p2", "aqicn": 3, "maincn": "p2"}
Vi kan enkelt se nu att vi har information om plats, väder och föroreningar. De två värdena vi fokuserar på för detta projekt är Air Quality Index US (aquis) och Main Pollutant (mainus). Luftkvalitetsindexvärdet berättar vad det lokala luftkvalitetsvärdet är och hur det påverkar din hälsa. Det färgkodade diagrammet är nedan. Den huvudsakliga föroreningen berättar för oss vad som är den viktigaste föroreningen i luften för ditt område (partiklar, kväveoxid, ozon, kolmonoxid, svaveloxid). Dessa föroreningar är vanligtvis biprodukter av rökstackar eller fordonsutsläpp.
Nu när vi vet hur vi använder Air Visual API, är nästa sak vi behöver en instrumentpanelsplattform för att visa data.
Steg 3: Ursprunglig status
Vi vill strömma alla våra väderdata till en molntjänst och få den tjänsten att göra våra data till en trevlig instrumentpanel. Våra data behöver en destination så vi kommer att använda Initial State som den destinationen.
Registrera dig för det ursprungliga statskontot
Gå till https://iot.app.initialstate.com och skapa ett nytt konto.
Installera ISStreamer
Installera Initial State Python -modulen på din bärbara dator eller Raspberry Pi. Kör följande kommando vid en kommandotolk:
$ / curl -sSL https://iot.app.initialstate.com -o -| sudo bash
Gör lite Automagic
När du har kört curl -kommandot ser du något som liknar följande utdata till skärmen:
$ / curl -sSL https://iot.app.initialstate.com -o -| sudo bash
Lösenord: Börjar ISStreamer Python Enkel installation! Det kan ta ett par minuter att installera, ta lite kaffe:) Men glöm inte att komma tillbaka, jag har frågor senare! Hittade easy_install: setuptools 1.1.6 Hittade pip: pip 1.5.6 från /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip major version: 1 pip minor version: 5 ISStreamer hittades, uppdateras … Kravet är redan uppdaterat: ISStreamer i /Library/Python/2.7/site-packages Rengöring … Vill du automatiskt få ett exempelskript? [y/N] Var vill du spara exemplet? [standard:./is_example.py] Vänligen välj vilken Initial State -app du använder: 1. app.initialstate.com 2. [NEW!] iot.app.initialstate.com Ange val 1 eller 2: Ange iot.app.initialstate.com användarnamn: Ange iot.app.initialstate.com lösenord:
När du uppmanas att automatiskt hämta ett exempelskript skriver du y. Detta skapar ett testskript som vi kan köra för att säkerställa att vi kan strömma data till initialstatus. Nästa prompt frågar var du vill spara exempelfilen. Du kan antingen skriva en anpassad lokal sökväg eller trycka på enter för att acceptera standardplatsen. Slutligen kommer du att bli tillfrågad vilken Initial State -app du använder. Om du nyligen har skapat ett konto väljer du alternativ 2 och anger sedan användarnamn och lösenord. Efter det är installationen klar.
Åtkomstnycklar
Låt oss ta en titt på exempelskriptet som skapades. $ nano is_example.py På rad 15 ser du en rad som börjar med streamer = Streamer (bucket_…. Dessa rader skapar en ny datahink med namnet "Python Stream Exempel" och är kopplad till ditt konto. Denna koppling sker på grund av access_key =”…” parameter på samma rad. Den där långa serien med bokstäver och siffror är din åtkomstnyckel för initialstatskontot. Om du går till ditt ursprungliga statskonto i din webbläsare klickar du på ditt användarnamn längst upp till höger och går sedan till till "mina inställningar", hittar du samma åtkomstnyckel längst ner på sidan under "Strömmande åtkomstnycklar". Varje gång du skapar en dataström, leder den åtkomstnyckeln den dataströmmen till ditt konto (så gör inte det dela din nyckel med någon).
Kör exemplet Kör testskriptet för att se till att vi kan skapa en dataström till ditt initialstatskonto. Kör följande i kommandotolken:
$ python är_exempel.py
Exempel på data
Gå tillbaka till ditt ursprungliga statskonto i din webbläsare. En ny datahink som heter "Python Stream Exempel" borde ha dykt upp till vänster i din hinkhylla (du kan behöva uppdatera sidan). Klicka på den här hinken för att se data.
Du är nu redo att börja strömma riktiga data från AirVisual API.
Steg 4: Air Quality Dashboard
Nu till det roliga. Vi är redo att börja använda AirVisual API för att skapa en instrumentpanel för luftkvalitet och fånga uppgifter om luftföroreningar var vi än väljer. Detta airquality.py -skript anropar helt enkelt AirVisual API med din API -nyckel och hämtar den aktuella informationen om luftföroreningar. Den strömmar också den informationen till ditt Initial State -konto, vilket gör att du kan skapa en instrumentpanel för luftkvalitet.
Du kan komma åt skriptet via Github -förvaret som vi klonade tidigare. Det första vi behöver göra är att se till att vi finns i AirVisual -katalogen:
$ cd airvisual
Härifrån har du tillgång till python -filen som vi kör för att skapa vår luftkvalitetsdashboard. Vi måste göra några ändringar i filen innan vi kör den. För att öppna python -filen, använd kommandot nano för att öppna textredigeraren:
$ nano airquality.py
När textredigeraren är öppen ser du följande högst upp i skriptet:
# --------- Användarinställningar ---------
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åste ange din latitud, longitud, AirVisual API -nyckel och initialnyckel. Parametern MINUTES_BETWEEN_READS kommer att ställa in hur ofta ditt skript ska undersöka AirVisual API för information om luftkvalitet. 5 minuter tillräckligt med tid så att du inte går över din gräns på 10 000 API -samtal per månad. För korttidstestning kan du ställa in detta till 0,5 minuter. När du har angett dina parametrar, spara och lämna textinmatningen genom att skriva Ctrl+X. Nu är du redo att köra ditt skript:
$ python airquality.py
Om du vill låta detta skript vara oavbrutet under en längre tid kan du använda nohup-kommandot (ingen upphängning) enligt följande:
$ nohup python airquality.py &
När detta körs går du till Initial State för att se dina data. Din instrumentpanel ska se ut ungefär som på bilden nedan. Du har din GPS -position, ditt luftkvalitetsindexvärde och din huvudsakliga förorening.
Min rekommendation är att ändra ditt AQI -värde till en mätare. Flytta också runt brickorna och ändra storlek efter behov. Om du använder detta för en inbäddad instrumentpanel kan du flytta runt dem för att passa efter behov.
Om du bestämmer dig för att göra ditt AQI -värde till en mätare kan du sedan ställa in färgtröskeln för att likna luftkvalitetsindexdiagrammet. Detta ger dig en omedelbar uppdatering av var AQI -värdet faller på diagrammet när du kontrollerar din instrumentpanel. Du kan lägga till en bakgrundsbild på instrumentpanelen för att ge den mer sammanhang.
Så du har allt du behöver för att skapa en instrumentpanel för luftkvalitet. Men vad händer om du vill lägga till mer eller lägga till detta på en väderinstrumentpanel som du redan har skapat? Om så är fallet, fortsätt läsa!
Steg 5: Gör en Total Weather Dashboard
Räcker det inte med luftkvalitetsdata för dig? Det finns gott om alternativ för att lägga till mer på din instrumentpanel eller strömma dessa data till en väderinstrumentpanel du redan har!
Strömma väder och luftkvalitet till en enda instrumentpanel
Om du redan har implementerat vårt DarkSky API eller Hyper-Local Weather Dashboard-projekt kan du lägga till denna luftkvalitetsdata till din befintliga instrumentpanel. Det är ganska enkelt, allt du behöver göra är att ändra dina parametrar i luftkvalitetsskriptet för att ha samma skopnamn, skopnyckel och åtkomstnyckel som vad du använde för din väderinstrumentpanel. Detta gör att data kan skickas till samma instrumentpanel. Nu har du en total väderpanel!
Be din väder -Python -fil ringa för att köra Python -filen med luftkvalitet
Ett annat alternativ om du inte vill köra två separata program är att lägga pythonfilen för luftkvalitet i väderprojektkatalogen. Be väderprojektets pythonfil ringa till luftkvalitetsfilen så att den körs när din väderfil körs. Återigen, se till att sätta samma hinknamn, hinknyckel och åtkomstnyckel så att de körs till samma instrumentpanel.
Skapa en enda fil med både väder och luftkvalitet
Och om du känner dig riktigt djärv kan du lägga in en del av luftkvalitetskoden i ditt väderpythonskript och bara ha ett enda skript att köra. Det kommer att kräva lite mer kodningsansträngning än de andra två alternativen men det ger ett förenklat program.
Strömma ytterligare information från AirVisual API
Som du såg när vi ringde till AirVisual API har den mer information än bara luftkvalitet. Det ger också temperatur, luftfuktighet, vindhastighet, vindriktning och atmosfärstryck. Vi kan skicka den informationen till ursprungsläget på samma sätt som vi skickade luftkvalitetsindexvärdet och huvudföroreningen. Det kräver bara att du skriver några fler if -uttalanden.
Rekommenderad:
Air - True Mobile Air Guitar (Prototype): 7 steg (med bilder)
Air - True Mobile Air Guitar (Prototype): Okej, det här kommer att bli en riktigt kort instruktion om den första delen av att äntligen komma närmare min barndomsdröm. När jag var ung såg jag alltid mina favoritartister och band spela gitarr oklanderligt. När jag växte upp var jag
Tasmota Admin - IIoT Dashboard: 6 steg
Tasmota Admin - IIoT Dashboard: TasmoAdmin är en administrativ webbplats för enheter som blinkar med Tasmota. Du hittar den här: TasmoAdmin GitHub. Den stöder körning på Windows-, Linux- och Docker -behållare.FunktionerLogin -skyddadMulti Update ProcessVälj enheter för att uppdatera Autom
Dark Sky API PyPortal & Weather Dashboard: 6 steg
Dark Sky API PyPortal & Weather Dashboard: Detta projekt är en uppfattning som vi har gjort tidigare, Dark Sky API Weather Dashboard. Den här gången istället för en Raspberry Pi, använder vi en Adafruit PyPortal för att visa väderdata och skicka den till Initial State. Två instrumentpaneler för arbetet med en
SENSLY HAT FOR RASPBERRY PI AIR QUALITY & GAS DETECTOR V1.1: 9 Steg
SENSLY HAT FOR RASPBERRY PI AIR QUALITY & GAS DETECTOR V1.1: Sensly är en bärbar föroreningssensor som kan upptäcka föroreningsnivåerna i luften med hjälp av sina inbyggda gassensorer för att samla information om de olika gaserna som finns. Denna information kan matas direkt till din smartphone för realtid
HRV (Home Air Exchanger) Arduino Controller With Air Economizer: 7 steg (med bilder)
HRV (Home Air Exchanger) Arduino Controller With Air Economizer: HRV Arduino Controller med Air Economizer Så min historia med detta projekt är att jag bor i Minnesota och mitt kretskort stekt på min LifeBreath 155Max HRV. Jag ville inte betala $ 200 för en ny. Jag ville alltid ha något med en luftekonomiserande synd