Sistema de videovigilancia

Propósito:

Construir un sistema de videovigilancia experimental sencillo y de bajo coste.

Material necesario:

Dificultad:

  • Media

Para montar este sistema necesitamos una cámara, preferiblemente infrarroja, como por ejemplo esta:

Es infrarroja, por lo que captará imágenes incluso en condiciones de baja iluminación.

Conexiones:

Comenzamos conectando la cámara a a la Raspberry. El lado impreso de la cinta debe mirar a los puertos USB, mientras que en la cámara debe ser al revés.

Nota. Asumimos que el sistema operativo está instalado, tal como se explica en esta entrada, y que disponemos de acceso SSH, como se indica aquí.

Entramos mediante SSH y tecleamos

sudo raspi-config

Y habilitamos la cámara, en Interfacing Options

Comprobamos su funcionamiento haciendo una foto, que se guarda en el escritorio

raspistill -o Desktop/image.jpg

Si obtenemos algún error, posiblemente se deba a que el cable no está bien conectado, por lo que tendremos que revisarlo.

Envío de correo cuando se detecta movimiento

En un sistema de videovigilancia es básica la monitorización. Este sistema manda un correo a una cuenta de gmail cada vez que se detecta un movimiento, además de un vídeo.

Para ello tendremos que habilitar el acceso a dicha cuenta de aplicaciones no seguras, como la nuestra, por lo que no es mala idea crear una específica para este menester.

Comenzamos creando un programa denominado emailip.py en el directorio background que hemos creado previamente

cd ~

#create background folder

mkdir background

#create python script

sudo nano emailip.py

El contenido del programa es el siguiente:

#write in emailip.py

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

s.connect((«8.8.8.8», 80))

print(s.getsockname()[0])

x = s.getsockname()[0]

s.close()

import smtplib

from email.mime.multipart import MIMEMultipart

from email.MIMEText import MIMEText

fromaddr = «YOUR ADDRESS»

toaddr = «RECEIVING ADDRESS»

msg = MIMEMultipart()

msg[‘From’] = fromaddr

msg[‘To’] = toaddr

msg[‘Subject’] = «IP Address»

body = xmsg.attach(MIMEText(body, ‘plain’))

server = smtplib.SMTP(‘smtp.gmail.com’, 587)

server.starttls()

server.login(fromaddr, «YOUR PASSWORD»)

text = msg.as_string()

server.sendmail(fromaddr, toaddr, text)

server.quit()

Este es el archivo completo, donde lógicamente hay que introducir los datos de nuestra cuenta de Gmail.

Nota: es conveniente que no usemos nuestra cuenta de correo principal porque para poder acceder debemos configurar opciones en Gmail que limitan la seguridad de la misma.

emailip.py

Reiniciamos con

sudo reboot

y modificamos el archivo /etc/rc.local

sudo nano /etc/rc.local

añadiendo las siguientes líneas:

while ! /sbin/ifconfig wlan0 | grep -q ‘inet addr:[0-9]’;

do sleep 3

done

_IP=$(hostname -I) || true

if [ «$_IP» ]; then

printf «My IP address is %s\n» «$_IP»

python /home/pi/Background/emailip.py &

fi

exit 0

Instalamos el programa motion

sudo apt install motion

Y editamos el programa motion para que el programa arranque con la Raspberry

sudo nano /etc/default/motion

Y para ello cambiamos start_motion_daemon=no por

start_motion_daemon=yes

Lo iniciamos como servicio

sudo service motion start

Y comprobamos que funciona, accediendo desde la misma Raspberry, directamente o a través de VNC, en la dirección

localhost:8081

Tendremos que cambiar algunos parámetros en el archivo de configuración motion.conf,

sudo nano /etc/motion/motion.conf

por ejemplo:

daemon on

stream_localhost off

webcontrol_localhost off

ffmpeg_output_movies on

target_dir /var/lib/motion

##################

#local web browser streaming options

##################

stream_maxrate 100 #This will allow for real-time streaming but requires more bandwidth & resources

framerate 60 #This will allow for 60 frames to be captured per second #the higher this gets, the slower the video processing

width 640 #This changes the width of the image displayed

height 480 #This changes the height of the image displayed

##################

#emailing video settings in …/motion.conf

##################

En las siguientes líneas, se borra el ; del inicio de la misma, y se dejan de este modo:

on_event_start python /home/pi/background/motionalert.py %f

on_movie_end python /home/pi/background/motionvid.py %f

Cargamos las modificaciones

sudo service motion reload

Y funciona!!!

Ya solo queda meter todo el sistema en un recipiente hermético para que lo podamos poner a la intemperie.

No cabe duda que esta solución es imaginativa, aunque no sé si será demasiado eficaz.


Conclusión:

Se puede crear un sistema de videovigilancia sencillo con una cámara y una Raspberry. La mayor dificultad consiste en acceder a Gmail para que pueda enviar los mensajes, para lo cual hay que cambiar las opciones de seguridad de la cuenta.

Fuentes:

https://medium.com/swlh/night-vision-camera-for-raspberry-pi-4db1686cb465

Video Vigilancia con el Raspberry Pi

https://jeremyblythe.blogspot.com/2012/06/motion-google-drive-uploader-and.html

Sistema de videovigilancia con detector de movimiento Motion

https://omes-va.com/como-instalar-opencv-en-raspberry-pi/

https://github.com/HackerShackOfficial/Smart-Security-Camera.git

https://www.instructables.com/Raspberry-Pi-Motion-Detection-Security-Camera/#step3

2 comentarios en “Sistema de videovigilancia

    1. Hola. La detección del movimiento la realiza el mismo programa motion, por lo que no hace falta ningún dispositivo adicional. Compara las imágenes y cuando comprueba que hay diferencias entre ellas dispara la foto o el vídeo.
      Incluso se puede cambiar la sensibilidad de esta detección en el archivo motion.conf para que no dé falsos positivos.
      Una lista completa de los parámetros que se pueden configurar la puedes encontrar en https://eltallerdelbit.com/parametros-avanzados-motion-videovigilancia-raspberry-pi/

Responder a admin Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *