Propósito:
Construir un sistema de videovigilancia experimental sencillo y de bajo coste.
Material necesario:
- Cámara
- Raspberry Pi
- Alimentador
Dificultad:
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