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

Խելացի պատի օրացույց `5 քայլ
Խելացի պատի օրացույց `5 քայլ

Video: Խելացի պատի օրացույց `5 քայլ

Video: Խելացի պատի օրացույց `5 քայլ
Video: Խորհուրդներ ծնողներին: Ինչու՞ են երեխաները ուշ սկսում խոսել: 2024, Նոյեմբեր
Anonim
Խելացի պատի օրացույց
Խելացի պատի օրացույց

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

Այս ձեռնարկում ես ձեզ ցույց կտամ, թե ինչպես կառուցել խելացի պատի օրացույց ՝ ցուցադրելով իրադարձություններ մի քանի Google հաշիվներից: Այն նաև կցուցադրի ժամանակը, ամսաթիվը, եղանակը, ջերմաստիճանը և որոշ լրացուցիչ տեղեկություններ: Այն սնուցվելու է Raspberry Pi համակարգչով, որին կցված է Պասիվ ինֆրակարմիր սենսոր (PIR) շարժման սենսոր, որպեսզի էկրանը միանա, երբ շարժումը հայտնաբերվի սենյակում, բայց անջատվի մի քանի րոպե անգործությունից հետո: Այս ձեռնարկը հիմնված է մի քանի այլ ձեռնարկների վրա, որոնք ես գտել եմ ինտերնետում, և ես նրանց հղումները կտամ ավելի լավ հասկանալու համար: Պահանջվում են ծրագրավորման որոշ հիմնական գիտելիքներ (HTML, Python,…):

Քայլ 1: Սարքավորումը

Ինչպես արդեն նշվեց, ես փորձեցի նորից օգտագործել նույնքան հին էլեկտրոնային մասեր, որպեսզի ծախսերը նվազեցվեն: Այնուամենայնիվ, ես որոշ իրեր պետք է գնեի, ուստի ես թվարկեմ այն ամենը, ինչ անհրաժեշտ է շինարարության համար:

- Raspberry Pi հավաքածու: Սկզբում ես օգտագործեցի իմ հին մոդելը 2 այլ նախագծերից: Այն աշխատեց, բայց վեբ էջի խմբագրումն ու վերաբեռնումը ինձ շատ ժամանակ տևեց, ուստի ես ի վերջո անցա 3 -րդ մոդելին, որն ավելի սահուն է աշխատում https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313 & _nkw = ազնվամորի+pi+kit & _sacat = 0

- LCD էկրան: Ես օգտագործել եմ իմ հին նոութբուքի էկրանը, ուստի ինձ միայն անհրաժեշտ էր գնել LVDS վարորդի տախտակ և դրա համար էլեկտրամատակարարում https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=hdmi+ վարորդ+LVDS+տախտակ & _sacat = 0

Պլաստիկ պահեստատուփ էլեկտրոնիկայի համար

- Պասիվ ինֆրակարմիր շարժման տվիչ

- AM2302 ջերմաստիճանի/խոնավության տվիչ

- Սև պլաստմասե սլայդ-ամրացուցիչ LCD շրջանակի համար

- Տարբեր մալուխներ (HDMI, 5.5 մմ DC հոսանքի համար, առանց զոդման տախտակի jumper մալուխներ, …)

Քայլ 2: Ստեղծեք LCD էկրան

Ստեղծեք LCD էկրան
Ստեղծեք LCD էկրան
Ստեղծեք LCD էկրան
Ստեղծեք LCD էկրան
Ստեղծեք LCD էկրան
Ստեղծեք LCD էկրան

Ես օգտագործեցի LCD էկրանը իմ հին հնացած նոթբուքից: Կան մի քանի ձեռնարկներ, թե ինչպես դա անել, ես հետևեցի այս մեկին.

www.instructables.com/id/How-to-reuse-the-old-LCD-Screen-of-your-broken-Lap/

Ես ապամոնտաժեցի իմ հին նոութբուքի կափարիչը, հանեցի LCD էկրանը, այնուհետև պատվիրեցի ճիշտ LVDS վարորդական տախտակը: Ես վաճառողին տրամադրեցի ապրանքի կոդը, որը կարելի է գտնել LCD- ի հետևի մասում, իմ դեպքում դա LP171WE3 (TL) (A2) է. Տես վերջին նկարի ներքևի պիտակը, այնուհետև նա ինձ ուղարկեց համապատասխան LVDS: Խնդրում ենք նկատի ունենալ, ցուցադրման համար ձեզ նույնպես պետք է սնուցման աղբյուր, ուստի խնդրեք վաճառողին այն նույնպես ուղարկել: Ես նաև գնել եմ 14,5 × 7,5 × 2 սմ չափս ունեցող գեղեցիկ պլաստիկ տուփ, որը գեղեցիկ տեղավորելու է վարորդի տախտակը և ամրացնելու այն LCD- ի հետևի կողմում:

Այժմ LCD էկրանն ունի մետաղական շրջանակ, որը գեղեցիկ տեսք չունի: Սկզբում ես այն ներկեցի սևով, բայց ներկը սկսեց պոկվել: Այսպիսով, ես վերցրեցի չորս սև պլաստմասե սլայդեր, որոնք սովորաբար օգտագործվում են թղթի թերթերը ամրացնելու համար, համապատասխանաբար կտրեցի դրանք և ամրացրեցի դրանք շրջանակը ծածկելու համար: Սա լավ տեսք ուներ, այնպես որ ես միացրեցի բոլոր մալուխները, միացրեցի HDMI- ն իմ հին Raspberry Pi- ին և Voila- ին, այն աշխատեց: Theուցադրման վրա պատկեր կար, այնպես որ ես պատրաստ էի անցնել հաջորդ քայլին `ինչ տեղեկատվություն ցուցադրել էկրանին և ինչպես ցուցադրել այն:

Քայլ 3: tingրագրակազմի տեղադրում

Երբ ես ինտերնետով փնտրում էի որոշ հուշումներ, թե ինչպես կառուցել օրացույցը, ինձ ոգեշնչեց այս էջը ՝ https://dakboard.com/site: Նրանք ապահովում են պատրաստի արտադրանքը (էկրանը, համակարգիչը և աշխատանքային ծրագրակազմը), բայց նրանք նաև ունեն հիանալի ձեռնարկ ՝ DIY լուծման համար (https://blog.dakboard.com/diy-wall-display/): Խորհուրդ եմ տալիս հետևել այս ձեռնարկին, գոնե առաջին մասի վրա Raspberry- ում համակարգը պատրաստելու և տեղադրելու վերաբերյալ հրահանգներով, որպեսզի բրաուզերը բեռնման ժամանակ ինքնաբերաբար բեռնի ցանկալի վեբ էջը:

Սա լավ աշխատեց, սակայն ես փնտրում էի ինչ -որ լուծում, որը կարող էր ավելի հարմարեցված լինել ըստ իմ ցանկությունների: Ես որոշեցի ստեղծել իմ սեփական վեբ սերվերը և ստեղծել վեբ էջ, որը օրացույցից բացի կցուցադրի լրացուցիչ տեղեկություններ: Ես ընտրել եմ Wordpress.org- ը, քանի որ այն լավ փաստաթղթավորված է և ունի լավ աջակցություն և մեծ համայնք ՝ ձեզ օգնելու համար: Ահա ձեռնարկը, թե ինչպես տեղադրել Wordpress- ը Raspberry Pi- ի վրա ՝ https://projects.raspberrypi.org/hy/projects/lamp-web-server-with-wordpress: Wordpress- ի տեղադրմամբ, ժամանակն էր նախագծել իմ գլխավոր էջը: Դուք կարող եք օգտագործել բազմաթիվ մատուցվող թեմաներից մեկը կամ զրոյից ձևավորել: Ինչևէ, դրա համար անհրաժեշտ է HTML ծրագրավորման որոշակի գիտելիքներ:

Ես նախագծել եմ իմ էջը, որպեսզի ձախ կողմում ցուցադրվի օրացույցը (https://sl.wordpress.org/plugins/google-calendar-events/), իսկ աջ կողմում ՝ ժամանակը և ամսաթիվը (https ՝ //www.timeanddate.com/clocks/free.html և https://www.arclab.com/hy/kb/htmlcss/display-date-time-javascript-php-ssi.html): Եղանակի կանխատեսումն այս էջից է (https://www.1a-vreme.si/vremensko-okno/), որը տրամադրում է կանխատեսման վիջեթ Սլովենիայի քաղաքների համար, բայց ես ենթադրում եմ, որ այլ երկրների վիջեթներ կարելի է գտնել նաև ինտերնետում: Temերմաստիճանը հավաքվում է AM2302 սենսորով (https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=AM2302+&_sacat=0), ինչպես բացատրված է այս գլխի վերջում: Ներքևում տեղադրված է ամենօրյա հետհաշվարկի ժամաչափ, որը ցույց է տալիս, թե քանի օր է մնացել ինչ -որ իրադարձության (իմ երեխաների համար հետաքրքիր է իմանալ, թե քանի օր նրանք պետք է սպասեն ինչ -որ բանի): Վերին աջ եզրում MetaSlider հավելվածն է (https://wordpress.org/plugins/ml-slider/), որը պատահականորեն սահում է դեպի իմ ընտանիքի ընտրված նկարները: Բացի այդ, ես օգտագործել եմ Background Slider plugin- ը (https://sl.wordpress.org/plugins/background-slider-master/) ՝ ավելի գեղեցիկ ֆոնի համար պատահական պատկեր ցույց տալու համար:

Ինչպես արդեն նշվեց, ներքին ջերմաստիճանը հավաքվում է AM2302 սենսորով: Կան բազմաթիվ ձեռնարկներ, թե ինչպես կարելի է ջերմաստիճան ստանալ, ես հետևեցի սրան ՝ https://www.modmypi.com/blog/am2302-temphumidity-sensor: Հետագայում այս սենսորը տեղափոխեցի մեկ այլ Raspberry Pi, որի վրա աշխատում էր Home Assistant- ը, որովհետև ավելի հեշտ է կարդալ և հրապարակել արժեքները ՝ օգտագործելով DHT Sensor բաղադրիչը (https://www.home-assistant.io/components/sensor.dht/). Տնային օգնականը կարող է նաև հավաքել արտաքին ջերմաստիճանը ՝ օգտագործելով եղանակի տարբեր բաղադրիչներ, ես օգտագործել եմ YR.no բաղադրիչը (https://www.home-assistant.io/components/sensor.yr/): Դրանով ես գրել եմ ավտոմատացման սցենար `այս բաղադրիչներից ներքին/արտաքին ջերմաստիճանը հավաքելու և դրանք տեքստային ֆայլ մուտքագրելու համար, որն այնուհետև ցուցադրվում է իմ պատի օրացույցում: Տնային օգնականի մասին լրացուցիչ տեղեկությունների համար տես գլխավոր էջը (https://www.home-assistant.io/):

Քայլ 4. Լրացուցիչ `էկրանն անջատելը

Այժմ մենք ունենք մեր օրացույցը կազմված և գործարկված, այնպես, ինչպես դա մեզ դուր է գալիս: Բայց մենք չենք ցանկանում, որ էկրանը միացված լինի 24/7 ռեժիմով: Մենք ցանկանում ենք, որ այն շարունակվի, երբ ինչ -որ մեկը տանը է: Բացի այդ, մենք չենք ուզում, որ այն միացված լինի գիշերվա կեսին, երբ զուգարան ենք գնում, այն շատ պայծառ է: Այսպիսով, մենք կցենք ինֆրակարմիր սենսոր `նկատելու համար, երբ ինչ -որ մեկը կանգնած է դրա դիմաց, և որոշ ժամանակային սահմանափակումներ ենք ավելացնում, երբ այն պետք է միանա:

Խնդրում եմ նկատի ունենալ, որ իմ ծրագրավորման հմտությունները բավականին սահմանափակ են, ուստի հետևյալը չի կարող օպտիմալ լինել, քանի որ ես այն ընտրել եմ տարբեր առցանց ֆորումներից և ձեռնարկներից, բայց ըստ էության այն աշխատում է: Այնուամենայնիվ, ցանկացած առաջարկություն դեռ ողջունելի է: Սկզբից մենք կսկսենք մոնիտորը ձեռքով միացնելու/անջատելու թեստով: Դրա համար մենք կստեղծենք երկու ֆայլ (օրինակ ՝ monitor_on.sh և monitor_off.sh) և դրանում կգրենք որոշակի ծածկագիր: Դա անելու ամենահեշտ ձևը ձեր Ազնվամորի մուտք գործելն է ՝ օգտագործելով SSH և մուտքագրեք

sudo nano monitor_on.sh

և մուտքագրեք հետևյալ ծածկագիրը

tvservice -նախընտրելի;

startx/usr/bin/graphical_launcher `fgconsole`

Սեղմեք CTRL+X ՝ պահելու և դուրս գալու համար, այնուհետև ստեղծեք երկրորդ ֆայլը

sudo nano monitor_off.sh

և մուտքագրեք հետևյալ ծածկագիրը

tvservice -անջատված;

Կրկին սեղմեք CTRL+X ՝ պահելու և դուրս գալու համար: Այս նոր ստեղծված ֆայլերը գործարկելի դարձրեք.

sudo chmod +x monitor_on.sh

sudo chmod +x monitor_off.sh

Այժմ փորձելու համար, եթե այս հրամանները գործում են, մուտքագրեք

sudo./monitor_off.sh

sudo./monitor_on.sh

Այժմ մոնիտորը պետք է համապատասխանաբար անջատվի և միանա: Ես նկատեցի, որ Raspberry Pi 2 -ում մոնիտորը միացնելու համար տևեց գրեթե 10 վայրկյան: Raspberry Pi 3-ի վրա տևում է 1-2 վայրկյան: Հաջորդը մենք կմիացնենք ինֆրակարմիր սենսոր, որը կաշխատի այս սցենարների վրա: Կրկին, կան բազմաթիվ ձեռնարկներ, թե ինչպես ստեղծել Raspberry Pi և PIR, ես հետևեցի այս մեկին ՝ https://www.instructables.com/id/PIR-Sensor-Interfacing-With-Raspberry-Pi/: Հիմնականում ստեղծեք ֆայլ ՝ օգտագործելով nano խմբագիր (օրինակ ՝ motion_sensor.py) և մուտքագրեք դրան համապատասխան Python ծածկագիրը: Ստորև բերված է իմ ֆայլի օրինակը.

ներմուծել RPi. GPIO որպես GPIOimport timeimport sysimport subprocessimport datetime as dtimport osGPIO.setwarnings (false) # GPIO.setmode (GPIO. BOARD) GPIO.setmode (GPIO. BCM) GPIO.setup (17, GPIOt_min = time.time () SHUTOFF_DELAY = 180 # վայրկյան իսկ True: i = GPIO.input (17) if i == 0: # Երբ շարժման սենսորից ելքը OWԱՐ է, անջատեք մոնիտորը OFF SHUTOFF_DELAY). Տպել «No intruders», iturned_off = Truetime.sleep (1) subprocess.call (['/home/pi/monitor_off.sh'], shell = True) elif i == 1: #Երբ շարժվում է շարժման սենսորից բարձր է, միացրեք մոնիտորը Տպել «Intruder found», itime.sleep (1) last_motion_time = time.time () sys.stdout.flush () if turn_off և dt.datetime.now (). ժամ> 5 և dt.datetime: այժմ (). ժամ <23: turn_off = Falsesubprocess.call (['/home/pi/monitor_on.sh'], shell = True), եթե _name_ == '_main _': try: main () բացառությամբ KeyboardIntrupt: GPIO.cleanup ()

Նկատի ունեցեք, որ «GPIO.setup (17, GPIO. IN)» - ը ցույց է տալիս, որ PIR- ից ելքային կապը միացված է Raspberry Pi- ի 17 -րդ կապին: Ո՞ր քորոցն է դա կախված ՝ սահմանում եք GPIO.setmode (GPIO. BOARD) կամ GPIO.setmode (GPIO. BCM): Տարբերությունը բացատրվում է այստեղ ՝ https://raspberrypi.stackexchange.com/questions/12966/what-is-the-difference-between-board-and-bcm-for-gpio-pin-numbering Ես # ունեմ GPIO. BOARD- ի դիմաց, այնպես որ այն անտեսվում է, և GPIO. BCM- ն օգտագործվում է:

Ուշադրություն դարձրեք տողին

SHUTOFF_DELAY = 180 #վայրկյան

Այստեղ նշվում է, թե որքան ժամանակ է մոնիտորը միացված վերջին շարժման հայտնաբերումից ի վեր, նախքան այն անջատելը: Սա օգտակար է, քանի որ ես չեմ ուզում, որ մոնիտորը անընդհատ անջատվի/միանա, երբ ես անցնում եմ դրանով, այլ ուզում եմ մի որոշ ժամանակ պահել այն միացված լինելուց առաջ: Ես ընտրել եմ 180 վայրկյանի ընդմիջումը, որպեսզի մոնիտորը անջատվի վերջին շարժումը հայտնաբերելուց մոտ 3 րոպե անց:

Վերջապես, այս տողը

եթե turn_off և dt.datetime.now (). ժամ> 6 և dt.datetime.now (): ժամ <23:

նշում է, որ մոնիտորը միանում է միայն 6: 00 -ից 23: 00 -ն ընկած ժամանակահատվածում, այնպես որ այն ինձ չի խանգարում գիշերային ժամերին: Տողերը

տպել «Ոչ մի ներխուժող», i

եւ

տպել «Հայտնաբերվել է ներխուժող», i

նախատեսված են միայն սցենարը փորձարկելու համար, կարող եք դրանք ջնջել ավելի ուշ, երբ այն աշխատի: Այժմ փորձարկեք սցենարը.

sudo python motion_sensor.py

Դուք պետք է տեսնեք «Ներխուժողը հայտնաբերված է» հաղորդագրությունները, եթե ալիքը բարձրացնեք սենսորից վերև, հակառակ դեպքում դա կլինի «Ոչ մի ներխուժող»: Երբ այս սցենարը փորձարկվի և աշխատի, սահմանեք, որ այն սկսվի boot- ից.

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

և ավելացնել հետևյալ տողը

@sudo/usr/bin/python /home/pi/motion_sensor.py

Իհարկե, դուք պետք է նշեք ձեր ստեղծած Python սցենարի ճիշտ ֆայլի անունը:

Քայլ 5: Կախեք օրացույցը

Ամեն ինչ կարգավորված է, ժամանակն է պատը կախել պատից:

Սկզբում ես մտածում էի Raspberry Pi- ն թաքցնել LCD էկրանին հետևում, որպեսզի միայն մեկ մալուխ (DC հոսանք) անհրաժեշտ լինի: Բայց քանի որ ազնվամորին աշխատում է 5V- ով, իսկ LCD էկրանը ՝ 12V- ով, ինձ լրացուցիչ տրանսֆորմատոր կպահանջվի: Բացի այդ, Ազնվամորու պատյանը բավականին հաստ է, ինչը նշանակում է, որ LCD- ը պատից մոտ 3 սանտիմետր հեռավորության վրա կլինի: Այսպիսով, ես թողեցի սա և միայն LCD էլեկտրոնիկան թողեցի LCD- ի հետևում, այնպես որ այն այժմ պատից 1 սանտիմետրից պակաս հեռավորության վրա է: Ես ձեռք բերեցի երկու 5 մետր երկարությամբ մալուխ, մեկ HDMI և մեկ 5, 5 մմ DC հոսանքի համար: Երկու մալուխները սպիտակ են, ինչպես պատը, ինչը նշանակում է, որ դրանք առանձնապես աչքի չեն ընկնում: Ես տեղադրեցի LCD պատը և ազնվամորին դրեցի հակառակ պատի սառնարանի վերևում, այնպես որ այն հիմնականում թաքնված է, բայց դեռ հեշտությամբ հասանելի:

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