Innehållsförteckning:

Vem är vid dörren, ett Alexa -aktiverat kamerasystem: 3 steg
Vem är vid dörren, ett Alexa -aktiverat kamerasystem: 3 steg

Video: Vem är vid dörren, ett Alexa -aktiverat kamerasystem: 3 steg

Video: Vem är vid dörren, ett Alexa -aktiverat kamerasystem: 3 steg
Video: What If They Were A Different Religion? 2024, Juli
Anonim
Vem är vid dörren, ett Alexa -aktiverat kamerasystem
Vem är vid dörren, ett Alexa -aktiverat kamerasystem
Vem är vid dörren, ett Alexa -aktiverat kamerasystem
Vem är vid dörren, ett Alexa -aktiverat kamerasystem
Vem är vid dörren, ett Alexa -aktiverat kamerasystem
Vem är vid dörren, ett Alexa -aktiverat kamerasystem

Ibland när du tittar på TV vill du inte svara på dörren om det inte är viktigt. Detta projekt låter dig se personen vid dörren genom att helt enkelt berätta för Amazons Echo -enhet "Alexa, slå på dörrmonitorn". Du kontrollerar vem som visas på TV -skärmen, sedan tillbaka till normal TV -programmering "Alexa, slå på TV: n". Systemet kan också vara av värde för äldre vuxna eller barn som skulle vara sårbara för att utnyttjas av säljare, tjuvar och liknande. Detta gör att din underhållningssystems storbilds -TV kan vara bildskärm för kameran, inte bara för ytterdörren, utan även för andra säkerhetskameror du kan ha; i själva verket kan det till och med utökas för att visa video från internetkameror, som strandkameror, etc.

Delar:

Underhållningssystem:

TV med flera HDMI -ingångar (de flesta TV -apparater har dem)

Kabel eller DVR -låda

Router och internetanslutning via kabelbox (kanske inte behövs om du har WiFi)

Amazon Echo ("Alexa")

Harmony Hub

Kamera (er)

IP -kamera vid ytterdörren (Power Over Ethernet -POE -typ föredras)

Raspberry Pi3 i en projektlåda (original Pi kan fungera) med HDMI -kabel

Arduino Pro Mini 8 Mhz, 3.3v

IR -modul (de vanligaste typerna fungerar)

Steg 1: Inställning, preliminär programmering (testning)

Setup, preliminär programmering (testning)
Setup, preliminär programmering (testning)
Setup, preliminär programmering (testning)
Setup, preliminär programmering (testning)
Setup, preliminär programmering (testning)
Setup, preliminär programmering (testning)

Detta projekt bygger på Pi3 omxplayer som avkodar video med hårdvaruacceleration. Omxplayer kan testköras från en kommandorad i Pi -terminalen med hjälp av lämpligt format rtsp: // user@password@ipaddress som din kamera kräver. Pi bör vara ansluten till Ethernet (även om Pi3 också kan anslutas via WiFi, men inte testas) och placeras fysiskt vid underhållningscentret så att Pi: s HDMI -utgångskabel kan nå TV: ns HDMI -ingång. Arduino- och IR -modulen kommer att ansluta till Pi och vidarebefordra informationen från att läsa fjärrkontrollens knapptryckningar. Pi kan göra denna avkodning direkt från IR -modulen, men jag är bättre på Arduino -programmering än Python -programmering och dessutom sparar det processorresurser för Pi: s huvuduppgift att avkoda videoströmmarna.

Eftersom mitt säkerhetssystem har flera kameror använde jag den Pi -drivna övervakningsskärmen som ett sätt att visa 4 kameror samtidigt, plus att visa enskilda kameror i helskärm. Följ dessa instruktioner, men du kommer förmodligen att ha många problem med att få kamerorna att visas på ett stabilt sätt.

Ett av problemen är att de fyra fönsterstorlekarna som anges i programmet kanske inte passar just din TV -upplösning. Hitta vilka upplösningar din bildskärm stöder medan du noterar den kameraupplösning dina kameror har. De flesta IP -kameror har en hög upplösning (1080p) och en låg upplösning (640x480) ström, så om du bara vill ha en högupplöst video av ytterdörren, gå med högupplöst ström rtsp: // format. Gå med strömmen med låg upplösning för kameror i 4 kvadranter, du kommer inte märka någon större skillnad med de mindre bildstorlekarna. Du kan använda mina bash script (test.sh) fönsterstorlekar (i 1080p upplösningsläge, som visar 4 lika stora 640x480 kameror skalade för att passa). Annars kan du använda grafpapper för att layouta dina TV -pixlar och sedan skissa in hur många rektanglar du vill ha i det området. Hitta sedan hur många 640x480 videor som passar utan att alltför mycket aspektändring (sträckning horisontellt ser bättre ut än vertikalt). Jag gillar inte gränser, så räknade inte ut för dem. Numrera rektanglarna från övre vänster till nedre högra 1, 2, 3..etc. Gör sedan en kolumn med fönsternummer, för varje rad med dessa siffror skriv ner den övre vänstra x, y pixeln och nedre högra pixeln x, y. Dessa nummer ersätts sedan i skriptet för att få en anpassad display, du kan ha en 3 x 3 display om så önskas. Om du bara vill ha en bildskärm, kommentera bara de andra 3 kamerorna och gör fönstret i fullskärmsupplösning (och använd högupplöst rtsp -ström) och benämna skriptet "test1.sh". Gör så många skript som du vill, btn.py Python -programmet ringer upp dem när GPIO -stiften ändras av Arduino.

Ett problem med att få en stabil skärm (toppen av bilden fin, men lägre bild vertikala ränder) är att många kameror strömmar mycket bättre med rtsp över tcp (jag använder Hikvision 2 till 5 Mp IP -kameror). Använd därför "--avdict rtsp_transport: tcp" i omxplayer som visas. Andra användbara omxplayer-kommandon är volym (--vol -6000 för tyst) och buffert (--videokö x) där x = 1 eller mer.

IP -kamerans inställningar kan också orsaka problem med omxplayer. Alla IP -kameror bör vara inställda på samma bildrutor per sekund, annars går bilden sönder. När den är inställd på radikalt olika bildfrekvenser gick tiden som visas på en kameras tidsstämpel faktiskt bakåt i några sekunder, sedan framåt och bakåt osv. Var noga med att dina omxplayer -fönster inte överlappar varandra eller att den överlappande delen kommer att flimra.

Steg 2: Sätta ihop det

Sätta ihop det
Sätta ihop det

Du kan manuellt styra kabelboxen och TV: n så att Pi kan visa ytterdörrkameran. Det kräver dock en hel del knapptryckningar, inklusive lämplig omkoppling av universalfjärrkontrollen från kabelläge till TV -läge för att tillåta byte av HDMI -ingångskälla till Pi -kameravkodaren (HDMI 2). Om du vill ha möjlighet att visa ytterligare kameraskärmar måste du också byta universalfjärrkontrollen till AUX för att styra Arduino och därmed Pi -kameraval. För att förenkla denna process, använd en Harmony Hub och tillhörande Harmony -smarttelefonapp, lär den att styra TV: n och kabelboxen för normal tv -visning i en aktivitet och skapa sedan en annan aktivitet för att styra Pi -videomonitorn. Aktiviteten inkluderar att slå på TV: n, TV -ingången till HDMI 2 och att styra den virtuella NECx -TV (dvs. Arduino och Pi) knapparna 0 till 5. Detta gör det möjligt att styra allt via Harmony smartphone -appen. För att göra saker ännu enklare, länka Amazon Echo Dot (Alexa) -appen till Harmony -appen för att röststyra TV: n eller dörrövervakningsfunktioner. Harmony -webbplatsen innehåller information om hur du aktiverar dessa nya Alexa -färdigheter. Nya färdigheter. När nyckelord som "Slå på TV: n" eller "Slå på dörrmonitorn" aktiverar lämpliga åtgärder utan att behöva IR från den universella fjärrkontrollen när de är kopplade till nya Alexa -färdigheter.

