Obsah:

Who's at Door, an Alexa Actuated Camera System: 3 Steps
Who's at Door, an Alexa Actuated Camera System: 3 Steps

Video: Who's at Door, an Alexa Actuated Camera System: 3 Steps

Video: Who's at Door, an Alexa Actuated Camera System: 3 Steps
Video: How to use Alexa to view Ring Video Doorbell 2024, November
Anonim
Who's at Door, an Alexa Actuated Camera System
Who's at Door, an Alexa Actuated Camera System
Who's at Door, an Alexa Actuated Camera System
Who's at Door, an Alexa Actuated Camera System
Who's at Door, an Alexa Actuated Camera System
Who's at Door, an Alexa Actuated Camera System

Niekedy pri sledovaní televízie nechcete otvoriť dvere, pokiaľ to nie je dôležité. Tento projekt vám umožňuje vidieť osobu vo dverách jednoduchým oznámením zariadeniu Amazon Echo „Alexa, zapni monitor dverí“. Zistíte, kto sa objaví na televíznej obrazovke, potom sa vrátite k normálnemu televíznemu programovaniu „Alexa, zapni televízor“. Tento systém by mohol byť hodnotný aj pre starších dospelých alebo deti, ktorí by mohli byť zneužívaní predajcami, zlodejmi a podobne. Vďaka tomu môže byť televízor s veľkou obrazovkou vášho zábavného systému monitorom kamery nielen pre predné dvere, ale aj pre ostatné bezpečnostné kamery; v skutočnosti to môže byť dokonca rozšírené o zobrazenie videa z internetových kamier, ako sú plážové kamery, atď.

Diely:

Zábavný systém:

Televízor s niekoľkými vstupmi HDMI (väčšina televízorov ich má)

Káblový alebo DVR box

Smerovač a internetové pripojenie prostredníctvom káblového boxu (nemusí byť potrebné, ak máte WiFi)

Amazon Echo („Alexa“)

Harmony Hub

Fotoaparáty

IP kamera na predných dverách (preferovaný typ Power Over Ethernet - POE)

Raspberry Pi3 v projektovom boxe (pôvodný Pi môže fungovať) s káblom HDMI

Arduino Pro Mini 8 MHz, 3,3 V.

IR modul (väčšina bežných typov bude fungovať)

Krok 1: Nastavenie, predbežné programovanie (testovanie)

Nastavenie, predbežné programovanie (testovanie)
Nastavenie, predbežné programovanie (testovanie)
Nastavenie, predbežné programovanie (testovanie)
Nastavenie, predbežné programovanie (testovanie)
Nastavenie, predbežné programovanie (testovanie)
Nastavenie, predbežné programovanie (testovanie)

Tento projekt sa spolieha na omxplayer Pi3, ktorý dekóduje video s hardvérovou akceleráciou. Omxplayer je možné testovať z príkazového riadka v termináli Pi pomocou príslušného formátu rtsp: // user@heslo@ipaddress, ktorý váš fotoaparát vyžaduje. Pi by mal byť pripojený k ethernetu (aj keď Pi3 môže byť pripojený aj cez WiFi, ale nie je testovaný) a fyzicky umiestnený v zábavnom centre, aby výstupný kábel HDMI Pi mohol dosiahnuť vstupný konektor HDMI televízora. Arduino a IR modul sa pripoja k Pi a prenášajú informácie získané z prečítania stlačení tlačidla diaľkového ovládača televízora. Pi dokázalo toto dekódovanie priamo z IR modulu, ale ja som v programovaní Arduino lepší ako v programovaní v Pythone a okrem toho šetrí zdroje procesora na hlavnú úlohu Pi pri dekódovaní video streamu.

Pretože môj bezpečnostný systém má viac kamier, použil som monitorovací displej napájaný Pi ako spôsob, ako zobraziť 4 kamery naraz a navyše zobraziť jednotlivé kamery na celú obrazovku. Postupujte podľa týchto pokynov, pravdepodobne však budete mať veľa problémov so stabilným zobrazovaním kamier.

Jeden z problémov je, že 4 veľkosti okien uvedené v programe nemusia zodpovedať vášmu konkrétnemu rozlíšeniu televízora. Zistite, aké rozlíšenia váš monitor podporuje, a všímajte si rozlíšenie, ktoré majú vaše fotoaparáty. Väčšina IP kamier má stream s vysokým rozlíšením (1080p) a nízkym rozlíšením (640x480), takže ak chcete iba jedno video predných dverí vo vysokom rozlíšení, siahnite po formáte streamu s vysokým rozlíšením rtsp: //. Choďte na stream s nízkym rozlíšením pre fotoaparáty v 4 kvadrantoch, pri menších veľkostiach obrazu veľký rozdiel nepoznáte. Môžete ísť s mojimi veľkosťami okien môjho bash skriptu (test.sh) (v režime rozlíšenia 1080p, ktoré zobrazujú 4 kamery rovnakej veľkosti 640x480 prispôsobené veľkosti). V opačnom prípade použite milimetrový papier na rozloženie pixelov televízora a potom načrtnite, koľko obdĺžnikov v danej oblasti chcete. Ďalej zistite, koľko videí s rozlíšením 640 x 480 sa zmestí bez prílišnej zmeny pomeru strán (horizontálne roztiahnutie vyzerá lepšie ako vertikálne). Nemám rád hranice, takže som ich nepočítal. Očíslujte obdĺžniky zľava hore a vpravo dole 1, 2, 3..atd. Potom vytvorte stĺpec s číslami okien, pre každý riadok týchto čísel napíšte horný ľavý x, y pixel a pravý dolný pixel x, y. Tieto čísla sa potom nahradia skriptom, aby sa získal vlastný displej, v prípade potreby môžete mať displej 3 x 3. Ak chcete iba jeden displej, komentujte ostatné 3 kamery a nastavte veľkosť okna na celú obrazovku (a použite stream rtsp s vysokým rozlíšením) a skript pomenujte „test1.sh“. Vytvorte toľko skriptov, koľko chcete, program btn.py Python ich vyvolá, keď Arduino zmení piny GPIO.

Jeden problém pri získavaní stabilného zobrazenia (horná časť obrazu je jemná, ale nižšie zvislé pruhy obrazu) je ten, že mnoho kamier streamuje oveľa lepšie pomocou rtsp cez tcp (používam 2 až 5 Mp IP kamery Hikvision). Preto v omxplayeri použite „--avdict rtsp_transport: tcp“, ako je to znázornené. Ďalšími užitočnými príkazmi omxplayer sú volume (--vol -6000 pre stlmenie) a buffer (--video front x), kde x = 1 alebo viac.

Problémy s omxplayerom môžu spôsobovať aj nastavenia IP kamery. Všetky IP kamery by mali byť nastavené na rovnaké snímky za sekundu, inak sa obraz rozpadne. Keď je nastavený na radikálne odlišné snímkové frekvencie, čas zobrazený na časovom údaji jednej kamery sa v skutočnosti posunul o niekoľko sekúnd dozadu, potom dopredu a potom atď. Uistite sa, že sa okná vášho prehrávača omxplayer neprekrývajú alebo prekrývajúca sa časť bude blikať.

Krok 2: Spojenie

Dať to dohromady
Dať to dohromady

Káblový box a televízor môžete manuálne ovládať, aby ste Pi mohli zobrazovať kameru predných dverí. Vyžaduje to však niekoľko stlačení tlačidiel vrátane vhodného prepnutia univerzálneho diaľkového ovládača z káblového režimu do režimu televízora, aby bolo možné zmeniť vstupný zdroj HDMI na dekodér kamery Pi (HDMI 2). Ak chcete možnosť zobraziť ďalšie obrazovky kamier, musíte tiež prepnúť univerzálne diaľkové ovládanie na AUX na ovládanie Arduina a tým aj výberu kamery Pi. Na zjednodušenie tohto procesu použite aplikáciu Harmony Hub a súvisiacu aplikáciu pre smartfóny Harmony, ktorá ju naučí ovládať televízor a káblový box na bežné sledovanie televízie v rámci jednej aktivity, a potom vytvoríte inú aktivitu na ovládanie videomonitoru Pi. Aktivita zahŕňa zapnutie televízora, televízneho vstupu na HDMI 2 a ovládanie virtuálnych tlačidiel NECx TV (tj. Arduino a Pi) 0 až 5. To umožňuje ovládať všetko prostredníctvom aplikácie pre smartfóny Harmony. Aby to bolo ešte jednoduchšie, prepojte aplikáciu Amazon Echo Dot (Alexa) s aplikáciou Harmony a hlasovo ovládajte funkcie televízora alebo monitorovania dverí. Webová stránka Harmony poskytuje podrobnosti o tom, ako povoliť tieto nové schopnosti Alexa. Nové zručnosti. Keď budú kľúčové slová ako „Zapnúť televízor“alebo „Zapnúť monitor dverí“prepojené s novými schopnosťami Alexa, umožnia príslušné akcie bez toho, aby bolo potrebné univerzálne diaľkové ovládanie IR.

Pi je pripojený k sieti LAN prostredníctvom siete Ethernet a k televízoru pomocou kábla HDMI. Nainštaloval som 3,3 volt Pro Mini cez vodiče na Pi ako možnosť pridať ďalšie prepínanie kamery. Pro Mini je možné napájať z 3,3 voltového kolíka Pi. IR modul sa pripája na pin 2 Arduina a priložený náčrt dekóduje stlačenie tlačidla 0 až 5 (v skutočnosti 0 až 9, ale niektoré piny Arduina ešte nie sú pripojené). Výstupy Arduino sa pripájajú k digitálnym vstupným GPIO pinom Pi, kde prerušenie bash skriptu určí, ktoré „tlačidlo“bolo stlačené, potom zastaví jednu možnosť zobrazenia displeja a spustí ďalšiu.

Moja káblová skrinka pochádza zo spoločnosti Spectrum (predtým Time Warner Cable), čo je DVR Motorola, model DCX3510. Pre IR používa protokol GI Cable. Televízor Sony používa protokol Sony 2. Myslel som si, že jeden alebo druhý z týchto kódov bude dobrý na ovládanie prijímača Pi IR a buď funguje, aj keď sa ukázalo, že nie je praktické. Diaľkový ovládač očakáva ďalšie príkazy alebo automaticky zmení vstupný zdroj aj po stlačení tlačidiel 0 až 9. Preto som musel použiť iný kód, ktorý by nereagoval s káblovým tunerom alebo televízorom. Zistil som, že môj univerzálny diaľkový ovládač má predtým naprogramovaný kód pre zariadenie AUX (neviem, čo ovláda) a rozhodol som sa ho použiť. Vyrobené kódy uviedli, že používa 32 -bitový kód NECx, takže som tieto kódy tlačidiel zadal do skici Arduino IR_Rev_Codes_Pi_Monitor. Zmeňte program, ak máte iný model, pomocou programu na príjem v IRLib2 a všimnite si hodnoty tvorcu, protokolu a hex pre stlačené tlačidlá.

Krok 3: Záver

Záver
Záver
Záver
Záver
Záver
Záver

Dverový monitor je praktickým projektom domácej automatizácie. Bola to moja prvá skúsenosť s programovaním Pi s Pythonom. Python umožňuje programovanie prerušenia, túto funkciu som si myslel, že je vyhradená pre mikrokontroléry. Prerušenie umožňuje programu bežať normálne, pričom beží omxplayer, bez toho, aby neustále kontroloval, či je potrebná ďalšia akcia, ako napríklad zmena displeja na nový kanál kamery. Ak však dôjde k prerušeniu, program potom určí, ktorý nový video kanál by sa mal vyvolať. Arduino je nastavené tak, aby poskytovalo impulz na spustenie prerušenia Pythonu. Ak dôjde k prerušeniu, program vyhľadá, ktorý konkrétny výstup Arduino (zodpovedajúci stlačenému tlačidlu IR diaľkového ovládača) je aktivovaný. Nakoniec program zabije akékoľvek aktuálne zobrazenie omxplayera a spustí nové zobrazenie omxplayera.

Dozvedel som sa, že Pi nenastavuje svoje GPIO piny na vstup ako Arduino v predvolenom nastavení- nie je to chyba Pi, ale je to spôsob, akým je Broadcom BCM2837 z výroby. Páči sa mi 4 -jadrový procesor s frekvenciou 1,2 Ghz, počítač s nízkym výkonom a nízkymi nákladmi, ktorý dokáže zobrazovať skvelé HD video. IR tlačidlo 1 zobrazuje štvornásobný displej a tlačidlá 2 až 5 ukazujú jeden veľký displej kamery vo vysokom rozlíšení.

Stlačením tlačidla IR diaľkového ovládača 0 sa zruší zobrazenie videa a zobrazí sa príkazový riadok Pi. Ak chcete sledovať videá z Youtube a podobne, použite klávesnicu Bluetooth, zadajte „startx“a pomocou prehliadača Pi prejdite na video Youtube a prehrajte ho na celú obrazovku vo vysokom rozlíšení.

Odporúča: