Existen otras opciones como por ejemplo utilizar Python, pero a nosotros nos interesa crear un sistema de vigilancia casero con webcams simples, mostrar la configuración de Motion en Raspberry Pi, y ver cómo configurar más de una cámara que detecte movimiento, y todo con una pequeña Raspberry, aunque por supuesto también podemos utilizarlo en un ordenador, una torre, un equipo más potente con Linux.
* Esta guía está preparada para funcionar con Raspbian Stretch (mejor si usamos la versión Lite ya que irá más ligera).
(Con Raspbian Jessie cambian algunas cosas como dependencias, paquetes .. ).
En este artículo:
apt-get update
apt-get upgrade
sudo apt-get install motion
Motion se instalará en /etc/motion
apt-get remove libavcodec-extra-56 libavformat56 libavresample2 libavutil54
apt-get install libmariadbclient18 libpq5 libavcodec57 libavformat57 libavutil55 libswscale4
Ya tenemos Motion instalado, pero antes de comenzar con la configuración, vamos a ver si nuestro sistema Raspbian detecta correctamente las webcams instaladas (en este caso vamos a comenzar con una webcam; en artículos posteriores veremos cómo conectar más webcams).
Esto lo podremos hacer con el comando
lsusb
Este comando mostrará info acerca de los dispositivos USB conectados a nuestra Raspberry Pi 3.
o con
ls /dev/video*
nos mostrará todos los dispositivos de video conectados (webcams y otros)
Podemos ver que se encuentra conectado un teclado , un Pendrive USB Kingston, un ratón, y una webcam USB que aparece con el nombre de GEMBIRD.
Primero hemos de configurar el archivo de configuración principal de Motion (el archivo /etc/motion/motion.conf) que nos servirá para a su vez llamar a otros archivos de configuración en el caso de que tengamos más de una cámara así que podremos crear un archivo de configuración específico y diferente para cada Cámara
Aquí vemos un ejemplo del archivo motion.conf por defecto.
Vemos que una de las principales líneas de las primeras líneas es la línea que detecta el dispositivo webcams a utilizar;
podemos ver la linea videodevice /dev/vídeo
Y como antes hemos comprobado que nuestra Raspberry ha detectado la webcam, y aparece como el dispositivo /dev/video0 ;
comprobamos que en el archivo motion.conf aparezca
videodevice /dev/video0
Primero vamos a configurar el daemon para que inicie en cada inicio:
editamos el archivo /etc/default/motion
y lo ponemos en yes:
start_motion_daemon=yes
Y ahora configuraremos las siguientes opciones básicas del archivo motion.conf y las dejaremos de esta forma (se puede mejorar mucho e hilar más fino, pero lo veremos en otro post sobre configuración avanzada de Motion):
daemon on
stream_localhost off
webcontrol_port 8080
output_pictures on
target_dir /var/lib/motion
stream_port 8081
stream_maxrate 20
Ahora que hemos realizado cambios en el archivo de configuración de Motion, vamos a recargar o reiniciar el servicio, para que acepte las nuevas configuraciones:
service motion reload
si Motion se ha quedado colgado, o simplemente preferimos un reinicio total del servicio:
sudo service motion restart
Parar el servicio Motion:
sudo service motion stop
Detectar errores en el servicio, en archivos de configuración:
sudo service motion status
Después de lo anterior, accedemos por navegador a la IP de la Raspberry, y al puerto que hayamos configurado en el parámetro webcontrol_port (en este caso, por defecto se utiliza el 8080)
Y de esta forma hemos configurado una webcam con Motion en Raspberry Pi para realizar Streaming continuo (bueno realmente en la captura vemos dos webcams, eso lo veremos en otro artículo posterior).
Ahora podríamos acceder a los controles de la cámara via Web, pulsando sobre: Camera1, y se abrirá el menú de la camara:
Vemos que aparecen las opciones
Pulsamos sobre action y veremos:
Y podríamos hacer un video (makemovie) o capturar una imagen (snapshot), que se guardará en el directorio target_dir que hemos configurado en el archivo motion.conf anteriormente.
Hemos visto cómo configurar Motion en Raspberry Pi para hacer un servidor de Streaming con webcams USB, configurando el archivo principal motion.conf, y utilizando las opciones más básicas. Más adelante veremos otras opciones avanzadas de Motion.