Mundarija:

Eshikda kim bor, Alexa tomonidan boshqariladigan kamera tizimi: 3 qadam
Eshikda kim bor, Alexa tomonidan boshqariladigan kamera tizimi: 3 qadam

Video: Eshikda kim bor, Alexa tomonidan boshqariladigan kamera tizimi: 3 qadam

Video: Eshikda kim bor, Alexa tomonidan boshqariladigan kamera tizimi: 3 qadam
Video: Telefonni koʻz bilan boshqarish 2024, Noyabr
Anonim
Eshikda kim bor, Alexa tomonidan boshqariladigan kamera tizimi
Eshikda kim bor, Alexa tomonidan boshqariladigan kamera tizimi
Eshikda kim bor, Alexa tomonidan boshqariladigan kamera tizimi
Eshikda kim bor, Alexa tomonidan boshqariladigan kamera tizimi
Eshikda kim bor, Alexa tomonidan boshqariladigan kamera tizimi
Eshikda kim bor, Alexa tomonidan boshqariladigan kamera tizimi

Ba'zida televizor ko'rayotganda, agar eshik muhim bo'lmasa, javob berishni xohlamaysiz. Bu loyiha sizni Amazonning Echo qurilmasiga "Alexa, eshik monitorini yoqing" deb aytish orqali odamni eshik oldida ko'rishga imkon beradi. Siz televizor ekranida kim paydo bo'lishini tekshirasiz, so'ng "Alexa, televizorni yoqing" oddiy televizion dasturiga qaytasiz. Tizim, shuningdek, keksa odamlar yoki bolalar uchun qimmatli bo'lishi mumkin, ular sotuvchilar, o'g'rilar va shu kabi narsalardan foydalana olmaydilar. Bu sizning ko'ngilochar tizimingizdagi katta ekranli televizorni nafaqat old eshik kamerasi, balki sizda bo'lishi mumkin bo'lgan boshqa har qanday xavfsizlik kameralari uchun kamera displeyi bo'lishi mumkin; Aslida, u hatto Internet kameralaridan, masalan, plyaj kameralari va boshqalardan videolarni ko'rsatish uchun uzaytirilishi mumkin.

Qismlar:

O'yin -kulgi tizimi:

Bir nechta HDMI kirishli televizor (aksariyat televizorlarda)

Kabel yoki DVR qutisi

Kabel qutisi orqali yo'riqnoma va Internetga ulanish (agar sizda WiFi bo'lsa, kerak bo'lmasligi mumkin)

Amazon echo ("Alexa")

Uyg'unlik markazi

Kameralar

Eshik oldidagi IP -kamera (Ethernet orqali quvvatlanish - POE turi afzalroq)

Raspberry Pi3 HDMI kabeli bilan loyiha qutisida (asl Pi ishlashi mumkin)

Arduino Pro Mini 8 MGts, 3.3v

IR moduli (eng keng tarqalgan turlari ishlaydi)

1 -qadam: sozlash, dastlabki dasturlash (sinov)

O'rnatish, dastlabki dasturlash (sinov)
O'rnatish, dastlabki dasturlash (sinov)
O'rnatish, dastlabki dasturlash (sinov)
O'rnatish, dastlabki dasturlash (sinov)
O'rnatish, dastlabki dasturlash (sinov)
O'rnatish, dastlabki dasturlash (sinov)

