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

1984 WeatherMan Pi: 7 քայլ (նկարներով)
1984 WeatherMan Pi: 7 քայլ (նկարներով)

Video: 1984 WeatherMan Pi: 7 քայլ (նկարներով)

Video: 1984 WeatherMan Pi: 7 քայլ (նկարներով)
Video: The Giant Wave - The Perfect Storm (3/5) Movie CLIP (2000) HD 2024, Նոյեմբեր
Anonim
Image
Image
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi

Այս շարժական ձայներիզը ներկայումս շրջակա միջավայրի IoT եղանակի ցուցադրում է `վաղ 80 -ականների ոճով, որը ցուցադրում է« ընթացիկ պայմանների »անիմացիա, ջերմաստիճանի ոլորման և անձրևի հավանականության գրաֆիկը ժապավենի պատուհանից: Երբ եղանակային պայմանները փոխում են վերևում գտնվող servo- ով կառավարվող ականջակալները, որպես նուրբ ազդանշան, շարժվում են առաջ և առաջ:

Ֆունկցիոնալ ժապավենի դուռը բացելով `մենք կարող ենք տեսնել, որ փոշոտ օրիգինալ բաղադրիչները փոխարինվել են Raspberry Pi Zero W- ով, Pimoroni Unicorn Hat HD- ով (LED մատրիցով) և մի փոքր սերվոյով: Եղանակի տվյալները ստացվել են Python սցենարով, որը հարցնում է ծայրահեղ ճշգրիտ Dark Sky Weather API- ն ՝ հարմարեցված իմ կոնկրետ վայրին:

Դա պարզ, բայց գեղեցիկ տեսք ունեցող և ֆունկցիոնալ IoT սարք է, որը նստած է իմ նստարանի հակառակ նստարանի բարձրախոսին ՝ հանգիստ տեղեկացնելով ինձ եղանակի մասին:

Պարագաներ

Ազնվամորի Պի eroրո

Pimoroni միաեղջյուր HAT HD

Փոքր սերվո

1984 Hitachi SP-1 Անձնական ստերեո և ականջակալներ

USB WiFi ադապտեր

2 մմ ակոսավոր ձող

Sugru (սև և մոխրագույն)

GeoMag մագնիս

Քայլ 1: Կասետային արցունքաբերություն

Կասետային Teardown
Կասետային Teardown
Կասետային Teardown
Կասետային Teardown
Կասետային Teardown
Կասետային Teardown

Իմ սկեսուրիս կողմից սեպտեմբերին ինձ տրվեց այս գեղեցիկ հին ձայներիզը և անմիջապես սիրահարվեցի նրա պատկերանշանային տեսքին և կոճակներին: Իրական վիճակահանությունը, այնուամենայնիվ, այդ մեծ ժապավենի պատուհանն էր. Մոտ 15 վայրկյան տիրանալուց հետո ես հանեցի մի քանոն և ապշեցի, երբ պարզեցի, որ այն, մմ -ի չափ, նույն չափի է, ինչ ստանդարտ Raspberry Pi HAT- ը (Սարքավորումը կցված է վերևում):

Միայն այդ հայտնագործությունը բավական էր, որ իմ «կուկու» ժամացույցի նախագիծը հետագայում «անելիքների» ցուցակից ներքև ընկներ, և ես անմիջապես սկսեցի աշխատել ՝ խաղացողը ապամոնտաժելով:

Արցունքի կաթիլը բավականին լավ անցավ, և ես ավարտեցի երեք տարբեր կտորներով, որոնցով ես կարողացա կոտրել մի քանի պլաստմասե մասեր, բայց ոչինչ, որը հնարավոր չէր սոսնձել միասին:

Քայլ 2: Dark Sky Pi

Dark Sky Pi
Dark Sky Pi
Dark Sky Pi
Dark Sky Pi
Dark Sky Pi
Dark Sky Pi

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

Նախ գնացեք https://darksky.net/dev և գրանցվեք անվճար հաշվի համար. «Փորձնական» հաշիվը թույլ է տալիս օրական կատարել 1000 API հարցում, ինչը բավարար է յուրաքանչյուր 1,5 րոպեն մեկ թարմացնելու համար, հաճախ բավական է նույնիսկ իմ Եղանակի մոլուցքի բրիտանական մակարդակը:

Գրանցվելուց հետո դուք կստանաք «Գաղտնի բանալին». Սա այն է, ինչ ձեզ հարկավոր է տվյալներին մուտք գործելու համար և օգտագործվում է Python սցենարում, այնպես որ այն հարմար պահեք (և, գիտեք, գաղտնի):

Սկսեցի ՝ հարմարեցնելով սցենարը, որն օգտագործել եմ YouTube բաժանորդների հաշվիչի հաշվարկում, որն օգտագործում է Python- ի «Պահանջներ» մոդուլը ՝ API- ի տվյալները առբերելու համար: Իմ օգտագործած սցենարը GitHub- ում է, պարզապես անհրաժեշտ է ավելացնել ձեր Dark Sky API ստեղնը և, իհարկե, փոխարինել ձեր լայնության և երկայնության ձեր արժեքները:

Եղանակի ներկա պայմանների վերաբերյալ տվյալները հանելը բավականին պարզ էր, և ես որոշեցի օգտագործել «Պատկերակ», «Տեղումների հավանականություն» և «peratերմաստիճան» տարրերը:

Քայլ 3: Կոդ

Օրենսգիրքը
Օրենսգիրքը

Եթե ցանկանում եք կրկին օգտագործել կամ ցատկել իմ օգտագործած ծածկագիրը, այն գտնվում է GitHub- ի WeatherMan շտեմարանում `կլոնավորեք կամ ներբեռնեք« եղանակ »թղթապանակը ձեր Raspberry Pi- ի« pi »պանակում:

Սցենարի հիմնական գործառույթները հետևյալն են.

weatherman.py

Սա հիմնական սցենարն է, որը քաղում է եղանակի տվյալները Dark Sky- ից: Դուք պետք է ստեղծեք Dark Sky հաշիվ https://darksky.net/dev հասցեով և ձեր Գաղտնի բանալին տեղադրեք այն սցենարում, որտեղ նշված է: Դուք նաև պետք է նշեք ձեզ հետաքրքրող եղանակային վայրի լայնությունը և երկայնությունը. Սա կարելի է գտնել Google Քարտեզներում, պարզապես աջ սեղմեք և ընտրեք «Ի՞նչ է այստեղ»: և դուք կստանաք թռուցիկ, որը ցույց է տալիս գտնվելու վայրի լատ/երկարությունը:

API- ի տվյալները ստանալուց հետո weatherman.py- ն պարամետրերը փոխանցում է մի քանի փոքր սցենարների `անիմացիաներն ու ականջակալների խռխռոցը սկսելու համար:

Սցենարը գործարկվելու է գործարկման ժամանակ ՝ գործարկման ֆայլը խմբագրելով…

sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

… Եվ ավելացնելով.

@python3 /home/pi/weather/weatherman.py &

ֆայլի վերջում:

icon.py

Այս սկրիպտը weatherman.py սցենարից վերցնում է «ընթացիկ պայմաններ» պարամետրը և օգտագործում է այն 16x16 եղանակի անիմացիա ցուցադրելու համար. Դրանք բոլորը պահվում են «պատկերակներ» թղթապանակում և մաս են կազմում միաեղջյուր HAT HD ստանդարտ փաստաթղթերի: Դուք կարող եք հեշտությամբ խմբագրել-p.webp

հեռախոսներ. py

Եթե եղանակային պայմանները փոխվել են API- ի վերջին խնդրանքից (կամ դա թարմ բեռնախցիկ է և ձյուն չի գալիս), ապա այս սցենարը կոչվում է weatherman.py- ից և սերվոյին հրահանգում է «խռխռալ» հետ ու առաջ ՝ նախազգուշացնելու ձեզ, որ պայմանները փոխվել է:

precip.py

Այս սցենարը weatherman.py- ից ընդունում է «տեղումների հավանականության» պարամետր և միապաղաղ գլխարկի վրա կապույտ գծեր է ներկայացնում ՝ հավանականության % -ի վերաբերյալ: Եթե 100% -ով բոլոր 16 տողերը կապույտ փայլեն, եթե 50% -ը միայն 8 տող և այլն:

temp.py

Մեկ այլ ստանդարտ Pimoroni սցենար, սա վերցնում է «temp» պարամետր weatherman.py- ից և ցուցադրում այն ոլորման տեքստով: Նախատեսված է օգտագործել Herkules truetype տառատեսակը («տառատեսակներ» թղթապանակում), բայց եթե նախընտրում եք, կարող է օգտագործել ստանդարտ տառատեսակ: Դուք նույնիսկ կարող եք այն բարձրացնել, որպեսզի ցուցադրվող տեքստը փոխի գույնը `կախված ջերմաստիճանի արժեքից:

Քայլ 4: Միաեղջյուր HAT & Servo

Միաեղջյուր HAT & Servo
Միաեղջյուր HAT & Servo
Միաեղջյուր HAT & Servo
Միաեղջյուր HAT & Servo
Միաեղջյուր HAT & Servo
Միաեղջյուր HAT & Servo

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

Սա հսկայական աշխատանք էր խնայում, և ես արագ և արագ աշխատում էի ՝ ներկայիս պայմանների համար անիմացիոն պատկերակով, ջերմաստիճանի որոշ ոլորվող տեքստով և % տեղումների համար գրաֆիկով (որը ներառում էր թեթև մաթեմատիկա): Ես պահեցի սցենարները առանձին և օգտագործեցի Python- ի Subprocess մոդուլը ՝ պարամետրերը այս ու այն կողմ փոխանցելու համար:

Այս ազդանշանների համար իդեալական փոխադրամիջոց էր սերվոյի ավելացումը, քանի որ այն մի փոքր աղմուկ կբարձրացներ և աչքի կընկներ `առանց չափազանց նյարդայնացնելու: Երբ HAT- ն արդեն վերցրել էր Pi- ի բազմաթիվ կապում, ես servo մալուխները սոսնձեցի տախտակի ներքևի մասում ՝ օգտագործելով Pin 17 -ը `սերվոյի շարժումը վերահսկելու համար` օգտագործելով Pulse Width Modulation- ը:

Pi- ի servo- ն սնուցելը իդեալական չէր, բայց այն երբևէ կօգտագործվեր մի ակնթարթային ցնցման համար, այնպես որ այստեղ ճշգրտությունը մեծ խնդիր չէր: Այն միացավ, ինչպես ցույց է տրված գծապատկերում, դարչնագույն մալուխով ՝ GND, կարմիրից ՝ 5v, իսկ Orange- ը (կառավարման մալուխը) ՝ GPIO17- ին:

Ի վերջո, ես խմբագրեցի եղանակի անիմացիոն ֆայլերից մի քանիսը GIMP- ում ՝ իմ անձնական հպումներն ավելացնելու համար, ինչպես լուսնի վրա չղջիկները և արևի ժպիտը: Ես նաև ավելացրեցի «Old Tech New Spec» ձայներիզով անիվի անիմացիան, որը պետք է նվագարկվի գործարկման ժամանակ, պարզապես հաճույքի համար:

Քայլ 5: Ականջակալների կծկում

Ականջակալների կծկում
Ականջակալների կծկում
Ականջակալների կծկում
Ականջակալների կծկում
Ականջակալների կծկում
Ականջակալների կծկում
Ականջակալների կծկում
Ականջակալների կծկում

WeatherMan- ի գաղափարն այն էր, որ այն պասիվ նստեր իմ գրասեղանի բարձրախոսին ՝ երբեմն -երբեմն ցուցադրելով եղանակը, բայց ես ուզում էի, որ այն մի փոքր ավելին աներ: Դրա հետ եկած ականջակալները կենաց էին, բայց դասական 80 -ականներ, ուստի որոշեցի ինչ -որ բան անել դրանցով: Բոլոր մալուխը հանելուց և կոտրվածը տաք սոսնձելուց հետո ինձ մնաց երեք մաս ՝ 3.5 մմ խրոցը, ադամանդե կոճակը և հեռախոսներն իրենց ճկուն մետաղյա ժապավենի վրա:

Գաղափարն ինձ դուր եկավ, որ եթե ես կարողանամ հեռախոսներ տեղադրել սարքի վերևում, ապա կարող եմ ստիպել դրանք պտտվել սերվոյի հետ և հետագայում և օգտագործել դա որպես լրացուցիչ ծանուցում:

Սկզբում ես փորեցի 3.5 մմ խրոցը և ապամոնտաժեցի ադամանդի անջատիչը, այնուհետև դրանք սահեցի մի կտոր թելաձողի վրա: Հաջորդը ես կպչեցի մի ընկույզ պլաստիկ միակցիչի վրա, որպեսզի ձողը կարողանա ապահով (և ուղիղ) նստել սերվոյի վրա: Ձողի մյուս ծայրում ես ավելացրեցի մեկ այլ ընկույզ: Ի վերջո, ես օգտագործեցի մոխրագույն Sugru- ն ՝ գավազանի վերևը ականջակալների ժապավենին ամրացնելու համար, ինչպես նաև հավաքածուի ներքևի մասում ընկույզը ծածկելու համար: Եթե դուք չեք լսել Sugru- ի մասին, ապա այն ձևավորվող սոսինձ է, որը գալիս է փոքր գունավոր տոպրակների մեջ:

Վերջին ցուրտ եղանակին Sugru- ին մի քանի օր տևեց, որպեսզի ամբողջովին կոշտանա, բայց ականջակալները և դրանց տակդիրը շուտով պատրաստ էին վերջնական հավաքման:

Քայլ 6: Հավաքում

Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով

Pi- ն, HAT- ը և Servo- ն բոլորը լավ էին աշխատում նստարանին, այնպես որ հաջորդ գործը նրանց գործի մեջ մտցնելն էր: Նախքան մեծ բաղադրիչների վրա գործելը, ես օգտագործեցի որոշ մոխրագույն Sugru մնացորդներ ՝ ձայնի հավաքիչի, ականջակալների վարդակի և «մետաղական ժապավենի» անջատիչի մեջ ամրացնելու համար ՝ կոսմետիկայի տեսակավորմամբ: Ես նաև բնօրինակ Play, Stop, FF & Rew կոճակները սոսնձեցի մի կտոր պլաստիկ խողովակի վրա, որպեսզի նրանք մնան ճիշտ տեղում: Ամոթ էր այս անգամ չկիրառել որևէ կոճակ, բայց իրականում նրանց վերահսկելու ոչինչ չկար:

Ես օգտագործեցի մոխրագույն Sugru- ի վերջին մասը `սերվոն դիրքում պահելու համար, որի լիսեռը սեղմում էր ականջակալների ընդլայնված վարդակից: Անցնելով գործի մյուս կեսին, ես այնուհետև օգտագործեցի մի սև Sugru ՝ HAT և Pi հավաքածուն ամրացնելու համար ժապավենի դռանը, որպեսզի նրանք բացվեն դրանով: Ես իսկապես վայելեցի վերջին փոքրիկ հպումը `GeoMag մագնիսով ամրացնելը, որպեսզի դուռը ամուր փակվի:

Երկու կեսերը միասին դնելը նյարդային գործ էր, քանի որ ես վախենում էի, որ Pi & Servo- ն բախվելու են միմյանց դեմ, բայց ի վերջո, գրքումս շատ բան էր մնացել: Քանի որ զվարճալի բացվող դուռը լիարժեք մուտք կտար դեպի ինտերիեր ապագա սպասարկման համար, ես պարզապես երկու մասերը տաք սոսնձեցի, իսկ իմ յուղոտ մատնահետքերը սրբելուց հետո ականջակալների հավաքածուն տեղադրվեց վերևում:

Քայլ 7: Հանգիստ մոլուցք

Հանգիստ մոլուցք
Հանգիստ մոլուցք
Հանգիստ մոլուցք
Հանգիստ մոլուցք

Երկրորդ մրցանակ կրկնակի օգտագործման մրցույթում

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