Агуулгын хүснэгт:

Alexa -тай ажилладаг камерын хаалган дээр хэн байна: 3 алхам
Alexa -тай ажилладаг камерын хаалган дээр хэн байна: 3 алхам
Anonim
Alexa -ийн идэвхжүүлсэн камерын системд хэн байгаа вэ?
Alexa -ийн идэвхжүүлсэн камерын системд хэн байгаа вэ?
Alexa -ийн идэвхжүүлсэн камерын системд хэн байгаа вэ?
Alexa -ийн идэвхжүүлсэн камерын системд хэн байгаа вэ?
Alexa идэвхжүүлсэн камерын системд хаалган дээр хэн байна
Alexa идэвхжүүлсэн камерын системд хаалган дээр хэн байна

Заримдаа зурагт үзэж байхдаа хаалга онгойлгохыг хүсдэггүй. Энэхүү төсөл нь Amazon -ийн Echo төхөөрөмжид "Alexa, хаалганы дэлгэцийг асаагаарай" гэж хэлэх замаар хаалган дээр байгаа хүнийг харах боломжийг танд олгоно. Та ТВ -ийн дэлгэц дээр хэн гарч ирэхийг шалгаад "Alexa, ТВ асаагаарай" гэсэн ердийн телевизийн програм руу буцна уу. Энэ систем нь өндөр настай хүмүүс эсвэл хүүхдүүдэд үнэ цэнэтэй байж болох бөгөөд энэ нь худалдагч, хулгайч гэх мэт хүмүүсийн давуу талыг ашиглах эрсдэлтэй байдаг. Энэ нь таны зугаа цэнгэлийн системийн том дэлгэцтэй ТВ нь зөвхөн урд хаалганы камер төдийгүй бусад аюулгүй байдлын камерын дэлгэцийн дэлгэц байх боломжийг олгодог. Үнэндээ үүнийг наран шарлагын камер гэх мэт интернет камераас авсан видеог харуулахаар сунгаж болно.

Эд анги:

Зугаа цэнгэлийн систем:

Хэд хэдэн HDMI оролттой ТВ (ихэнх ТВ -тэй байдаг)

Кабель эсвэл DVR хайрцаг

Кабелийн хайрцгаар чиглүүлэгч ба интернет холболт (хэрэв танд WiFi байгаа бол шаардлагагүй байж магадгүй)

Амазоны цуурай ("Alexa")

Хармони төв

Камер

Урд хаалган дээрх IP камер (Power over Ethernet -POE- type илүүд үздэг)

Raspberry Pi3 нь HDMI кабель бүхий төслийн хайрцагт (анхны Pi ажиллах боломжтой)

Arduino Pro Mini 8 Mhz, 3.3v

IR модуль (хамгийн түгээмэл төрөл ажиллах болно)

Алхам 1: Тохиргоо, урьдчилсан програмчлал (туршилт)

Тохиргоо, урьдчилсан програмчлал (туршилт)
Тохиргоо, урьдчилсан програмчлал (туршилт)
Тохиргоо, урьдчилсан програмчлал (туршилт)
Тохиргоо, урьдчилсан програмчлал (туршилт)
Тохиргоо, урьдчилсан програмчлал (туршилт)
Тохиргоо, урьдчилсан програмчлал (туршилт)

Энэхүү төсөл нь тоног төхөөрөмжийн хурдатгалаар видеог тайлдаг Pi3 omxplayer дээр суурилдаг. Omxplayer -ийг Pi терминалын командын мөрөөс камерын тохирох rtsp: // user@password@ipaddress форматыг ашиглан турших боломжтой. Pi нь Ethernet -тэй холбогдсон байх ёстой (гэхдээ Pi3 -ийг WiFi -ээр холбож болох боловч туршиж үзээгүй), зугаа цэнгэлийн төвд физик байрлалтай байх ёстой бөгөөд ингэснээр Pi -ийн HDMI гаралтын кабель нь ТВ -ийн HDMI оролтын залгуурт хүрэх боломжтой болно. Arduino болон IR модуль нь Pi -д холбогдох бөгөөд телевизийн алсын удирдлагын товчлуурыг дарж уншсанаар олж авсан мэдээллээ дамжуулах болно. Pi нь энэ декодчилолыг IR модулиас шууд хийх боломжтой байсан ч би Python програмчлалаас Arduino програмчлалын чиглэлээр илүү сайн ажилладаг бөгөөд үүнээс гадна видео дамжуулалтыг декодлох Pi -ийн гол үүрэг болох процессорын нөөцийг хэмнэдэг.

Миний аюулгүй байдлын системд олон камер байдаг тул би Pi -ийн хяналтын дэлгэцийг ашиглан 4 камерыг нэг дор харуулах боломжтой бөгөөд тусдаа камерыг бүтэн дэлгэцээр харуулдаг. Эдгээр зааврыг дагаж мөрдөөрэй, гэхдээ камерыг тогтвортой харуулахын тулд танд маш их асуудал тулгарах болно.

Асуудлын нэг нь хөтөлбөрт жагсаасан 4 цонхны хэмжээ нь таны телевизийн нарийвчлалтай тохирохгүй байж магадгүй юм. Камерынхаа нарийвчлалыг тэмдэглэхийн зэрэгцээ таны дэлгэц ямар нарийвчлалыг дэмжиж байгааг олж мэдээрэй. Ихэнх IP камерууд нь өндөр нарийвчлалтай (1080p), бага нягтралтай (640x480) урсгалтай тул хэрэв та урд хаалганы өндөр нарийвчлалтай нэг видео авахыг хүсвэл өндөр нарийвчлалтай rtsp: // форматаар дамжуулаарай. 4 квадрат дахь камерын хувьд бага нарийвчлалтай урсгалыг сонгоорой, жижиг хэмжээтэй зургийн хувьд тийм ч их ялгааг анзаарахгүй байх болно. Та миний bash скрипт (test.sh) цонхны хэмжээтэй хамт явж болно (1080p нягтралтай горимд 4 хэмжээтэй 640x480 хэмжээтэй камерыг багтаасан хэмжээгээр харуулна). Үгүй бол зурагтынхаа пикселийг байрлуулахын тулд график цаас ашиглаад тухайн хэсэгт хичнээн тэгш өнцөгт зурахыг хүсч байгаагаа зур. Дараа нь 640x480 хэмжээтэй хичнээн видеог хэт их хэмжээгээр өөрчлөхгүйгээр тохирохыг олж мэдээрэй (хэвтээ тэнхлэг нь босоо байдлаас илүү сайн харагдаж байна). Би хилд дургүй, тиймээс тэдний хувьд тооцоо хийгээгүй. Тэгш өнцөгтүүдийг зүүн дээд талаас баруун доод талд дугаарлана 1, 2, 3.. гэх мэт. Дараа нь цонхны тоон багана үүсгэн эдгээр тоонуудын мөр бүрт зүүн дээд x, y пиксел, баруун доод пиксел x, y гэж бичнэ. Дараа нь эдгээр тоонуудыг скриптээр орлуулж захиалгат дэлгэц авах боломжтой бөгөөд хэрэв хүсвэл 3х3 хэмжээтэй дэлгэцтэй болно. Хэрэв та зөвхөн нэг дэлгэц авахыг хүсч байвал бусад 3 камераа тайлбарлаад цонхны хэмжээг дэлгэцийн нарийвчлалтай болгож (мөн өндөр нарийвчлалтай rtsp дамжуулалтыг ашиглаарай) скриптийг "test1.sh" гэж нэрлээрэй. Хүссэн хэмжээгээрээ олон скрипт хий, bdn.py Python програм нь GPIO зүүг Arduino өөрчилснөөр тэднийг дуудах болно.

Тогтвортой дэлгэцтэй болоход тулгардаг нэг асуудал бол (зургийн дээд хэсэгт нарийн, гэхдээ зургийн босоо зураас доогуур) олон камер нь rtsp -ийг tcp ашиглан илүү сайн дамжуулдаг (би Hikvision 2 -оос 5 Мп IP камер ашигладаг). Тиймээс omxplayer дээр харуулсан шиг "--avdict rtsp_transport: tcp" -г ашиглана уу. Omxplayer-ийн бусад ашигтай командууд нь эзлэхүүн (-vol -6000 дуугүй байх) ба буфер (-видео дараалал x) бөгөөд энд x = 1 ба түүнээс дээш байдаг.

IP камерын тохиргоо нь omxplayer -тэй холбоотой асуудал үүсгэж болзошгүй юм. Бүх IP камерыг нэг секундэд ижил фрэймд тохируулах ёстой, эс тэгвээс зураг эвдэрнэ. Хүрээний хурдыг эрс өөрөөр тохируулах үед нэг камерын цагны тамга дээр харуулсан цаг хэдхэн секундын турш хойш ухарч, дараа нь урагш, дараа нь буцаана гэх мэт. Таны omxplayer цонхнууд давхцахгүй байгаа эсэхийг шалгаарай, эс бөгөөс давхцаж буй хэсэг нь анивчих болно.

Алхам 2: Үүнийг нэгтгэх

Үүнийг хамтад нь оруулах
Үүнийг хамтад нь оруулах

Пи урд хаалганы камерыг харуулахын тулд та кабелийн хайрцаг болон ТВ -ийг гараар удирдаж болно. Гэсэн хэдий ч энэ нь HDMI оролтын эх үүсвэрийг Pi камерын декодер (HDMI 2) болгон өөрчлөхийн тулд бүх нийтийн алсын удирдлагыг кабелийн горимоос ТВ горимд шилжүүлэх зэрэг хэд хэдэн товчлуур дарах шаардлагатай болно. Хэрэв та нэмэлт камерын дэлгэц үзүүлэхийг хүсч байвал Arduino -ийг удирдахын тулд бүх нийтийн алсын удирдлагыг AUX руу шилжүүлэх хэрэгтэй бөгөөд ингэснээр 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 -ийг 3.3 вольтын зүүгээр тэжээх боломжтой. IR модуль нь Arduino -ийн 2 -р зүүтэй холбогддог бөгөөд хавсаргасан ноорог нь 0 -ээс 5 хүртэл товчлуурыг тайлдаг (үнэндээ 0 -ээс 9 хүртэл, гэхдээ зарим Arduino -ийн зүү хараахан холбогдоогүй байна). Arduino гаралт нь Pi -ийн дижитал оролтын GPIO тээглүүртэй холбогддог бөгөөд bash скрипт тасалдал нь ямар "товчлуур" дарагдсан болохыг тодорхойлж, дараа нь дэлгэц харах нэг сонголтыг зогсоож, өөрийг эхлүүлнэ.

Миний кабелийн хайрцаг нь DCX3510 загварын Motorola DVR загвар болох Spectrum (хуучнаар Time Warner Cable) юм. Энэ нь IR -д зориулсан GI Cable протоколыг ашигладаг. Sony ТВ нь Sony протоколыг ашигладаг. Эдгээр кодуудын аль нэг нь Pi IR хүлээн авагчийг удирдахад тохиромжтой гэж би бодож байсан бөгөөд энэ нь тийм ч үр дүнтэй биш байсан. Алсын удирдлага нь нэмэлт тушаалуудыг хүлээж эсвэл 0-9 товчлуур дарагдсан үед оролтын эх үүсвэрийг автоматаар өөрчлөх болно. Тиймээс би кабель тааруулагч эсвэл ТВ -тэй харьцахгүй өөр код ашиглах шаардлагатай болсон. Би бүх нийтийн алсын удирдлагад AUX төхөөрөмжийн өмнө програмчлагдсан код байсныг олж мэдсэн (үүнийг юу хянаж байгааг мэдэхгүй байна), үүнийг ашиглахаар шийдсэн. Үйлдвэрлэсэн кодууд нь 32 бит кодтой NECx ашигладаг гэж хэлсэн тул би эдгээр товчлуурын кодыг Arduino IR_Rev_Codes_Pi_Monitor -ийн ноорог хэсэгт оруулсан. Хэрэв та өөр загвартай бол програмыг IRLib2 дээрх хүлээн авах програмыг ашиглан өөрчилж, дарагдсан товчлууруудын үйлдвэрлэгч, протокол, зургаан өнцөгтийн утгыг анхаарч үзээрэй.

Алхам 3: Дүгнэлт

Дүгнэлт
Дүгнэлт
Дүгнэлт
Дүгнэлт
Дүгнэлт
Дүгнэлт

Хаалганы хяналт нь гэрийн автоматжуулалтын практик төсөл юм. Энэ бол Py -г Python ашиглан Pi програмчлах анхны туршлага байсан юм. Python нь тасалдлыг програмчлах боломжийг олгодог бөгөөд энэ функцийг би микроконтроллеруудад зориулагдсан гэж бодож байсан. Тасалдал нь програмыг omxplayer ашиглан хэвийн ажиллуулах боломжийг олгодог бөгөөд дэлгэцийг шинэ камер руу шилжүүлэх гэх мэт өөр арга хэмжээ авах шаардлагатай эсэхийг байнга шалгадаг. Гэсэн хэдий ч хэрэв тасалдал гарсан бол програм нь ямар шинэ видео тэжээл оруулах ёстойг тодорхойлдог. Arduino нь Python -ийн тасалдлыг өдөөх импульс өгөхөөр тохируулагдсан болно. Хэрэв тасалдал гарсан бол програм нь тодорхой Arduino гаралт (IR алсын товчлуур дээр дарагдсан харгалзах) идэвхжсэн эсэхийг хайж олох болно. Эцэст нь хэлэхэд, програм нь одоо байгаа бүх тоглуулагчийн дэлгэцийг устгаж, шинэ тоглуулагчийн дэлгэцийг эхлүүлнэ.

Pi нь GPIO зүүгээ Arduino шиг оруулдаггүй гэдгийг би мэдсэн- энэ нь Pi-ийн буруу биш, гэхдээ энэ нь Broadcom BCM2837 нь үйлдвэрээс гаралтай юм. Надад 4 цөмт, 1.2 Гц давтамжтай процессор, бага хүч чадалтай, өндөр чанартай видео харуулах хямд өртөгтэй компьютер таалагддаг. IR товчлуур 1 нь дөрвөлсөн дэлгэцийг харуулдаг бөгөөд 2 -оос 5 хүртэлх товчлуурууд тус бүр нь өндөр нарийвчлалтай камерын нэг том дэлгэцийг харуулдаг.

IR алсын товчлуур 0 -ийг дарснаар видео дэлгэцийг цуцалж, Pi командын мөрийг харуулна. Хэрэв та Youtube видео үзэх эсвэл үүнтэй төстэй зүйлийг үзэхийг хүсч байвал Bluetooth гарыг ашиглан "startx" гэж бичээд Pi хөтчийг ашиглан Youtube видеог үзээд өндөр нарийвчлалтайгаар бүтэн дэлгэцээр тоглуулаарай.

Зөвлөмж болгож буй: