Innholdsfortegnelse:

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

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

Video: Who's at the Door, a Alexa Actuated Camera System: 3 Steps
Video: How to Connect Devices to Alexa (Echo Show 5 & Blink Camera) 2024, Juli
Anonim
Hvem er ved døren, et Alexa -aktivert kamerasystem
Hvem er ved døren, et Alexa -aktivert kamerasystem
Hvem er ved døren, et Alexa -aktivert kamerasystem
Hvem er ved døren, et Alexa -aktivert kamerasystem
Hvem er ved døren, et Alexa -aktivert kamerasystem
Hvem er ved døren, et Alexa -aktivert kamerasystem

Noen ganger mens du ser på TV, vil du ikke svare på døren med mindre det er viktig. Dette prosjektet lar deg se personen ved døren ved å bare fortelle Amazons Echo -enhet "Alexa, slå på dørmonitoren". Du sjekker ut hvem som vises på TV -skjermen, deretter tilbake til vanlig TV -programmering "Alexa, slå på TVen". Systemet kan også være av verdi for eldre voksne eller barn som vil være sårbare for å bli utnyttet av selgere, tyver og lignende. Dette gjør at storskjerm -TV -en i underholdningssystemet ditt kan være kameraskjermmonitoren for ikke bare inngangskameraet, men for alle andre sikkerhetskameraer du måtte ha; faktisk kan den til og med utvides til å vise video fra internettkameraer, som strandkameraer, etc.

Deler:

Underholdningssystem:

TV med flere HDMI -innganger (de fleste TV -apparater har dem)

Kabel eller DVR -boks

Ruter og internettforbindelse via kabelboks (er kanskje ikke nødvendig hvis du har WiFi)

Amazon Echo ("Alexa")

Harmony Hub

Kamera (er)

IP -kamera ved inngangsdøren (Power Over Ethernet -POE -type foretrukket)

Raspberry Pi3 i en prosjektboks (original Pi kan fungere) med HDMI -kabel

Arduino Pro Mini 8 Mhz, 3.3v

IR -modul (de vanligste typene fungerer)

Trinn 1: Oppsett, foreløpig programmering (testing)

Oppsett, foreløpig programmering (testing)
Oppsett, foreløpig programmering (testing)
Oppsett, foreløpig programmering (testing)
Oppsett, foreløpig programmering (testing)
Oppsett, foreløpig programmering (testing)
Oppsett, foreløpig programmering (testing)

Dette prosjektet er avhengig av Pi3 omxplayer som dekoder video med maskinvareakselerasjon. Omxplayer kan testkjøres fra en kommandolinje i Pi -terminalen ved å bruke riktig rtsp: // user@password@ipaddress -format som kameraet krever. Pi skal være koblet til Ethernet (selv om Pi3 også kan kobles til via WiFi, men ikke testes) og fysisk plassert på underholdningssenteret, slik at Pi's HDMI -utgangskabel kan nå TV -HDMI -inngangen. Arduino- og IR -modulen kobles til Pi og videresender informasjonen fra å lese knappene på fjernkontrollen på TV -en. Pi kan gjøre denne dekodingen direkte fra IR -modulen, men jeg er bedre på Arduino -programmering enn Python -programmering, og dessuten sparer den prosessorressurser for Pi -hovedoppgaven med å dekode videostrømmen (e).

Siden sikkerhetssystemet mitt har flere kameraer, brukte jeg den Pi -drevne overvåkingsskjermen som en måte å vise 4 kameraer på en gang, pluss å vise individuelle kameraer i fullskjerm. Følg instruksjonene, men du vil sannsynligvis ha mange problemer med å få kameraene til å vises på en stabil måte.

Et av problemene er at de fire vindusstørrelsene som er oppført i programmet, kanskje ikke passer til din spesifikke TV -oppløsning. Finn hvilke oppløsninger skjermen støtter mens du legger merke til kameraoppløsningen kameraene dine har. De fleste IP -kameraer har en høy oppløsning (1080p) og en lav oppløsning (640x480), så hvis du bare vil ha en høyoppløselig video av inngangsdøren, kan du gå med høyoppløselig strøm rtsp: // format. Gå med strømmen med lav oppløsning for kameraer i 4 kvadranter, du vil ikke merke stor forskjell med de mindre bildestørrelsene. Du kan gå med mine bash script (test.sh) vindusstørrelser (i 1080p oppløsningsmodus, som viser 4 like store 640x480 kameraer skalert for å passe). Ellers kan du bruke grafpapir til å sette opp TV -pikslene og deretter tegne inn hvor mange rektangler du vil ha i det området. Finn deretter ut hvor mange 640x480 videoer som vil passe uten at for mye aspektendring (strekking horisontalt ser bedre ut enn vertikalt). Jeg liker ikke grenser, så regnet ikke med dem. Nummer rektanglene fra øverst til venstre til nedre høyre 1, 2, 3..etc. Lag deretter en kolonne med vinduet tall, for hver rad med disse tallene skriv ned øvre venstre x, y piksel og nedre høyre piksel x, y. Disse tallene blir deretter erstattet i skriptet for å få en tilpasset skjerm. Du kan ha en 3 x 3 skjerm hvis du ønsker det. Hvis du bare vil ha én skjerm, er det bare å kommentere de tre andre kameraene og gjøre vindusstørrelsen til fullskjermsoppløsning (og bruke høyoppløselig rtsp -strøm) og gi skriptet "test1.sh". Lag så mange skript du vil, btn.py Python -programmet vil ringe dem etter hvert som GPIO -pinnene blir endret av Arduino.

Et problem med å få en stabil skjerm (toppen av bildet fin, men lavere vertikale striper) er at mange kameraer strømmer mye bedre ved å bruke rtsp over tcp (jeg bruker Hikvision 2 til 5 Mp IP -kameraer). Bruk derfor "--avdict rtsp_transport: tcp" i omxplayer som vist. Andre nyttige omxplayer-kommandoer er volum (--vol -6000 for dempet) og buffer (--videokø x) hvor x = 1 eller mer.

Innstillinger for IP -kamera kan også forårsake problemer med omxplayer. Alle IP -kameraene bør settes til de samme bildene per sekund, ellers vil bildet bryte opp. Når den er satt til radikalt forskjellige bildefrekvenser, gikk tiden som ble vist på et kameratidsstempel, faktisk noen sekunder bakover, deretter fremover og tilbake osv. Pass på at omxplayer -vinduene ikke overlapper hverandre, eller at den overlappende delen vil flimre.

Trinn 2: Sette det sammen

Sette det sammen
Sette det sammen

Du kan manuelt styre kabelboksen og TV -en slik at Pi kan vise kameraet på inngangsdøren. Det krever imidlertid ganske mange knappetrykk, inkludert passende bytte av den universelle fjernkontrollen fra kabelmodus til TV -modus for å bytte HDMI -inngangskilde til Pi -kameradekoder (HDMI 2). Hvis du vil ha muligheten til å vise flere kameraskjermer, må du også bytte den universelle fjernkontrollen til AUX for å kontrollere Arduino og dermed Pi -kameravalget. For å forenkle denne prosessen, bruk en Harmony Hub og tilhørende Harmony -smarttelefonapp, og lær den å kontrollere TV -en og kabelboksen for vanlig TV -visning i én aktivitet, og opprett deretter en annen aktivitet for å kontrollere Pi -videomonitoren. Aktiviteten inkluderer å slå på TVen, TV -inngangen til HDMI 2 og kontrollere den virtuelle NECx TV (dvs. Arduino og Pi) knappene 0 til 5. Dette gjør det mulig å kontrollere alt gjennom Harmony smarttelefonappen. For å gjøre ting enda enklere, kobler du Amazon Echo Dot (Alexa) -appen til Harmony -appen til stemmestyring av TV- eller dørovervåkingsfunksjonene. Harmony -nettstedet gir detaljer om hvordan du aktiverer disse nye Alexa -ferdighetene. Nye ferdigheter. Når de er koblet til nye Alexa -ferdigheter, vil søkeord som "Slå på TVen" eller "Slå på dørmonitoren" aktivere de riktige handlingene uten at du trenger IR fra den universelle fjernkontrollen.

Pi er koblet via Ethernet til ditt LAN, og via HDMI -kabel til TV -en. Jeg installerte en 3,3 volt Pro Mini via ledninger til Pi som et alternativ for å legge til ekstra kamerabytte. Pro Mini kan drives av pinnen på 3,3 volt. En IR -modul kobles til pinne 2 på Arduino, og den vedlagte skissen dekoder knappetrykket 0 til 5 (faktisk 0 til 9, men noen Arduino -pinner er ikke tilkoblet ennå). Arduino -utgangene kobles til digitale inngang GPIO -pinner på Pi, der et bash -scriptavbrudd bestemmer hvilken "knapp" som ble trykket på, og stopper deretter ett visningsalternativ for visning og starter et nytt.

Min kabelboks er fra Spectrum (tidligere Time Warner Cable), som er en Motorola DVR -modell DCX3510. Den bruker GI -kabelprotokoll for IR. Sony TV bruker Sony -protokoll 2. Jeg trodde den ene eller den andre av disse kodene ville være greit å kontrollere Pi IR -mottakeren, og det fungerte enten, selv om det viste seg ikke å være praktisk. Fjernkontrollen forventer flere kommandoer, eller endrer også inngangskilden når en knapp 0 til 9 ble trykket. Derfor måtte jeg bruke en annen kode som ikke ville samhandle med kabeltuneren eller TV -en. Jeg fant ut at min universelle fjernkontroll hadde en tidligere programmert kode for en AUX -enhet (vet ikke hva den styrte) og bestemte meg for å bruke den. Kodene som ble produsert sa at den brukte NECx, en 32 biters kode, så jeg skrev inn knappekodene i Arduino IR_Rev_Codes_Pi_Monitor -skissen. Endre programmet hvis du har en annen modell ved å bruke mottaksprogrammet i IRLib2 og legg merke til maker, protokoll og hex -verdier for knappene som er trykket.

Trinn 3: Konklusjon

Konklusjon
Konklusjon
Konklusjon
Konklusjon
Konklusjon
Konklusjon

Dørmonitoren er et praktisk hjemmeautomatiseringsprosjekt. Det var min første erfaring med å programmere Pi med Python. Python tillater programmering av avbrudd, en funksjon jeg trodde var forbeholdt mikrokontrollere. Avbruddet lar programmet kjøre normalt og kjøre omxplayer, uten å konstant sjekke om det er nødvendig med en annen handling, for eksempel å endre displayet til en ny kameramater. Men hvis avbruddet oppstår, bestemmer programmet deretter hvilken ny videofeed som skal hentes. Arduino er satt opp for å gi en puls for å utløse Python -avbruddet. Hvis avbruddet oppstår, søker programmet etter hvilken bestemt Arduino -utgang (tilsvarende IR -fjernkontrollknappen trykket) er aktivert. Til slutt dreper programmet enhver gjeldende omxplayer -skjerm og starter den nye omxplayer -skjermen.

Jeg lærte at Pi ikke setter sine GPIO-pinner til å skrive inn som Arduino som standard- ikke en feil av Pi, men det er måten Broadcom BCM2837 er fra fabrikken. Jeg liker 4 -kjerners, 1,2 Ghz -prosessor, en laveffektiv, rimelig datamaskin som kan vise flott HD -video. IR -knapp 1 viser firdisplayet, og knappene 2 til 5 viser hver en enkelt stor visning av et kamera i High Definition.

Trykk på IR -fjernkontrollknappen 0 for å avbryte videodisplayet og vise kommandolinjen Pi. Hvis du vil se Youtube -videoer eller lignende, bruker du et Bluetooth -tastatur, skriver "startx" og bruker Pi -nettleseren til å navigere til Youtube -videoen og spille den i fullskjerm i High Definition.

Anbefalt: