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

Ով է դռան մոտ, Alexa- ի գործարկված տեսախցիկի համակարգ. 3 քայլ
Ով է դռան մոտ, Alexa- ի գործարկված տեսախցիկի համակարգ. 3 քայլ

Video: Ով է դռան մոտ, Alexa- ի գործարկված տեսախցիկի համակարգ. 3 քայլ

Video: Ով է դռան մոտ, Alexa- ի գործարկված տեսախցիկի համակարգ. 3 քայլ
Video: Home Assistant. Դաս 9.4 ADD-ON - Xiaomi Gateway 3, zigbee2mqtt ինտեգրում 2024, Հուլիսի
Anonim
Ով է դռան մոտ, Alexa- ի գործարկված տեսախցիկի համակարգ
Ով է դռան մոտ, Alexa- ի գործարկված տեսախցիկի համակարգ
Ով է դռան մոտ, Alexa- ի գործարկված տեսախցիկի համակարգ
Ով է դռան մոտ, Alexa- ի գործարկված տեսախցիկի համակարգ
Ով է դռան մոտ, Alexa- ի գործարկված տեսախցիկի համակարգ
Ով է դռան մոտ, Alexa- ի գործարկված տեսախցիկի համակարգ

Երբեմն հեռուստացույց դիտելիս դու չես ուզում դուռը բացել, եթե դա կարևոր չէ: Այս նախագիծը թույլ է տալիս դիտել դռան մոտ գտնվող մարդուն ՝ պարզապես Amazon- ի Echo սարքին ասելով «Ալեքսա, միացրու դռան մոնիտորը»: Դուք ստուգում եք, թե ով է հայտնվում հեռուստաէկրանին, այնուհետև վերադառնում եք սովորական հեռուստահաղորդմանը «Ալեքսա, միացրեք հեռուստացույցը»: Համակարգը կարող է նաև արժեք ունենալ մեծահասակների կամ երեխաների համար, որոնք խոցելի կլինեն վաճառողներից, գողերից և նմանատիպ այլոց շահերից: Սա թույլ է տալիս ձեր ժամանցային համակարգի մեծ էկրանով հեռուստացույցը լինել տեսախցիկի ցուցադրման մոնիտոր ոչ միայն առջևի դռան տեսախցիկի, այլև որևէ այլ անվտանգության տեսախցիկների համար: իրականում այն կարող է նույնիսկ երկարացվել ինտերնետային տեսախցիկներից տեսանյութեր ցուցադրելու համար, ինչպես օրինակ ՝ լողափերի տեսախցիկները և այլն:

Մասեր:

Entամանցային համակարգ.

Հեռուստատեսություն մի քանի HDMI մուտքերով (հեռուստացույցների մեծամասնությունն ունի դրանք)

Մալուխ կամ DVR տուփ

Ուղղորդիչ և ինտերնետ կապ մալուխային տուփի միջոցով (գուցե անհրաժեշտ չլինի, եթե ունեք WiFi)

Amazon Echo («Ալեքսա»)

Ներդաշնակության կենտրոն

Տեսախցիկ (ներ)

IP տեսախցիկ առջևի դռան մոտ (նախընտրելի է Power Over Ethernet -POE- տեսակը)

Ազնվամորի Pi3 նախագծի տուփում (բնօրինակ Pi- ն կարող է աշխատել) HDMI մալուխով

Arduino Pro Mini 8 ՄՀց, 3.3 վ

IR մոդուլ (ամենատարածված տեսակները կաշխատեն)

Քայլ 1: Կարգավորում, նախնական ծրագրավորում (թեստավորում)

Կարգավորում, նախնական ծրագրավորում (թեստավորում)
Կարգավորում, նախնական ծրագրավորում (թեստավորում)
Կարգավորում, նախնական ծրագրավորում (թեստավորում)
Կարգավորում, նախնական ծրագրավորում (թեստավորում)
Կարգավորում, նախնական ծրագրավորում (թեստավորում)
Կարգավորում, նախնական ծրագրավորում (թեստավորում)

Այս նախագիծը հիմնված է Pi3 omxplayer- ի վրա, որը ապակոդավորում է տեսանյութը ապարատային արագացումով: Omxplayer- ը կարող է փորձարկվել Pi տերմինալի հրամանատարական տողից ՝ օգտագործելով համապատասխան տեսախցիկին անհրաժեշտ rtsp: // user@password@ipaddress ձևաչափը: Pi- ն պետք է միացված լինի Ethernet- ին (չնայած Pi3- ը կարող էր միացված լինել նաև WiFi- ի միջոցով, բայց չփորձարկված) և ֆիզիկապես տեղակայվել ժամանցի կենտրոնում, որպեսզի Pi- ի HDMI ելքային մալուխը հասնի TV HDMI մուտքի խցիկին: Arduino- ն և IR մոդուլը միանալու են Pi- ին և փոխանցում են հեռուստատեսության հեռակառավարման կոճակների սեղմումները կարդալուց ստացված տեղեկատվությունը: Pi- ն կարող էր այս ապակոդավորումը կատարել անմիջապես IR մոդուլից, բայց ես ավելի լավ եմ Arduino ծրագրավորման մեջ, քան Python ծրագրավորումը, և բացի այդ այն խնայում է պրոցեսորային ռեսուրսները Pi- ի ՝ տեսահոսքը (երը) վերծանելու հիմնական առաջադրանքի համար:

Քանի որ իմ անվտանգության համակարգն ունի բազմաթիվ տեսախցիկներ, ես Pi- ով աշխատող մոնիտորինգի էկրանն օգտագործեցի որպես միանգամից 4 տեսախցիկ ցուցադրելու միջոց, ինչպես նաև անհատական տեսախցիկներ ամբողջ էկրանով ցուցադրելու միջոց: Հետևեք այդ հրահանգներին, սակայն, հավանաբար, շատ խնդիրներ կունենաք տեսախցիկները կայուն կերպով ցուցադրելու հարցում:

Խնդիրներից մեկն այն է, որ ծրագրում թվարկված 4 պատուհանների չափերը կարող են չհամապատասխանել ձեր հեռուստատեսության որոշակի լուծմանը: Գտեք, թե ինչ լուծումներ է ապահովում ձեր մոնիտորը ՝ միաժամանակ նշելով ձեր տեսախցիկների տեսախցիկի լուծաչափը: IP տեսախցիկների մեծամասնությունը ունեն բարձր լուծաչափ (1080p) և ցածր թույլատրելիություն (640x480) հոսք, ուստի, եթե ցանկանում եք մուտքի դռան մեկ բարձրորակ տեսաֆիլմ, ապա գնացեք բարձր լուծման rtsp: // ձևաչափով: Գնացեք ցածր քառակուսիների տեսախցիկների ցածր թույլատրելիության հոսքով, փոքր տարբերակների հետ մեծ տարբերություն չեք նկատի: Կարող եք գնալ իմ bash սցենարի (test.sh) պատուհանի չափսերով (1080p լուծման ռեժիմում ՝ ցուցադրելով 4 հավասար չափի 640x480 տեսախցիկ, որոնք հարմարեցված են չափերով): Հակառակ դեպքում, օգտագործեք գրաֆիկական թուղթ `ձեր հեռուստատեսային պիքսելները դասավորելու համար, այնուհետև ուրվագծեք, թե քանի ուղղանկյուն եք ցանկանում այդ տարածքում: Հաջորդը գտեք, թե որքան 640x480 տեսահոլովակ կտեղավորվի առանց չափազանց մեծ չափի փոփոխության (հորիզոնական ձգվելն ավելի լավ է թվում, քան ուղղահայաց): Ես չեմ սիրում սահմաններ, ուստի չեմ հաշվարկել դրանց համար: Թվարկեք ուղղանկյունները վերևից ձախ ներքևից աջ 1, 2, 3 … և այլն: Այնուհետև կազմեք պատուհանի թվերի սյունակ, այդ թվերի յուրաքանչյուր տողի համար գրեք վերին ձախ x, y պիքսել և ներքևի աջ պիքսել x, y: Այդ թվերը փոխարինվում են սցենարի մեջ `անհատական ցուցադրում ստանալու համար, ցանկության դեպքում կարող եք ունենալ 3 x 3 էկրան: Եթե ցանկանում եք միայն մեկ էկրան, պարզապես մեկնաբանեք մյուս 3 տեսախցիկները և պատուհանի չափը դարձրեք ամբողջ էկրանի լուծաչափը (և օգտագործեք բարձր լուծման rtsp հոսքը) և սցենարը վերնագրեք «test1.sh»: Կատարեք այնքան սցենարներ, որքան ցանկանում եք, btn.py Python ծրագիրը դրանք կկանչի, քանի որ GPIO- ի կապումներն փոխվում են Arduino- ի կողմից:

Կայուն էկրան ստանալու (պատկերի վերևում, բայց պատկերի ուղղահայաց գծերի ներքևում) խնդիրներից մեկն այն է, որ շատ տեսախցիկներ շատ ավելի լավ են հոսում rtsp- ի միջոցով tcp- ի միջոցով (ես օգտագործում եմ Hikvision 2 -ից 5 Մպ IP տեսախցիկներ): Հետևաբար, omxplayer- ում օգտագործեք «--avdict rtsp_transport: tcp», ինչպես ցույց է տրված: Այլ օգտակար omxplayer հրամաններ են ձայնը (--vol -6000 խլացման համար) և բուֆերը (-տեսանյութի հերթ x), որտեղ x = 1 կամ ավելի:

IP տեսախցիկի կարգավորումները կարող են խնդիրներ առաջացնել նաև omxplayer- ի հետ: Բոլոր IP տեսախցիկները պետք է սահմանվեն մեկ վայրկյանում նույն շրջանակների վրա, հակառակ դեպքում նկարը կպառակտի: Երբ սահմանվում է արմատապես տարբեր կադրերի արագություն, մեկ տեսախցիկի ժամանակային կնիքի վրա ցուցադրվող ժամանակը մի քանի վայրկյան հետ է գնացել հետագայում, այնուհետև առաջ և հետ:

Քայլ 2: Միավորել այն

Միասին դնելը
Միասին դնելը

Դուք կարող եք ձեռքով վերահսկել մալուխի տուփը և հեռուստացույցը, որպեսզի Pi- ն ցուցադրի առջևի դռան տեսախցիկը: Այնուամենայնիվ, դա պահանջում է մի քանի կոճակ սեղմել, ներառյալ ՝ համընդհանուր հեռակառավարման վահանակի մալուխային ռեժիմից հեռուստատեսային ռեժիմի համապատասխան փոխարկումը, որը թույլ կտա փոխել HDMI մուտքի աղբյուրը Pi տեսախցիկի ապակոդավորիչին (HDMI 2): Եթե ցանկանում եք տեսախցիկի լրացուցիչ էկրաններ ցուցադրելու հնարավորություն, ապա պետք է նաև ունիվերսալ հեռակառավարիչը միացնեք AUX- ին `Arduino- ն և, հետևաբար, Pi տեսախցիկի ընտրությունը կառավարելու համար: Այս գործընթացը պարզեցնելու համար օգտագործեք Harmony Hub և հարակից Harmony սմարթֆոնների ծրագիրը ՝ սովորեցնելով նրան վերահսկել հեռուստատեսությունը և կաբելային տուփը սովորական հեռուստատեսության դիտման համար մեկ Գործունեության մեջ, այնուհետև ստեղծել մեկ այլ Գործունեություն ՝ Pi տեսահսկումը վերահսկելու համար: Գործողությունը ներառում է հեռուստացույցը միացնելը, հեռուստացույցի մուտքը HDMI 2 և վերահսկել վիրտուալ NECx հեռուստատեսությունը (այսինքն ՝ Arduino և Pi) կոճակները 0 -ից 5 -ը: Սա թույլ է տալիս վերահսկել ամեն ինչ Harmony սմարթֆոնների հավելվածի միջոցով: Գործերն էլ ավելի հեշտացնելու համար կապեք Amazon Echo Dot (Alexa) հավելվածը Harmony հավելվածի հետ ՝ հեռուստացույցի կամ դռների մոնիտորինգի գործառույթները ձայնով կառավարելու համար: Harmony կայքը մանրամասներ է ներկայացնում, թե ինչպես միացնել Alexa- ի այս նոր հմտությունները: Նոր հմտություններ: Alexa- ի նոր հմտությունների հետ կապվելուց հետո «Միացնել հեռուստացույցը» կամ «Միացնել դռան մոնիտորը» հիմնաբառերը հնարավորություն կտան համապատասխան գործողություններ կատարել ՝ առանց ունիվերսալ հեռակառավարման վահանակի IR- ի կարիք ունենալու:

Pi- ն Ethernet- ի միջոցով միացված է ձեր LAN- ին, իսկ HDMI մալուխի միջոցով `հեռուստացույցին: 3.3 վոլտ Pro Mini լարերի միջոցով Pi- ին տեղադրեցի որպես տեսախցիկի լրացուցիչ անջատում ավելացնելու տարբերակ: Pro Mini- ն կարող է սնուցվել Pi- ի 3.3 վոլտ փինից: IR մոդուլը միանում է Arduino- ի 2 -րդ կապին, իսկ կցված էսքիզը վերծանում է 0 -ից 5 կոճակը (իրականում 0 -ից 9 -ը, սակայն որոշ Arduino կապում դեռ միացված չեն): Arduino- ի ելքերը միանում են Pi- ի թվային մուտքի GPIO կապին, որտեղ bash script- ի ընդհատումը որոշում է, թե որ «կոճակն» է սեղմված, այնուհետև կանգնեցնում է ցուցադրման դիտման մեկ տարբերակ և սկսում մյուսը:

Իմ մալուխային տուփը Spectrum- ից է (նախկին Time Warner Cable), որը հանդիսանում է Motorola DVR մոդել DCX3510: Այն օգտագործում է GI Cable արձանագրությունը IR- ի համար: Sony TV- ն օգտագործում է Sony արձանագրությունը 2. Կարծում էի, որ այդ կոդերից մեկը կամ մյուսը լավ կլինի Pi IR ընդունիչին վերահսկել և կամ աշխատեց, չնայած պարզվեց, որ դա գործնական չէ: Հեռակառավարման վահանակը ակնկալում է լրացուցիչ հրամաններ կամ ինքնաբերաբար կփոխի մուտքի աղբյուրը, երբ սեղմվում է 0 -ից 9 կոճակը: Հետևաբար, ես ստիպված էի օգտագործել այլ ծածկագիր, որը չի փոխազդեց կաբելային կարգավորիչի կամ հեռուստատեսության հետ: Ես գտա, որ իմ ունիվերսալ հեռակառավարման վահանակը նախկինում ծրագրավորված կոդ էր AUX սարքի համար (չգիտեմ, թե ինչն էր այն վերահսկում) և որոշեցի օգտագործել այն: Արտադրված կոդերն ասում էին, որ այն օգտագործում է NECx ՝ 32 բիթանոց կոդ, այնպես որ ես այդ կոճակի կոդերը մուտքագրեցի Arduino IR_Rev_Codes_Pi_Monitor էսքիզի մեջ: Փոխեք ծրագիրը, եթե ունեք այլ մոդել ՝ օգտագործելով ստացման ծրագիրը IRLib2- ում և նշեք սեղմված կոճակների ստեղծողի, արձանագրության և վեցանկյուն արժեքները:

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

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

Դռների մոնիտորը տան ավտոմատացման գործնական ծրագիր է: Դա Python- ի հետ Pi- ի ծրագրավորման իմ առաջին փորձն էր: Python- ը թույլ է տալիս ծրագրել ընդհատում, մի հատկություն, որը ես կարծում էի, որ վերապահված է միկրոկոնտրոլերների համար: Ընդհատումը թույլ է տալիս ծրագրին աշխատել նորմալ ՝ omxplayer- ով աշխատելով, առանց անընդհատ ստուգելու, թե արդյոք պահանջվում է այլ գործողություն, ինչպիսին է էկրանը նոր տեսախցիկի հոսքի փոխելը: Այնուամենայնիվ, եթե ընդհատումը տեղի է ունենում, ծրագիրն այնուհետ որոշում է, թե որ նոր տեսաֆիլմը պետք է բարձրացվի: Arduino- ն ստեղծվել է, որպեսզի ապահովի զարկերակ ՝ Python- ի ընդհատումը հրահրելու համար: Եթե ընդհատումը տեղի է ունենում, ապա ծրագիրը որոնում է, թե որ կոնկրետ Arduino ելքն է (համապատասխան IR հեռահար կոճակին սեղմված) ակտիվացված է: Ի վերջո, ծրագիրը սպանում է omxplayer- ի ցանկացած ընթացիկ ցուցադրում և սկսում նոր omxplayer ցուցադրումը:

Ես իմացա, որ Pi- ն իր GPIO կապումներն այնպես չի դնում, ինչպես Arduino- ն է լռելյայն, դա Pi- ի մեղքը չէ, բայց դա այն ճանապարհն է, որը գործարանից է Broadcom BCM2837- ը: Ինձ դուր է գալիս 4 միջուկ, 1.2 ԳՀց պրոցեսոր, ցածր էներգիայի, ցածր գնով համակարգիչ, որը կարող է ցուցադրել հիանալի HD տեսանյութ: IR 1 կոճակը ցույց է տալիս քառանկյուն էկրանը, իսկ 2 -ից 5 կոճակները `յուրաքանչյուրը բարձր հստակությամբ տեսախցիկի մեկ մեծ ցուցադրում:

IR հեռակառավարման կոճակը 0 -ով սեղմելը չեղարկում է տեսանյութի ցուցադրումը և ցույց է տալիս Pi հրամանի տողը: Եթե ցանկանում եք դիտել Youtube- ի տեսանյութեր կամ նման այլ բաներ, օգտագործեք Bluetooth ստեղնաշար, մուտքագրեք «startx» և օգտագործեք Pi զննարկիչը ՝ Youtube- ի տեսանյութին անցնելու և այն բարձր էկրանով բարձր որակով խաղալու համար:

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