Videosorveglianza con Raspberry Pi e motioneye


Informatica / lunedì, Gennaio 20th, 2020

Mancano gli ultimi giorni di lavoro, la valigia per il mare è pronta da un mese davanti alla porta, stai contando i secondi che ancora ti separano dalle tanto aspettate vacanze estive… Ma un dubbio ti attanaglia, <<E se entrassero i ladri?>>.

Hai un Raspberry Pi! Farà lui la guardia alla tua casa. Può rilevare ogni movimento sospetto grazie al modulo fotocamera da collegare tramite la porta CSI dedicata, o ancora meglio, utilizzando il modulo fotocamera NoIR, a raggi infrarossi, che consente la visione notturna. Può avvisarti e registrare tutto in un comodo file da utilizzare come prova del fattaccio, da mostrare alle forze dell’ordine, grazie a Motioneye.

Preparazione

Installiamo la distro ufficiale Raspbian, per questa guida userò raspbian jessie lite con Raspberry Pi 2 B e il Camera Module (ufficiale o anche compatibile, come quello cinese utilizzato in questa guida) da collegarsi alla porta CSI.

Attiviamo la telecamera tramite il comando

sudo su
raspi-config

Entriamo nel menu interfacing option, successivamente selezioniamo camera e infine yes.

Cosi facendo abilitiamo l’utilizzo di una camera con porta CSI (Camera Serial Interface), nelle mie prove una webcam logitech USB non riusciva ad andare oltre la risoluzione di 320×240 pixel, quindi consiglio di utilizzare il Camera Module originale, meglio ancora se NoIR.

Come sempre, prima di una nuova installazione, vanno aggiornati i pacchetti apt tramite il comando

apt-get update ; apt-get upgrade -y

Installazione di MotionEye

Ora il nostro sistema è pronto per installare il software che gestirà la nostra video sorveglianza, il famoso Motion, in abbinata alla sua interfaccia grafica Motioneye.

Per chi avesse bisogno di un sistema operativo dedicato solo alla video sorveglianza, la via più semplice sarà installare il sistema Motioneyeos, già pronto all’uso.

Mentre per chi, come me, usa il Raspberry Pi per le più svariate funzioni, sarà necessario installare il software a parte.

MotionEye, essendo creato in Python 2, si può installare tramite PyPI; nel caso mancasse dal tuo Raspberry Pi esegui

apt-get install python-pip

aggiungiamo il modulo bcm2835-v4l2

echo bcm2835-v4l2 >> /etc/modules
reboot now

Ora è il turno di ffmpeg che purtroppo non è installabile tramite apt-get ma occorrerà scaricare il pacchetto .deb ed installarlo tramite dpkg

sudo su
wget https://github.com/ccrisan/motioneye/wiki/precompiled/ffmpeg_3.1.1-1_armhf.debdpkg -i ffmpeg_3.1.1-1_armhf.deb

Serviranno poi tutta una serie di dipendenze in grado di garantire tutte le funzioni necessarie di interfaccia web, gestione e controllo della telecamera

apt-get install python-dev curl libssl-dev libcurl4-openssl-dev libjpeg-dev libx264-142 libavcodec56 libavformat56 libmysqlclient18 libswscale3 libpq5

 Finalmente arriviamo al nocciolo, il software Motion, reperibile tramite

wget https://github.com/Motion-Project/motion/releases/download/release-4.0.1/pi_jessie_motion_4.0.1-1_armhf.deb dpkg -i pi_jessie_motion_4.0.1-1_armhf.deb

Verifica di recuperare la versione aggiornata dall’ elenco delle release ufficiale che nel nostro caso si chiamerà pi_jessie_motion_xxxx_armhf.deb

Installiamo Motioneye tramite pip2, il quale scaricherà le sue dipendenze tornado, jinja2, pillow e pycurl, è il momento di preparsi un caffè perché la procedura sarà un po’ lunga…

pip2 install motioneye

Configurazione

Dopo questa lunga serie di comandi possiamo iniziare a configurare il tutto in base alle nostre esigenze:

Innanzitutto va creata una cartella e creata una copia del file di configurazione di esempio

mkdir -p /etc/motioneye
cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf

poi la cartella per contenere i video

mkdir -p /var/lib/motioneye

ed infine impostiamo il suo avvio automatico tramite

cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service
systemctl daemon-reload
systemctl enable motioneye
systemctl start motioneye

Per aggiornare motioneye sarà sufficiente eseguire

pip install motioneye --upgrade
systemctl restart motioneye

Accesso e configurazioni web

Per accedere al pannello di gestione web di Motioneye è sufficiente aprire da un browser web il link http://nome del raspberry oppure ip:8765 esempio: http://raspberrypi:8765

Il nome utente di default sarà admin, mentre la password sarà vuota.

Al primo avvio verrà chiesto quale telecamera aggiungere.

La prima cosa da fare è cambiare l’username e la password per mettere il sistema in sicurezza.

Successivamente, aumentiamo la risoluzione video, diamo un nome alla telecamera (ad esempio “entrata principale”) e abilitiamo il controllo automatico della luminosità.
Aumentare il frame rate comporterà video più fluidi, a discapito di spazio su disco e utilizzo della CPU.

Per la rilevazione dei movimenti o luci il tab motion detection permetterà molte utili configurazioni da valutare in base alle proprie esigenze.

Mentre la funzione “send an email“, una volta configurato il server SMTP, sarà in grado di avvisarci tramite posta elettronica (per aiuti in merito, discutiamone nel forum).

Anche se preferisco “Run a command” che posso utilizzare, sfruttando l’ottimo RpiNotify, per farmi avvisare tramite Telegram.

E per finire, è importante scegliere dove salvare i file, che potranno diventare anche molto grandi, visto che è un sistema di video sorvaglianza ed un eventuale ladro potrebbe anche sottrarre il Raspberry Pi, meglio quindi salvare nel cloud i nostri prezioni video, al fine di preservarli e poterli utilizzare (sperando non sia mai necessario) come prova da mostrare alle forze dell’ordine, in caso di violazione del vostro domicilio.

Note a margine

Oltre gli scopi di questa guida, visto che ora avete piazzato il Raspberry, potete anche utilizzarlo per accendere luci o radio/TV tramite dei relè collegati al GPIO, in modo da simulare la presenza di qualcuno nell’abitazione, o ancora riprodurre dei suoni mirati quali il vociare di più persone, l’abbaiare di un cane, o altro… Insomma, piano piano, volendo, potrete anche espandere il sistema… Come spesso accade, l’unico limite, con Raspberry Pi, è la fantasia!