Съдържание:

Кой е на вратата, система с камера, задействана от Alexa: 3 стъпки
Кой е на вратата, система с камера, задействана от Alexa: 3 стъпки

Видео: Кой е на вратата, система с камера, задействана от Alexa: 3 стъпки

Видео: Кой е на вратата, система с камера, задействана от Alexa: 3 стъпки
Видео: Nikola Tesla's Warning of the Philadelphia Experiment & Time Travel 2024, Юли
Anonim
Кой е на вратата, система за камера, задействана от Alexa
Кой е на вратата, система за камера, задействана от Alexa
Кой е на вратата, система за управление с Alexa, задействана от Alexa
Кой е на вратата, система за управление с Alexa, задействана от Alexa
Кой е на вратата, система за камера, задействана от Alexa
Кой е на вратата, система за камера, задействана от Alexa

Понякога, докато гледате телевизия, не искате да отворите вратата, освен ако това не е важно. Този проект ви позволява да видите човека на вратата, като просто кажете на устройството на Amazon Echo „Alexa, включи монитора на вратата“. Проверявате кой се появява на телевизионния екран, след което се връщате към нормалното телевизионно програмиране „Алекса, включи телевизора“. Системата би могла да бъде от полза и за по -възрастни или деца, които биха били уязвими да се възползват от продавачи, крадци и други подобни. Това позволява на големия екран на вашата развлекателна система да бъде монитор на дисплея на камерата не само за камерата на предната врата, но и за всякакви други охранителни камери, които може да имате; всъщност може дори да се разшири за показване на видео от интернет камери, като плажни камери и т.н.

Части:

Развлекателна система:

Телевизор с няколко HDMI входа (повечето телевизори ги имат)

Кабелна или DVR кутия

Рутер и интернет връзка чрез кабелна кутия (може да не са необходими, ако имате WiFi)

Amazon Echo ("Alexa")

Harmony Hub

Камера (и)

IP камера на входната врата (предпочита се тип Power Over Ethernet -POE)

Raspberry Pi3 в кутия за проект (оригиналният Pi може да работи) с HDMI кабел

Arduino Pro Mini 8 Mhz, 3.3v

IR модул (най -често срещаните типове ще работят)

Стъпка 1: Настройка, предварително програмиране (тестване)

Настройка, предварително програмиране (тестване)
Настройка, предварително програмиране (тестване)
Настройка, предварително програмиране (тестване)
Настройка, предварително програмиране (тестване)
Настройка, предварително програмиране (тестване)
Настройка, предварително програмиране (тестване)

Този проект разчита на Pi3 omxplayer, който декодира видео с хардуерно ускорение. Omxplayer може да бъде тестван от командния ред в терминала Pi, използвайки подходящия формат rtsp: // потребител@парола@ipaddress, който вашата камера изисква. Pi трябва да бъде свързан към Ethernet (въпреки че Pi3 може да бъде свързан и чрез WiFi, но не е тестван) и физически да се намира в развлекателния център, така че HDMI изходният кабел на Pi да може да достигне HDMI входния жак на телевизора. Модулът Arduino и IR ще се свържат с Pi и ще предадат информацията, получена от четенето на бутоните за дистанционно управление на телевизора. Pi може да направи това декодиране директно от IR модула, но аз съм по -добър в програмирането на Arduino, отколкото програмирането на Python и освен това спестява ресурси на процесора за основната задача на Pi да декодира видеопотока (ите).

Тъй като моята система за сигурност има няколко камери, използвах монитора с мониторинг на Pi, като начин за показване на 4 камери наведнъж, плюс показване на отделни камери на цял екран. Следвайте тези инструкции, но вероятно ще имате много проблеми да накарате камерите да се показват стабилно.

Един от проблемите е, че 4 -те размера на прозореца, посочени в програмата, може да не отговарят на вашата конкретна резолюция на телевизора. Намерете какви резолюции поддържа вашият монитор, като отбележите разделителната способност на камерата, която имат вашите камери. Повечето IP камери имат поток с висока разделителна способност (1080p) и ниска разделителна способност (640x480), така че ако искате само едно видео с висока разделителна способност на входната врата, преминете към потока с висока разделителна способност rtsp: // формат. Отидете с потока с ниска разделителна способност за камери в 4 квадранта, няма да забележите голяма разлика с по -малките размери на картината. Можете да използвате моите bash script (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 Mp IP камери). Затова използвайте „--avdict rtsp_transport: tcp“в omxplayer, както е показано. Други полезни команди на omxplayer са обем (--vol -6000 за заглушаване) и буфер (-видео опашка x), където x = 1 или повече.

Настройките на IP камерата също могат да причинят проблеми с omxplayer. Всички IP камери трябва да бъдат настроени на едни и същи кадри в секунда, в противен случай картината ще се разпадне. Когато е настроено на коренно различна честота на кадрите, времето, показано на една отметка за време на камерата, действително се върна назад за няколко секунди, след това напред, след това назад и т.н.. Уверете се, че прозорците на вашия omxplayer не се припокриват, или припокриващата се част ще трепне.

Стъпка 2: Сглобявайки го заедно

Сглобявайки го заедно
Сглобявайки го заедно

Можете ръчно да управлявате кабелната кутия и телевизора, за да позволите на Pi да покаже камерата на предната врата. Това обаче изисква доста натискания на бутони, включително подходящо превключване на универсалното дистанционно от кабелен режим към телевизионен, за да се позволи промяната на входния HDMI източник към декодера Pi камера (HDMI 2). Ако искате възможността да показвате допълнителни екрани на камерата, тогава трябва също да превключите универсалното дистанционно на AUX, за да контролирате Arduino и по този начин избора на Pi камера. За да опростите този процес, използвайте Harmony Hub и свързаното с него приложение за смартфон Harmony, като го научите да контролира телевизора и кабелната кутия за нормално гледане на телевизия в една дейност, след което създайте друга активност, за да контролирате видеомонитора Pi. Дейността включва включване на телевизора, телевизионния вход към HDMI 2 и управление на виртуалните NECx TV (т.е. 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 -волтов щифт на Pi. IR модул се свързва към щифт 2 на Arduino, а приложената скица декодира бутона, натиснат от 0 до 5 (всъщност 0 до 9, но някои щифтове на Arduino все още не са свързани). Изходите на Arduino се свързват с цифрови входни GPIO изводи на Pi, където прекъсването на bash скрипта определя кой "бутон" е натиснат, след което спира една опция за изглед на дисплея и стартира друга.

Моята кабелна кутия е от Spectrum (по -рано Time Warner Cable), който е DVR модел на Motorola DCX3510. Той използва GI Cable протокол за IR. Телевизорът Sony използва протокол Sony 2. Мислех, че един или друг от тези кодове би бил добре да управлява Pi IR приемника и или работи, въпреки че се оказа, че не е практично. Дистанционното управление би очаквало допълнителни команди или автоматично би променило и източника на вход, когато е натиснат бутон от 0 до 9. Затова трябваше да използвам различен код, който да не взаимодейства с кабелния тунер или телевизора. Открих, че моето универсално дистанционно има предварително програмиран код за AUX устройство (не знам какво контролира) и реших да го използвам. Произведените кодове казват, че използва NECx, 32 -битов код, така че въведох тези кодове на бутоните в скицата на Arduino IR_Rev_Codes_Pi_Monitor. Променете програмата, ако имате различен модел, като използвате програмата за получаване в IRLib2 и отбележете производителя, протокола и шестнадесетичните стойности за натиснатите бутони.

Стъпка 3: Заключение

Заключение
Заключение
Заключение
Заключение
Заключение
Заключение

Мониторът на вратата е практичен проект за домашна автоматизация. Това беше първият ми опит с програмирането на Pi с Python. Python позволява програмиране на прекъсване, функция, която смятах, че е запазена за микроконтролери. Прекъсването позволява на програмата да работи нормално, като работи с omxplayer, без постоянно да проверява дали е необходимо друго действие, като промяна на дисплея на нова емисия на камерата. Ако обаче възникне прекъсване, програмата определя коя нова видео емисия трябва да бъде изведена. Arduino е настроен да осигурява импулс за задействане на прекъсването на Python. Ако прекъсването възникне, програмата търси кой конкретен изход на Arduino (съответстващ на натиснатия бутон за дистанционно управление) е активиран. И накрая, програмата убива всеки текущ дисплей на omxplayer и стартира новия дисплей на omxplayer.

Научих, че Pi не настройва своите GPIO щифтове за вход като Arduino по подразбиране- не е грешка на Pi, но това е начинът, по който Broadcom BCM2837 е от фабриката. Харесва ми 4 -ядрен, 1.2 Ghz процесор, компютър с ниска мощност и ниска цена, който може да показва страхотно HD видео. IR бутон 1 показва четириядрения дисплей, а всеки от бутоните 2 до 5 показва единичен голям дисплей на камера с висока разделителна способност.

Натискането на IR дистанционен бутон 0 отменя видео дисплея и показва командния ред Pi. Ако искате да гледате видеоклипове в Youtube или други подобни, използвайте Bluetooth клавиатура, въведете „startx“и използвайте браузъра Pi, за да отворите видеоклипа в Youtube и да го пуснете на цял екран в High Definition.

Препоръчано: