Sadržaj:

Napravite vremensku ploču pomoću Dark Sky API -ja: 5 koraka (sa slikama)
Napravite vremensku ploču pomoću Dark Sky API -ja: 5 koraka (sa slikama)

Video: Napravite vremensku ploču pomoću Dark Sky API -ja: 5 koraka (sa slikama)

Video: Napravite vremensku ploču pomoću Dark Sky API -ja: 5 koraka (sa slikama)
Video: 🚀 RUTUBE и ТОЧКА. Разработка РУТУБА за 5 часов *БЕЗ ВОДЫ* [Next / React / Nest / PostgreSQL / Redux] 2024, Juli
Anonim
Image
Image

Dark Sky je specijaliziran za prognozu vremena i vizualizaciju. Najhladniji aspekt Dark Skya je njihov vremenski API koji možemo koristiti za preuzimanje vremenskih podataka iz gotovo bilo kojeg mjesta na svijetu. Nije samo kišovito ili sunčano vrijeme, već su i temperatura, tačka rosišta, nalet vjetra, vlažnost, padavine, pritisak, UV indeks i drugo, sve lako dostupni 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 zaista lako! Nadam se da ćemo vas naučiti nešto novo pomoću koda koji smo koristili ako ste već koristili API -je.

Šta će vam trebati za ovaj projekat:

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

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 pripremili za vas, morat ćete klonirati spremište s GitHub -a. GitHub je usluga koja nam omogućuje pohranu, reviziju i upravljanje ovakvim projektima. Ovu skriptu ćete htjeti 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 računala koji je SSH'd u vaš pi i upisati ovu naredbu:

$ git klon

Pritisnite enter i vidjet ćete ove podatke:

Kloniranje u 'mračni' …

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

Nakon što ovo vidite, čestitamo, uspješno ste klonirali GitHub Repo i imate sve potrebne datoteke za izradu 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. Ova lista pokazuje da je naš GitHub Repo uspješno kloniran u naš direktorij pod imenom „darksky“. Pogledajmo šta se nalazi u tom direktoriju. Da biste prešli u direktorij, sve što trebate učiniti je upisati “cd”, a zatim upisati ime direktorija u koji želite otići.

U ovom slučaju otkucaćemo:

$ cd tamno

Nakon što pritisnemo enter, vidjet ćete da smo sada u tamnom direktoriju. Ponovo 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ćava nam da otvorimo uređivač 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. Nećemo još unositi nikakve izmjene u ovaj dokument, ali slobodno se pomicajte i pogledajte što ćemo raditi kasnije u ovom vodiču.

Korak 2: Korištenje API -ja Dark Sky

Početna država
Početna država

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

  • Svaki dan dobijate besplatno 1 000 API poziva. Svaki API zahtjev preko besplatnog dnevnog ograničenja košta 0,0001 USD.
  • Ovo ograničenje se automatski poništava svaki dan u ponoć po UTC -u.
  • Zahtjev za prognozu vraća trenutnu vremensku prognozu za sljedeću sedmicu.
  • Zahtjev vremenske mašine vraća opažene ili prognozirane vremenske uslove 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 Sky 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 dužinu/širinu sa čim god želite. Svoju geografsku dužinu i širinu možete pronaći ako odete na Google karte i pretražite svoju lokaciju. Te će vrijednosti biti u URL -u. Kopirajte i zalijepite gornji URL tamnog neba s vašim pristupnim ključem i vrijednostima dodanim u adresnu traku.

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

dan "," Najbliža udaljenost oluje ": 57," Najbliža oluja sa olujom ": 15," tačnostIntenzitet ": 0," vjerovatnoća taloga ": 0," temperatura ": 53,9," prividnaTemperatura ": 53,9," tačka rosišta ": 29,59," vlažnost ": 0,39, "pritisak": 1022,45, "brzina vjetra": 3,87, "vjetarGust": 9,25, "vjetarNema": 259, "oblakpokrivanje": 0,01, "uvIndex": 3, "vidljivost": 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. Kada to učinite, izgledat će otprilike ovako:

objekt {9}

geografska širina: 37,8267 geografska dužina: -122,4233 vremenska zona: Amerika/Los_Angeles trenutno {19} vrijeme: 1550615286 sažetak: Ikona za brisanje: jasan dan najbližaOlujaDistanca: 57 najbližaOlujaNošenje: 15 oborinaIntenzitet: 0 oborina Vjerovatnoća: 0 temperatura: 53,9 očiglednoTemperatura: 53,9 vlažnost: 29,5: 0,39 pritisak: 1022,45 vjetarSpeed: 3,87 vjetarDuh: 9,25 vjetarLežaj: 259 oblakPrekrivač: 0,01 uvIndeks: 3 vidljivost: 7,8 ozon: 309,71

Upravo ste uputili API poziv! Vidite kako je to bilo lako? Čak niste morali napisati niti jedan red koda. Sada kada ste savladali 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 sa našeg prijenosnog računara ili mobilnog uređaja. Naši podaci trebaju odredište. Kao odredište koristit ćemo početno stanje.

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

Idite na https://iot.app.initialstate.com i kreirajte novi račun. Dobivate 14 -dnevno besplatno probno razdoblje i svi sa edu e -adresom mogu se registrirati za besplatni studentski paket.

Korak 2: Instalirajte ISStreamer

Instalirajte početni državni Python modul 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 ekranu:

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bash Lozinka: Počinje ISStreamer Python Laka instalacija! Ovo može potrajati nekoliko minuta da se instalira, popijete kafu:) Ali ne zaboravite da se vratite, ja ću imati pitanja kasnije! Pronađ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 pip minor verzija: 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 da dobijete primer 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 zadanu lokaciju. 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šem računu početnog stanja. Napišite sljedeću naredbu:

$ python is_example.py

Korak 6: Primjer podataka

Vratite se na svoj račun početnog stanja u svom web pregledniku. Nova korpa podataka 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 korpu da vidite svoje podatke.

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 za početak korištenja API -ja Dark Sky za izradu vremenske 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 da kreirate vremensku nadzornu ploču za Dark Sky.

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

$ cd tamno

Odavde ćete moći pristupiti python datoteci koju ćemo pokrenuti za kreiranje 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 API ključ za Dark Sky i ključ za pristup računu početnog stanja ili vaši podaci neće nigdje otići. Parametar MINUTES_BETWEEN_READS će postaviti koliko često će 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 parametre, spremni ste za pokretanje skripte:

$ python darksky.py

Ako ulazite u svoj Pi i želite ostaviti ovu skriptu da radi neprekidno duže vrijeme, možete koristiti naredbu nohup (bez prekida slušalice) na sljedeći način:

$ nohup python darksky.py &

Ova skripta će učiniti nešto više od čitanja vremenskih podataka i slanja u početno stanje. Ova skripta će iskoristiti podršku za emoji sličice ugrađenu u alate Initial State kako bi nadzornu ploču učinila hladnijom. 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 slično se događa za fazu mjeseca 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, taloženje u mjerač tekućine, a temperaturu u mjerač temperature. Možete se prebaciti na bilo koju vrstu pločica i odabrati boje za mjerila 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čuje se: