Taula de continguts:

Qui és a la porta, un sistema de càmera accionat per Alexa: 3 passos
Qui és a la porta, un sistema de càmera accionat per Alexa: 3 passos

Vídeo: Qui és a la porta, un sistema de càmera accionat per Alexa: 3 passos

Vídeo: Qui és a la porta, un sistema de càmera accionat per Alexa: 3 passos
Vídeo: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, De novembre
Anonim
Qui és a la porta, un sistema de càmera accionat per Alexa
Qui és a la porta, un sistema de càmera accionat per Alexa
Qui és a la porta, un sistema de càmera accionat per Alexa
Qui és a la porta, un sistema de càmera accionat per Alexa
Qui és a la porta, un sistema de càmera accionat per Alexa
Qui és a la porta, un sistema de càmera accionat per Alexa

De vegades, mentre mireu la televisió, no voleu respondre a la porta tret que sigui important. Aquest projecte us permet veure la persona a la porta simplement indicant al dispositiu Echo d'Amazon "Alexa, enceneu el monitor de la porta". Comproveu qui apareix a la pantalla del televisor i, a continuació, torneu a la programació normal de televisió "Alexa, enceneu el televisor". El sistema també podria ser útil per a adults majors o nens que serien vulnerables a ser aprofitats pels venedors, lladres i similars. Això permet que el televisor de pantalla gran del vostre sistema d'entreteniment sigui el monitor de visualització de la càmera no només per a la càmera de la porta principal, sinó per a qualsevol altra càmera de seguretat que pugueu tenir; de fet, fins i tot es podria ampliar per mostrar vídeo des de càmeres d'Internet, com ara càmeres de platja, etc.

Parts:

Sistema d'entreteniment:

TV amb diverses entrades HDMI (la majoria de televisors en tenen)

Cable o caixa DVR

Encaminador i connexió a Internet mitjançant cable box (pot ser que no sigui necessari si teniu WiFi)

Amazon Echo ("Alexa")

Harmony Hub

Càmeres

Càmera IP a la porta principal (preferible tipus Power Over Ethernet -POE)

Raspberry Pi3 en una caixa del projecte (el Pi original pot funcionar) amb cable HDMI

Arduino Pro Mini 8 Mhz, 3.3v

Mòdul IR (els tipus més comuns funcionaran)

Pas 1: Configuració, programació preliminar (proves)

Configuració, programació preliminar (proves)
Configuració, programació preliminar (proves)
Configuració, programació preliminar (proves)
Configuració, programació preliminar (proves)
Configuració, programació preliminar (proves)
Configuració, programació preliminar (proves)

Aquest projecte es basa en el Pi3 omxplayer que descodifica el vídeo amb acceleració de maquinari. Es pot executar Omxplayer des d’una línia d’ordres al terminal Pi mitjançant el format rtsp: // user @ password @ ipaddress adequat que requereix la vostra càmera. El Pi s’hauria de connectar a Ethernet (tot i que el Pi3 també es podria connectar mitjançant WiFi, però no s’ha de provar) i es trobaria físicament al centre d’entreteniment perquè el cable de sortida HDMI del Pi pugui arribar a la presa d’entrada HDMI del televisor. El mòdul Arduino i IR es connectarà al Pi i retransmetrà la informació obtinguda en llegir el botó del control remot del televisor. El Pi podria fer aquesta descodificació directament des del mòdul IR, però estic millor en la programació Arduino que en la programació Python i, a més, estalvia recursos de processador per a la tasca principal del Pi de descodificar els fluxos de vídeo.

Com que el meu sistema de seguretat té diverses càmeres, he utilitzat la pantalla de monitorització alimentada per Pi com una manera de mostrar 4 càmeres alhora, a més de mostrar càmeres individuals a pantalla completa. Seguiu aquestes instruccions, però probablement tingueu molts problemes perquè les càmeres es mostrin de manera estable.

Un dels problemes és que és possible que les quatre mides de finestra que apareixen al programa no s’adaptin a la resolució de televisió en concret. Cerqueu les resolucions que admet el vostre monitor mentre observeu la resolució de la càmera que tenen les càmeres. La majoria de càmeres IP tenen un flux d'alta resolució (1080p) i una baixa resolució (640x480), de manera que si només voleu un vídeo d'alta resolució de la porta principal, utilitzeu el format rtsp: // d'alta resolució. Aneu amb el flux de baixa resolució per a càmeres en 4 quadrants, no notareu molta diferència amb les mides d'imatges més petites. Podeu utilitzar les mides de les meves finestres de script bash (test.sh) (en mode de resolució de 1080p, mostrant 4 càmeres de 640x480 de mida igual a mida). En cas contrari, utilitzeu paper mil·limetrat per dissenyar els píxels del televisor i, a continuació, dibuixeu quants rectangles voleu en aquesta àrea. A continuació, consulteu quants vídeos de 640 x 480 s'adapten sense canviar massa aspecte (l'estirament horitzontal es veu millor que verticalment). No m'agraden les fronteres, així que no les he calculat. Numereu els rectangles de dalt a esquerra a baix a la dreta 1, 2, 3..etc. A continuació, feu una columna de números de finestra, per a cada fila d'aquests números, anoteu els x, y píxels superior esquerre i píxel inferior dret x, y. Aquests números se substitueixen a l'script per obtenir una visualització personalitzada. Si voleu, podeu tenir una visualització de 3 x 3. Si només voleu una pantalla, només cal que comenteu les altres 3 càmeres i que la mida de la finestra sigui la resolució de pantalla completa (i que utilitzeu el flux rtsp d'alta resolució) i que poseu el títol "script1.sh". Feu tants scripts com vulgueu, el programa btn.py Python els cridarà a mesura que Arduino canviï els pins GPIO.

Un problema per aconseguir una visualització estable (la part superior de la imatge és fina, però les ratlles verticals de la imatge són menors) és que moltes càmeres emeten molt millor fent servir rtsp sobre tcp (faig servir càmeres IP Hikvision de 2 a 5 Mp). Per tant, utilitzeu "--avdict rtsp_transport: tcp" a omxplayer tal com es mostra. Altres ordres útils d'omxplayer són volum (--vol -6000 per silenciar) i memòria intermèdia (--video queue x) on x = 1 o més.

La configuració de la càmera IP també pot causar problemes amb omxplayer. Totes les càmeres IP haurien d’estar configurades als mateixos fotogrames per segon o la imatge es trencarà. Quan es defineix a velocitats de fotogrames radicalment diferents, el temps que es mostra en una marca de temps de la càmera va retrocedir durant uns segons, després va endavant i enrere, etc. Assegureu-vos que les vostres finestres omxplayer no es superposen o la part superposada parpellejarà.

Pas 2: ajuntar-lo

Posant-ho en comú
Posant-ho en comú

Podeu controlar manualment la caixa de cable i el televisor per permetre que el Pi mostri la càmera de la porta principal. Tanmateix, això requereix bastants prems de botó, inclòs el canvi adequat del comandament universal del mode per cable al mode TV per permetre canviar la font d'entrada HDMI al descodificador de la càmera Pi (HDMI 2). Si voleu mostrar pantalles addicionals de càmera, també haureu de canviar el comandament universal a AUX per controlar Arduino i, per tant, la selecció de càmera Pi. Per simplificar aquest procés, utilitzeu un Harmony Hub i l’aplicació associada per a telèfons intel·ligents, ensenyant-la a controlar el televisor i la caixa de cable per a la visualització normal del televisor en una activitat i, a continuació, creeu una altra activitat per controlar el monitor de vídeo Pi. L’activitat inclou engegar el televisor, l’entrada del televisor a HDMI 2 i controlar els botons virtuals NECx TV (és a dir, Arduino i Pi) de 0 a 5. Això permet controlar tot a través de l’aplicació per a telèfons intel·ligents Harmony. Per fer les coses encara més fàcils, enllaceu l’aplicació Amazon Echo Dot (Alexa) amb l’aplicació Harmony per controlar per veu les funcions de control de TV o de porta. El lloc web Harmony proporciona detalls sobre com habilitar aquestes noves habilitats Alexa. Noves habilitats. Un cop enllaçats amb les noves habilitats d'Alexa, paraules clau com "Activa el televisor" o "Activa el monitor de la porta" permetran fer les accions adequades sense necessitat d'infrarojos des del comandament a distància universal.

El Pi es connecta via Ethernet a la vostra LAN i mitjançant un cable HDMI al televisor. Vaig instal·lar un Pro Mini de 3,3 volts mitjançant cables al Pi com a opció per afegir commutació de càmera addicional. El Pro Mini es pot alimentar des del pin de 3,3 volts del Pi. Un mòdul IR es connecta al pin 2 de l'Arduino i l'esbós adjunt descodifica el botó que premeu de 0 a 5 (en realitat de 0 a 9, però alguns pins d'Arduino encara no estan connectats). Les sortides Arduino es connecten als pins GPIO d'entrada digital del Pi, on una interrupció de script bash determina quin "botó" s'ha premut, després atura una opció de visualització de pantalla i n'inicia una altra.

La meva caixa de cables prové de Spectrum (abans Time Warner Cable), que és un model de DVR Motorola DCX3510. Utilitza el protocol GI Cable per IR. El televisor Sony utilitza el protocol Sony 2. Vaig pensar que un o altre d'aquests codis estaria bé per controlar el receptor IR Pi i qualsevol dels dos va funcionar, tot i que va resultar no ser pràctic. El control remot esperaria comandes addicionals o també canviaria automàticament la font d’entrada quan es premia un botó del 0 al 9. Per tant, vaig haver d’utilitzar un codi diferent que no interactués amb el sintonitzador de cable o el televisor. Vaig trobar que el meu comandament a distància universal tenia un codi prèviament programat per a un dispositiu AUX (no sé què controlava) i vaig decidir utilitzar-lo. Els codis produïts deien que feia servir NECx, un codi de 32 bits, de manera que vaig introduir aquests codis de botó a l'esbós Arduino IR_Rev_Codes_Pi_Monitor. Canvieu el programa si teniu un model diferent mitjançant el programa de recepció a IRLib2 i observeu els valors del fabricant, del protocol i de l'hex per als botons premuts.

Pas 3: Conclusió

Conclusió
Conclusió
Conclusió
Conclusió
Conclusió
Conclusió

El monitor de la porta és un pràctic projecte domòtic. Va ser la meva primera experiència programant el Pi amb Python. Python permet programar una interrupció, una característica que pensava que estava reservada als microcontroladors. La interrupció permet que el programa s'executi amb normalitat, executant omxplayer, sense comprovar constantment si cal una altra acció com canviar la pantalla a una nova font de càmera. Tanmateix, si es produeix la interrupció, el programa determina quin feed de vídeo nou s'hauria de mostrar. L'Arduino està configurat per proporcionar un impuls per activar la interrupció de Python. Si es produeix la interrupció, el programa busca quina sortida Arduino concreta (corresponent al botó remot IR premut) està activada. Finalment, el programa mata qualsevol pantalla omxplayer actual i inicia la nova pantalla omxplayer.

Vaig aprendre que el Pi no estableix els seus pins GPIO com a entrada per defecte, com Arduino, no és una falla del Pi, però és la manera com el Broadcom BCM2837 és de fàbrica. M'agrada el processador de 4 nuclis i 1,2 Ghz, un ordinador de baix consum i de baix cost que pot mostrar un vídeo d'alta definició. El botó IR 1 mostra la pantalla quad i els botons 2 a 5 mostren cadascun una sola pantalla gran d’una càmera en alta definició.

En prémer el botó remot IR 0 es cancel·la la visualització del vídeo i es mostra la línia d’ordres Pi. Si voleu veure vídeos de Youtube o similars, utilitzeu un teclat Bluetooth, escriviu "startx" i utilitzeu el navegador Pi per anar al vídeo de Youtube i reproduir-lo a pantalla completa en alta definició.

Recomanat: