Indholdsfortegnelse:
- Trin 1: Kom godt i gang
- Trin 2: Brug af Dark Sky API
- Trin 3: Oprindelig tilstand
- Trin 4: Dark Sky Weather Dashboard
- Trin 5: Konklusion
Video: Byg et vejr -dashboard ved hjælp af Dark Sky API: 5 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Dark Sky har specialiseret sig i vejrudsigter og visualisering. Det sejeste aspekt ved Dark Sky er deres vejr -API, som vi kan bruge til at hente vejrdata fra næsten overalt i verden. Det er ikke kun vejret, der er regnfuldt eller solrigt, men temperatur, dugpunkt, vindstød, fugtighed, nedbør, tryk, UV -indeks og mere, alt let tilgængeligt, uanset hvor du vil, når du vil.
Lad os lære at bruge Dark Skys super simple API. Hvis du er ny til at bruge API'er, lover jeg dig, at dette bliver virkelig let! Og hvis du tidligere har brugt API'er, håber jeg, at vi kan lære dig noget nyt med den kode, vi har brugt.
Hvad skal du bruge til dette projekt:
- Dark Sky API -konto
- Oprindelig statskonto
- Hindbær Pi eller bærbar
Trin 1: Kom godt i gang
Vi har allerede lagt meget i benarbejdet til, at du sætter koden sammen og organiserer informationen. Vi skal bare have dig til at foretage et par justeringer undervejs. Hvis du vil have lidt af en udfordring, skal du foretage nogle ændringer i vores kode, og hvilke vejrdata der sendes, der er ubegrænsede muligheder!
For at hente alle de ting, vi har forberedt til dig, skal du klone depotet fra GitHub. GitHub er en 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. En Raspberry Pi er en perfekt mulighed for at køre applikationer som denne vejledning.
For at klone depotet er det eneste, vi skal gøre, at gå ind på vores Pi's terminal, eller din computers terminal, der er SSH'd, i din pi og skrive denne kommando:
$ git -klon
Tryk enter, og du vil se disse oplysninger:
Kloning til 'darksky' …
fjernbetjening: Tæller objekter: 2, udført. fjernbetjening: I alt 2 (delta 0), genbrugt 0 (delta 0), pakke genbrugt 2 Udpakning af objekter: 100% (2/2), færdig. Kontrol af forbindelse … 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. Inden vi går videre til det næste trin, lad os tage lidt tid at udforske omkring dette bibliotek og lære et par grundlæggende kommandolinjekommandoer.
Indtast kommandoen herunder i din terminal:
$ ls
Denne kommando viser alt, hvad der er tilgængeligt i det bibliotek, du aktuelt befinder dig i. Denne liste viser, at vores GitHub Repo med succes er blevet klonet ind i vores bibliotek under navnet "darksky." Lad os se på, hvad der er i den mappe. For at flytte til et bibliotek er alt du skal gøre at skrive “cd” og derefter skrive navnet på det bibliotek, du vil gå til.
I dette tilfælde skriver vi:
$ cd darksky
Når vi trykker på enter, vil du se, at vi nu er i darksky -biblioteket. Lad os skrive "ls" igen for at se, hvilke filer vi har installeret på vores pi.
README.md darksky.py …
Her ser vi, at vi har vores readme -dokument og python -filer. Lad os se på darksky.py ved hjælp af kommandoen "nano". Nano -kommandoen giver os mulighed for at åbne nano -teksteditoren, hvor vi har al vores python -kode for hvert segment af dette projekt. Fortsæt og skriv:
$ nano darksky.py
Her kan du se al den kode, vi har forberedt til dig til dette projekt. Vi kommer ikke til at foretage ændringer i dette dokument endnu, men du er velkommen til at rulle rundt og se, hvad vi skal gøre senere i denne vejledning.
Trin 2: Brug af Dark Sky API
For at bruge Dark Sky API skal du først bruge din egen API -nøgle. Bare rolig, det er hurtigt og gratis at få en API -nøgle. Alt du skal gøre er at gå til webstedet og klikke på "Prøv gratis" for at oprette en konto.
- Du får 1.000 API -opkald gratis hver dag. Hver API -anmodning over den gratis daglige grænse koster $ 0,0001.
- Denne grænse nulstilles automatisk hver dag ved midnat UTC.
- Prognoseanmodningen returnerer den aktuelle vejrudsigt for den næste uge.
- Time Machine Request returnerer de observerede eller forventede vejrforhold for en dato i fortiden eller fremtiden.
Din hemmelige Dark Sky API -nøgle vil se sådan ud: 0123456789abcdef9876543210fedcba.
Du kan foretage et API -opkald til Dark Sky ved at indtaste en URL i din browser i følgende format:
api.darksky.net/forecast/phiakey//latitude], [longitude]
Udskift "nøgle" med din Dark Sky API -nøgle og længdegrad/breddegrad med hvad du vil. Du kan finde din længde- og breddegrad ved at gå til Google Maps og søge din placering. Disse værdier vil være i webadressen. Kopier og indsæt ovenstående dark sky -URL med din adgangsnøgle og værdier tilføjet til en adresselinje.
Når du har gjort det, vil du se noget som dette:
dag "," nærmesteStormDistance ": 57," nærmesteStormBearing ": 15," præcipIntensitet ": 0," nedfaldProbabilitet ": 0," temperatur ": 53,9," tilsyneladende temperatur ": 53,9," dewPoint ": 29,59," fugtighed ": 0,39, "tryk": 1022,45, "windSpeed": 3,87, "windGust": 9,25, "windBearing": 259, "cloudCover": 0,01, "uvIndex": 3, "synlighed": 7,8, "ozon": 309,71}, "minutely": {"summary": "Clear for the hour.", "icon": "clear-day", "data": [{"time": 1550615280, "precipIntensity": 0, "precipProbability": 0 },…
Det kan være lidt overvældende og svært at læse, så det, jeg anbefaler, er at bruge en JSON -formatter til at gøre dataene mere læsbare. Når du gør dette, vil det se sådan ud:
objekt {9}
breddegrad: 37.8267 længdegrad: -122.4233 tidszone: America/Los_Angeles i øjeblikket {19} tid: 1550615286 opsummering: Klar ikon: klar -dag nærmesteStormDistance: 57 nærmesteStormBearing: 15 nedbør Intensitet: 0 nedbør Sandsynlighed: 0 temperatur: 53,9 tilsyneladende temperatur: 53,9 dugpunkt: 29,59 fugtighed: 0,39 tryk: 1022,45 vind Hastighed: 3,87 vind Vindstød: 9,25 vindleje: 259 sky Dække: 0,01 uv Indeks: 3 sigtbarhed: 7,8 ozon: 309,71
Du har lige foretaget et API -opkald! Se hvor let det var? Du behøvede ikke engang at skrive en enkelt kodelinje. Nu hvor du har styr på API'er, kan vi gå videre til datastreamingsdelen.
Trin 3: Oprindelig tilstand
Vi vil streame alle vores vejrdata til en skytjeneste og få den service til at gøre vores data til et flot dashboard, som vi kan få adgang til fra vores bærbare eller mobile enhed. Vores data har brug for en destination. Vi vil bruge Initial State som denne destination.
Trin 1: Registrer dig til den oprindelige statskonto
Gå til https://iot.app.initialstate.com og opret en ny konto. Du får en 14 dages gratis prøveperiode, og alle med en edu -e -mail -adresse kan registrere sig til en gratis studenterplan.
Trin 2: Installer ISStreamer
Installer Initial State Python -modulet på din Raspberry Pi. Kør følgende kommando i kommandoprompten:
$ cd/home/pi/$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash
Trin 3: Lav noget Automagic Efter trin 2 vil du se noget, der ligner følgende output til skærmen:
pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashPassword: 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 spurgt, om du automatisk vil få et eksempelskript sat "y" til ja, og tryk på enter for at gemme dit script på standardplaceringen. For spørgsmålet om hvilken app du bruger, skal du vælge 2 (medmindre du har tilmeldt dig inden november 2018) og indtaste dit brugernavn og din adgangskode.
Trin 4: Kør eksempelskriptet
Kør testskriptet for at sikre, at vi kan oprette en datastrøm til din Initial State -konto. Skriv følgende kommando:
$ python er_eksempel.py
Trin 6: Eksempeldata
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 loghylde (du skal muligvis opdatere siden). Klik på denne spand for at se dine data.
Trin 4: Dark Sky Weather Dashboard
Nu til den sjove del. Vi er klar til at begynde at bruge Dark Sky API til at oprette et vejrdashboard og fange vejrhistorikken for det sted, vi vælger. For at gøre dette skal vi bruge Python -scriptet: https://github.com/initialstate/darksky/blob/master/darksky.py. Dette script kalder simpelthen Dark Sky API ved hjælp af din API -nøgle og henter vejrinformationen på et bestemt tidsinterval. Det streamer også disse data til din Initial State -konto, som giver dig mulighed for at oprette et Dark Sky -vejrdashboard.
Du kan enten kopiere dette script til din Pi eller få adgang til det via GitHub -depotet, som vi klonede tidligere. Du kan gøre dette ved at skifte til din darksky -bibliotek ved at skrive:
$ cd darksky
Herfra har du adgang til den python -fil, som vi kører for at oprette vores vejrdashboard. Inden du kører det, skal du indstille dine ønskede parametre og indsætte dine nøgler. Nano ind i darksky.py -filen ved at skrive:
$ nano darksky.py
Rediger derefter afsnittet nær toppen af scriptet:
# --------- Brugerindstillinger ---------
CITY = "Nashville" GPS_COORDS = "36.1628414, -86.780199" DARKSKY_API_KEY = "PLACER DIN DARK SKY API KEY HERE" BUCKET_NAME = ": delvis_sunny:" + CITY + "Weather" BUCKET_KEY = "ds1" ACCESSCKEY = "ACCACECKEY =" NØGLE HER "MINUTES_BETWEEN_READS = 15 # ---------------------------------
Du skal indstille de ønskede GPS -koordinater og bynavn. Du skal også indsætte din Dark Sky API -nøgle og din adgangsnøgle til din initialstatkonto, eller dine data kommer ikke nogen steder. Parameteren MINUTES_BETWEEN_READS angiver, hvor ofte dit script vil undersøge Dark Sky API for vejrinformation. 15 minutter giver et godt interval på lang sigt. Af hensyn til kortsigtet test kan du indstille dette til 0,5 minutter. Foretag dine ændringer, og indtast derefter kontrol+X for at afslutte og gemme.
Når du har indstillet dine parametre, er du klar til at køre dit script:
$ python darksky.py
Hvis du ssh'er ind i din Pi og ønsker at lade dette script køre uafbrudt i lang tid, kan du bruge nohup-kommandoen (ingen lukning) som følger:
$ nohup python darksky.py &
Dette script vil gøre lidt mere end bare at læse vejrdataene og sende det til den oprindelige tilstand. Dette script vil drage fordel af emoji -understøttelsen indbygget i Initial State's værktøjer for at gøre instrumentbrættet lidt mere cool. Du kan se logikken, der bruges til at tage vejrstatus fra ikonet i øjeblikket -> og konvertere det til et emoji -token i funktionen weather_icon. Noget lignende sker for månefasen i moon_icon -funktionen og vindretningen i funktionen wind_dir_icon.
Trin 5: Konklusion
Gå til din oprindelige statskonto og se på dine data. Jeg ændrede alle mine procentværdier til lysbue -målere, nedbøren til en flydende måler og temperaturen til en temperaturmåler. Du kan skifte til enhver form for flisetyper og vælge dine farver til målere og stregdiagrammer. Du kan gøre dit instrumentbræt mørkt eller lyst og integrere det endelige produkt på et websted ved hjælp af en integreret iFrame.
Hvis du vil bruge dashboardlayoutet fra en offentlig deling som dit dashboard, kan du importere et layout til din data bucket ved at følge instruktionerne her. Du kan tilføje et baggrundsbillede til dit dashboard for at give det mere kontekst.
Den offentlige delings -URL til vores dashboard er
Nu har du mestret Dark Sky API, mulighederne er uendelige! Der er en ubegrænset mængde gratis API'er online at udforske, så kom i gang.
Anbefalede:
Byg en energimonitorenhed ved hjælp af en partikelelektron: 5 trin (med billeder)
Byg en energimonitorenhed ved hjælp af en partikelelektron: I de fleste virksomheder betragter vi energi som en forretningsudgift. Regningen vises i vores mail eller e -mails, og vi betaler den inden aflysningsdatoen. Med fremkomsten af IoT og smarte enheder begynder Energy at indtage et nyt sted i en virksomheds bala
Byg en tankvolumenlæser på under $ 30 ved hjælp af ESP32: 5 trin (med billeder)
Byg en tankvolumenlæser på under $ 30 Brug af ESP32: Internet of Things har bragt en masse tidligere komplekse apparatapplikationer ind i hjemmet hos mange håndværksbryggerier og vinproducenter. Applikationer med niveausensorer har været brugt i årtier i store raffinaderier, vandbehandlingsanlæg og kemiske
Sådan laver du en drone ved hjælp af Arduino UNO - Lav en quadcopter ved hjælp af mikrokontroller: 8 trin (med billeder)
Sådan laver du en drone ved hjælp af Arduino UNO | Lav en Quadcopter ved hjælp af mikrokontroller: Introduktion Besøg min Youtube -kanal En Drone er en meget dyr gadget (produkt) at købe. I dette indlæg vil jeg diskutere, hvordan jeg gør det billigt ?? Og hvordan kan du lave din egen sådan til en billig pris … Nå i Indien alle materialer (motorer, ESC'er
Byg din første IOT ved hjælp af Arduino uden yderligere moduler: 5 trin (med billeder)
Byg din første IOT ved hjælp af Arduino uden yderligere moduler: Verden går smartere hver dag, og den største årsag bag dette er udviklingen af smart teknologi. Som teknisk entusiast må du have hørt om udtrykket IOT, der betyder tingenes internet. Tingenes internet betyder at kontrollere og fodre
Trådløs fjernbetjening ved hjælp af 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sender modtager til Quadcopter - Rc Helikopter - Rc -fly ved hjælp af Arduino: 5 trin (med billeder)
Trådløs fjernbetjening ved hjælp af 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sender modtager til Quadcopter | Rc Helikopter | Rc -fly ved hjælp af Arduino: At betjene en Rc -bil | Quadcopter | Drone | RC -fly | RC -båd, vi har altid brug for en modtager og sender, antag at vi til RC QUADCOPTER har brug for en 6 -kanals sender og modtager, og den type TX og RX er for dyr, så vi laver en på vores