Brievenbus Cam Terug

Backstage

Om de brievenbus van binnen te bekijken heb ik een server inelkaar geknutseld dat webcam beelden streamt als "multipart jpeg" (mjpeg). Omdat niet alle browsers een dergelijke feed aankunnen is er een simpele workaround door vanuit html naar de stream te verwijzen. De html draait bij een externe provider, de stream komt vanuit het thuis netwerk. Omdat het gewoon een port forward is zou je ook met bijvoorbeeld VLC direct kunnen connecten naar de stream.

Hardware

De hardware bestaat uit een oude Trust webcam die ik nog had liggen en een Orange Pi Zero Quad Core - 512 MB met een 2GB SD card als local storage en uitgebreid met een WiFi shield (allesbijelkaar in een doosje voor een tientje bij AliExpress). Het geheel wordt gevoed door een usb telefoonlader.

De lol voor mij is om te kijken of ik een low-cost oplossing kan maken met spullen die ik nog heb liggen ipv. een ip-camera aan te schaffen. Omdat eea. snel-snel inelkaar gezet is is het weinig fancy maar vooral functioneel.

Software

De Pi draait ARMBIAN 5.30 stable Ubuntu 16.04.2 LTS 3.4.113-sun8i, die ik enigzins gestript heb om wat meer storage beschikbaar te hebben. Voor het video gedeeltje heb ik de Motion (v 3.2.12 via apt) package geinstalleerd omdat daar alle drivers en engines in zitten die voor dit project nodig zijn. Dan is het verder een kwestie van configureren en een reut scriptjes maken. De globale werking is als volgt: In het geval van bewegingsdetectie dmv. vergelijken van aantallen verschillende pixels wordt van gebufferde beeldjes een avi gemaakt van het event. Dit wordt naar de externe webserver getransferred en er wordt een Make channel webhook aangeroepen.

Services

Bij een aantal events op de server, bijvoorbeeld motion detection (aantal pixels verschil met vorige frame) wordt een webhook aangeroepen van Maker Channel en daarbij wordt een JSON objectje meegestuurd. Dit triggert een IFTTT bot die de JSON data als een bericht in een Telegram group plaatst. Om de Pi te ontlasten wordt alle statische content geserviced vanaf een hosting provider.

Terug