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, Červenec
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

Někdy při sledování televize nechcete otevřít dveře, pokud to není důležité. Tento projekt vám umožňuje zobrazit osobu u dveří jednoduchým sdělením zařízení Amazon Echo „Alexa, zapni monitor dveří“. Zkontrolujete, kdo se objeví na televizní obrazovce, poté se vrátíte k normálnímu televiznímu programování „Alexa, zapni televizi“. Tento systém by mohl mít také hodnotu pro starší dospělé nebo děti, které by mohly být zneužity prodejci, zloději a podobně. Díky tomu může být velkoplošná televize vašeho zábavního systému monitorem kamery nejen pro přední kameru, ale i pro jiné bezpečnostní kamery, které můžete mít; ve skutečnosti by to mohlo být dokonce rozšířeno o zobrazení videa z internetových kamer, jako jsou plážové kamery atd.

Díly:

Zábavní systém:

TV s několika vstupy HDMI (většina televizorů je má)

Kabelový nebo DVR box

Směrovač a připojení k internetu přes kabelový box (nemusí být potřeba, pokud máte WiFi)

Amazon Echo („Alexa“)

Harmony Hub

Fotoaparáty

IP kamera na předních dveřích (preferován typ Power Over Ethernet - POE)

Raspberry Pi3 v projektovém boxu (původní Pi může fungovat) s HDMI kabelem

Arduino Pro Mini 8 MHz, 3,3 V.

IR modul (většina běžných typů bude fungovat)

Krok 1: Nastavení, předběžné programování (testování)

Nastavení, předběžné programování (testování)
Nastavení, předběžné programování (testování)
Nastavení, předběžné programování (testování)
Nastavení, předběžné programování (testování)
Nastavení, předběžné programování (testování)
Nastavení, předběžné programování (testování)

Tento projekt spoléhá na omxplayer Pi3, který dekóduje video s hardwarovou akcelerací. Omxplayer lze testovat z příkazového řádku v terminálu Pi pomocí příslušného formátu rtsp: // user@heslo@ipaddress, který vaše kamera vyžaduje. Pi by měl být připojen k ethernetu (i když Pi3 by mohl být připojen také přes WiFi, ale nebyl testován) a fyzicky umístěn v zábavním centru, aby výstupní kabel HDMI Pi mohl dosáhnout vstupního konektoru HDMI televizoru. Modul Arduino a IR se připojí k Pi a předá informace získané čtením stisknutí tlačítka dálkového ovladače televizoru. Pi mohl toto dekódování provádět přímo z IR modulu, ale já jsem lepší v programování Arduina než programování v Pythonu a kromě toho šetří zdroje procesoru pro hlavní úkol Pi dekódovat video stream (y).

Vzhledem k tomu, že můj zabezpečovací systém má více kamer, použil jsem monitorovací displej napájený Pi jako způsob, jak zobrazit 4 kamery najednou a navíc zobrazit jednotlivé kamery na celou obrazovku. Postupujte podle těchto pokynů, ale pravděpodobně budete mít spoustu problémů se stabilním zobrazováním kamer.

Jedním z problémů je, že 4 velikosti oken uvedené v programu nemusí odpovídat vašemu konkrétnímu rozlišení televize. Zjistěte, jaká rozlišení váš monitor podporuje, a všimněte si rozlišení kamer, která vaše kamery mají. Většina IP kamer má stream s vysokým rozlišením (1080p) a nízkým rozlišením (640x480), takže pokud chcete jen jedno video předních dveří ve vysokém rozlišení, jděte do formátu streamu s vysokým rozlišením rtsp: //. Jděte s streamem s nízkým rozlišením pro fotoaparáty ve 4 kvadrantech, s menšími velikostmi obrazu nepoznáte velký rozdíl. Můžete jít s velikostí oken mého bash skriptu (test.sh) (v režimu rozlišení 1080p, zobrazující 4 stejně velké kamery 640x480 přizpůsobené velikosti). V opačném případě použijte milimetrový papír k rozvržení obrazových bodů televizoru a poté načrtněte, kolik obdélníků v dané oblasti chcete. Dále zjistěte, kolik videí 640x480 se vejde, aniž by se příliš měnily poměry (horizontální roztahování vypadá lépe než vertikálně). Nemám rád hranice, takže jsem je nepočítal. Očíslujte obdélníky zleva nahoře vpravo dole 1, 2, 3..atd. Poté vytvořte sloupec čísel oken, pro každý řádek těchto čísel zapište levý horní x, y pixel a pravý dolní pixel x, y. Tato čísla jsou pak nahrazena do skriptu, aby získala vlastní zobrazení, v případě potřeby můžete mít zobrazení 3 x 3. Pokud chcete pouze jeden displej, stačí okomentovat ostatní 3 kamery a nastavit velikost okna na celou obrazovku (a použít stream rtsp s vysokým rozlišením) a skript pojmenovat „test1.sh“. Vytvořte tolik skriptů, kolik chcete, program btn.py Python je vyvolá, když se Arduino změní piny GPIO.

Jeden problém při získávání stabilního zobrazení (horní část obrazu je jemná, ale nižší svislé pruhy obrazu) je ten, že mnoho kamer streamuje mnohem lépe pomocí rtsp přes tcp (používám IP kamery Hikvision 2 až 5 Mp). Proto použijte v omxplayeru „--avdict rtsp_transport: tcp“, jak je uvedeno na obrázku. Další užitečné příkazy omxplayer jsou volume (--vol -6000 pro ztlumení) a buffer (--video fronta x), kde x = 1 nebo více.

Problémy s omxplayerem může způsobit i nastavení IP kamery. Všechny IP kamery by měly být nastaveny na stejné snímky za sekundu, jinak se obraz rozpadne. Když je nastaven na radikálně odlišné snímkové frekvence, čas zobrazený na časovém razítku jedné kamery se ve skutečnosti na několik sekund posunul zpět, poté dopředu a zpět atd. Ujistěte se, že se okna omxplayeru nepřekrývají, nebo překrývající se část bude blikat.

Krok 2: Dát to dohromady

Dát to dohromady
Dát to dohromady

Můžete ručně ovládat kabelovou skříňku a televizi, aby mohl Pi zobrazit kameru předních dveří. To však vyžaduje poměrně málo stisknutí tlačítek, včetně vhodného přepnutí univerzálního dálkového ovladače z kabelového režimu do režimu TV, aby bylo možné změnit vstupní zdroj HDMI na dekodér kamery Pi (HDMI 2). Pokud chcete možnost zobrazit další obrazovky kamer, pak musíte také přepnout univerzální dálkový ovladač na AUX pro ovládání Arduina a tím i výběru kamery Pi. Chcete -li tento proces zjednodušit, použijte Harmony Hub a související aplikaci pro chytré telefony Harmony, naučte ji ovládat televizi a kabelový box pro běžné sledování televize v rámci jedné aktivity, poté vytvořte další aktivitu pro ovládání videomonitoru Pi. Aktivita zahrnuje zapnutí TV, TV vstupu na HDMI 2 a ovládání virtuálních NECx TV (tj. Arduino a Pi) tlačítek 0 až 5. To umožňuje ovládat vše prostřednictvím aplikace pro chytré telefony Harmony. Aby to bylo ještě jednodušší, propojte aplikaci Amazon Echo Dot (Alexa) s aplikací Harmony a ovládejte hlasem funkce televize nebo sledování dveří. Web Harmony poskytuje podrobnosti o tom, jak tyto nové dovednosti Alexa povolit. Nové dovednosti. Jakmile jsou propojena s novými schopnostmi Alexa, klíčová slova jako „Zapnout televizi“nebo „Zapnout monitor dveří“umožní příslušné akce, aniž by bylo nutné IR dálkové ovládání z univerzálního dálkového ovladače.

Pi je připojen přes ethernet k vaší LAN a pomocí kabelu HDMI k televizoru. Nainstaloval jsem 3,3 V Pro Mini přes vodiče do Pi jako možnost přidání dalšího přepínání kamery. Pro Mini lze napájet z 3,3 voltového kolíku Pi. IR modul se připojí ke kolíku 2 Arduina a připojená skica dekóduje stisknutí tlačítka 0 až 5 (ve skutečnosti 0 až 9, ale některé piny Arduina ještě nejsou připojeny). Výstupy Arduino se připojují k digitálním vstupním GPIO pinům Pi, kde přerušení bash skriptu určuje, které „tlačítko“bylo stisknuto, poté zastaví jednu možnost zobrazení a spustí další.

Můj kabelový box je od společnosti Spectrum (dříve Time Warner Cable), což je model DVR Motorola DCX3510. Pro IR používá protokol GI Cable. Televizor Sony používá protokol Sony 2. Myslel jsem, že jeden nebo druhý z těchto kódů bude v pořádku k ovládání přijímače Pi IR a buď fungoval, i když se ukázalo, že to není praktické. Dálkový ovladač bude očekávat další příkazy nebo automaticky změní také vstupní zdroj po stisknutí tlačítka 0 až 9. Proto jsem musel použít jiný kód, který nebude komunikovat s kabelovým tunerem nebo televizí. Zjistil jsem, že můj univerzální dálkový ovladač má dříve naprogramovaný kód pro zařízení AUX (nevím, co ovládá) a rozhodl jsem se ho použít. Vytvořené kódy uváděly, že používá 32bitový kód NECx, takže jsem tyto kódy tlačítek zadal do skici Arduino IR_Rev_Codes_Pi_Monitor. Pokud máte jiný model, změňte program pomocí přijímacího programu v IRLib2 a poznamenejte si hodnoty výrobce, protokolu a hex pro stisknutá tlačítka.

Krok 3: Závěr

Závěr
Závěr
Závěr
Závěr
Závěr
Závěr

Dveřní monitor je praktický projekt domácí automatizace. Byla to moje první zkušenost s programováním Pi s Pythonem. Python umožňuje programování přerušení, což je funkce, kterou jsem považoval za vyhrazenou pro mikrokontroléry. Přerušení umožňuje programu běžet normálně, běží omxplayer, aniž by neustále kontroloval, zda je vyžadována další akce, jako je změna zobrazení na nový zdroj kamery. Dojde -li však k přerušení, program poté určí, který nový zdroj videa by měl být vyvolán. Arduino je nastaveno tak, aby poskytovalo impuls pro spuštění přerušení Pythonu. Pokud dojde k přerušení, program vyhledá, který konkrétní výstup Arduino (odpovídající stisknutému tlačítku IR dálkového ovladače) je aktivován. Nakonec program zabije jakýkoli současný displej omxplayer a spustí nový displej omxplayer.

Dozvěděl jsem se, že Pi nenastavuje své GPIO piny na vstup jako Arduino ve výchozím nastavení- není to chyba Pi, ale je to způsob, jakým je Broadcom BCM2837 z výroby. Líbí se mi 4jádrový, 1,2 Ghz procesor, nízkoenergetický a levný počítač, který dokáže zobrazit skvělé HD video. Tlačítko IR 1 zobrazuje čtyřnásobný displej a tlačítka 2 až 5 ukazují jeden velký displej kamery ve vysokém rozlišení.

Stisknutím tlačítka IR dálkového ovládání 0 se zruší zobrazení videa a zobrazí se příkazový řádek Pi. Pokud chcete sledovat videa z Youtube a podobně, použijte klávesnici Bluetooth, zadejte „startx“a pomocí prohlížeče Pi přejděte na video Youtube a přehrajte jej na celou obrazovku ve vysokém rozlišení.

Doporučuje: