Salve a tutti! Nel post di oggi andremo a vedere una possibile applicazione del piccolo computer, il Raspberry Pi. Ultimamente si stanno diffondendo sempre di più i sistemi di sicurezza e di controllo sia nelle proprietà private che pubbliche. Ma come la maggior parte della tecnologia, anch'essa risulta poco economica. Quindi oggi vediamo come utilizzare questo piccolo computer per creare un sistema di videosorveglianza a basso costo.

Introduzione.
Un sistema di videosorveglianza è composto principalmente da videocamere, sistema di salvataggio dei video su disco fisso tramite computer, e monitor per vedere in tempo reale le immagini. Il costo di tutte queste tecnologie sommato alla loro installazione, talvolta complessa, può essere elevato. Nella soluzione che vi proponiamo, utilizzeremo il Raspberry Pi, webcam e un hard disk. Il tutto verrà poi gestito dal programma open source Motion.

Cos'è Motion.
Motion è un software open source, per la videosorveglianza, sviluppato per Linux. Questo programma prende in input dei segnali video da una o più videocamere, e controlla se in questi ci sono stati dei movimenti, e quindi salva il file su un disco. Per configurare il programma basta editare il suo file di configurazione.

Cosa serve.
Per realizzare un piccolo sistema di videosorveglianza ci serve il Raspberry e una o più videocamere (in base a cosa vogliamo videosorvegliare) ed un hard disk dove salvare i nostri file.

Installiamo Motion.
Accediamo al Raspberry tramite ssh, se non sapete come andate a vedere questo nostro post , oppure usiamolo con un cavo hdmi. Apriamo un terminale e digitiamo:
sudo apt-get install motion
Bene, una volta installato il programma non resta che configurarlo e provarlo.

Configurazione di Motion.
La configurazione di Motion può variare dal suo utilizzo, comunque noi mostreremo le cose più importanti, e faremo una configurazione minimale per testare il programma con una webcam.
daemon off: in questo modo il programma non gira in background, e lo usiamo solo quando lo lanciamo.
output_normal on: quando viene rilevato un movimento, Motion salva l'immagine rilevata. Nella prossima opzione invece andiamo a impostare il path dove verranno salvate le immagini.

 

 

Come potete vedere nell'immagine, il path assoluto deve essere scritto alla riga 359. Il path da inserire dovrà essere quello dove è stato montato l'hard disk. State attenti a non far salvare le immagini e i video dentro l'SD del Raspberry, perché lo spazio è limitato rispetto ad un hard disk. Se non viene modificata questa riga, le immagini e i video verranno salvati nella directory dove ci troviamo. Nelle opzioni successive a queste possiamo decidere anche il nome dei file.

framerate 2 e webcam_maxrate 2: con queste due opzioni andiamo a settare quante immagini per secondo deve acquisire la nostra webcam, per testarlo vanno bene 2 immagini altrimenti ci ritroviamo pieni di file jpg, se vogliamo dei video un po' più fluidi secondo me un framerate maggiore o uguale a 30 dovrebbe andare bene.

webcam_localhost off: in questo modo evitiamo che l'accesso sia effettuato solo dal localhost.

quality, saturation e contrast: queste sono alcune delle opzioni utilizzabili per la qualità delle immagini.

pgsql e mysql: queste sono alcune delle opzioni utilizzabili se si vuole far interagire il programma Motion con un database.

netcam: è possibile usare anche una netcam, utilizzando questa serie di opzioni.

control_port: con questa opzione possiamo decidere su che porta vedere i video in streaming (di default è 8080).

Bene ora che abbiamo configurato il file, colleghiamo la nostra webcam USB al Raspberry e testiamo. Dopo aver collegato la webcam digitiamo nel terminale:
sudo motion

Ora il programma Motion è partito, ma vediamo se effettivamente sta riprendendo. Andiamo su un'altro computer e apriamo un browser, e nella barra degli indirizzi scriviamo l'indirizzo ip del Raspberry e la porta, che se non l'abbiamo editata è 8080. Scriviamo il tutto con questa sintassi ip:8080 come nell'immagine qui sotto:

 

 

Conclusioni.
Bene ora abbiamo le basi per costruire il nostro sistema di video sorveglianza, possiamo aggiungere nuove personalizzazioni a questo sistema come ad esempio controllare l'accensione e lo spegnimento con Arduino, o addirittura scrivere una piccola app per il nostro telefono che faccia partire Motion, o che controlli se sono state salvate delle immagini per colpa di qualche movimento, o meglio ancora se Motion trova un movimento, far partire un sensore di allarme gestito da Arduino! Insomma con un po' di immaginazione e di fantasia, nell'informatica e nell'elettronica tutto è possibile! Per tutti quelli che non sono provvisti di Raspberry Pi 2 Modello B possono acquistarlo seguendo questo link . Per chi vuole una cosa un po' più definitiva esiste il Raspberry Pi 2 Model B Complete Starter Kit n cui è compreso il case, l'adattatore WiFi e l'alimentatore. Ecco qui invece un'ottima webcam per video performanti: Trust SpotLight Webcam . Al prossimo articolo =)

Fonte: http://tuxmaniacs.it

 

 

 

 

Scopriamo in questo articolo come, con un Raspberry Pi programmato con un'opportuna applicazione, sia possibile scoprire chi si è introdotto nella vostra camera: se siete giovani, potrete quindi realizzare un "rilevatore" di presenza genitori che utilizza il rilevamento di movimento per innescare la registrazione video con un modulo Raspberry Pi camera.



Cosa realizzerete.
Utilizzerete un Raspberry Pi per individuare chi si è introdotto nella vostra camera! Il Raspberry Pi è così piccolo che può essere facilmente occultato, rendendolo uno strumento ideale per rilevare segretamente visitatori indesiderati della vostra camera da letto (come i vostri genitori). In questo tutorial realizzerete un rilevatore di genitori basato sull'utilizzo di un rilevatore di movimento ("motion detector") per triggerare una registrazione con il modulo camera del Raspberry Pi. Potete poi lasciare il Pi nascosto in qualche punto della vostra camera e verificare chi è stato ripreso dalla fotocamera quando rientrate a casa dalla scuola.



Cosa imparerete.
Realizzando questo rilevatore per genitori imparerete:
- come impostare e utilizzare il camera module del Raspberry Pi;
- come scattare foto con la fotocamera utilizzando Python, importando le librerie corrette;
- come utilizzare un sensore passivo a infrarossi ( PIR ), utilizzando un while true loop in Python;
- come utilizzare variabili per memorizzare informazioni all'interno del codice Python, rendendo l'applicazione più semplice e leggibile;
- come aggiungere codice al vostro programma Python per rilevare il movimento, triggerare la registrazione con la fotocamera, e memorizzare il video prodotto;
- come riprodurre un qualunque video dalla command line.



Cosa occorre.
Per quanto riguarda la dotazione hardware, oltre a un Raspberry Pi corredato di un'immagine su scheda SD aggiornata, occorreranno:

- un modulo fotocamera per Raspberry Pi (Figura 1);

 

Figura 1: Modulo fotocamera per Raspberry Pi.

 

Un sensore di movimento PIR (figura 2).

Figura 2: Sensore PIR.



3 cavetti jumper femmina-femmina (Figura 3).

Figura 3: Cavetti jumper

Per quanto riguarda invece il software, è sufficiente una distribuzione Raspbian aggiornata. Per accertarsi che la vostra schedina SD sia aggiornata con tale immagine, potete fare riferimento a questa guida di aggiornamento Raspbian . Come elemento opzionale si potrebbe eventualmente aggiungere un comodo sostegno per fotocamera .



Il sensore PIR.
Nel progetto utilizzeremo un sensore di movimento PIR (Passive Infrared Sensor), come quello visibile nell'immagine precedente. Probabilmente lo avrete già visto prima: sono spesso utilizzati nei sistemi di allarme (i sensori sono di solito collocati negli angoli delle stanze sotto sorveglianza). Tutti gli oggetti con temperatura superiore allo zero assoluto emettono delle radiazioni infrarosse. Le lunghezze d'onda dell'infrarosso non sono visibili all'occhio umano, ma possono essere rilevate dall'elettronica presente in uno di questi moduli. Il sensore viene denominato passivo in quanto non emette alcun segnale per rilevare il movimento. Esso si adatta al livello di radiazione infrarossa presente nella stanza in cui è collocato e comincia successivamente a monitorare ogni variazione della stessa. Ogni oggetto che si muove nella stanza perturberà questo livello di radiazione infrarossa, e produrrà una variazione di stato segnalata dal modulo PIR. Non dobbiamo preoccuparci di come il modulo funzioni al suo interno. Ciò che ci interessa sono soltanto i suoi tre pin, che utilizzeremo per collegarlo al Raspberry Pi.



Colleghiamo il sensore.
Prima di accendere il Raspberry Pi, occorre collegare il modulo PIR. Utilizzando i tre cavetti jumper femmina-femmina, dovrete collegare ogni pin del modulo a pin opportuni sul Raspberry Pi come indicato di seguito:
- collegate il pin VCC del sensore PIR al pin 5V del Raspberry Pi. Questo pin fornisce l'alimentazione al sensore PIR;
- collegate il pin GND del sensore PIR a un qualunque pin Ground sul Raspberry Pi. Questo pin completa la sezione di alimentazione;
- collegate il pin OUT del sensore PIR al GPIO pin 4 del Raspberry Pi. Il livello di tensione su questo pin indica lo stato di rilevamento del movimento o meno (Figura 4).

 

Figura 4: Collegamento del sensore PIR alla Raspberry Pi.



Testiamo il sensore di movimento.
Utilizzeremo il linguaggio di programmazione Python per scrivere il codice che rileverà il movimento, e visualizzerà qualche log di testo; estenderemo poi il programma in modo tale da includere la gestione del modulo fotocamera. Il programma è abbastanza semplice. Inizialmente verranno configurati i pin di GPIO della Raspberry Pi, in modo tale che il pin 4 sia un pin di ingresso; il suo compito sarà quello di indicare quando il modulo PIR ha rilevato un movimento. Dovremo controllare continuamente lo stato del pin, per cui utilizzeremo un loop while True. Come sappiamo si tratta di un loop infinito, per cui il programma continuerà a girare sino a quando verrà interrotto manualmente con la sequenza di tasti Ctrl + F6.

Aprite IDLE (Menu>Programming>Python3 (IDLE)) e copiate il codice seguente.

from gpiozero import MotionSensor

pir = MotionSensor(4)
while True:
if pir.motion_detected:
print("Motion detected!")


Salvate poi il file, e premete F5 per eseguirlo.

Ogni volta che il sensore PIR rileva un movimento, dovrebbero apparire nella shell IDLE le parole Motion detected!. Premete Ctrl + F6 quando volete interrompere l'esecuzione del programma.

 

Figura 5: Componenti nel sensore PIR.

Sul modulo PIR potete osservare la presenza di due componenti color arancio (figura 5) con un incavo a croce. Si tratta di due potenziometri che permettono di regolare, rispettivamente, la sensibilità del sensore e il tempo di rilevamento del movimento. Inizialmente dovrete impostare la sensibilità al massimo e il tempo al minimo, per poi aggiustarli in base alle vostre preferenze a livello pratico.



Impostazione fotocamera.
Prima di proseguire con il progetto, occorre collegare la fotocamera. Dovrete eseguire questa operazione prima di accendere il Pi, oppure, se è già acceso, fermarlo digitando sudo-halt. Seguite queste istruzioni in merito all'impostazione e alla configurazione della fotocamera. Fermatevi non appena avrete potuto sperimentare con successo alcuni dei comandi di esempio. Infine, se siete riusciti a procurarvene uno, installate il supporto per la fotocamera. Quest'ultimo aiuterà a orientare la fotocamera verso la parte desiderata della camera.



Programmiamo la fotocamera.
A questo punto siamo pronti per estendere il nostro programma in modo tale da aggiungere la funzionalità di controllo della fotocamera. Per iniziare, cominciamo a visualizzare ciò che la fotocamera vede quando il movimento viene rilevato; imposteremo la registrazione su file successivamente. Dovremo anzitutto aggiungere l'istruzione import picamera all'inizio del codice; questa permetterà al nostro programma di accedere al codice pre-costruito per il controllo del modulo fotocamera. Dichiareremo successivamente l'oggetto camera, che fornisce tutte le funzioni necessarie per controllare la fotocamera. All'interno del ciclo while possiamo poi far partire la preview ogni volta che viene rilevato un movimento. Copiate e incollate, oppure inserite a mano, il codice seguente:

from gpiozero import MotionSensor
from picamera import PiCamera

camera = PiCamera()
pir = MotionSensor(4)
while True:
pir.wait_for_motion()
camera.start_preview()
pir.wait_for_no_motion()
camera.stop_preview()




Registrazione e riproduzione del video.
Possiamo ora aggiungere del codice per registrare il video su file, e per poterlo riprodurre in un momento successivo. Se gli intrusi nella vostra stanza sono più di uno, vorrete catturare su video ciascuno di essi, e non solo quello introdottosi per ultimo. Per fare ciò, ci occorre un modo per generare un nuovo file automaticamente ogni volta che un movimento viene rilevato. Il modo più semplice e sicuro per realizzare ciò è quello di creare ogni volta un file nel cui nome siano presenti riferimenti alla data e all'ora. Per esempio, se la data corrente corrisponde all'11 febbraio 2014, ore 10:24 AM e 18 secondi, il nome del file dovrebbe essere del tipo: 2014-02-11_10.24.18.h264. Viene quindi utilizzato il formato YEAR-MONTH-DAY_HOUR.MINUTE.SECOND.h264; h264 si riferisce al formato del video in esso registrato, ed è lo stesso formato utilizzato su YouTube. Dovremo importare il modulo Python datetime e scrivere una funzione per generare il nome del file. Si potranno a questo punto utilizzare i comandi per avviare e interrompere la registrazione utilizzando il nome del file generato. Copiate e incollate, oppure inserite manualmente il seguente codice:

from gpiozero import MotionSensor
from picamera import PiCamera
from datetime import datetime

camera = PiCamera()
pir = MotionSensor(4)
while True:
pir.wait_for_motion()
filename = datetime.now().strftime("%Y-%m-%d_%H.%M.%S.h264")
camera.start_recording(filename)
pir.wait_for_no_motion()
camera.stop_recording()


Salvate ed eseguite lo script. Potete uscire una volta che è stato testato e sono stati prodotti alcuni video.



Playback.
Se guardate nel file browser, potrete osservare che sono stati creati alcuni file. Potete riprodurli nel terminale (Ctrl+Alt+t) digitando:
omxplayer -o hdmi
Per esempio:
omxplayer 2014-02-11_10.24.18.h264 -o hdmi
Oppure potete rinominare il file in mp4 ed aprirlo nel web browser Epiphany.



Sviluppi futuri.
Anche se a questo punto il rilevatore di genitori è completo, perchè non passare a un livello successivo utilizzandolo in modalità sicura? Per fare ciò potete disabilitare il LED presente sulla fotocamera, che si accende ogni volta che lo script Python viene eseguito. Occorre in questo caso modificare il file di configurazione del Raspberry Pi inserendo il seguente comando:
sudo nano /boot/config.txt
Aggiungete la seguente linea di codice alla fine del file:
disable_camera_led=1
Premete Ctrl + O per salvare il file e Ctrl + X per uscire. Le modifiche avranno effetto solo dopo un reboot, per cui inserite anche il seguente comando:
sudo reboot
Se desiderate lasciare il monitor collegato e acceso mentre il programma sta girando, è buona idea modificare il codice Python in modo tale da disabilitare la camera preview. Utilizzate il carattere # all'inizio di ogni riga per commentarla. Potreste anche decidere di eseguire il vostro programma Python con un login differente. Per fare ciò, premete ALT - F2 prima del login; verrà mostrato il prompt relativo a un nuovo login, eseguite l'accesso e lanciate il programma Python. Se ora premete ALT - F1 verrete rediretti al consueto prompt di login.



Link all'articolo originale: https://www.raspberrypi.org

Fonte: http://it.emcelettronica.com

 

 

Computer_vecchi.jpg