Բովանդակություն:

Կառուցեք եղանակի վահանակ ՝ օգտագործելով Dark Sky API- ն ՝ 5 քայլ (նկարներով)
Կառուցեք եղանակի վահանակ ՝ օգտագործելով Dark Sky API- ն ՝ 5 քայլ (նկարներով)

Video: Կառուցեք եղանակի վահանակ ՝ օգտագործելով Dark Sky API- ն ՝ 5 քայլ (նկարներով)

Video: Կառուցեք եղանակի վահանակ ՝ օգտագործելով Dark Sky API- ն ՝ 5 քայլ (նկարներով)
Video: Big Tree Tech - SKR 3EZ - Basics 2024, Հուլիսի
Anonim
Image
Image

Dark Sky- ը մասնագիտացած է եղանակի կանխատեսման և արտացոլման ոլորտում: Dark Sky- ի ամենաթեժ կողմը եղանակային API- ն է, որը մենք կարող ենք օգտագործել աշխարհի գրեթե ցանկացած վայրից եղանակի տվյալները ստանալու համար: Եղանակը ոչ միայն անձրևոտ կամ արևոտ է, այլև ջերմաստիճանը, ցողի կետը, քամու պոռթկումը, խոնավությունը, տեղումները, ճնշումը, ուլտրամանուշակագույն ճառագայթման ինդեքսը և այլն, բոլորը հեշտությամբ հասանելի են ցանկացած վայրում, երբ ուզում ես:

Եկեք սովորենք, թե ինչպես օգտագործել Dark Sky- ի գերհասարակ API- ն: Եթե դուք նոր եք օգտագործում API- ները, ես ձեզ խոստանում եմ, որ դա իսկապես հեշտ կլինի: Եվ եթե նախկինում օգտագործել եք API- ները, ապա հույս ունեմ, որ մենք կարող ենք ձեզ ինչ -որ նոր բան սովորեցնել մեր օգտագործած ծածկագրով:

Այն, ինչ ձեզ հարկավոր կլինի այս նախագծի համար.

  • Dark Sky API հաշիվ
  • Նախնական պետական հաշիվ
  • Raspberry Pi կամ Laptop

Քայլ 1: Սկսելու համար

Մենք արդեն շատ աշխատանքներ ենք կատարել ձեր համար ՝ ծածկագիրը միասին հավաքելու և տեղեկատվությունը կազմակերպելու համար: Մեզ պարզապես պետք է, որ դուք մի քանի ճշգրտումներ կատարեք ճանապարհին: Եթե ցանկանում եք մի փոքր մարտահրավեր մտնել, որոշ փոփոխություններ կատարեք մեր ծածկագրում և եղանակի վերաբերյալ ինչ տվյալներ են ուղարկվում, կան անսահմանափակ հնարավորություններ:

Բոլոր այն բաները, որոնք մենք պատրաստել ենք ձեզ համար, ձեզ հարկավոր է կլոնավորել պահեստը GitHub- ից: GitHub- ը ծառայություն է, որը թույլ է տալիս մեզ պահել, վերանայել և կառավարել նման նախագծերը: Դուք կցանկանաք գործարկել այս սցենարը հատուկ սարքի վրա: A Raspberry Pi- ն կատարյալ տարբերակ է այս ձեռնարկի նման ծրագրեր գործարկելու համար:

Պահեստը կլոնավորելու համար մեզ մնում է մտնել մեր Pi- ի տերմինալ, կամ ձեր համակարգիչների տերմինալը, որը SSH- ն է ձեր pi- ում և մուտքագրել այս հրամանը.

$ git կլոն

Կտտացրեք enter և կտեսնեք այս տեղեկատվությունը.

«Դարսկի» -ի կլոնավորում…

հեռավոր. օբյեկտների հաշվարկ. 2, ավարտված: հեռավոր. Ընդամենը 2 (դելտա 0), կրկին օգտագործված 0 (դելտա 0), փաթեթ-վերօգտագործված 2 Ապափաթեթավորման օբյեկտներ `100% (2/2), ավարտված: Կապի ստուգում… կատարված է:

Երբ տեսնեք սա, ապա շնորհավորանքներ, դուք հաջողությամբ կլոնավորեցիք GitHub Repo- ն և ունեք բոլոր անհրաժեշտ ֆայլերը այս նախագիծը կառուցելու համար: Նախքան հաջորդ քայլին անցնելը, եկեք որոշ ժամանակ հատկացնենք ՝ ուսումնասիրելու այս գրացուցակը և սովորելու մի քանի հիմնական հրամանի տող:

Մուտքագրեք ստորև բերված հրամանը ձեր տերմինալում.

$ ls

Այս հրամանը թվարկում է այն ամենը, ինչ առկա է գրացուցակում, որում դուք այժմ գտնվում եք: Այս ցուցակը ցույց է տալիս, որ մեր GitHub Repo- ն հաջողությամբ կլոնավորվել է մեր գրացուցակում ՝ «darksky» անունով: Եկեք նայենք, թե ինչ կա այդ գրացուցակում: Գրացուցակ տեղափոխվելու համար անհրաժեշտ է միայն մուտքագրել «cd» և այնուհետև մուտքագրել այն գրացուցակի անունը, որին ցանկանում եք գնալ:

Այս դեպքում մենք մուտքագրում ենք.

$ cd darksky

Երբ սեղմում ենք enter- ը, կտեսնեք, որ մենք այժմ գտնվում ենք darksky գրացուցակում: Եկեք նորից մուտքագրենք «ls» ՝ տեսնելու, թե ինչ ֆայլեր ենք տեղադրել մեր pi- ում:

README.md darksky.py…

Այստեղ մենք տեսնում ենք, որ մենք ունենք մեր readme փաստաթուղթը և python ֆայլերը: Եկեք նայենք darksky.py- ին ՝ օգտագործելով «nano» հրամանը: Նանո հրամանը թույլ է տալիս մեզ բացել նանո տեքստային խմբագիր, որտեղ մենք ունենք մեր բոլոր Python ծածկագրերը այս նախագծի յուրաքանչյուր հատվածի համար: Շարունակեք և մուտքագրեք.

$ nano darksky.py

Այստեղ դուք կարող եք տեսնել այն բոլոր ծածկագրերը, որոնք մենք պատրաստել ենք ձեզ համար այս նախագծի համար: Մենք դեռ չենք պատրաստվում որևէ փոփոխություն կատարել այս փաստաթղթում, բայց ազատ զգացեք շրջել և տեսնել, թե ինչ ենք անելու հետագայում այս ձեռնարկում:

Քայլ 2: Օգտագործելով Dark Sky API- ն

Նախնական վիճակ
Նախնական վիճակ

Dark Sky API- ից օգտվելու համար նախ անհրաժեշտ է ձեր սեփական API բանալին: Մի անհանգստացեք, API բանալին ստանալը արագ և անվճար է: Մնում է միայն գնալ կայք և սեղմել «Փորձել անվճար» հաշիվ ստեղծելու համար:

  • Դուք ստանում եք 1 000 API զանգ ամեն օր անվճար: Անվճար օրական սահմանաչափից ավելի API- ի յուրաքանչյուր հայտ արժե 0.0001 դոլար:
  • Այս սահմանաչափը ինքնաբերաբար վերակայվում է ամեն օր UTC կեսգիշերին:
  • The Forecast Request- ը վերադարձնում է հաջորդ շաբաթվա եղանակի կանխատեսումը:
  • Time Machine Request- ը վերադարձնում է դիտված կամ կանխատեսվող եղանակային պայմանները անցյալի կամ ապագայի ամսաթվի համար:

Ձեր գաղտնի Dark Sky API բանալին այսպիսի տեսք կունենա ՝ 0123456789abcdef9876543210fedcba:

Կարող եք API- ի զանգ կատարել Dark Sky- ին ՝ ձեր դիտարկիչում մուտքագրելով URL ՝ հետևյալ ձևաչափով.

api.darksky.net/forecast/on'skeymber/ [լայնություն], [երկայնություն]

Փոխարինեք «բանալին» ձեր Dark Sky API ստեղնով և երկայնություն/լայնություն այն ինչ ուզում եք: Դուք կարող եք գտնել ձեր երկայնությունը և լայնությունը ՝ գնալով Google Քարտեզներ և որոնելով ձեր գտնվելու վայրը: Այդ արժեքները կլինեն URL- ում: Պատճենեք և տեղադրեք վերը նշված մութ երկնքի URL- ը ՝ մուտքի բանալին և հասցեների բարում ավելացված արժեքներին:

Երբ դա անեք, կտեսնեք այսպիսի բան.

օր »,« մոտակա փոթորիկ հեռավորություն »՝ 57,« մոտակա փոթորիկ », 15,« տեղումների արագություն »՝ 0,« տեղայնացման հավանականություն »՝ 0,« ջերմաստիճան »՝ 53,9,« ակնհայտ ջերմաստիճան »՝ 53,9,« dewPoint »՝ 29,59,« խոնավություն »՝ 0,39, «ճնշում» ՝ 1022.45, «windSpeed» ՝ 3.87, «windGust» ՝ 9.25, «windBearing» ՝ 259, «cloudCover» ՝ 0.01, «uvIndex» ՝ 3, «տեսանելիություն» ՝ 7.8, «օզոն» ՝ 309.71}, "minutely": {"summary": "Clear for the hour.", "icon": "clear-day", "data": [{"time": 1550615280, "precipIntensity": 0, "precipProbability": 0 },…

Դա կարող է լինել մի փոքր ճնշող և դժվար կարդալ, ուստի այն, ինչ ես խորհուրդ եմ տալիս անել, JSON ձևաչափի օգտագործումն է, որն օգնում է տվյալները ավելի ընթեռնելի դարձնել: Երբ դա անեք, այսպիսի տեսք կունենա.

օբյեկտ {9}

լայնություն ՝ 37.8267 երկայնություն ՝ -122.4233 ժամային գոտի ՝ Ամերիկա/Լոս Անջելես ներկայումս {19} ժամանակ ՝ 1550615286 ամփոփում ՝ Պարզ պատկերակ ՝ պարզ օր ՝ ամենամոտ Փոթորիկ Հեռավորություն ՝ 57 մոտակա Փոթորիկ Առանցքակալում ՝ 15 տեղումներ Ինտենսիվություն ՝ 0 տեղումներ Հավանականություն. 0,39 ճնշում ՝ 1022,45 քամի Արագություն ՝ 3,87 քամի Պայթյուն ՝ 9,25 քամի Առանցքակալ ՝ 259 ամպ overածկույթ ՝ 0,01 ուլ. Ինդեքս ՝ 3 տեսանելիություն ՝ 7,8 օզոն ՝ 309,71

Դուք հենց նոր API զանգ կատարեցիք: Տեսնես ինչ հեշտ էր դա: Դուք նույնիսկ կարիք չունեիք մեկ տող կոդ գրել: Այժմ, երբ դուք տիրապետում եք API- ին, կարող ենք անցնել տվյալների հոսքի հատվածին:

Քայլ 3: Նախնական վիճակ

Մենք ցանկանում ենք մեր եղանակի բոլոր տվյալները հոսել ամպային ծառայության վրա և այդ ծառայությունը դարձնել մեր տվյալները գեղեցիկ վահանակի, որին կարող ենք մուտք գործել մեր նոթբուքից կամ բջջային սարքից: Մեր տվյալները նպատակակետի կարիք ունեն: Որպես այդ ուղղություն, մենք կօգտագործենք Նախնական վիճակը:

Քայլ 1. Գրանցվեք սկզբնական պետական հաշվի համար

Գնացեք https://iot.app.initialstate.com և ստեղծեք նոր հաշիվ: Դուք ստանում եք 14 օր անվճար փորձաշրջան, և edu էլփոստի հասցե ունեցող ցանկացած անձ կարող է գրանցվել անվճար ուսանողական ծրագրի համար:

Քայլ 2: Տեղադրեք ISStreamer- ը

Տեղադրեք սկզբնական վիճակի Python մոդուլը ձեր Raspberry Pi- ի վրա: Հրամանի տողում գործարկեք հետևյալ հրամանը.

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

Քայլ 3. Կատարեք ավտոմատիկա: Քայլ 2 -ից հետո էկրանին կտեսնեք հետևյալ արտադրանքի նման մի բան.

pi@raspberrypi ~ $ / curl -sSL https://get.initialstate.com/python -o -| sudo bashPassword. Սկսնակ ISStreamer Python Հեշտ տեղադրում: Տեղադրումը կարող է տևել մի քանի րոպե, սուրճ խմել:) Բայց մի մոռացեք վերադառնալ, ես հարցեր կունենամ ավելի ուշ: Գտնվել է easy_install: setuptools 1.1.6 Գտնվել է pip. Pip 1.5.6 /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip հիմնական տարբերակ. 5 ISStreamer- ը գտնվել է, թարմացվում է … Պահանջն արդեն արդիական է. ISStreamer- ը /Library/Python/2.7/site-packages- ում Մաքրում … youանկանու՞մ եք ավտոմատ կերպով ստանալ օրինակ սցենար: [y/N] Որտե՞ղ եք ցանկանում պահպանել օրինակը: [կանխադրված..initialstate.com օգտվողի անունը. Մուտքագրեք iot.app.initialstate.com գաղտնաբառը:

Հարցին, թե արդյո՞ք ցանկանում եք ավտոմատ կերպով ձեռք բերել օրինակ սցենար, այո նշեք «y» և սեղմեք enter ՝ ձեր սկրիպտը կանխադրված վայրում պահելու համար: Հարցին, թե որ ծրագիրն եք օգտագործում, ընտրեք 2 -ը (եթե չեք գրանցվել մինչև 2018 թ. Նոյեմբեր) և մուտքագրեք ձեր օգտանունը և գաղտնաբառը:

Քայլ 4: Գործարկեք օրինակ սցենարը

Գործարկեք փորձարկման սցենարը `համոզվելու համար, որ մենք կարող ենք տվյալների հոսք ստեղծել ձեր Նախնական վիճակի հաշվին: Գրեք հետևյալ հրամանը.

$ python is_example.py

Քայլ 6: Տվյալների օրինակ

Վերադարձեք ձեր սկզբնական վիճակի հաշվին ձեր վեբ դիտարկիչում: Տվյալների նոր դույլ, որը կոչվում է «Python Stream Օրինակ», պետք է հայտնվեր ձեր մատյանների դարակում ձախ կողմում (գուցե ստիպված լինեք թարմացնել էջը): Կտտացրեք այս դույլին ՝ ձեր տվյալները դիտելու համար:

Քայլ 4: Dark Sky Weather Dashboard

Dark Sky Եղանակի վահանակ
Dark Sky Եղանակի վահանակ

Հիմա զվարճալի մասի համար: Մենք պատրաստ ենք սկսել օգտագործել Dark Sky API- ն ՝ եղանակի կառավարման վահանակ ստեղծելու և մեր ընտրած վայրի եղանակի պատմությունը գրավելու համար: Դա անելու համար մենք պատրաստվում ենք օգտագործել Python սցենարը ՝ https://github.com/initialstate/darksky/blob/master/darksky.py: Այս սցենարը պարզապես զանգահարում է Dark Sky API- ին ՝ օգտագործելով ձեր API ստեղնը և որոշակի ժամանակահատվածում առբերում է եղանակի մասին տեղեկությունները: Այն նաև փոխանցում է այդ տվյալները ձեր Նախնական վիճակի հաշվին, ինչը թույլ կտա ձեզ ստեղծել Dark Sky եղանակի վահանակ:

Դուք կարող եք կամ պատճենել այս սցենարը ձեր Pi- ում, կամ մուտք գործել այն GitHub պահեստի միջոցով, որը մենք ավելի վաղ կլոնավորել էինք: Դուք կարող եք դա անել ՝ փոխվելով ձեր darksky գրացուցակի ՝ մուտքագրելով.

$ cd darksky

Այստեղից դուք կկարողանաք մուտք գործել python ֆայլ, որը մենք գործարկելու ենք ՝ ստեղծելու մեր եղանակի վահանակը: Նախքան այն գործարկելը, դուք պետք է սահմանեք ձեր ցանկալի պարամետրերը և տեղադրեք ձեր բանալիները: Նանո darksky.py ֆայլում ՝ մուտքագրելով.

$ nano darksky.py

Այնուհետև խմբագրեք սցենարի վերևի հատվածը.

# --------- Օգտագործողի կարգավորումներ ---------

CITY = "Nashville" GPS_COORDS = "36.1628414, -86.780199" DARKSKY_API_KEY = "Տեղադրեք ձեր մութ երկնքի API- ի բանալին ԱՅՍՏԵ B" BUCKET_NAME = ". Մասամբ_ արևոտ." + CITY + "Եղանակ" BUCKET_KEYCEY = AC ԲԱՅ ԱՅՍՏԵ "« MINUTES_BETWEEN_READS = 15 # ---------------------------------

Դուք պետք է սահմանեք ցանկալի GPS կոորդինատները և քաղաքի անունը: Դուք նաև պետք է տեղադրեք ձեր Dark Sky API ստեղնը և ձեր սկզբնական վիճակի հաշվի մուտքի բանալին, կամ ձեր տվյալները չեն պատրաստվում որևէ տեղ գնալ: MINUTES_BETWEEN_READS պարամետրը կսահմանի, թե որքան հաճախ է ձեր սցենարը եղանակային տեղեկատվության համար հարցում անցկացնելու Dark Sky API- ում: 15 րոպեն ապահովում է երկարաժամկետ գեղեցիկ ընդմիջում: Կարճաժամկետ թեստավորման համար կարող եք սահմանել 0.5 րոպե: Կատարեք ձեր փոփոխությունները, այնուհետև մուտքագրեք control+X ՝ դուրս գալու և պահելու համար:

Պարամետրերը սահմանելուց հետո դուք պատրաստ եք գործարկել ձեր սցենարը.

$ python darksky.py

Եթե դուք մտնում եք ձեր Pi- ի մեջ և ցանկանում եք այս սցենարը երկար ժամանակ անխափան թողնել, կարող եք օգտագործել nohup հրամանը (առանց անջատման) հետևյալ կերպ.

$ nohup python darksky.py &

Այս սցենարը մի փոքր ավելին կանի, քան պարզապես եղանակի տվյալները կարդալը և այն ուղարկելը Նախնական վիճակ: Այս սցենարը կօգտվի Emoji աջակցությունից, որը ներկառուցված է Initial State- ի գործիքներում `վահանակը մի փոքր ավելի սառը դարձնելու համար: Դուք կարող եք տեսնել այն տրամաբանությունը, որն օգտագործվում է եղանակի կարգավիճակը ներկայիս -> պատկերակից վերցնելու և այն weather_icon գործառույթում էմոջի նշանի վերածելու համար: Նման բան տեղի է ունենում լուսնի փուլի համար moon_icon գործառույթում և քամու ուղղության մեջ wind_dir_icon գործառույթում:

Քայլ 5: Եզրակացություն

Եզրակացություն
Եզրակացություն
Եզրակացություն
Եզրակացություն

Գնացեք ձեր Նախնական վիճակի հաշիվ և նայեք ձեր տվյալները: Ես իմ բոլոր տոկոսային արժեքները փոխեցի աղեղաչափերի, տեղումները `հեղուկի, իսկ ջերմաստիճանը` ջերմաստիճանի չափիչի: Դուք կարող եք փոխել ցանկացած տեսակի սալիկների և ընտրել ձեր գույները չափիչների և գծապատկերների համար: Կարող եք ձեր վահանակը մուգ կամ թեթև դարձնել և վերջնական արտադրանքը տեղադրել կայքէջում ՝ օգտագործելով ներկառուցված iFrame- ը:

Եթե ցանկանում եք օգտագործել հանրային բաժնից վահանակի դասավորությունը որպես ձեր վահանակ, կարող եք դասավորությունը ներմուծել ձեր տվյալների շերտում ՝ հետևելով այստեղի հրահանգներին: Դուք կարող եք ֆոնային պատկեր ավելացնել ձեր վահանակին `դրան ավելի համատեքստ հաղորդելու համար:

Մեր վահանակի հանրային համօգտագործման URL- ն է ՝

Այժմ դուք տիրապետում եք Dark Sky API- ին, հնարավորություններն անսպառ են: Գոյություն ունի անսահմանափակ քանակությամբ անվճար API առցանց ՝ սկսելու համար:

Խորհուրդ ենք տալիս: