Tartalomjegyzék:

Ki van az ajtóban, egy Alexa működtetett kamerarendszer: 3 lépés
Ki van az ajtóban, egy Alexa működtetett kamerarendszer: 3 lépés

Videó: Ki van az ajtóban, egy Alexa működtetett kamerarendszer: 3 lépés

Videó: Ki van az ajtóban, egy Alexa működtetett kamerarendszer: 3 lépés
Videó: BOTTKA x M.K - A Szemembe bele nézett 2024, Július
Anonim
Ki van az ajtóban, egy Alexa működtetett kamerarendszer
Ki van az ajtóban, egy Alexa működtetett kamerarendszer
Ki van az ajtóban, egy Alexa működtetett kamerarendszer
Ki van az ajtóban, egy Alexa működtetett kamerarendszer
Ki van az ajtóban, egy Alexa működtetett kamerarendszer
Ki van az ajtóban, egy Alexa működtetett kamerarendszer

Néha tévénézés közben nem akar válaszolni az ajtónak, hacsak nem fontos. Ez a projekt lehetővé teszi, hogy megtekinthesse az ajtóban tartózkodó személyt, ha egyszerűen azt mondja az Amazon Echo eszközének: "Alexa, kapcsolja be az ajtófigyelőt". Megnézi, hogy ki jelenik meg a TV képernyőjén, majd térjen vissza a normál tévéműsorhoz "Alexa, kapcsolja be a TV -t". A rendszer értékes lehet az idősebb felnőttek vagy gyermekek számára is, akik ki vannak téve az értékesítők, tolvajok és hasonlók kihasználásának. Ez lehetővé teszi, hogy szórakoztató rendszerének nagyképernyős TV -je ne csak a bejárati ajtókamera, hanem bármely más biztonsági kamera kamerájának kijelzője legyen; sőt ki lehetne terjeszteni az internetes kamerákról, például tengerparti kamerákról stb.

Alkatrészek:

Szórakoztató rendszer:

TV több HDMI bemenettel (a legtöbb tévékészülék rendelkezik)

Kábel vagy DVR doboz

Útválasztó és internetkapcsolat kábeldobozon keresztül (lehet, hogy nem szükséges, ha van WiFi)

Amazon Echo ("Alexa")

Harmony Hub

Kamera

IP kamera a bejárati ajtónál (Power Over Ethernet - POE típusú)

Raspberry Pi3 projekt dobozban (eredeti Pi működhet) HDMI kábellel

Arduino Pro Mini 8 Mhz, 3.3v

IR modul (a leggyakoribb típusok működnek)

1. lépés: Beállítás, előzetes programozás (tesztelés)

Beállítás, előzetes programozás (tesztelés)
Beállítás, előzetes programozás (tesztelés)
Beállítás, előzetes programozás (tesztelés)
Beállítás, előzetes programozás (tesztelés)
Beállítás, előzetes programozás (tesztelés)
Beállítás, előzetes programozás (tesztelés)

Ez a projekt a Pi3 omxplayerre támaszkodik, amely hardveres gyorsítással dekódolja a videót. Az Omxplayer tesztelhető a Pi terminál parancssorából, a fényképezőgép által igényelt megfelelő rtsp: // user@password@ipaddress formátum használatával. A Pi -t Ethernet -hez kell csatlakoztatni (bár a Pi3 WiFi -n keresztül is csatlakoztatható, de nem tesztelték), és fizikailag a szórakoztató központban kell elhelyezkednie, hogy a Pi HDMI -kimeneti kábele elérje a TV HDMI -bemenetét. Az Arduino és az IR modul csatlakozni fog a Pi -hez, és továbbítja a TV -távirányító gombjának megnyomásával kapott információkat. A Pi ezt a dekódolást közvetlenül az IR modulból is elvégezheti, de én jobban értek az Arduino programozáshoz, mint a Python programozáshoz, emellett processzor erőforrásokat takarít meg a Pi fő feladatához, azaz a videofolyam (ok) dekódolásához.

Mivel a biztonsági rendszerem több kamerával rendelkezik, a Pi tápellátású kijelzőt használtam 4 kamera egyidejű megjelenítésére, valamint az egyes kamerák teljes képernyős megjelenítésére. Kövesse ezeket az utasításokat, de valószínűleg sok problémája lesz a kamerák stabil megjelenítésével.

Az egyik probléma az, hogy a programban felsorolt 4 ablakméret nem felel meg az adott TV -felbontásnak. Keresse meg a monitor által támogatott felbontásokat, miközben megjegyzi a kamerák felbontását. A legtöbb IP -kamera nagy felbontású (1080p) és alacsony felbontású (640x480) adatfolyammal rendelkezik, így ha csak egy nagy felbontású videót szeretne a bejárati ajtóról, használja a nagy felbontású rtsp: // formátumú adatfolyamot. Menjen az alacsony felbontású adatfolyamhoz a kamerákhoz 4 kvadránsban, nem fog észrevenni sok különbséget a kisebb képméretekkel. Mehet a bash script (test.sh) ablakméreteimmel (1080p felbontású módban, 4 egyforma méretű 640x480 kamerát megjelenítve, hogy illeszkedjenek). Ellenkező esetben használjon grafikonpapírt a TV -képpontok elrendezéséhez, majd vázolja fel, hogy hány téglalapot szeretne az adott területen. Ezután keresse meg, hogy hány 640x480 méretű videó fér el anélkül, hogy túl sok méretváltozás lenne (a vízszintes nyújtás jobban néz ki, mint a függőleges). Nem szeretem a határokat, ezért nem számítottam rájuk. Számozza meg a téglalapokat a bal felső saroktól a jobb alsóig 1, 2, 3..stb. Ezután készítsen oszlopot az ablakszámokról, és írja be a számok minden sorához a bal felső x, y képpontot és a jobb alsó képpontot x, y. Ezeket a számokat ezután behelyettesítik a szkriptbe, hogy egyéni megjelenítést kapjanak, ha szükséges, rendelkezhet 3x3 -as kijelzővel. Ha csak egy kijelzőt szeretne, csak megjegyzést fűz a másik 3 kamerához, és állítsa az ablakméretet teljes képernyős felbontásra (és használja a nagy felbontású rtsp adatfolyamot), és írja be a szkriptet "test1.sh". Készítsen annyi szkriptet, amennyit csak akar, a btn.py Python program felhívja őket, amint az Arduino megváltoztatja a GPIO -pin -ket.

A stabil megjelenítés egyik problémája (a kép tetején finom, de a kép függőleges csíkjai alacsonyabbak) az, hogy sok kamera sokkal jobban streamel az rtsp használatával a tcp -n keresztül (Hikvision 2–5 Mp IP -kamerákat használok). Ezért használja az "--avdict rtsp_transport: tcp" parancsot az omxplayerben az ábrán látható módon. További hasznos omxplayer parancsok a hangerő (--vol -6000 a némításhoz) és a puffer (--videósor x), ahol x = 1 vagy több.

Az IP kamera beállításai is problémákat okozhatnak az omxplayerrel. Minden IP kamerát másodpercenként azonos képkockára kell állítani, különben a kép szétesik. Ha gyökeresen eltérő képkockasebességre van állítva, az egy kamera időbélyegzőjén megjelenített idő ténylegesen néhány másodpercre visszafelé ment, majd előre, majd hátra stb. Győződjön meg róla, hogy az omxplayer ablakai nem fedik egymást, különben az átfedő rész villogni fog.

2. lépés: Összerakás

Összerakása
Összerakása

Manuálisan vezérelheti a kábeldobozt és a TV -t, hogy a Pi megjelenítse a bejárati ajtó kameráját. Ehhez azonban néhány gombnyomásra van szükség, beleértve az univerzális távirányító megfelelő átkapcsolását kábel módról TV módra, hogy lehetővé váljon a HDMI bemeneti forrás Pi kamera dekódolóra (HDMI 2) történő cseréje. Ha azt szeretné, hogy további kamera képernyők jelenjenek meg, akkor az univerzális távirányítót AUX -ra kell kapcsolnia az Arduino és így a Pi kamera kiválasztásához. Ennek a folyamatnak az egyszerűsítése érdekében használjon Harmony Hub -ot és a hozzá tartozó Harmony okostelefon -alkalmazást, és tanítsa meg, hogy vezesse a TV -t és a kábeldobozt a normál TV -nézéshez egy tevékenységben, majd hozzon létre egy másik tevékenységet a Pi videomonitor vezérléséhez. A tevékenység magában foglalja a TV bekapcsolását, a TV bemenetet HDMI 2 -re, és a virtuális NECx TV (azaz az Arduino és Pi) gombok vezérlését 0 -tól 5 -ig. Ez lehetővé teszi, hogy mindent a Harmony okostelefon alkalmazáson keresztül vezéreljen. A dolgok még egyszerűbbé tétele érdekében kapcsolja össze az Amazon Echo Dot (Alexa) alkalmazást a Harmony alkalmazással a TV hang- vagy ajtófigyelő funkcióinak vezérléséhez. A Harmony webhely részletesen bemutatja, hogyan lehet engedélyezni ezeket az új Alexa készségeket. Új képességek. Az új Alexa -készségekkel való összekapcsolás után az olyan kulcsszavak, mint a "Kapcsolja be a TV -t" vagy az "Ajtófigyelő bekapcsolása" lehetővé teszik a megfelelő műveleteket anélkül, hogy az univerzális távirányítóról infravörösre lenne szükség.

A Pi Ethernet -en keresztül csatlakozik a LAN -hoz, és HDMI -kábellel a TV -hez. Felszereltem egy 3,3 voltos Pro Mini -t vezetékeken keresztül a Pi -hez, opcióként további kamerakapcsolásokhoz. A Pro Mini a Pi 3,3 voltos tűjéről táplálható. Egy IR modul csatlakozik az Arduino 2. tűjéhez, és a mellékelt vázlat dekódolja a gomb megnyomását 0 -tól 5 -ig (valójában 0-9, de néhány Arduino csap még nincs csatlakoztatva). Az Arduino kimenetek a Pi digitális bemeneti GPIO csapjaihoz csatlakoznak, ahol egy bash script megszakítás határozza meg, hogy melyik "gombot" nyomták meg, majd leállítja az egyik megjelenítési lehetőséget, és elindít egy másikat.

A kábeldobozom a Spectrumból származik (korábban Time Warner Cable), ami egy Motorola DCX3510 DVR modell. GI Cable protokollt használ az IR számára. A Sony TV a Sony 2. protokollját használja. Azt hittem, hogy ezek közül a kódok közül egyik vagy másik megfelelő a Pi IR vevő vezérlésére, és vagy működött, bár kiderült, hogy nem praktikus. A távirányító további parancsokat vár, vagy automatikusan megváltoztatja a bemeneti forrást, amikor megnyomja a 0-9 gombot. Ezért más kódot kellett használnom, amely nem lép kapcsolatba a kábeltunerrel vagy a TV -vel. Úgy találtam, hogy az univerzális távirányítómnak korábban egy AUX -eszközhöz programozott kódja volt (nem tudom, mit vezérelt), és úgy döntöttem, hogy használni fogom. Az előállított kódok azt mondták, hogy 32 bites NECx -et használ, ezért ezeket a gombkódokat beírtam az Arduino IR_Rev_Codes_Pi_Monitor vázlatába. Változtassa meg a programot, ha más modellje van, az IRLib2 fogadóprogramjával, és jegyezze fel a lenyomott gombok készítőjének, protokolljának és hexadecimális értékeit.

3. lépés: Következtetés

Következtetés
Következtetés
Következtetés
Következtetés
Következtetés
Következtetés

Az ajtófigyelő praktikus otthoni automatizálási projekt. Ez volt az első tapasztalatom a Pi programozásával Python segítségével. A Python lehetővé teszi a megszakítás programozását, ezt a funkciót a mikrokontrollerek számára tartottam fenn. A megszakítás lehetővé teszi, hogy a program normálisan, az omxplayert futtassa, anélkül, hogy folyamatosan ellenőrizné, szükség van -e más műveletre, például a kijelző új kameracsatornára váltására. Ha azonban a megszakítás bekövetkezik, a program ezután meghatározza, hogy melyik új videócsatornát kell megjeleníteni. Az Arduino úgy van beállítva, hogy impulzust biztosítson a Python megszakításához. Ha a megszakítás bekövetkezik, akkor a program megkeresi, hogy melyik Arduino kimenet (az IR távvezérlő gomb megnyomásának megfelelően) van aktiválva. Végül a program megöli az aktuális omxplayer kijelzőt, és elindítja az új omxplayer kijelzőt.

Megtanultam, hogy a Pi nem állítja be a GPIO csapokat olyan bemenetre, mint az Arduino alapértelmezés szerint- nem a Pi hibája, de a Broadcom BCM2837 a gyárból származik. Szeretem a 4 magos, 1,2 GHz -es processzort, az alacsony fogyasztású, olcsó számítógépet, amely kiváló HD videót képes megjeleníteni. Az 1. infravörös gomb a négykijelzőt, a 2–5. Gomb pedig egy nagyméretű, nagy felbontású fényképezőgépet jelenít meg.

A 0 infravörös távirányító gomb megnyomása törli a videokijelzést, és megjelenik a Pi parancssor. Ha Youtube -videókat vagy hasonlókat szeretne nézni, használjon Bluetooth -billentyűzetet, írja be a "startx" parancsot, és a Pi böngészővel navigáljon a Youtube -videóhoz, és játssza le teljes képernyőn nagyfelbontásban.

Ajánlott: