Cuprins:

Construiți un tablou de bord meteo folosind Dark Sky API: 5 pași (cu imagini)
Construiți un tablou de bord meteo folosind Dark Sky API: 5 pași (cu imagini)

Video: Construiți un tablou de bord meteo folosind Dark Sky API: 5 pași (cu imagini)

Video: Construiți un tablou de bord meteo folosind Dark Sky API: 5 pași (cu imagini)
Video: Lucrez la Muzeul Privat pentru Bogați și Faimoși. Povesti de groaza. Groază. 2024, Noiembrie
Anonim
Image
Image

Dark Sky este specializat în prognoza și vizualizarea vremii. Cel mai tare aspect al Dark Sky este API-ul meteo pe care îl putem folosi pentru a prelua datele meteo de aproape oriunde în lume. Nu numai că vremea este ploioasă sau însorită, ci temperatura, punctul de rouă, rafala de vânt, umiditatea, precipitațiile, presiunea, indicele UV și multe altele, toate acestea sunt disponibile cu ușurință oriunde doriți, oricând doriți.

Să învățăm cum să folosim API-ul super-simplu al Dark Sky. Dacă sunteți nou în utilizarea API-urilor, vă promit că va fi foarte ușor! Și dacă ați folosit API-uri înainte, sper că vă putem învăța ceva nou cu codul pe care l-am folosit.

De ce veți avea nevoie pentru acest proiect:

  • Contul Dark Sky API
  • Contul de stat inițial
  • Raspberry Pi sau laptop

Pasul 1: Introducere

Am pus deja la dispoziție o mulțime de lucruri pentru picioare pentru a vă pune codul împreună și a organiza informațiile. Vom avea nevoie doar să faceți câteva ajustări pe parcurs. Dacă doriți o provocare, faceți modificări în codul nostru și ce date despre vreme sunt trimise, există posibilități nelimitate!

Pentru a prelua toate lucrurile pe care ți le-am pregătit, va trebui să clonezi depozitul din GitHub. GitHub este un serviciu care ne permite să stocăm, să revizuim și să gestionăm proiecte de acest gen. Veți dori să rulați acest script pe un dispozitiv dedicat. Un Raspberry Pi este o opțiune perfectă pentru a rula aplicații precum acest tutorial.

Pentru a clona depozitul, tot ce trebuie să facem este să intrăm în terminalul Pi sau în terminalul computerului dvs. SSH în pi și să tastați această comandă:

$ git clone

Apăsați pe Enter și veți vedea aceste informații:

Clonarea în „darksky” …

remote: Numărarea obiectelor: 2, gata. la distanță: Total 2 (delta 0), reutilizat 0 (delta 0), ambalat reutilizat 2 Obiecte de ambalare: 100% (2/2), gata. Verificarea conectivității … gata.

După ce vedeți acest lucru, apoi felicitări, ați clonat cu succes GitHub Repo și aveți toate fișierele necesare pentru a construi acest proiect. Înainte de a trece la pasul următor, să luăm ceva timp să explorăm acest director și să învățăm câteva comenzi de bază din linia de comandă.

Tastați comanda de mai jos în terminal:

$ ls

Această comandă listează tot ce este disponibil în directorul în care vă aflați în prezent. Această listă arată că GitHub Repo a fost clonat cu succes în directorul nostru sub numele „darksky”. Să aruncăm o privire la ce se află în acel director. Pentru a vă deplasa la un director, tot ce trebuie să faceți este să tastați „cd” și apoi să tastați numele directorului la care doriți să mergeți.

În acest caz, vom introduce:

$ cd darksky

După ce apăsăm Enter, veți vedea că suntem acum în directorul darksky. Să tastăm din nou „ls” pentru a vedea ce fișiere am instalat pe pi.

README.md darksky.py …

Aici vedem documentele readme și fișierele python. Să aruncăm o privire la darksky.py folosind comanda „nano”. Comanda nano ne permite să deschidem editorul de text nano unde avem tot codul nostru python pentru fiecare segment al acestui proiect. Continuați și tastați:

$ nano darksky.py

Aici puteți vedea toate codurile pe care vi le-am pregătit pentru acest proiect. Încă nu vom face modificări la acest document, dar nu ezitați să derulați și să vedeți ce vom face mai târziu în acest tutorial.

Pasul 2: Utilizarea API-ului Dark Sky

Stare initiala
Stare initiala

Pentru a utiliza API-ul Dark Sky, mai întâi aveți nevoie de propria cheie API. Nu vă faceți griji, obținerea unei chei API este rapidă și gratuită. Tot ce trebuie să faceți este să accesați site-ul web și să faceți clic pe „Încercați gratuit” pentru a vă crea un cont.

  • Primești 1 000 de apeluri API gratuit în fiecare zi. Fiecare solicitare API peste limita zilnică gratuită costă 0,0001 USD.
  • Această limită se resetează automat în fiecare zi la miezul nopții UTC.
  • Cererea de prognoză returnează prognoza meteo curentă pentru săptămâna următoare.
  • Solicitarea mașinii timpului returnează condițiile meteorologice observate sau prognozate pentru o dată din trecut sau viitor.

Cheia secretă API Dark Sky va arăta cam așa: 0123456789abcdef9876543210fedcba.

Puteți efectua un apel API către Dark Sky introducând o adresă URL în browserul dvs. în următorul format:

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

Înlocuiți „cheia” cu cheia API Dark Sky și longitudinea / latitudinea cu orice doriți. Puteți găsi longitudinea și latitudinea accesând Google Maps și căutând locația dvs. Aceste valori vor fi în adresa URL. Copiați și lipiți URL-ul cerului întunecat de mai sus cu cheia de acces și valorile adăugate într-o bară de adrese.

După ce faceți acest lucru, veți vedea așa ceva:

zi "," nearestStormDistance ": 57," nearestStormBearing ": 15," precipIntensity ": 0," precipProbability ": 0," temperature ": 53.9," apparentTemperature ": 53.9," rouă Point ": 29.59," umiditate ": 0.39, "presiune": 1022,45, "windSpeed": 3,87, "windGust": 9,25, "windBearing": 259, "cloudCover": 0,01, "uvIndex": 3, "vizibilitate": 7,8, "ozon": 309,71}, "minutely": {"summary": "Clear for the hour.", "icon": "clear-day", "data": [{"time": 1550615280, "precipIntensity": 0, "precipProbability": 0 }, …

Poate fi puțin copleșitor și greu de citit, așa că ceea ce vă recomand este să utilizați un formatator JSON pentru a face datele mai lizibile. Când faceți acest lucru, va arăta cam așa:

obiect {9}

latitudine: 37.8267 longitudine: -122.4233 fus orar: America / Los_Angeles momentan {19} ora: 1550615286 rezumat: pictogramă curată: zi senină cea mai apropiatăFurtă: 57 cea mai apropiatăFurtă: 15 precipitațiiIntensitate: 0 precipitațiiProbabilitate: 0 temperatură: 53,9 aparenteTemperatură: 53,9 punct de rouă: 29,59 umiditate: 0,39 presiune: 1022,45 vânt Viteză: 3,87 vânt Gust: 9,25 vânt Rulment: 259 nor Copertă: 0,01 uv Indice: 3 vizibilitate: 7,8 ozon: 309,71

Tocmai ai făcut un apel API! Vedeți cât de ușor a fost asta? Nici măcar nu a trebuit să scrieți o singură linie de cod. Acum că ați stăpânit API-urile, putem trece la partea de streaming de date.

Pasul 3: Starea inițială

Vrem să transmitem toate datele vremii către un serviciu cloud și ca acel serviciu să ne transforme datele într-un tablou de bord frumos pe care îl putem accesa de pe laptopul sau dispozitivul nostru mobil. Datele noastre au nevoie de o destinație. Vom folosi Starea inițială ca destinație.

Pasul 1: Înregistrați-vă pentru contul de stat inițial

Accesați https://iot.app.initialstate.com și creați un cont nou. Veți obține o perioadă de încercare gratuită de 14 zile și oricine are o adresă de e-mail edu se poate înregistra pentru un plan de student gratuit.

Pasul 2: Instalați ISStreamer

Instalați modulul Initial State Python pe Raspberry Pi. În promptul de comandă, rulați următoarea comandă:

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

Pasul 3: Faceți câteva Automagic După Pasul 2, veți vedea ceva similar cu următoarea ieșire pe ecran:

pi @ raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o - | sudo bashParolă: Început ISStreamer Python Instalare ușoară! Acest lucru poate dura câteva minute pentru a instala, luați o cafea:) Dar nu uitați să vă întoarceți, voi avea întrebări mai târziu! S-a găsit easy_install: setuptools 1.1.6 S-a găsit pip: pip 1.5.6 din /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) versiune principală pip: 1 versiune pip minoră: 5 ISStreamer găsit, actualizare … Cerință deja actualizată: ISStreamer în /Library/Python/2.7/site-packages Curățare … Doriți să obțineți automat un exemplu de script? [y / N] Unde doriți să salvați exemplul? [implicit:./is_example.py] Vă rugăm să selectați aplicația Stare inițială pe care o utilizați: 1. app.initialstate.com 2. [NOU!] iot.app.initialstate.com Introduceți alegerea 1 sau 2: Introduceți iot.app.initialstate.com nume utilizator: Introduceți parola iot.app.initialstate.com:

Când vi se cere dacă doriți să obțineți automat un exemplu de script, puneți „y” pentru da și apăsați Enter pentru a salva scriptul în locația implicită. Pentru întrebarea despre aplicația pe care o utilizați, selectați 2 (cu excepția cazului în care v-ați înscris înainte de noiembrie 2018) și introduceți numele de utilizator și parola.

Pasul 4: Rulați Exemplul de Script

Rulați scriptul de testare pentru a ne asigura că putem crea un flux de date în contul dvs. de stare inițială. Scrieți următoarea comandă:

$ python is_example.py

Pasul 6: Exemple de date

Reveniți la contul de stat inițial din browserul dvs. web. O nouă bucată de date numită „Exemplu de flux Python” ar fi trebuit să apară în stânga în raftul jurnalului (poate fi necesar să reîmprospătați pagina). Faceți clic pe acest compartiment pentru a vă vizualiza datele.

Pasul 4: Tabloul de bord pentru vremea Dark Sky

Tabloul de bord Dark Sky Weather
Tabloul de bord Dark Sky Weather

Acum, pentru partea distractivă. Suntem gata să începem să folosim API-ul Dark Sky pentru a crea un tablou de bord meteo și pentru a surprinde istoricul vremii pentru locația pe care o alegem. Pentru a face acest lucru, vom folosi scriptul Python: https://github.com/initialstate/darksky/blob/master/darksky.py. Acest script apelează pur și simplu API-ul Dark Sky folosind cheia API și preia informațiile despre vreme pe un interval de timp specificat. De asemenea, transmite acele date în contul dvs. de stare inițială, ceea ce vă va permite să creați un tablou de bord meteorologic Dark Sky.

Puteți copia acest script în Pi, sau îl puteți accesa prin depozitul GitHub pe care l-am clonat anterior. Puteți face acest lucru schimbându-vă în directorul dvs. darksky tastând:

$ cd darksky

De aici, veți putea accesa fișierul python pe care îl vom rula pentru a crea tabloul nostru de bord meteo. Înainte de al rula, trebuie să setați parametrii doriți și să introduceți cheile. Nano în fișierul darksky.py tastând:

$ nano darksky.py

Apoi editați secțiunea din partea de sus a scriptului:

# --------- Setarile utilizatorului ---------

CITY = "Nashville" GPS_COORDS = "36.1628414, -86.780199" DARKSKY_API_KEY = "PLACE YOUR DARK SKY API KEY AICI" BUCKET_NAME = ": partial_sunny:" + CITY + "Weather" BUCKET_KEY = "ds1" ACCESS_KEY IN "PLACE CHEIE AICI "MINUTES_BETWEEN_READS = 15 # ---------------------------------

Trebuie să setați coordonatele GPS dorite și numele orașului. De asemenea, trebuie să introduceți cheia API Dark Sky și cheia de acces la contul de stat inițial sau datele dvs. nu vor merge nicăieri. Parametrul MINUTES_BETWEEN_READS va seta cât de des scriptul dvs. va interoga API-ul Dark Sky pentru informații despre vreme. 15 minute oferă un interval frumos pe termen lung. Din motive de testare pe termen scurt, puteți seta acest lucru la 0,5 minute. Faceți modificările, apoi introduceți control + X pentru a ieși și a salva.

După ce ați setat parametrii, sunteți gata să rulați scriptul:

$ python darksky.py

Dacă sunteți în Pi și doriți să lăsați acest script să ruleze neîntrerupt pentru o lungă perioadă de timp, puteți utiliza comanda nohup (fără închidere) după cum urmează:

$ nohup python darksky.py &

Acest script va face ceva mai mult decât să citească datele meteo și să le trimită la starea inițială. Acest script va profita de suportul emoji încorporat în instrumentele Initial State pentru a face tabloul de bord un pic mai cool. Puteți vedea logica utilizată pentru a prelua starea vremii din pictograma curentă -> și a o converti într-un simbol emoji în funcția weather_icon. Ceva similar se întâmplă pentru faza lunii în funcția moon_icon și direcția vântului în funcția wind_dir_icon.

Pasul 5: Concluzie

Concluzie
Concluzie
Concluzie
Concluzie

Accesați contul dvs. de stat inițial și priviți-vă datele. Mi-am schimbat toate valorile procentuale în manometre cu arc, precipitațiile în manometru lichid și temperatura în manometru de temperatură. Puteți trece la orice tip de plăci și puteți alege culorile pentru ecartamente și diagrame. Puteți face tabloul de bord întunecat sau luminos și puteți încorpora produsul final într-un site web utilizând un iFrame de încorporare.

Dacă doriți să utilizați aspectul tabloului de bord dintr-o partajare publică ca tablou de bord, puteți importa un aspect în compartimentul de date urmând instrucțiunile de aici. Puteți adăuga o imagine de fundal la tabloul de bord pentru a-i oferi mai mult context.

Adresa URL de partajare publică pentru tabloul nostru de bord este

Acum ați stăpânit API-ul Dark Sky, posibilitățile sunt nelimitate! Există o cantitate nelimitată de API-uri gratuite online de explorat, așa că începeți.

Recomandat: