Sistema de Detección de Movimiento y Envío Automático de Imágenes a Servidor SFTP con Motion y OpenWrt

Crear un sistema de vigilancia automatizado que detecta movimiento mediante una cámara y envía automáticamente las imágenes a un servidor SFTP para su almacenamiento seguro, todo sin intervención manual. Este sistema mejora la seguridad y facilita el acceso remoto a las imágenes capturadas.

Primero necesitaremos tener acceso a un router con openwrt y una cámara conectada a el.

Desde Openwrt tenemos que acceder por ssh y ejecutar lo siguiente para dar soporte al los dispositivos usb:

opkg update
opkg install usbutils kmod-usb2 kmod-usb-core kmod-usb-ohci kmod-usb-uhci

Para testear si las ha reconocido podemos ver si el dispositivo existe con el siguiente comando:

ls /dev/video0

si nos devuelve

/dev/video0

es que se la ha reconocido. Hay que tener en cuenta que si tenemos varias webcans puede aparecer /dev/video1, /dev/video2 … Es importante saber qué cámara vas a usar porque hay que agregarla a la configuración de motin.

Ahora comenzaremos a instalar el paquete de motion:

opkg update
opkg install motion

Cuando tengamos instalado el motion, editaremos el fichero de configuracion. De normal se encuentra en /etc/motion/motion.conf

Instalaremos unn editor de texto como por ejemplo nano.

opkg update
okpg install nano
nano /etc/motion/motion.conf 

En este archivo de configuración configuraremos que la cámara detecta movimiento y guarda las imágenes, que las imágenes se envíen directamente a un servidor sftp y que podamos acceder a la transmisión de la cámara desde el navegador.

############################################################
# Crear videos de eventos de movimiento.
movie_output on

# Longitud máxima del video en segundos.
movie_max_time 60

# Calidad de codificación del video. (0=usar bitrate. 1=peor calidad, 100=mejor calidad)
movie_quality 45

# Contenedor/Códec utilizado para el video. Ver motion_guide.html
movie_codec mkv

# Nombre del archivo (sin extensión) para videos, relativo al directorio de destino.
movie_filename %t-%v-%Y%m%d%H%M%S

############################################################
# Configuración del control web
############################################################

# Número de puerto utilizado para el control web.
webcontrol_port 8080

# Restringir conexiones al control web solo a localhost.
webcontrol_localhost on

# Tipo de opciones de configuración permitidas vía el control web.
webcontrol_parms 0

############################################################
# Configuración de la transmisión en vivo
############################################################

# Número de puerto para la transmisión en vivo.
stream_port 8081

# Restringir conexiones de transmisión solo a localhost.
stream_localhost off

##############################################################
# Archivos de configuración de la cámara - Uno por cada cámara.
##############################################################
; cámara /usr/etc/motion/camera1.conf
; cámara /usr/etc/motion/camera2.conf
; cámara /usr/etc/motion/camera3.conf
; cámara /usr/etc/motion/camera4.conf

##############################################################
# Directorio para leer archivos '.conf' de cámaras.
##############################################################
; camera_dir /usr/etc/motion/conf.d

##############################################################
# Script para enviar imágenes por SFTP al detectar movimiento
##############################################################

# Activar la salida de imágenes cuando se detecta movimiento.
picture_output on

# Nombre del archivo de imagen (sin extensión) relativo al directorio de destino.
picture_filename %Y%m%d%H%M%S-%q

# Comando para ejecutar cuando se genere una nueva imagen.
on_picture_save /etc/motion/subirimagenes.sh %f

Cuando tengamos el fichero de configuración crearemos el script para el envio de imagenes por sftp.

cd /etc/motion
nano envioimagenes.sh
#!/bin/bash
# Script para subir imágenes por SFTP automáticamente y eliminarlas después
#!/bin/bash
# Configuración SFTP
SFTP_USER="alumno"
SFTP_HOST="172.16.83.225"
SFTP_DIR="/home/alumno"
LOCAL_FILE="$1"

# Subir el archivo por SFTP y eliminarlo si la transferencia es exitosa
sftp "$SFTP_USER@$SFTP_HOST" <<< $"put $LOCAL_FILE $SFTP_DIR" && rm -f "$LOCAL_FILE"

Ahora crearemos una clave de ssh para poder pasar las imagenes al servidor sftp:

ssh-keygen -t rsa -b 4096
ssh-copy-id -i ~/.ssh/id_rsa.pub usuario@ipdelservidorsftp

Ahora iniciaremos el servicio y ejecutamos el motion:

/etc/init.d/motion start 
motion -n 

Ahora podremos ver la imagen de la camara desde el navegador

http://<IPDELSERVIDOR>:8081

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

82 − 72 =