Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:11
Dark Sky är specialiserat på väderprognoser och visualisering. Den coolaste aspekten av Dark Sky är deras väder -API som vi kan använda för att hämta väderdata från nästan var som helst i världen. Det är inte bara vädret som är regnigt eller soligt utan temperatur, daggpunkt, vindbyar, fuktighet, nederbörd, tryck, UV -index och mer, allt lätt tillgängligt var du vill, när du vill.
Låt oss lära oss hur man använder Dark Skys superenkla API. Om du är ny på att använda API: er lovar jag att det här kommer att bli riktigt enkelt! Och om du har använt API tidigare så hoppas jag att vi kan lära dig något nytt med koden vi har använt.
Vad du behöver för detta projekt:
- Dark Sky API -konto
- Första statskontot
- Raspberry Pi eller bärbar dator
Steg 1: Komma igång
Vi har redan lagt ner mycket benarbete för att du ska sätta ihop koden och organisera informationen. Vi behöver bara att du gör några justeringar på vägen. Om du vill ha lite av en utmaning gör några ändringar i vår kod och vilka väderdata som skickas, det finns obegränsade möjligheter!
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 tjänst som gör att vi kan lagra, revidera och hantera sådana här projekt. Du kommer att vilja köra detta skript på en dedikerad enhet. En Raspberry Pi är ett perfekt alternativ för att köra applikationer som den här självstudien.
För att klona förvaret är allt vi behöver göra att gå in på vår Pi -terminal, eller din datorterminal som är SSH'd i din pi och skriva det här kommandot:
$ git -klon
Tryck på enter så ser du denna information:
Klonar in i 'darksky' …
fjärrkontroll: Räkna objekt: 2, klart. fjärrkontroll: Totalt 2 (delta 0), återanvänd 0 (delta 0), paketåteranvänd 2 Uppackningsobjekt: 100% (2/2), klart. Kontrollerar anslutning … 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. Innan vi går vidare till nästa steg, låt oss ta lite tid att utforska i den här katalogen och lära oss några grundläggande kommandoradskommandon.
Skriv in kommandot nedan i din terminal:
$ ls
Det här kommandot listar allt som är tillgängligt i katalogen som du för närvarande befinner dig i. Denna lista visar att vår GitHub Repo framgångsrikt har klonats in i vår katalog under namnet "darksky." Låt oss ta en titt på vad som finns i den katalogen. För att flytta till en katalog är det bara att skriva "cd" och sedan skriva namnet på katalogen som du vill gå till.
I det här fallet skriver vi:
$ cd darksky
När vi tryckt på enter ser du att vi nu är i darksky -katalogen. Låt oss skriva "ls" igen för att se vilka filer vi har installerat på vår pi.
README.md darksky.py …
Här ser vi att vi har vårt readme -dokument och python -filer. Låt oss titta på darksky.py med kommandot "nano". Nano -kommandot gör att vi kan öppna textredigeraren där vi har all vår pythonkod för varje segment av detta projekt. Fortsätt och skriv:
$ nano darksky.py
Här kan du se all kod vi har förberett för dig för det här projektet. Vi kommer inte att göra några ändringar i det här dokumentet ännu, men rulla gärna runt och se vad vi ska göra senare i den här självstudien.
Steg 2: Använda Dark Sky API
För att kunna använda Dark Sky API behöver du först din egen API -nyckel. Oroa dig inte, att få en API -nyckel är snabbt och gratis. Allt du behöver göra är att gå till webbplatsen och klicka på "Prova gratis" för att skapa ett konto.
- Du får 1 000 API -samtal gratis varje dag. Varje API -begäran över den kostnadsfria dagliga gränsen kostar $ 0,0001.
- Denna gräns återställs automatiskt varje dag vid midnatt UTC.
- Prognosbegäran returnerar den aktuella väderprognosen för nästa vecka.
- Time Machine Request returnerar de observerade eller prognostiserade väderförhållandena för ett datum i det förflutna eller i framtiden.
Din hemliga Dark Sky API -nyckel kommer att se ut ungefär så här: 0123456789abcdef9876543210fedcba.
Du kan ringa ett API -samtal till Dark Sky genom att skriva in en URL i din webbläsare i följande format:
api.darksky.net/forecast/phiakey//latitude], [longitud]
Ersätt "nyckel" med din Dark Sky API -nyckel och longitud/latitud med vad du vill. Du kan hitta din longitud och latitud genom att gå till Google Maps och söka på din plats. Dessa värden finns i webbadressen. Kopiera och klistra in ovanstående dark sky -URL med din åtkomstnyckel och värden som läggs till i ett adressfält.
När du gör det ser du något liknande:
dag "," närmasteStormDistans ": 57," närmasteStormBearing ": 15," precipIntensity ": 0," precipProbability ": 0," temperatur ": 53,9," tilsynelatande temperatur ": 53,9," dewPoint ": 29,59," fuktighet ": 0,39, "tryck": 1022,45, "windSpeed": 3,87, "windGust": 9,25, "windBearing": 259, "cloudCover": 0,01, "uvIndex": 3, "synlighet": 7,8, "ozon": 309,71}, "minutely": {"summary": "Clear for the hour.", "icon": "clear-day", "data": [{"time": 1550615280, "precipIntensity": 0, "precipProbability": 0 },…
Det kan vara lite överväldigande och svårt att läsa så det jag rekommenderar är att använda en JSON -formaterare för att göra data mer läsbar. När du gör det kommer det att se ut ungefär så här:
objekt {9}
latitud: 37.8267 longitud: -122.4233 tidszon: America/Los_Angeles för närvarande {19} tid: 1550615286 sammanfattning: Klar ikon: klar dag närmasteStormDistans: 57 närmasteStormBearing: 15 nederbörd Intensitet: 0 nedfällbarhet: 0 temperatur: 53,9 uppenbar Temperatur: 53,9 daggpunkt: 29,59 luftfuktighet: 0,39 tryck: 1022,45 vindHastighet: 3,87 vindVind: 9,25 vindBärning: 259 molnTäckning: 0,01 uvIndex: 3 sikt: 7,8 ozon: 309,71
Du har precis ringt ett API -samtal! Ser du hur lätt det var? Du behövde inte ens skriva en enda kodrad. Nu när du har behärskat API: er kan vi gå vidare till dataströmningsdelen.
Steg 3: Ursprunglig status
Vi vill strömma all vår väderdata till en molntjänst och få den tjänsten att göra våra data till en trevlig instrumentpanel som vi kan komma åt från vår bärbara dator eller mobila enhet. Våra data behöver en destination. Vi kommer att använda Initial State som den destinationen.
Steg 1: Registrera dig för det ursprungliga statskontot
Gå till https://iot.app.initialstate.com och skapa ett nytt konto. Du får en 14 dagars gratis provperiod och alla med en edu -e -postadress kan registrera sig för en gratis studentplan.
Steg 2: Installera ISStreamer
Installera Initial State Python -modulen på din Raspberry Pi. Kör följande kommando i kommandotolken:
$ cd/home/pi/$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash
Steg 3: Gör lite Automagic Efter steg 2 ser du något som liknar följande utmatning till skärmen:
pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashPassword: 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:
På frågan om du automatiskt vill få ett exempelskript sätt "y" för ja och tryck på enter för att spara ditt skript på standardplatsen. För frågan om vilken app du använder, välj 2 (om du inte registrerade dig före november 2018) och ange ditt användarnamn och lösenord.
Steg 4: Kör exempelskriptet
Kör testskriptet för att se till att vi kan skapa en dataström till ditt Initial State -konto. Skriv följande kommando:
$ python är_exempel.py
Steg 6: Exempeldata
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 logghylla (du kan behöva uppdatera sidan). Klicka på den här hinken för att se dina data.
Steg 4: Dark Sky Weather Dashboard
Nu till det roliga. Vi är redo att börja använda Dark Sky API för att skapa en väderinstrumentpanel och fånga väderhistoriken för den plats vi väljer. För att göra detta kommer vi att använda Python -skriptet: https://github.com/initialstate/darksky/blob/master/darksky.py. Detta skript kallar helt enkelt Dark Sky API med din API -nyckel och hämtar väderinformationen på ett visst tidsintervall. Den strömmar också den informationen till ditt Initial State -konto, vilket gör att du kan skapa en Dark Sky -väderinstrumentpanel.
Du kan antingen kopiera detta skript till din Pi eller komma åt det via GitHub -förvaret som vi klonade tidigare. Du kan göra detta genom att byta till din darksky -katalog genom att skriva:
$ cd darksky
Härifrån kan du komma åt python -filen som vi kör för att skapa vår väderinstrumentpanel. Innan du kör det måste du ställa in önskade parametrar och sätta in dina nycklar. Nano in i filen darksky.py genom att skriva:
$ nano darksky.py
Redigera sedan avsnittet nära toppen av skriptet:
# --------- Användarinställningar ---------
CITY = "Nashville" GPS_COORDS = "36.1628414, -86.780199" DARKSKY_API_KEY = "PLACERA DIN DARK SKY API KEY HERE" BUCKET_NAME = ": delvis_sunny:" + CITY + "Weather" BUCKET_KEY = "ds1" ACCESSCKEY = KEYER HÄR "MINUTES_BETWEEN_READS = 15 # ---------------------------------
Du måste ställa in önskade GPS -koordinater och stadsnamn. Du måste också sätta in din Dark Sky API -nyckel och din åtkomstnyckel för Initial State -kontot, annars kommer din data inte att gå någonstans. Parametern MINUTES_BETWEEN_READS kommer att ställa in hur ofta ditt skript ska undersöka Dark Sky API för väderinformation. 15 minuter ger ett bra intervall på lång sikt. För korttidstestning kan du ställa in detta till 0,5 minuter. Gör dina ändringar och ange sedan kontroll+X för att avsluta och spara.
När du har ställt in dina parametrar är du redo att köra ditt skript:
$ python darksky.py
Om du ssh'ing in i din Pi och vill låta detta skript köras oavbrutet under en lång tid kan du använda nohup-kommandot (ingen upphängning) enligt följande:
$ nohup python darksky.py &
Det här skriptet kommer att göra lite mer än att bara läsa väderdata och skicka det till utgångsläget. Detta manus kommer att dra nytta av emoji -stödet som är inbyggt i Initial State -verktyg för att göra instrumentbrädan lite coolare. Du kan se logiken som används för att ta väderstatus från ikonen för närvarande -> och konvertera den till en emoji -token i funktionen weather_icon. Något liknande händer för månfasen i moon_icon -funktionen och vindriktningen i wind_dir_icon -funktionen.
Steg 5: Slutsats
Gå till ditt Initial State -konto och titta på dina data. Jag ändrade alla mina procentuella värden till bågmätare, nederbörden till en vätskemätare och temperaturen till en temperaturmätare. Du kan byta till vilken typ av kakel som helst och välja dina färger för mätare och linjediagram. Du kan göra din instrumentpanel mörk eller ljus och bädda in den slutliga produkten på en webbplats med en inbäddad iFrame.
Om du vill använda instrumentpanellayouten från en offentlig resurs som din instrumentpanel kan du importera en layout till din datahinka genom att följa instruktionerna här. Du kan lägga till en bakgrundsbild på instrumentpanelen för att ge den mer sammanhang.
Den offentliga webbadressen för vår instrumentpanel är
Nu har du behärskat Dark Sky API, möjligheterna är oändliga! Det finns en obegränsad mängd gratis API: er online att utforska, så kom igång.
Rekommenderad:
NeckLight V2: Glow-In-The-Dark-halsband med former, färger och LJUS: 10 steg (med bilder)
NeckLight V2: Glow-In-The-Dark Halsband Med Former, Färger och LJUS: Hej alla, Efter de första Instructables: NeckLight jag postade vilket var en stor framgång för mig, väljer jag att göra V2 av det. Idén bakom detta V2 är att rätta till något misstag i V1 och ha mer visuellt alternativ. I denna instruktion kommer jag att
Bygg din internetstyrda videostreamingsrobot med Arduino och Raspberry Pi: 15 steg (med bilder)
Bygg din internetstyrda videoströmningsrobot med Arduino och Raspberry Pi: I'm @RedPhantom (aka LiquidCrystalDisplay / Itay), en 14 år gammal student från Israel som lär sig på Max Shein Junior High School for Advanced Science and Mathematics. Jag gör det här projektet för alla att lära av och dela! Du kanske har
Aktiv musikfest LED -lykta och Bluetooth -högtalare med Glow in the Dark PLA: 7 steg (med bilder)
Active Music Party LED Lantern & Bluetooth -högtalare med Glow in the Dark PLA: Hej och tack för att du ställde in på min Instructable! Varje år gör jag ett intressant projekt med min son som nu är 14. Vi har byggt en Quadcopter, simningstaktklocka (som också är en instruerbar), en CNC -bänkskåp och Fidget Spinners.Wi
Bygg en energimätare med hjälp av en partikelelektron: 5 steg (med bilder)
Bygg en energimätare med hjälp av en partikelelektron: I de flesta företag anser vi att energin är en företagskostnad. Räkningen visas i vår post eller mejl och vi betalar den före avbokningsdatumet. Med uppkomsten av IoT och smarta enheter börjar Energy ta en ny plats i ett företags balans
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