Talaan ng mga Nilalaman:

Bumuo ng isang Weather Dashboard Gamit ang Dark Sky API: 5 Hakbang (na may Mga Larawan)
Bumuo ng isang Weather Dashboard Gamit ang Dark Sky API: 5 Hakbang (na may Mga Larawan)

Video: Bumuo ng isang Weather Dashboard Gamit ang Dark Sky API: 5 Hakbang (na may Mga Larawan)

Video: Bumuo ng isang Weather Dashboard Gamit ang Dark Sky API: 5 Hakbang (na may Mga Larawan)
Video: 3-часовой марафон паранормальных и необъяснимых историй - 3 2024, Nobyembre
Anonim
Image
Image

Dalubhasa ang Dark Sky sa pagtataya ng panahon at paggunita. Ang pinaka-cool na aspeto ng Dark Sky ay ang kanilang panahon API na maaari naming magamit upang makuha ang data ng panahon mula sa halos kahit saan sa mundo. Hindi lamang ang panahon ang maulan o maaraw ngunit ang temperatura, punto ng hamog, pag-agos ng hangin, kahalumigmigan, pag-ulan, presyon, UV index, at higit pa, lahat ay madaling magagamit para saanman gusto mo, kahit kailan mo gusto.

Alamin natin kung paano gamitin ang super-simpleng API ng Dark Sky. Kung bago ka sa paggamit ng API ipinapangako ko sa iyo na magiging madali talaga ito! At kung nagamit mo na ang mga API bago mag-asa ako maaari ka naming turuan ng bago gamit ang code na ginamit namin.

Ano ang kakailanganin mo para sa proyektong ito:

  • Dark Sky API account
  • Paunang account ng Estado
  • Raspberry Pi o Laptop

Hakbang 1: Pagsisimula

Naglagay na kami ng maraming gawaing pang-paa para sa iyo na magkasama ang code at ayusin ang impormasyon. Kakailanganin ka lang naming gumawa ng ilang mga pagsasaayos sa daan. Kung nais mo ng kaunting hamon gumawa ng ilang mga pagbabago sa aming code at kung anong data ng panahon ang ipinadala, walang limitasyong mga posibilidad!

Upang makuha ang lahat ng mga bagay na inihanda namin para sa iyo, kakailanganin mong i-clone ang imbakan mula sa GitHub. Ang GitHub ay isang serbisyo na nagbibigay-daan sa amin upang maiimbak, baguhin, at pamahalaan ang mga proyekto tulad nito. Gugustuhin mong patakbuhin ang script na ito sa isang nakatuong aparato. Ang isang Raspberry Pi ay isang perpektong pagpipilian upang magpatakbo ng mga application tulad ng tutorial na ito.

Upang mai-clone ang repository na kailangan lang nating gawin ay pumunta sa terminal ng aming Pi, o ang terminal ng iyong mga computer na SSH'd sa iyong pi at i-type ang utos na ito:

$ git clone

Pindutin ang enter at makikita mo ang impormasyong ito:

Pag-clone sa 'darksky' …

remote: Nagbibilang ng mga bagay: 2, tapos na. remote: Kabuuang 2 (delta 0), muling ginamit na 0 (delta 0), pack-reuse 2 Pag-unpack ng mga bagay: 100% (2/2), tapos na. Sinusuri ang pagkakakonekta… tapos na.

Kapag nakita mo ito pagkatapos ay bumabati, matagumpay mong na-clone ang GitHub Repo at magkaroon ng lahat ng kinakailangang mga file upang mabuo ang proyektong ito. Bago tayo magpatuloy sa susunod na hakbang, maglaan kami ng ilang oras upang galugarin ang direktoryo na ito at alamin ang ilang pangunahing mga utos ng linya ng utos.

I-type ang utos sa ibaba sa iyong terminal:

$ ls

Inililista ng utos na ito ang lahat ng magagamit sa direktoryo na kasalukuyang naroroon. Ipinapakita ng listahang ito na ang aming GitHub Repo ay matagumpay na na-clone sa aming direktoryo sa ilalim ng pangalang "darksky." Tingnan natin kung ano ang nasa direktoryo na iyon. Upang lumipat sa isang direktoryo, ang kailangan mo lang gawin ay i-type ang "cd" at pagkatapos ay i-type ang pangalan ng direktoryo na nais mong puntahan.

Sa kasong ito, magta-type kami ng:

$ cd darksky

Kapag na-hit ang enter, makikita mo na nasa darksky Directory na kami ngayon. Mag-type ulit tayo ng "ls" upang makita kung anong mga file ang na-install natin sa aming pi.

README.md darksky.py…

Nakikita namin rito na nakuha namin ang aming readme document at mga python file. Tingnan natin ang darksky.py gamit ang "nano" na utos. Pinapayagan kami ng utos ng nano na buksan ang nano text editor kung saan mayroon kaming lahat ng aming python code para sa bawat segment ng proyektong ito. Sige at i-type ang:

$ nano darksky.py

Makikita mo rito ang lahat ng code na inihanda namin para sa iyo para sa proyektong ito. Hindi pa kami gagawa ng anumang mga pagbabago sa dokumentong ito, ngunit huwag mag-atubiling mag-scroll sa paligid at makita kung ano ang gagawin namin mamaya sa tutorial na ito.

Hakbang 2: Paggamit ng Dark Sky API

Paunang Estado
Paunang Estado

Upang magamit ang Dark Sky API, kailangan mo muna ang iyong sariling API key. Huwag magalala, ang pagkuha ng isang API key ay mabilis at libre. Ang kailangan mo lang gawin ay pumunta sa website at i-click ang "Subukan nang Libre" upang lumikha ng isang account.

  • Makakatanggap ka ng 1, 000 mga tawag sa API nang libre bawat araw. Ang bawat kahilingan sa API na higit sa libreng pang-araw-araw na limitasyon ay nagkakahalaga ng $ 0,0001.
  • Ang limitasyong ito ay awtomatikong nagre-reset bawat araw sa hatinggabi na UTC.
  • Ibinabalik ng Kahilingan sa Pagtataya ang kasalukuyang pagtataya ng panahon para sa susunod na linggo.
  • Ang Time Machine Request ay nagbabalik ng sinusunod o tinataya na mga kondisyon ng panahon para sa isang petsa sa nakaraan o hinaharap.

Ang iyong lihim na Dark Sky API key ay magmumukhang ganito: 0123456789abcdef9876543210fedcba.

Maaari kang tumawag sa API sa Dark Sky sa pamamagitan ng pag-type sa isang URL sa iyong browser sa sumusunod na format:

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

Palitan ang "key" ng iyong Dark Sky API key at longitude / latitude sa anumang nais mo. Mahahanap mo ang iyong longitude at latitude sa pamamagitan ng pagpunta sa Google Maps at paghahanap sa iyong lokasyon. Ang mga halagang iyon ay mapupunta sa URL. Kopyahin at i-paste ang madilim na langit na URL sa iyong access key at mga halagang idinagdag sa isang address bar.

Kapag ginawa mo iyon makikita mo ang isang bagay tulad nito:

araw "," pinakamalapit na StormDistance ": 57," pinakamalapit na StormBearing ": 15," precipIntensity ": 0," precipProbability ": 0," temperatura ": 53.9," mistulangTemperature ": 53.9," dewPoint ": 29.59," halumigmig ": 0.39, "pressure": 1022.45, "windSpeed": 3.87, "windGust": 9.25, "windBearing": 259, "cloudCover": 0.01, "uvIndex": 3, "visibility": 7.8, "ozone": 309.71}, "minimal": {"buod": "I-clear para sa oras.", "icon": "clear-day", "data": [{"time": 1550615280, "precipIntensity": 0, "precipProbability": 0 },…

Maaari itong maging isang napakatinding at mahirap basahin kung kaya ang inirerekumenda kong gawin ay ang paggamit ng isang JSON Formatter upang matulungan na mas mabasa ang data. Kapag ginawa mo ito magiging ganito ang hitsura:

bagay {9}

latitude: 37.8267 longitude: -122.4233 timezone: America / Los_Angeles kasalukuyang {19} oras: 1550615286 buod: I-clear ang icon: malinaw na araw na pinakamalapitStormDistansya: 57 pinakamalapit naStormBearing: 15 na bukangIntensity: 0 precipProbability: 0 temperatura: 53.9 maliwanagTemperature: 53.9 dewPoint: 29.59 halumigmig: 0.39 pressure: 1022.45 windSpeed: 3.87 windGust: 9.25 windBearing: 259 cloudCover: 0.01 uvIndex: 3 visibility: 7.8 ozone: 309.71

Ngayon ka lang tumawag sa isang API! Tingnan kung gaano kadali iyon? Hindi mo na kailangang magsulat ng isang linya ng code. Ngayon na pinagkadalubhasaan mo ang API maaari kaming magpatuloy sa bahagi ng streaming ng data.

Hakbang 3: Paunang Estado

Nais naming i-stream ang lahat ng aming data sa lagay ng panahon sa isang serbisyong cloud at gawin ang serbisyong iyon na ang aming data sa isang magandang dashboard na maaari naming ma-access mula sa aming laptop o mobile device. Ang aming data ay nangangailangan ng isang patutunguhan. Gagamitin namin ang Initial State bilang patutunguhan.

Hakbang 1: Magrehistro para sa Paunang Account ng Estado

Pumunta sa https://iot.app.initialstate.com at lumikha ng isang bagong account. Nakakuha ka ng isang 14 na libreng pagsubok at ang sinumang may isang edu email address ay maaaring magparehistro para sa isang libreng plano ng mag-aaral.

Hakbang 2: I-install ang ISStreamer

I-install ang module ng Initial State Python sa iyong Raspberry Pi. Sa prompt ng utos, patakbuhin ang sumusunod na utos:

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

Hakbang 3: Gumawa ng ilang AutomagicAfter Hakbang 2 makikita mo ang isang bagay na katulad sa sumusunod na output sa screen:

pi @ raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o - | sudo bashPassword: Simula ng ISStreamer Python Madaling Pag-install! Maaari itong tumagal ng ilang minuto upang mai-install, kumuha ng kape:) Ngunit huwag kalimutang bumalik, magkakaroon ako ng mga katanungan sa paglaon! Natagpuan easy_install: setuptools 1.1.6 Natagpuan pip: pip 1.5.6 mula sa /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip pangunahing bersyon: 1 pip menor de edad na bersyon: Natagpuan ang 5 ISStreamer, ina-update… Napapanahon na ang kinakailangan: ISStreamer sa /Library/Python/2.7/site-packages Nililinis … Nais mo bang awtomatikong makakuha ng isang halimbawa ng script? [y / N] Saan mo nais i-save ang halimbawa? [default:./is_example.py] Mangyaring piliin kung aling Initial State app ang iyong ginagamit: 1. app.initialstate.com 2. [BAGO!] iot.app.initialstate.com Ipasok ang pagpipilian 1 o 2: Ipasok ang iot.app.initialstate.com pangalan ng gumagamit: Ipasok ang iot.app.initialstate.com password:

Kapag tinanong kung nais mong awtomatikong kumuha ng isang halimbawa ng script na ilagay ang "y" para sa oo at pindutin ang enter upang i-save ang iyong script sa default na lokasyon. Para sa tanong tungkol sa aling app ang ginagamit mo, piliin ang 2 (maliban kung nag-sign up ka bago ang Nobyembre 2018) at ipasok ang iyong username at password.

Hakbang 4: Patakbuhin ang Halimbawa ng Script

Patakbuhin ang script ng pagsubok upang matiyak na makakalikha kami ng isang stream ng data sa iyong Initial State account. Isulat ang sumusunod na utos:

$ python ay_example.py

Hakbang 6: Halimbawa ng Data

Bumalik sa iyong Initial State account sa iyong web browser. Ang isang bagong bucket ng data na tinawag na "Halimbawa ng Python Stream" ay dapat na lumabas sa kaliwa sa iyong log shelf (maaaring kailanganin mong i-refresh ang pahina). Mag-click sa bucket na ito upang matingnan ang iyong data.

Hakbang 4: Dashboard ng Dark Sky Weather

Dashboard ng Dark Sky Weather
Dashboard ng Dark Sky Weather

Ngayon para sa kasiya-siyang bahagi. Handa na kaming magsimulang gamitin ang Dark Sky API upang lumikha ng isang dashboard ng panahon at makuha ang kasaysayan ng panahon para sa lokasyong pinili namin. Upang magawa ito, gagamitin namin ang script ng Python: https://github.com/initialstate/darksky/blob/master/darksky.py. Tinatawag lang ng script na ito ang Dark Sky API gamit ang iyong key ng API at kinukuha ang impormasyon ng panahon sa isang tinukoy na agwat ng oras. I-stream din nito ang data sa iyong Initial State account, na magbibigay-daan sa iyo upang lumikha ng isang dashboard ng panahon ng Dark Sky.

Maaari mong kopyahin ang script na ito sa iyong Pi, o i-access ito sa pamamagitan ng GitHub repository na na-clone namin nang mas maaga. Magagawa mo ito sa pamamagitan ng pagbabago sa iyong direktoryo ng darksky sa pamamagitan ng pagta-type:

$ cd darksky

Mula dito, maa-access mo ang python file na tatakbo namin upang likhain ang aming dashboard ng panahon. Bago mo ito patakbuhin, kailangan mong itakda ang iyong nais na mga parameter at ipasok ang iyong mga key. Nano sa darksky.py file sa pamamagitan ng pagta-type:

$ nano darksky.py

Pagkatapos ay i-edit ang seksyon na malapit sa tuktok ng script:

# --------- Mga Setting ng Gumagamit ----

LUNGSOD = "Nashville" GPS_COORDS = "36.1628414, -86.780199" DARKSKY_API_KEY = "LUGARIN ANG IYONG DARK SKY API KEY DITO" BUCKET_NAME = ": partly_sunny:" + CITY + "Panahon" BUCKET_KEY = "ds1" ACCESSATE THEK = SUSI DITO "MINUTES_BETWEEN_READS = 15 # -----------------

Kailangan mong itakda ang nais na mga coordinate ng GPS at pangalan ng lungsod. Kailangan mo ring ipasok ang iyong key ng Dark Sky API at ang iyong key ng pag-access sa Paunang Estado ng account o ang iyong data ay hindi pupunta kahit saan. Itatakda ng parameter ng MINUTES_BETWEEN_READS kung gaano kadalas ibobota ng iyong script ang Dark Sky API para sa impormasyon sa panahon. 15 minuto ay nagbibigay ng isang magandang agwat pang-matagalang. Alang-alang sa panandaliang pagsubok, maaari mong itakda ito sa 0.5 minuto. Gawin ang iyong mga pagbabago pagkatapos ay ipasok ang control + X upang lumabas at makatipid.

Kapag natakda mo na ang iyong mga parameter, handa ka na upang patakbuhin ang iyong script:

$ python darksky.py

Kung nakikipag-usap ka sa iyong Pi at nais mong iwanan ang script na ito na tumatakbo nang matagal sa mahabang panahon, maaari mong gamitin ang nohup na utos (walang hang-up) tulad ng sumusunod:

$ nohup python darksky.py &

Ang script na ito ay gagawa ng kaunti pa kaysa sa pagbabasa lamang ng data ng panahon at ipadala ito sa Initial State. Sasamantalahin ng script na ito ang suporta sa emoji na itinayo sa mga tool ng Initial State upang gawing medyo cool ang dashboard. Maaari mong makita ang lohika na ginamit upang kunin ang katayuan ng panahon mula sa kasalukuyang -> icon at i-convert ito sa isang emoji token sa pagpapaandar ng Weather_icon. Isang bagay na katulad na nangyayari para sa bahagi ng buwan sa pag-andar ng moon_icon at direksyon ng hangin sa paggana ng wind_dir_icon.

Hakbang 5: Konklusyon

Konklusyon
Konklusyon
Konklusyon
Konklusyon

Pumunta sa iyong Initial State account at tingnan ang iyong data. Binago ko ang lahat ng aking mga halagang porsyento sa mga arc gauge, ang pag-ulan sa isang likidong sukat, at ang temperatura sa isang sukatan ng temperatura. Maaari kang magpalit sa anumang uri ng mga uri ng Tile at piliin ang iyong mga kulay para sa mga gauge at tsart ng linya. Maaari mong gawing madilim o magaan ang iyong dashboard at i-embed ang pangwakas na produkto sa isang website gamit ang isang i-embed na iFrame.

Kung nais mong gamitin ang layout ng dashboard mula sa isang pampublikong pagbabahagi bilang iyong dashboard, maaari kang mag-import ng isang layout sa iyong data bucket sa pamamagitan ng pagsunod sa mga tagubilin dito. Maaari kang magdagdag ng isang imahe sa background sa iyong dashboard upang bigyan ito ng higit pang konteksto.

Ang pampublikong pagbabahagi ng URL para sa aming dashboard ay

Ngayon master mo na ang Dark Sky API ang mga posibilidad ay walang katapusang! Mayroong isang walang limitasyong dami ng libreng API's online upang galugarin upang makapagsimula.

Inirerekumendang: