Satura rādītājs:
- 1. darbība. Darba sākšana
- 2. darbība. Dark Sky API izmantošana
- 3. darbība: sākotnējais stāvoklis
- 4. solis: Dark Sky Weather Dashboard
- 5. darbība. Secinājums
Video: Izveidojiet laika apstākļu informācijas paneli, izmantojot Dark Sky API: 5 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
Dark Sky specializējas laika prognozēšanā un vizualizācijā. Stilīgākais Dark Sky aspekts ir viņu laika apstākļu API, ko mēs varam izmantot, lai izgūtu laika apstākļu datus no gandrīz jebkuras vietas pasaulē. Tas ir ne tikai lietains vai saulains laiks, bet arī temperatūra, rasas punkts, vēja brāzma, mitrums, nokrišņi, spiediens, UV indekss un daudz kas cits - tas ir viegli pieejams, kur vien vēlaties un kad vien vēlaties.
Uzzināsim, kā izmantot Dark Sky īpaši vienkāršo API. Ja esat jauns API lietotājs, es apsolu, ka tas būs patiešām vienkārši! Un, ja jūs jau esat izmantojis API, es ceru, ka mēs varam iemācīt jums kaut ko jaunu, izmantojot mūsu izmantoto kodu.
Kas jums būs nepieciešams šim projektam:
- Dark Sky API konts
- Sākotnējais valsts konts
- Raspberry Pi vai klēpjdators
1. darbība. Darba sākšana
Mēs jau esam ieguldījuši lielu darbu, lai jūs varētu salikt kodu un sakārtot informāciju. Mums vienkārši būs jāveic daži pielāgojumi. Ja vēlaties izaicinājumu, veiciet dažas izmaiņas mūsu kodā un to, kādi laika dati tiek nosūtīti, ir neierobežotas iespējas!
Lai izgūtu visu, ko mēs jums esam sagatavojuši, jums būs nepieciešams klonēt krātuvi no GitHub. GitHub ir pakalpojums, kas ļauj mums saglabāt, pārskatīt un pārvaldīt šādus projektus. Šo skriptu vēlaties palaist speciālā ierīcē. Raspberry Pi ir lieliska iespēja palaist tādas programmas kā šī apmācība.
Lai klonētu krātuvi, viss, kas mums jādara, ir jāiet mūsu Pi terminālī vai jūsu datora terminālī, kas ir SSH, jūsu pi un ierakstiet šo komandu:
$ git klons
Nospiediet taustiņu Enter un redzēsit šo informāciju:
Klonēšana “tumšā krāsā”…
tālvadības pults: objektu skaitīšana: 2, darīts. tālvadības pults: kopā 2 (delta 0), atkārtoti izmantota 0 (delta 0), atkārtoti izmantota 2 iepakojuma izpakošanas objekti: 100% (2/2), darīts. Savienojuma pārbaude… darīts.
Kad esat to redzējis, apsveicam, jūs esat veiksmīgi klonējis GitHub Repo un jums ir visi nepieciešamie faili, lai izveidotu šo projektu. Pirms pāriet pie nākamās darbības, veltīsim laiku, lai izpētītu šo direktoriju un apgūtu dažas komandrindas komandas.
Savā terminālī ierakstiet zemāk esošo komandu:
$ ls
Šajā komandā ir uzskaitīts viss, kas ir pieejams direktorijā, kurā pašlaik atrodaties. Šis saraksts parāda, ka mūsu GitHub Repo ir veiksmīgi klonēts mūsu direktorijā ar nosaukumu “darksky”. Apskatīsim, kas atrodas šajā direktorijā. Lai pārietu uz direktoriju, viss, kas jums jādara, ir ierakstīt “cd” un pēc tam ierakstīt tā direktorija nosaukumu, uz kuru vēlaties doties.
Šajā gadījumā mēs ierakstīsim:
$ cd tumšs
Tiklīdz mēs nospiedīsim taustiņu Enter, jūs redzēsit, ka mēs tagad atrodamies tumšās krāsas direktorijā. Vēlreiz ierakstīsim “ls”, lai redzētu, kādus failus esam instalējuši savā pi.
README.md darksky.py…
Šeit mēs redzam, ka mums ir savs readme dokuments un python faili. Apskatīsim darksky.py, izmantojot komandu "nano". Komanda nano ļauj mums atvērt nano teksta redaktoru, kurā mums ir viss mūsu python kods katram šī projekta segmentam. Iet uz priekšu un ierakstiet:
$ nano darksky.py
Šeit jūs varat redzēt visu kodu, ko mēs jums esam sagatavojuši šim projektam. Mēs pagaidām neveiksim nekādas izmaiņas šajā dokumentā, taču nekautrējieties ritināt apkārt un redzēt, ko mēs darīsim vēlāk šajā apmācībā.
2. darbība. Dark Sky API izmantošana
Lai izmantotu Dark Sky API, vispirms ir nepieciešama sava API atslēga. Neuztraucieties, API atslēgas iegūšana ir ātra un bezmaksas. Viss, kas jums jādara, ir doties uz vietni un noklikšķināt uz "Izmēģināt bez maksas", lai izveidotu kontu.
- Katru dienu bez maksas saņemat 1000 API zvanus. Katrs API pieprasījums, kas pārsniedz bezmaksas dienas limitu, maksā USD 0,0001.
- Šis ierobežojums automātiski tiek atiestatīts katru dienu pusnaktī pēc UTC.
- Prognožu pieprasījums atgriež pašreizējo laika prognozi nākamajai nedēļai.
- Laika mašīnas pieprasījums atgriež novērotos vai prognozētos laika apstākļus datumam pagātnē vai nākotnē.
Jūsu slepenā Dark Sky API atslēga izskatīsies apmēram šādi: 0123456789abcdef9876543210fedcba.
Varat veikt API zvanu uz Dark Sky, pārlūkprogrammā ierakstot URL šādā formātā:
api.darksky.net/forecast/[key]/[latitude], [garums]
Aizstājiet “atslēgu” ar savu Dark Sky API atslēgu un garumu/platumu ar visu, ko vēlaties. Lai uzzinātu savu garumu un platumu, dodieties uz Google Maps un meklējiet savu atrašanās vietu. Šīs vērtības būs URL. Kopējiet un ielīmējiet iepriekš redzamo tumšo debesu URL ar piekļuves atslēgu un vērtībām, kas pievienotas adreses joslā.
Kad to izdarīsit, jūs redzēsit kaut ko līdzīgu:
diena "," tuvākāStormDistance ": 57," tuvākāStormBearing ": 15," rainIntensity ": 0," rainProbability ": 0," temperatūra ": 53,9," šķietamā temperatūra ": 53,9," rasas punkts ": 29,59," mitrums ": 0,39, "spiediens": 1022,45, "windSpeed": 3,87, "windGust": 9,25, "windBearing": 259, "cloudCover": 0,01, "uvIndex": 3, "redzamība": 7,8, "ozons": 309,71}, "minutely": {"summary": "Skaidrs stundai.", "icon": "clear-day", "data": [{"time": 1550615280, "rainIntensity": 0, "rainProbability": 0 },…
Tas var būt nedaudz satriecoši un grūti lasāms, tāpēc es ieteiktu izmantot JSON formatētāju, lai padarītu datus vieglāk lasāmus. To darot, tas izskatīsies apmēram šādi:
objekts {9}
platums: 37.8267 garums: -122.4233 laika josla: Amerika/Losandželosa pašlaik {19} laiks: 1550615286 kopsavilkums: Notīrīt ikonu: skaidrāka diena tuvākāStormDistance: 57 vistuvākaisStormBearing: 15 lietus Intensitāte: 0 nokrišņi Varbūtība: 0 temperatūra: 53,9 redzama Temperatūra: 53,9 rasas punkts: 29,59 mitrums 0.39 spiediens: 1022,45 vējš Ātrums: 3,87 vējš Vēja ātrums: 9,25 vējš Gultnis: 259 mākoņi Pārklājs: 0,01 uv Indekss: 3 redzamība: 7,8 ozons: 309,71
Jūs tikko veicāt API zvanu! Redzi, cik viegli tas bija? Jums pat nebija jāraksta viena koda rinda. Tagad, kad esat apguvis API, mēs varam pāriet uz datu straumēšanas daļu.
3. darbība: sākotnējais stāvoklis
Mēs vēlamies straumēt visus mūsu laika apstākļu datus mākoņa pakalpojumā, un šis pakalpojums pārvērš mūsu datus par jauku informācijas paneli, kuram varam piekļūt no klēpjdatora vai mobilās ierīces. Mūsu datiem ir nepieciešams galamērķis. Kā galamērķi mēs izmantosim sākotnējo valsti.
1. darbība. Reģistrējieties sākotnējam valsts kontam
Dodieties uz vietni https://iot.app.initialstate.com un izveidojiet jaunu kontu. Jūs saņemat 14 dienu bezmaksas izmēģinājumu, un ikviens, kam ir e -pasta adrese, var reģistrēties bezmaksas studentu plānam.
2. darbība: instalējiet ISStreamer
Instalējiet sākotnējā stāvokļa Python moduli savā Raspberry Pi. Komandu uzvednē palaidiet šādu komandu:
$ cd/home/pi/$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash
Pēc 2. darbības ekrānā redzēsit kaut ko līdzīgu šim izvadam:
pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashParole: Sākums ISStreamer Python vienkārša instalēšana! Tas var aizņemt pāris minūtes, lai to instalētu, paņemiet kafiju:) Bet neaizmirstiet atgriezties, man būs jautājumi vēlāk! Atrasts easy_install: setuptools 1.1.6 Atrasts pip: pip 1.5.6 no /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip galvenā versija: 1 pip minor versija: 5 ISStreamer atrasts, tiek atjaunināts … Prasība jau ir atjaunināta: ISStreamer /Library/Python/2.7/site-packages Notīra … Vai vēlaties automātiski iegūt skripta paraugu? [y/N] Kur vēlaties saglabāt piemēru? [noklusējums:./is_example.py] Lūdzu, izvēlieties, kuru sākotnējā stāvokļa lietotni izmantojat: 1. app.initialstate.com 2. [NEW!] iot.app.initialstate.com Ievadiet 1. vai 2. izvēli: Ievadiet iot.app.initialstate.com lietotājvārds: ievadiet iot.app.initialstate.com paroli:
Kad tiek jautāts, vai vēlaties automātiski iegūt skripta piemēru, uzrakstiet “y” uz “jā” un nospiediet taustiņu Enter, lai saglabātu skriptu noklusējuma vietā. Jautājumam par to, kuru lietotni izmantojat, atlasiet 2 (ja neesat reģistrējies pirms 2018. gada novembra) un ievadiet savu lietotājvārdu un paroli.
4. darbība. Palaidiet skripta paraugu
Palaidiet testa skriptu, lai pārliecinātos, ka varam izveidot datu straumi jūsu sākotnējā stāvokļa kontā. Ierakstiet šādu komandu:
$ python is_example.py
6. darbība. Datu piemēri
Tīmekļa pārlūkprogrammā atgriezieties sākotnējā valsts kontā. Jūsu žurnāla plaukta kreisajā pusē vajadzēja parādīt jaunu datu kopu ar nosaukumu “Python Stream Example” (iespējams, lapa būs jāatsvaidzina). Noklikšķiniet uz šīs grupas, lai skatītu savus datus.
4. solis: Dark Sky Weather Dashboard
Tagad par jautro daļu. Mēs esam gatavi sākt izmantot Dark Sky API, lai izveidotu laika apstākļu informācijas paneli un uzņemtu laika apstākļu vēsturi izvēlētajai atrašanās vietai. Lai to izdarītu, mēs izmantosim Python skriptu: https://github.com/initialstate/darksky/blob/master/darksky.py. Šis skripts vienkārši izsauc Dark Sky API, izmantojot jūsu API atslēgu, un izgūst laika apstākļu informāciju noteiktā laika intervālā. Tas arī straumē šos datus jūsu sākotnējā stāvokļa kontā, kas ļaus jums izveidot Dark Sky laika apstākļu informācijas paneli.
Jūs varat vai nu kopēt šo skriptu savā Pi vai piekļūt tam, izmantojot iepriekš klonēto GitHub krātuvi. To var izdarīt, pārejot uz savu tumšo direktoriju, ierakstot:
$ cd tumšs
No šejienes jūs varēsit piekļūt pitona failam, kuru mēs izmantosim, lai izveidotu laika apstākļu informācijas paneli. Pirms palaišanas jums jāiestata vēlamie parametri un jāievieto atslēgas. Nano failā darksky.py, ierakstot:
$ nano darksky.py
Pēc tam rediģējiet sadaļu skripta augšdaļā:
# --------- Lietotāja iestatījumi ---------
CITY = "Nashville" GPS_COORDS = "36.1628414, -86.780199" DARKSKY_API_KEY = "IEVIETOJIET DARK SKY API KEY HERE" BUCKET_NAME = ": semi_sunny:" + CITY + "Weather" BUCKET_KEY = "ds1 ACCESS ACCESS" ATSLĒGT ŠEIT "MINUTES_BETWEEN_READS = 15 # ---------------------------------
Jums jāiestata vēlamās GPS koordinātas un pilsētas nosaukums. Jums arī jāievieto Dark Sky API atslēga un sākotnējās valsts konta piekļuves atslēga, pretējā gadījumā jūsu dati nekur nepazudīs. Parametrs MINUTES_BETWEEN_READS noteiks, cik bieži jūsu skripts aptaujās Dark Sky API, lai iegūtu informāciju par laika apstākļiem. 15 minūtes nodrošina jauku intervālu ilgtermiņā. Īstermiņa testēšanas labad varat iestatīt to uz 0,5 minūtēm. Veiciet izmaiņas, pēc tam ievadiet taustiņu+X, lai izietu un saglabātu.
Kad esat iestatījis parametrus, esat gatavs palaist savu skriptu:
$ python darksky.py
Ja ievadāt savu Pi un vēlaties, lai šis skripts ilgstoši netiktu pārtraukts, varat izmantot komandu nohup (bez pārtraukuma) šādi:
$ nohup python darksky.py &
Šis skripts darīs nedaudz vairāk nekā tikai nolasīs laika apstākļu datus un nosūtīs tos sākotnējam stāvoklim. Šis skripts izmantos emociju atbalstu, kas iebūvēts sākotnējās valsts rīkos, lai padarītu informācijas paneli mazliet foršāku. Jūs varat redzēt loģiku, ko izmanto, lai laika apstākļu statusu ņemtu no ikonas -> un pārveidotu to par emocijzīmju marķieri funkcijā weather_icon. Kaut kas līdzīgs notiek mēness fāzē funkcijā moon_icon un vēja virzienam funkcijā wind_dir_icon.
5. darbība. Secinājums
Dodieties uz savu sākotnējās valsts kontu un apskatiet savus datus. Es mainīju visas savas procentuālās vērtības uz loka mērītājiem, nokrišņu daudzumu uz šķidruma mērītāju un temperatūru uz temperatūras mērītāju. Jūs varat mainīt uz jebkura veida flīžu veidiem un izvēlēties krāsas mērītājiem un līniju diagrammām. Jūs varat padarīt savu informācijas paneli tumšu vai gaišu un iegult galaproduktu vietnē, izmantojot iegulto iFrame.
Ja kā informācijas paneli vēlaties izmantot informācijas paneļa izkārtojumu no publiskas koplietošanas, varat importēt izkārtojumu savā datu grupā, izpildot šeit sniegtos norādījumus. Informācijas panelim varat pievienot fona attēlu, lai tas iegūtu vairāk konteksta.
Mūsu informācijas paneļa publiskās koplietošanas URL ir
Tagad esat apguvis Dark Sky API, iespējas ir bezgalīgas! Tiešsaistē ir pieejams neierobežots daudzums bezmaksas API, lai izpētītu, tāpēc sāciet darbu.
Ieteicams:
(IOT projekts) Iegūstiet laika apstākļu datus, izmantojot ESP8266 un Openweather API: 5 soļi
(IOT projekts) Iegūstiet laika apstākļu datus, izmantojot ESP8266 un Openweather API: Šajā pamācībā mēs izveidosim vienkāršu IOT projektu, kurā mēs iegūstam mūsu pilsētas laika apstākļu datus no vietnes openweather.com/api un parādām tos, izmantojot apstrādes programmatūru
Vieda izplatīta IoT laika apstākļu novērošanas sistēma, izmantojot NodeMCU: 11 soļi
Vieda izplatīta IoT laika apstākļu novērošanas sistēma, izmantojot NodeMCU: Jūs visi varētu zināt tradicionālo laika staciju; bet vai esat kādreiz domājuši, kā tas patiesībā darbojas? Tā kā tradicionālā meteoroloģiskā stacija ir dārga un apjomīga, šo staciju blīvums uz platības vienību ir ļoti zems, kas veicina
Laika apstākļu novērošanas sistēma, izmantojot Raspberry Pi3 un DHT11 sensoru: 4 soļi
Laika apstākļu novērošanas sistēma, izmantojot Raspberry Pi3 un DHT11 sensoru: Šajā apmācībā es parādīšu, kā savienot DHT11 ar Raspberry Pi un izvadīt mitruma un temperatūras rādījumus uz LCD. DHT11 temperatūras un mitruma sensors ir jauks mazs modulis kas nodrošina digitālo temperatūru un mitrumu
Laika apstākļu uzraudzība, izmantojot ESP32_DHT11_OLED_Thingspeak: 7 soļi
Laika apstākļu uzraudzība, izmantojot ESP32_DHT11_OLED_Thingspeak: Šajā apmācībā jūs izveidosit laika apstākļu monitoru, kas uzrauga temperatūru un mitrumu, izmantojot ESP32 un DHT11. Tas tiek parādīts OLED displejā. Un tas tiek augšupielādēts vietnē ThingSpeak. ESP32 ir spēcīgs IOT rīks. Tā ir lēta sistēma
Dark Sky API PyPortal & Weather informācijas panelis: 6 soļi
Dark Sky API PyPortal & Weather informācijas panelis: Šis projekts ir ieskats iepriekš paveiktajā - Dark Sky API Weather Dashboard. Šoreiz Raspberry Pi vietā mēs izmantosim Adafruit PyPortal, lai parādītu laika apstākļu datus un nosūtītu šos datus sākotnējai valstij. Divi informācijas paneļi viena darbam