Abarone.it Logo

Raspberry Motion Detection Wireless

Detection Wireless

Vediamo come costruire un piccolo progetto funzionale con il nostro piccolo computer Raspberry Pi Modello B. Ci sono molte guide sul web, in realtà io ho provato a seguirne molto ma ahimè sempre senza risultato, motivo per cui ho deciso di scrivere queste breve tutorial sul mio blog.
In primis c'è da dire che per ho utilizzato la distro Raspbian per costruire questo piccolo ma potente sistema di videorsoveglianza. Utilizzerò per fare questo motion ( famoso tool in ambienti linux ) adattato per il nostro Raspberry.
La configurazione che vedrete in questo tutorial potrà essere cambiata per costruirvi il vosto sistema su misura.

Di cosa abbiamo bisogno in questo progetto?

  1. Raspberry PI
  2. Telecamera ( io ho scelto per lo scopi la Pi camera noir)
  3. Connessione Internet ( ethernet o wireless )

Io per comodità ho abilitato ssh, cosi facendo posso lavorare sul Raspberry da un altro computer tramite terminale remoto.

Il progetto quindi si baserà su motion , un package presente in Debian. Un amatore , dozencrows ha ri-compilato il package motion originale con un una differente configurazione, rendendo adatto il nuovo motion per essere utilizzato con Raspberry Pi e con la Pi camera.

Per prima cosa, se già non l' abbiamo fatto, andiamo ad aggiornare il sistema operativo Raspbian:

  1. sudo apt-get update
  2. sudo apt-get upgrade

E' anche una buona idea aggiornare il firmware all'ultima versione disponibile:

  1. sudo apt-get install rpi-update
  2. sudo rpi-update

Procediamo quindi a riavvire il nostro Raspberry PI per rendere effettive le modifiche:

  1. sudo shutdown -r now

Prima cosa quindi che faremo quindi sarà installare motion:

  1. sudo apt-get install motion

Installiamo anche le dipendenze necessarie per poter lavorare con il nostra Pi camera, si tratta di una libreria che ci cosentira di lavorare cn le immagini:

  1. sudo apt-get install libjpeg62

Creiamo quindi una cartella "motion-mmal" nella cartella home dell'utente pi

  1. cd ~/
  2. mkdir motion-mmal
  3. cd motion-mmal

Scarichiamo ed estraiamo quindi la versione di motion personalizzata di dozencrow scrivendo:

  1. wget https://www.dropbox.com/s/xdfcxm5hu71s97d/motion-mmal.tar.gz
  2. tar -zxvf motion-mmal.tar.gz

Modifichiamo quindi il file di configurazione a nostro piaciamento ( modifichiamo larghezza del video, altezza, cartella di memotizzazione dei file, indirizzo web della nostra web interface che ci permette di controllare la nostra camera, quello che succede quando Pi camera cattura un movimento ecc ecc.) scrivendo

  1. nano motion.mmalcam.conf

Io utilizzato la seguente configurazione:

  1. width 640
  2. height 480
  3. target_dir /home/pi/m-video
  4. output_pictures off
  5. text_left Pi-cam %t
  6. logfile /home/pi/mmal/motion.log

Salviamo e usciamo dal nostro file moficato cliccando ctrl+x e dando conferma.

Bene, a questo punto arrivati, se la nostra Pi camera è installata, basterà scrivere il codice a seguire per attivarla.

  1. ./motion-mmal -n -c motion-mmalcam.conf

Puntiamo col nostro browser all'indirizzo ip del nostro Raspberry indicando la porta scelta per visualizzare la web inteface della camera nel file di configurazione ( di default è la porta 8081) , quindi ad esempio se l'ip del nostro Raspberry fosse 192.168.1.15 noi andremmo a scrivere:

  1. 192.168.1.15:8081

E voila.

Per chiudere il nostro programma motion-mmalcam dobbiamo scrivere:

  1. ctrl+c

Il tutorial a questo punto dovrebbe essere finito, ma in realtà per sfruttare a pieno le potenzialità di motion l'ideale sarebbe farlo avviare in automatico ad un certo orario prestabilito o comunque avviarlo da remoto. Entrambe le opzioni verranno trattate in altri tutorial. Per ora limitiamoci a vedere come avviare motion tramite uno script. Lo scopo dello script è quello di creare un comando più immediato per avviare motion-mmalcam. Creiamo quindi un file denominato start

  1. nano start.sh

e inseriamoci:

  1. !/bin/sh
  2. nohup ~/mmal/motion-mmal -n -c motion-mmalcam.conf 1>/dev/null 2>&1 </dev/null &

Allo stesso modo crediamo un file stop e inseriamoci:

  1. !/bin/sh
  2. ps -ef | grep motion-mmal | awk '{print $2}' | xargs kill

Ora basta rendere gli script eseguibili scrivendo da terminale:

  1. chmod 755 start.sh
  2. chmod 755 stop.sh

Adesso per avviare e terminare il nostro sistema di videosorveglianza basterà recarci nella carte /home/pi/motion-mmal/ e scrivere ./start.sh per avviarlo e ./stop.sh per terminarlo.

The command used in the start motion script was suggested by adayforgotten in the original topic thread. As you have seen, if you type the ./motion-mmal command to start the camera directly you cannot type subsequent commands into the terminal, and if you type ctrl+c or exit the terminal then the process terminates. Wrapping the command in nohup……& makes it run in the background and be independent of the terminal closing, which would normally stop dependent processes The >/dev/null redirects the standard output to /dev/null, throwing it away. The “2>&1? part redirects the “standard error” output of the command to the standard output. the “</dev/null” unattaches the console keyboard and uses “</dev/null” instead. Thus the script can start the process without producing any screen output.
The stopmotion script uses ps-ef to give a formatted list the process id of running processes, pipes the output to grep to find the line for the process motion-mmal pipes that to awk ‘{print $2}’ which extracts the second field or process ID and finally pipes to xargs which feeds in turn any matching ID to kill which terminates them. It is instructive to build up this command line manually trying each step in turn. Thus
ps -ef
ps -ef |grep motion-mmal
ps -ef | grep motion-mmal | awk ‘{print $2}’
etc to see the output of each stage in turn (you should have the process running first of course!)

Connecting the the Synology NAS surveillance module
If you have such a NAS you can log in to it with a web browser and start the supplied surveillance station. The trick is in how to setup the camera configuration.
The photo below shows the settings which have to be entered
pi-cam1

Although the frame rate is rather slow, the system works and in the time line of the Surveillance program you can inspect video where there has been motion detected.
The surveillance program has a full help file.

Quck install files
I have put the start and stop scripts plus my amended motion-mmalcam.conf file in a zip file which you can download here into your Pi home directory using

wget http://r.newman.ch/mmal-bits.zip
followed by unzip mmal-bits.zip
quick install instructions are included in a README file

barone.antonio@libero.it