Pi är ansluten via Ethernet till ditt LAN och via HDMI -kabel till TV: n. Jag installerade en 3,3 volt Pro Mini via ledningar till Pi som ett alternativ för att lägga till ytterligare kamerabyte. Pro Mini kan drivas från 3,3 volt stift på Pi. En IR -modul ansluts till stift 2 på Arduino, och den bifogade skissen avkodar knapptryckningen 0 till 5 (faktiskt 0 till 9, men vissa Arduino -stift är inte anslutna än). Arduino -utgångarna ansluter till digitala ingångar GPIO -stiften på Pi, där ett bash script -avbrott avgör vilken "knapp" som trycktes, stoppar sedan ett visningsalternativ och startar ett annat.

Min kabelbox är från Spectrum (tidigare Time Warner Cable), som är en Motorola DVR -modell DCX3510. Den använder GI -kabelprotokoll för IR. Sony TV: n använder Sony -protokoll 2. Jag trodde att den ena eller den andra av dessa koder skulle vara bra att styra Pi IR -mottagaren och antingen fungerade, även om det visade sig inte vara praktiskt. Fjärrkontrollen förväntar sig ytterligare kommandon, eller ändrar också ingångskällan automatiskt när en knapp 0 till 9 trycks in. Därför var jag tvungen att använda en annan kod som inte skulle interagera med kabeltunern eller TV: n. Jag hittade att min universella fjärrkontroll hade en tidigare programmerad kod för en AUX -enhet (vet inte vad den styrde) och bestämde mig för att använda den. Koderna som producerades sa att de använde NECx, en 32 -bitars kod, så jag skrev in knappkoderna i Arduino IR_Rev_Codes_Pi_Monitor -skissen. Ändra programmet om du har en annan modell genom att använda mottagningsprogrammet i IRLib2 och notera maker, protokoll och hex -värden för knapparna som trycks in.

Steg 3: Slutsats

Slutsats
Slutsats
Slutsats
Slutsats
Slutsats
Slutsats

Dörrmonitorn är ett praktiskt hemautomatiseringsprojekt. Det var min första erfarenhet av att programmera Pi med Python. Python tillåter programmering av ett avbrott, en funktion som jag trodde var reserverad för mikrokontroller. Avbrottet gör att programmet kan köras normalt, omxplayer körs, utan att ständigt kontrollera om en annan åtgärd krävs, till exempel att ändra skärmen till ett nytt kameraflöde. Men om avbrottet inträffar bestämmer programmet sedan vilket nytt videoflöde som ska tas upp. Arduino är inställd för att ge en puls för att utlösa Python -avbrottet. Om avbrottet inträffar, söker programmet efter vilken särskild Arduino -utgång (motsvarande IR -fjärrknappen trycks ned) är aktiverad. Slutligen dödar programmet alla aktuella omxplayer -displayer och startar den nya omxplayer -displayen.

Jag lärde mig att Pi inte ställer in sina GPIO-stift för att mata in som Arduino som standard- inte ett fel på Pi, men det är så Broadcom BCM2837 är från fabriken. Jag gillar den 4 -kärniga 1,2 GHz -processorn, en lågeffektsdator till låg kostnad som kan visa bra HD -video. IR -knapp 1 visar quad -displayen, och knapparna 2 till 5 visar var och en en stor bildskärm av en kamera i High Definition.

Genom att trycka på IR -fjärrknappen 0 avbryts videodisplayen och Pi -kommandoraden visas. Om du vill titta på Youtube -videor eller liknande, använd ett Bluetooth -tangentbord, skriv "startx" och använd Pi -webbläsaren för att navigera till Youtube -videon och spela den i fullskärm i High Definition.

Rekommenderad: