Creare un sistema di videosorveglianza con Raspberry Pi - Introduzione

preview-sorveglianza

Salve a tutti,
giusto ieri mattina stavo rimettendo a posto delle cose sulla scrivania e, quando ho aperto il cassetto per riporre delle cianfrusaglie, ho visto uno scatolotto abbandonato a se stesso. Un povero Raspberry Pi B mi guardava impolverato e implorante di essere utilizzato. Visto che ho un debole per la tecnologia inutilizzata ho deciso di accontentarlo.
Cosa ci avrei potuto fare? Mi è tornato in mente un vecchio progetto che avevo intenzione di realizzare: un sistema di videosorveglianza.

Da qui l'idea di fare una serie di articoli dove piano piano svilupperemo un sistema di videosorveglianza aggiungendo sempre di più nuove feature.
Per il momento vedremo come è strutturato il sistema che andremo a realizzare, cosa servirà, valuteremo le tecnologie che si adattano nel modo migliore alle nostre esigenze ed alcune idee che magari svilupperemo successivamente.

Struttura del sistema

Quella che vi mostro in figura è la struttura del sistema che andremo a realizzare.

system

Niente di troppo difficile! Abbiamo il nostro Raspberry collegato ovviamente alla rete elettrica e ad internet (tramite WiFi o ethernet) a cui viene attaccata una qualsiasi webcam.
L'idea è quella di creare un sistema di videosorveglianza low-cost che permette di:

  • fare lo streaming di ciò che vede la webcam tramite una semplice pagina web e fare altre operazioni come ad esempio disattivare la sorveglianza
  • creare un semplice modulo di detection del moto per capire se c'è stato del movimento e nel caso scattare delle istantanee e notificarcele in qualche modo

Tecnologie utilizzate

Quello che ho a disposizione è un vecchio Raspberry Pi Model B che ha appena 512MB di RAM ed un processore a 700 MHz. Se avete a disposizione un Rasberry Pi più recente tanto meglio! Per quanto riguarda me, questo è quello che passa il convento 😛

Siccome questi dispositivi non sono molto potenti, il modulo di motion detection non sarà una cosa troppo complicata per evitare un costo computazionale eccessivo. Considerando anche il fatto che vorremmo creare un Web Service per visualizzare lo stream video della webcam e comandare delle operazioni, ho pensato di fare tutto in python.
Python infatti mette a disposizione delle API che permettono di creare semplici Web Service con poche righe di codice. Per quanto riguarda invece le semplici operazioni di visione ho deciso di installare ed usare OpenCV (ma dai?).

Inizializzazione del Raspberry

Installazione del sistema operativo

Ci sono diversi sistemi operativi per Raspberry che si adattano alle esigenze del suo impiego. Nel nostro caso ho deciso di installare la versione raccomandata Raspbian. Se avete già questa versione installata, potete andare al passo successivo.
Il modo più semplice di installare il tutto è tramite NOOBS (New Out Of Box Software). Quindi si prendere una micro SD (almeno 16GB e possibilmente di classe 10), la formattiamo in FAT32 e poi ci scompattiamo dentro questo zip. Inseriamo ora la SD Card nel nostro dispositivo e lo attacchiamo alla corrente. Seguiamo la procedura guidata di installazione ed il gioco è fatto.
Per dare una aggiornata al software scriviamo da terminale

sudo apt-get update
sudo apt-get upgrade

Per ulteriori info consultare la guida ufficiale.

Abilitare SSH

L'interfaccia grafica che mette a disposizione Raspberry è molto carina ma spesso rallenta molto il dispositivo. Per questo è necessario mettersi l'anima in pace e lavorare direttamente da terminale con SSH. Tuttavia non è abilitato di default quindi per poterlo attivare, apriamo il terminale e scriviamo

sudo raspi-config

Dopodiché selezionare Advanced Options, SSH e poi YES.
Per uscire da raspi-config cliccare su Finish.

Il prossimo passo è quello di riservare l'indirizzo IP privato nella LAN al Raspberry in modo tale che quando lo accendiamo sappiamo esattamente a quale indirizzo interno bisogna collegarci via SSH. Per fare questo serve sapere l'attuale indirizzo IP privato che è stato associato al Raspberry e il suo indirizzo MAC.

Per fare questo scriviamo da terminale

ifconfig

Con questo comando potrete vedere qual è l'indirizzo IP nella vostra LAN del vostro Raspberry (etichettato con la voce inet addr) e il suo indirizzo MAC (etichettato con la voce HWaddr).
Tra le voci di output avremo una cosa del genere se siete collegati con il cavo ethernet

oppure questo se siete collegati con un adattatore WiFi.

Scriviamoci da una parte inet addr e HWaddr.
Andiamo ora sulla maschera di configurazione del router (normalmente è 192.168.1.1 o cose simili).
Le voci a seguire potrebbero essere diverse in base al modello del router.
Andare sulla sezione LAN e Configura LAN. In questa sezione dovrebbe esserci una tabella Pre-assegnazione IP LAN. Facciamo una ricerca con l'indirizzo MAC del Raspberry e verifichiamo che l'IP assegnato è quello che è scappato fuori dal terminale. In questa tabella ci dovrebbe essere anche una colonna chiamata Assegna IP. All'interno di ogni cella di questa colonna c'è una text box nella quale possiamo inserire l'indirizzo IP privato che vogliamo che questo dispositivo abbia ogni volta che si connette alla rete locale. Possiamo mettere l'indirizzo IP attuale o un qualsiasi altro indirizzo IP che non sia stato già assegnato ad altri dispositivi (il formato sarà sempre 192.168.1.x dove x è un numero da 2 a 255)
Se avete messo un indirizzo IP diverso da quello attuale, disconnettetevi e riconnettetevi.

Per provare se tutto è andato a buon fine prendete il vostro computer (collegato alla LAN a cui è collegato anche Raspberry) e aprite il terminale ed eseguite

ssh pi@192.168.1.x

dove x è identifica l'ultimo numero dell'IP riservato a Raspberry.
Vi chiederà la password. Per default è raspberry. Inserita la password dovremmo essere dentro Raspberry e potremo lavorare in modo più rapido.

Installazione OpenCV

Siccome il nostro modulo di visione non sarà niente di complicato, ci accontentiamo della versione di OpenCV che mette a disposizione il nostro amico apt-get install.
Quindi da terminale (a questo punto anche tramite SSH) scriviamo:

sudo apt-get install libopencv-dev python-opencv

e completiamo l'installazione.
Per verificare se tutto è andato a buon fine apriamo python da terminale e tentiamo

import cv2

Nel prossimo articolo vediamo il modulo di visione. Quindi come fare prendere i frame dallo stream della webcam e analizzare il moto.
Alla prossima! 😉

Ingegnere Informatico e Ricercatore se compiace al Prodigioso Spaghetto Volante. Sono uno spartan racer, massimo esperto di serie tv, fotografo amatoriale e appena ne ho l’occasione preparo la valigia e parto

Creare un sistema di videosorveglianza con Raspberry Pi - Introduzione ultima modifica: 2016-11-01T14:56:39+00:00 da Andrea Salvi


Advertisment ad adsense adlogger