Ushbu loyiha Pi3 omxplayer -ga asoslangan bo'lib, u videoni apparat tezlashtirish yordamida ochadi. Omxplayer -ni Pi terminalidagi buyruq satridan kamerangiz talab qiladigan tegishli rtsp: // user@password@ipaddress formati yordamida sinovdan o'tkazish mumkin. Pi Ethernet tarmog'iga ulangan bo'lishi kerak (garchi Pi3 Wi -Fi orqali ham ulanishi mumkin, lekin sinovdan o'tkazilmagan) va ko'ngilochar markazda joylashgan bo'lishi kerak, shuning uchun Pi ning HDMI chiqish kabeli televizorning HDMI kirish uyasiga etib borishi mumkin. Arduino va IQ moduli Pi -ga ulanadi va televizorni masofadan boshqarish tugmachasini o'qishdan olingan ma'lumotlarni uzatadi. Pi bu dekodlashni to'g'ridan -to'g'ri IR moduli orqali amalga oshirishi mumkin edi, lekin men Arduino dasturlashda Python dasturlashdan ko'ra yaxshiroqman va bundan tashqari, Pi ning asosiy vazifasi bo'lgan video oqimlarni dekodlash uchun protsessor resurslarini tejaydi.

Mening xavfsizlik tizimimda bir nechta kameralar bo'lgani uchun, men bir vaqtning o'zida 4 ta kamerani ko'rsatish uchun, shuningdek, yakka tartibdagi kameralarni to'liq ekranda ko'rsatish uchun Pi bilan ishlaydigan monitor ekranini ishlatardim. Ko'rsatmalarga amal qiling, lekin siz kameralarni barqaror ko'rsatishda ko'p muammolarga duch kelasiz.

Muammolardan biri shundaki, dasturda ko'rsatilgan 4 ta oyna o'lchami sizning televizoringiz aniqligiga mos kelmasligi mumkin. Kameralaringiz piksellar soniga e'tibor qaratib, monitoringiz qaysi o'lchamlarni qo'llab -quvvatlayotganini toping. Aksariyat IP -kameralarda yuqori aniqlikdagi (1080p) va past o'lchamdagi (640x480) oqim mavjud, shuning uchun agar siz faqat bitta yuqori eshikli yuqori aniqlikdagi videoni xohlasangiz, yuqori aniqlikdagi rtsp: // formatini tanlang. 4 kvadrantli kameralar uchun past aniqlikdagi oqimga o'ting, siz kichikroq rasm o'lchamlari bilan katta farqni sezmaysiz. Siz mening bash skriptim (test.sh) oynasining o'lchamlari bilan borishingiz mumkin (1080p piksellar sonini rejimida, o'lchamlari mos keladigan o'lchamdagi 4 ta 640x480 o'lchamli 4 ta kamera). Aks holda, televizor piksellarini joylashtirish uchun grafik qog'ozdan foydalaning, so'ngra bu maydonda qancha to'rtburchaklar kerakligini eskiz qiling. Keyin, 640x480 o'lchamdagi videolarning ko'p qismini o'zgartirmasdan toping (gorizontal cho'zish vertikalga qaraganda yaxshiroq ko'rinadi). Men chegaralarni yoqtirmayman, shuning uchun ular uchun hisob -kitob qilmaganman. To'rtburchaklar yuqori chapdan pastki o'ngga 1, 2, 3.. va hokazo. Keyin deraza raqamlari ustunini yarating, bu raqamlarning har bir satriga chapning yuqori chap tomonidagi x, y piksel va pastki o'ngdagi piksel x, y ni yozing. Keyin bu raqamlar skriptga moslashtirilgan displeyni olish uchun qo'yiladi, agar xohlasangiz 3 x 3 displeyga ega bo'lishingiz mumkin. Agar siz faqat bitta displeyni xohlasangiz, qolgan 3 ta kamerani izohlang va deraza o'lchamini to'liq ekran o'lchamiga aylantiring (va yuqori aniqlikdagi rtsp oqimidan foydalaning) va skriptni "test1.sh" deb nomlang. Qanchalik ko'p skriptlar tayyorlang, btn.py Python dasturi GPIO pinlari Arduino tomonidan o'zgartirilganda ularni chaqiradi.

Barqaror displeyni olishning bir muammosi (tasvirning yuqori qismi, lekin pastroq vertikal chiziqlar) - ko'p kameralar tcp orqali rtsp yordamida yaxshiroq oqadi (men Hikvision 2 dan 5 Mp gacha bo'lgan IP kameralardan foydalanaman). Shuning uchun, omxplayerda ko'rsatilgandek "--avdict rtsp_transport: tcp" dan foydalaning. Boshqa foydali omxplayer buyruqlari-tovush (--vol -6000 ovozsiz) va bufer (--video navbat x), bu erda x = 1 yoki undan ko'p.

IP -kamera sozlamalari ham omxplayer bilan bog'liq muammolarga olib kelishi mumkin. Barcha IP -kameralar sekundiga bir xil kadrlarga o'rnatilishi kerak, aks holda rasm buziladi. Bir -biridan keskin farq qiladigan kadr tezligi o'rnatilganda, bitta kameradagi vaqt tamg'asida ko'rsatilgan vaqt bir necha soniya orqaga, keyin oldinga, keyin orqaga va hokazo. Hamma o'yinchi oynalari bir -biriga to'g'ri kelmasligiga ishonch hosil qiling.

2 -qadam: uni birlashtirish

Birgalikda joylashtirish
Birgalikda joylashtirish

Pi old eshik kamerasini ko'rsatishi uchun siz kabel qutisi va televizorni qo'lda boshqarishingiz mumkin. Biroq, buning uchun bir nechta tugmachalarni bosish kerak, shu jumladan, HDMI kirish manbasini Pi kamera dekoderiga (HDMI 2) o'zgartirish uchun universal masofadan boshqarish pultini kabel rejimidan televizor rejimiga o'tkazish. Agar siz qo'shimcha kamera ekranlarini ko'rsatish imkoniyatiga ega bo'lishni istasangiz, Arduino -ni boshqarish uchun universal masofadan boshqarish pultini AUX -ga o'tkazishingiz va shu bilan Pi kamerasini tanlashingiz kerak bo'ladi. Bu jarayonni soddalashtirish uchun Harmony Hub va unga aloqador Harmony smartfonlar ilovasidan foydalaning, unga televizor va kabel qutisini bir harakatda normal ko'rish uchun boshqarishni o'rgating, keyin Pi video monitorini boshqarish uchun boshqa harakat yarating. Faoliyat televizorni yoqish, HDMI 2 -ga televizor kirishi va virtual NECx TV -ni (ya'ni. Arduino va Pi) 0 dan 5 gacha tugmachalarini boshqarishni o'z ichiga oladi. Vaziyatni yanada osonlashtirish uchun Amazon Echo Dot (Alexa) ilovasini Harmony ilovasi bilan bog'lab, televizor yoki eshikni nazorat qilish funksiyalarini ovoz bilan boshqaring. Harmony veb -sayti ushbu yangi Alexa ko'nikmalarini qanday yoqish haqida batafsil ma'lumot beradi. Yangi ko'nikmalar. "Alexa" ning yangi ko'nikmalari bilan bog'langanidan so'ng, "Televizorni yoqish" yoki "Eshik monitorini yoqish" kabi kalit so'zlar universal masofadan boshqarish pultidan infraqizil nurni talab qilmasdan, tegishli amallarni bajarishga imkon beradi.

Pi Ethernet orqali LANga, HDMI kabeli orqali esa televizorga ulangan. Men qo'shimcha 3,3 voltli Pro Mini -ni Pi -ga simlar orqali qo'shimcha kamerani almashtirish imkoniyatini qo'shdim. Pro Mini -ni 3,3 voltli Pi pinidan quvvatlantirish mumkin. IQ moduli Arduino -ning 2 -piniga ulanadi va biriktirilgan eskiz tugmani 0 dan 5 gacha bosadi (aslida 0 dan 9 gacha, lekin ba'zi Arduino pinlari hali ulanmagan). Arduino chiqishlari Pi ning raqamli kirish GPIO pinlariga ulanadi, bash skriptining uzilishi qaysi "tugma" bosilganligini aniqlaydi, so'ngra displeyni ko'rish variantini to'xtatadi va boshqasini boshlaydi.

Mening kabel qutim DCX3510 Motorola DVR modeli bo'lgan Spectrum (avvalgi Time Warner Cable) dan. U IR uchun GI Cable protokolidan foydalanadi. Sony TV 2 -sonli Sony protokolidan foydalanadi. Menimcha, bu kodlarning birortasi Pi IR qabul qilgichni boshqarish uchun yaxshi bo'lardi va u ishlamadi, garchi bu amaliy emas edi. Masofadan boshqarish pulti qo'shimcha buyruqlarni kutadi yoki 0 dan 9 gacha tugma bosilganda kirish manbasini avtomatik ravishda o'zgartiradi. Shuning uchun, men kabelni sozlash yoki televizor bilan aloqa qilmaydigan boshqa kodni ishlatishga majbur bo'ldim. Men universal masofadan boshqarish pultimda AUX qurilmasi uchun oldindan dasturlashtirilgan kod borligini aniqladim (u nimani boshqarayotganini bilmayman) va undan foydalanishga qaror qildim. Ishlab chiqarilgan kodlar 32 bitli NECx kodidan foydalanganini aytdi, shuning uchun men tugma kodlarini Arduino IR_Rev_Codes_Pi_Monitor eskiziga kiritdim. Agar sizda boshqa model bo'lsa, dasturni IRLib2 -dagi qabul qilish dasturidan foydalanib o'zgartiring va bosilgan tugmalar uchun ishlab chiqaruvchi, protokol va olti burchakli qiymatlarga e'tibor bering.

3 -qadam: Xulosa

Xulosa
Xulosa
Xulosa
Xulosa
Xulosa
Xulosa

Eshik monitori - bu uyni avtomatlashtirishning amaliy loyihasi. Bu Python bilan Pi dasturlashdagi birinchi tajribam edi. Python uzilishni dasturlash imkonini beradi, menimcha, bu xususiyat mikrokontrollerlar uchun ajratilgan. To'xtatish, dasturni normal ishlashiga imkon beradi, omxplayer bilan ishlaydi, displeyni yangi kamera tasmasiga o'zgartirish kabi boshqa harakat zarurligini doimiy tekshirib turmasdan. Ammo, agar uzilishlar ro'y bersa, dastur qaysi yangi video tasmasini olib kelish kerakligini aniqlaydi. Arduino Python -ni uzib qo'yish uchun pulsni ta'minlash uchun o'rnatilgan. Agar uzilish yuz bersa, dastur qaysi Arduino chiqishi (IQ masofadan boshqarish pulti tugmachasiga mos keladigan) faollashtirilganligini qidiradi. Nihoyat, dastur har qanday omplayer displeyini o'ldiradi va yangi omxplayer displeyini ishga tushiradi.

Men bilardimki, Pi o'z GPIO pinlarini Arduino singari kiritmaydi- bu Pi-ning aybi emas, lekin bu Broadcom BCM2837 zavoddan. Menga 4 yadroli, 1,2 gigagertsli protsessor, kam quvvatli, arzon HD, ajoyib HD video ko'rsatadigan kompyuter yoqadi. IQ tugmasi 1 to'rtburchaklar displeyni ko'rsatadi va 2 dan 5 gacha tugmachalarning har biri yuqori aniqlikdagi kameraning bitta katta displeyini ko'rsatadi.

IR masofadan boshqarish pulti 0 tugmachasini bosish video ko'rsatuvni bekor qiladi va Pi buyruq satrini ko'rsatadi. Agar siz Youtube videolarini yoki shunga o'xshash narsalarni ko'rishni xohlasangiz, Bluetooth klaviaturasidan foydalaning, "startx" yozing va Pi brauzeridan foydalanib, Youtube videosiga o'ting va uni to'liq aniqlikda yuqori aniqlikda o'ynang.

Tavsiya: