Indholdsfortegnelse:

Hvem er ved døren, et Alexa -aktiveret kamerasystem: 3 trin
Hvem er ved døren, et Alexa -aktiveret kamerasystem: 3 trin

Video: Hvem er ved døren, et Alexa -aktiveret kamerasystem: 3 trin

Video: Hvem er ved døren, et Alexa -aktiveret kamerasystem: 3 trin
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Juli
Anonim
Hvem er ved døren, et Alexa -aktiveret kamerasystem
Hvem er ved døren, et Alexa -aktiveret kamerasystem
Hvem er ved døren, et Alexa -aktiveret kamerasystem
Hvem er ved døren, et Alexa -aktiveret kamerasystem
Hvem er ved døren, et Alexa -aktiveret kamerasystem
Hvem er ved døren, et Alexa -aktiveret kamerasystem

Nogle gange mens du ser tv, vil du ikke svare på døren, medmindre det er vigtigt. Dette projekt giver dig mulighed for at se personen ved døren ved blot at fortælle Amazons Echo -enhed "Alexa, tænd for dørmonitoren". Du tjekker, hvem der vises på tv -skærmen, og derefter tilbage til normal tv -programmering "Alexa, tænd for fjernsynet". Systemet kan også være af værdi for ældre voksne eller børn, der ville være sårbare over for at blive udnyttet af sælgere, tyve og lignende. Dette gør det muligt for dit underholdningssystems store tv at være skærmen til kameraets skærm, ikke kun til hoveddørkameraet, men til alle andre sikkerhedskameraer, du måtte have; faktisk kan den endda udvides til at vise video fra internetkameraer, f.eks. strandcams osv.

Dele:

Underholdningssystem:

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

Kabel eller DVR -boks

Router og internetforbindelse via kabelboks (er muligvis ikke nødvendig, hvis du har WiFi)

Amazon Echo ("Alexa")

Harmony Hub

Kamera (er)

IP -kamera ved hoveddøren (Power Over Ethernet -POE -type foretrækkes)

Raspberry Pi3 i en projektboks (original Pi fungerer muligvis) med HDMI -kabel

Arduino Pro Mini 8 Mhz, 3.3v

IR -modul (de mest almindelige typer fungerer)

Trin 1: Opsætning, foreløbig programmering (test)

Opsætning, foreløbig programmering (test)
Opsætning, foreløbig programmering (test)
Opsætning, foreløbig programmering (test)
Opsætning, foreløbig programmering (test)
Opsætning, foreløbig programmering (test)
Opsætning, foreløbig programmering (test)

Dette projekt er baseret på Pi3 omxplayer, der afkoder video med hardware acceleration. Omxplayer kan testkøres fra en kommandolinje i Pi -terminalen ved hjælp af det passende rtsp: // user@password@ipaddress -format, som dit kamera kræver. Pi'en skal forbindes til Ethernet (selvom Pi3 også kunne tilsluttes via WiFi, men ikke testes) og fysisk placeret i underholdningscentret, så Pi's HDMI -udgangskabel kan nå TV'ets HDMI -indgangsstik. Arduino- og IR -modulet forbinder til Pi og videresender de oplysninger, der er opnået ved at læse fjernsynets fjernbetjeningsknapper. Pi kunne udføre denne afkodning direkte fra IR -modulet, men jeg er bedre til Arduino -programmering end Python -programmering, og udover det sparer det processorressourcer til Pi's hovedopgave med at afkode videostrømmene.

Da mit sikkerhedssystem har flere kameraer, brugte jeg den Pi -drevne overvågningsskærm som en måde at vise 4 kameraer på én gang, plus at vise individuelle kameraer fuld skærm. Følg disse instruktioner, men du vil sandsynligvis have mange problemer med at få kameraerne vist stabilt.

Et af problemerne er, at de 4 vinduesstørrelser, der er angivet i programmet, muligvis ikke passer til din særlige tv -opløsning. Find, hvilke opløsninger din skærm understøtter, mens du bemærker den kameraopløsning, dine kameraer har. De fleste IP -kameraer har en høj opløsning (1080p) og en lav opløsning (640x480) stream, så hvis du bare vil have en højopløsningsvideo af hoveddøren, skal du gå med højopløsningsstrømmen rtsp: // format. Gå med strømmen med lav opløsning til kameraer i 4 kvadranter, du vil ikke bemærke den store forskel med de mindre billedstørrelser. Du kan gå med mine bash script (test.sh) vinduesstørrelser (i 1080p opløsningstilstand, der viser 4 lige store 640x480 kameraer skaleret til at passe). Ellers kan du bruge grafpapir til at layoute dine tv -pixels og derefter skitsere i, hvor mange rektangler du vil have i det område. Find derefter, hvor mange 640x480 videoer, der passer, uden at for meget aspekt ændres (strækning vandret ser bedre ud end lodret). Jeg kan ikke lide grænser, så regnede ikke med dem. Nummer rektanglerne fra øverste venstre til nederste højre 1, 2, 3..etc. Lav derefter en kolonne med vinduetumre, for hver række af disse tal skal du skrive ned øverst til venstre x, y pixel og nederste højre pixel x, y. Disse tal erstattes derefter i scriptet for at få en brugerdefineret skærm, du kan have en 3 x 3 skærm, hvis det ønskes. Hvis du kun vil have én skærm, skal du bare kommentere de andre 3 kameraer og lave vinduesstørrelsen til fuld skærmopløsning (og bruge høj opløsning rtsp stream) og titlen scriptet "test1.sh". Lav så mange scripts som du vil, btn.py Python -programmet vil kalde dem op, når GPIO -benene ændres af Arduino.

Et problem med at få en stabil skærm (øverst i billedet fint, men lavere billed lodrette striber) er, at mange kameraer streamer meget bedre ved hjælp af rtsp over tcp (jeg bruger Hikvision 2 til 5 Mp IP -kameraer). Brug derfor "--avdict rtsp_transport: tcp" i omxplayer som vist. Andre nyttige omxplayer-kommandoer er volumen (--vol -6000 for mute) og buffer (--videokø x), hvor x = 1 eller mere.

Indstillinger for IP -kameraer kan også forårsage problemer med omxplayer. Alle IP -kameraer skal indstilles til de samme billeder i sekundet, ellers vil billedet bryde sammen. Når den er indstillet til radikalt forskellige billedhastigheder, gik tiden vist på et kameras tidsstempel faktisk baglæns i et par sekunder, derefter fremad og tilbage osv. Sørg for, at dine omxplayer -vinduer ikke overlapper hinanden, eller at den overlappende del vil flimre.

Trin 2: Sæt det sammen

At sætte det sammen
At sætte det sammen

Du kan manuelt styre kabelboksen og fjernsynet, så Pi kan vise hoveddørkameraet. Det kræver dog en del knapper, herunder passende skift af universalfjernbetjeningen fra kabeltilstand til tv -tilstand for at ændre HDMI -inputkilden til Pi -kameradekoder (HDMI 2). Hvis du vil have mulighed for at vise yderligere kameraskærme, skal du også skifte universalfjernbetjeningen til AUX for at styre Arduino og dermed Pi -kameravalg. For at forenkle denne proces skal du bruge en Harmony Hub og tilhørende Harmony -smartphone -app og lære den at styre fjernsynet og kabelboksen til normal tv -visning i en aktivitet, og derefter oprette en anden aktivitet for at styre Pi -videomonitoren. Aktiviteten omfatter at tænde fjernsynet, tv -indgangen til HDMI 2 og styre det virtuelle NECx TV (dvs. Arduino og Pi) knapperne 0 til 5. Dette gør det muligt at styre alt via Harmony smartphone -appen. For at gøre tingene endnu lettere, skal du forbinde Amazon Echo Dot (Alexa) -appen med Harmony -appen til stemmestyring af fjernsyns- eller dørovervågningsfunktionerne. Harmony -webstedet indeholder oplysninger om, hvordan du aktiverer disse nye Alexa -færdigheder. Nye færdigheder. Når de er forbundet med nye Alexa -færdigheder, vil søgeord som "Tænd for fjernsynet" eller "Tænd for dørmonitoren" muliggøre de relevante handlinger uden at skulle bruge IR fra den universelle fjernbetjening.

Pi'en er forbundet via Ethernet til dit LAN og via HDMI -kabel til tv'et. Jeg installerede en 3,3 volt Pro Mini via ledninger til Pi som en mulighed for at tilføje yderligere kameraskift. Pro Mini kan forsynes med 3,3 volt pin på Pi. Et IR -modul tilsluttes pin 2 på Arduino, og den vedhæftede skitse afkoder knappetrykket 0 til 5 (faktisk 0 til 9, men nogle Arduino -pins er ikke tilsluttet endnu). Arduino -udgange forbinder til digitale input GPIO -ben på Pi, hvor et bash script -afbrydelse bestemmer hvilken "knap" der blev trykket på, derefter stopper en visningsvisning og starter en anden.

Min kabelboks er fra Spectrum (tidligere Time Warner Cable), som er en Motorola DVR model DCX3510. Det bruger GI -kabelprotokol til IR. Sony -tv'et bruger Sony -protokol 2. Jeg troede, at den ene eller den anden af disse koder ville være fin til at styre Pi IR -modtageren og enten fungerede, selvom det viste sig ikke at være praktisk. Fjernbetjeningen ville forvente yderligere kommandoer eller automatisk også ændre inputkilden, når der blev trykket på en knap 0 til 9. Derfor var jeg nødt til at bruge en anden kode, der ikke ville interagere med kabeltuneren eller fjernsynet. Jeg fandt ud af, at min universelle fjernbetjening havde en tidligere programmeret kode til en AUX -enhed (ved ikke, hvad den kontrollerede) og besluttede at bruge den. De producerede koder sagde, at den brugte NECx, en 32 bit kode, så jeg indtastede disse knapkoder i Arduino IR_Rev_Codes_Pi_Monitor -skitsen. Skift program, hvis du har en anden model ved at bruge modtage programmet i IRLib2, og noter maker, protokol og hex -værdier for knapperne trykket.

Trin 3: Konklusion

Konklusion
Konklusion
Konklusion
Konklusion
Konklusion
Konklusion

Dørmonitoren er et praktisk hjemmeautomatiseringsprojekt. Det var min første oplevelse at programmere Pi med Python. Python tillader programmering af en afbrydelse, en funktion jeg troede var forbeholdt mikrokontrollere. Afbrydelsen tillader, at programmet kører normalt, kører omxplayer, uden konstant at kontrollere, om der er behov for en anden handling, f.eks. At ændre displayet til et nyt kamerafeed. Men hvis afbrydelsen sker, bestemmer programmet derefter, hvilket nyt videofeed der skal hentes. Arduino er indstillet til at give en puls til at udløse Python -afbrydelsen. Hvis afbrydelsen opstår, søger programmet efter hvilken bestemt Arduino -udgang (svarende til IR -fjernbetjeningsknappen, der trykkes ned) er aktiveret. Endelig dræber programmet ethvert aktuelt omxplayer -display og starter det nye omxplayer -display.

Jeg lærte, at Pi ikke indstiller sine GPIO-ben til input som Arduino som standard- ikke en fejl fra Pi, men det er måden Broadcom BCM2837 er fra fabrikken. Jeg kan godt lide den 4 -kerne, 1,2 Ghz processor, en computer med lav strøm og lav pris, der kan vise god HD -video. IR -knap 1 viser quad -displayet, og knapperne 2 til 5 viser hver et enkelt stort display af et kamera i High Definition.

Ved at trykke på IR -fjernbetjeningsknappen 0 annulleres videodisplayet og kommandolinjen Pi vises. Hvis du vil se Youtube -videoer eller lignende, skal du bruge et Bluetooth -tastatur, skrive "startx" og bruge Pi -browseren til at navigere til Youtube -videoen og afspille den i fuld skærm i High Definition.

Anbefalede: