Sadržaj:

Izradite nadzornu ploču za vrijeme koristeći API Dark Sky: 5 koraka (sa slikama)
Izradite nadzornu ploču za vrijeme koristeći API Dark Sky: 5 koraka (sa slikama)

Video: Izradite nadzornu ploču za vrijeme koristeći API Dark Sky: 5 koraka (sa slikama)

Video: Izradite nadzornu ploču za vrijeme koristeći API Dark Sky: 5 koraka (sa slikama)
Video: Веб-разработка – информатика для руководителей бизнеса 2016 2024, Studeni
Anonim
Image
Image

Dark Sky specijaliziran je za predviđanje i vizualizaciju vremena. Najhladniji aspekt Dark Skya je njihov vremenski API koji možemo koristiti za dohvaćanje vremenskih podataka iz gotovo bilo kojeg mjesta na svijetu. Nije samo kišovito ili sunčano vrijeme, već i temperatura, točka rosišta, nalet vjetra, vlaga, oborine, tlak, UV indeks i drugo, a sve je to lako dostupno gdje god želite, kad god poželite.

Naučimo kako koristiti Dark Sky super-jednostavan API. Ako ste tek počeli koristiti API -je, obećavam vam da će ovo biti jako jednostavno! Nadam se da ćemo vas naučiti nešto novo pomoću koda koji smo koristili ako ste već koristili API -je.

Što će vam trebati za ovaj projekt:

  • Dark Sky API račun
  • Početni državni račun
  • Raspberry Pi ili prijenosno računalo

Korak 1: Početak

Već smo uložili veliki dio posla u sastavljanje koda i organiziranje informacija. Trebat ćemo vam samo da usput napravite neke prilagodbe. Ako želite izazov, napravite neke izmjene u našem kodu i koji se vremenski podaci šalju, mogućnosti su neograničene!

Da biste dohvatili sve stvari koje smo vam pripremili, morat ćete klonirati spremište s GitHub -a. GitHub je usluga koja nam omogućuje pohranu, reviziju i upravljanje ovakvim projektima. Ovu skriptu želite pokrenuti na namjenskom uređaju. Raspberry Pi savršena je opcija za pokretanje aplikacija poput ovog vodiča.

Da bismo klonirali spremište, sve što trebamo učiniti je otići u naš terminal Pi ili terminal vašeg računala koji je SSH'd u vaš pi i upisati ovu naredbu:

klon $ git

Pritisnite enter i vidjet ćete ove podatke:

Kloniranje u "mračno" …

daljinski: Brojanje objekata: 2, gotovo. daljinski: Ukupno 2 (delta 0), ponovno korištena 0 (delta 0), ponovno pakiranje 2 Raspakiranje objekata: 100% (2/2), gotovo. Provjera povezivanja … učinjeno.

Nakon što vidite ovo, čestitam, uspješno ste klonirali GitHub Repo i imate sve potrebne datoteke za izgradnju ovog projekta. Prije nego prijeđemo na sljedeći korak, odvojimo malo vremena da istražimo ovaj direktorij i naučimo nekoliko osnovnih naredbi naredbenog retka.

Upišite naredbu ispod u svoj terminal:

$ ls

Ova naredba navodi sve što je dostupno u direktoriju u kojem se trenutno nalazite. Ovaj popis pokazuje da je naš GitHub Repo uspješno kloniran u naš direktorij pod imenom "darksky". Pogledajmo što se nalazi u tom imeniku. Za prelazak u direktorij sve što trebate učiniti je upisati "cd", a zatim upisati naziv direktorija u koji želite otići.

U ovom slučaju ćemo upisati:

$ cd tamno

Nakon što pritisnemo enter, vidjet ćete da smo sada u tamnom direktoriju. Ponovno upišimo "ls" da vidimo koje smo datoteke instalirali na naš pi.

README.md darksky.py…

Ovdje vidimo da imamo naš readme dokument i python datoteke. Pogledajmo darksky.py pomoću naredbe "nano". Naredba nano omogućuje nam otvaranje uređivača nano teksta u kojem imamo sav naš python kod za svaki segment ovog projekta. Samo naprijed i upišite:

$ nano darksky.py

Ovdje možete vidjeti sav kôd koji smo vam pripremili za ovaj projekt. Još nećemo unositi nikakve izmjene u ovaj dokument, ali slobodno se pomaknite i pogledajte što ćemo raditi kasnije u ovom vodiču.

Korak 2: Korištenje API -ja Dark Sky

Početno stanje
Početno stanje

Da biste koristili Dark Sky API, najprije vam je potreban vlastiti API ključ. Ne brinite, dobivanje API ključa brzo je i besplatno. Sve što trebate učiniti je otići na web stranicu i kliknuti "Pokušaj besplatno" da biste stvorili račun.

  • Svaki dan besplatno primate 1.000 API poziva. Svaki zahtjev API -ja preko besplatnog dnevnog ograničenja košta 0,0001 USD.
  • Ovo ograničenje automatski se poništava svaki dan u ponoć po UTC -u.
  • Zahtjev za prognozu vraća trenutnu vremensku prognozu za sljedeći tjedan.
  • Zahtjev vremenskog stroja vraća promatrane ili prognozirane vremenske uvjete za datum u prošlosti ili budućnosti.

Vaš tajni API ključ za Dark Sky izgledat će otprilike ovako: 0123456789abcdef9876543210fedcba.

Možete uputiti API poziv Dark Skyu upisivanjem URL -a u svoj preglednik u sljedećem formatu:

api.darksky.net/forecast/[key]/[latitude], [longitude]

Zamijenite "ključ" ključem za Dark Sky API i zemljopisnu dužinu/širinu sa svime što želite. Svoju zemljopisnu dužinu i širinu možete pronaći tako da posjetite Google karte i pretražite svoju lokaciju. Te će vrijednosti biti u URL -u. Kopirajte i zalijepite gornji URL tamnog neba s ključem za pristup i vrijednostima dodanim u adresnu traku.

Kad to učinite, vidjet ćete nešto poput ovoga:

dan "," Najbliža udaljenost oluje ": 57," Najbliža oluja s olujom ": 15," tačnostIntenzitet ": 0," vjerojatnost oborina ": 0," temperatura ": 53,9," prividnaTemperatura ": 53,9," točka rosišta ": 29,59," vlažnost ": 0,39, "tlak": 1022,45, "vjetarSpeed": 3,87, "windGust": 9,25, "windBearing": 259, "cloudCover": 0,01, "uvIndex": 3, "visibility": 7,8, "ozon": 309,71}, "minutely": {"summary": "Clear for the hour.", "icon": "clear-day", "data": [{"time": 1550615280, "precipIntensity": 0, "precipProbability": 0 },…

Može biti malo preteško i teško za čitanje pa preporučujem da koristite JSON Formatter kako biste učinili podatke čitljivijima. Kad to učinite, izgledat će otprilike ovako:

objekt {9}

zemljopisna širina: 37.8267 zemljopisna dužina: -122.4233 vremenska zona: Amerika/Los_Angeles trenutno {19} vrijeme: 1550615286 sažetak: Ikona za brisanje: jasan dan najbližaOlujaDaljina: 57 najbližaOlujaOsjedajući: 15 oborinaIntenzitet: 0 oborina Vjerojatnost: 0 temperatura: 53,9 prividnaTemperatura: 53,9 vlažnost: 29,5: 0,39 tlak: 1022,45 vjetarSpeed: 3,87 vjetarDuh: 9,25 vjetarLežaj: 259 oblakPokrov: 0,01 uvIndeks: 3 vidljivost: 7,8 ozon: 309,71

Upravo ste uputili poziv API -ju! Vidite kako je to bilo lako? Čak niste morali napisati niti jedan redak koda. Sada kada ste svladali API -je, možemo prijeći na dio za prijenos podataka.

Korak 3: Početno stanje

Želimo prenijeti sve naše vremenske podatke na uslugu u oblaku i učiniti da ta usluga pretvori naše podatke u lijepu nadzornu ploču kojoj možemo pristupiti s prijenosnog računala ili mobilnog uređaja. Naši podaci trebaju odredište. Kao odredište koristit ćemo početno stanje.

Korak 1: Registrirajte se za početni državni račun

Idite na https://iot.app.initialstate.com i stvorite novi račun. Dobivate 14 -dnevno besplatno probno razdoblje i svatko s edu e -adresom može se registrirati za besplatni studentski paket.

Korak 2: Instalirajte ISStreamer

Instalirajte modul početnog stanja Python na svoj Raspberry Pi. U naredbenom retku pokrenite sljedeću naredbu:

$ cd/home/pi/$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash

Korak 3: Napravite Automagic Nakon 2. koraka vidjet ćete nešto slično sljedećem ispisu na zaslon:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashPassword: Počinje ISStreamer Python Jednostavna instalacija! Ovo može potrajati nekoliko minuta za instalaciju, uzmite kavu:) Ali ne zaboravite se vratiti, imat ću pitanja kasnije! Nađeno easy_install: setuptools 1.1.6 Pronađeno pip: pip 1.5.6 iz /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) glavna verzija pipa: 1 mala verzija pipa: 5 ISStreamer je pronađen, ažurira se … Zahtev je već ažuriran: ISStreamer u /Library/Python/2.7/site-packages Cleaning… Želite li automatski dobiti primjer skripte? [y/N] Gdje želite spremiti primjer? [zadano:./is_example.py] Molimo odaberite aplikaciju početnog stanja koju koristite: 1. app.initialstate.com 2. [NOVO!] iot.app.initialstate.com Unesite izbor 1 ili 2: Unesite iot.app.initialstate.com korisničko ime: Unesite lozinku iot.app.initialstate.com:

Na pitanje želite li automatski dobiti primjer skripte, stavite "y" za "da" i pritisnite enter za spremanje skripte na zadano mjesto. Na pitanje o tome koju aplikaciju koristite, odaberite 2 (osim ako ste se prijavili prije studenog 2018.) i unesite svoje korisničko ime i lozinku.

Korak 4: Pokrenite primjer skripte

Pokrenite testnu skriptu kako biste bili sigurni da možemo stvoriti tok podataka na vaš račun početnog stanja. Napišite sljedeću naredbu:

$ python je_example.py

Korak 6: Primjeri podataka

Vratite se na početno stanje računa u svom web pregledniku. Nova podatkovna korpa pod nazivom „Primjer Python Stream -a“trebala se pojaviti s lijeve strane na polici vašeg dnevnika (možda ćete morati osvježiti stranicu). Kliknite na ovu kantu za pregled vaših podataka.

Korak 4: Nadzorna ploča za vrijeme tamnog neba

Nadzorna ploča za Dark Sky Weather
Nadzorna ploča za Dark Sky Weather

A sada zabavni dio. Spremni smo početi koristiti Dark Sky API za izradu vremenske nadzorne ploče i snimanje povijesti vremena za lokaciju koju odaberemo. Da bismo to učinili, upotrijebit ćemo Python skriptu: https://github.com/initialstate/darksky/blob/master/darksky.py. Ova skripta jednostavno poziva Dark Sky API pomoću vašeg API ključa i dohvaća vremenske podatke u navedenom vremenskom intervalu. Također prenosi te podatke na vaš račun početnog stanja, što će vam omogućiti stvaranje vremenske nadzorne ploče za Dark Sky.

Ovu skriptu možete kopirati u svoj Pi ili joj pristupiti putem spremišta GitHub koje smo ranije klonirali. To možete učiniti promjenom u svoj tamni direktorij upisivanjem:

$ cd tamno

Odavde ćete moći pristupiti python datoteci koju ćemo pokrenuti za izradu naše vremenske nadzorne ploče. Prije nego što ga pokrenete, morate postaviti željene parametre i umetnuti ključeve. Nano u datoteku darksky.py upisivanjem:

$ nano darksky.py

Zatim uredite odjeljak pri vrhu skripte:

# --------- Korisničke postavke ---------

CITY = "Nashville" GPS_COORDS = "36.1628414, -86.780199" DARKSKY_API_KEY = "POSTAVITE SVOJ TAMNI SKY API KLJUČ" OVDJE "BUCKET_NAME =": djelomično_sunčan: " + CITY +" Vrijeme "BUCKET_KEY =" ds1 ACCESSAC KLJUČITE OVDJE "MINUTES_BETWEEN_READS = 15 # ---------------------------------

Morate postaviti željene GPS koordinate i naziv grada. Također morate umetnuti svoj ključ za Dark Sky API i ključ za pristup računu početnog stanja ili vaši podaci neće nigdje otići. Parametar MINUTES_BETWEEN_READS postavit će koliko će često vaša skripta anketirati Dark Sky API za informacije o vremenu. 15 minuta pruža lijep interval na duže staze. Radi kratkotrajnog testiranja, ovo možete postaviti na 0,5 minuta. Unesite izmjene, a zatim pritisnite Control+X za izlaz i spremanje.

Nakon što postavite svoje parametre, spremni ste za pokretanje skripte:

$ python darksky.py

Ako ssh'ing u svoj Pi i želite ostaviti ovu skriptu da radi neprekidno duže vrijeme, možete koristiti naredbu nohup (bez prekidanja veze) na sljedeći način:

$ nohup python darksky.py &

Ova će skripta učiniti nešto više od čitanja vremenskih podataka i slanja u početno stanje. Ova će skripta iskoristiti podršku emojija ugrađenu u alate početnog stanja kako bi nadzorna ploča postala malo hladnija. Možete vidjeti logiku koja se koristi za preuzimanje vremenskog statusa iz ikone trenutno -> i pretvoriti je u emotikon u funkciji weather_icon. Nešto se slično događa za mjesečevu fazu u funkciji moon_icon i smjer vjetra u funkciji wind_dir_icon.

Korak 5: Zaključak

Zaključak
Zaključak
Zaključak
Zaključak

Idite na svoj račun početnog stanja i pogledajte svoje podatke. Promijenio sam sve svoje postotke u mjerače luka, oborine u mjerač tekućine, a temperaturu u mjerač temperature. Možete se promijeniti u bilo koju vrstu pločica i odabrati svoje boje za mjerače i linijske karte. Nadzornu ploču možete učiniti tamnom ili svijetlom i ugraditi konačni proizvod na web mjesto pomoću ugrađenog iFrame -a.

Ako želite koristiti nadzornu ploču s javnog udjela kao svoju nadzornu ploču, možete uvesti izgled u svoju podatkovnu korpu slijedeći upute ovdje. Možete dodati pozadinsku sliku na nadzornu ploču kako biste joj dali više konteksta.

Javni URL za dijeljenje naše nadzorne ploče je

Sada ste svladali Dark Sky API mogućnosti su beskrajne! Postoji neograničena količina besplatnih API -ja na internetu za istraživanje pa započnite.

Preporučeni: