domingo, 29 de junio de 2014

Crear un sistema de videovigilancia con Raspberry, Webcam y Dropbox (Parte II)

Buenas gente. ¿Acabando los exámenes, no? Os traigo la segunda parte del sistema de vigilancia. Esto también lo podéis usar para tener una copia de seguridad 'autoactualizable' de vuestra carpeta de dropbox en la Raspberry Pi y viceversa.

Si te perdistes la primera parte, aquí la tienes.

Lo primero que vamos a hacer es descargarnos una pequña aplicación de Dropbox creada por Andrea Fabrizi. Para ello nos vamos a la shell (o entramos via ssh como hago yo) y escribimos lo siguiente:
cd /usr/local/bin/

sudo wget https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh

sudo chmod +x dropbox_uploader.sh

Esto descargará la aplicación en /usr/local/bin/ y le dará los permisos necesarios. Si ejecutaramos dropbox_uploader.sh (escribiendolo tal cual) nos saldrían las opciones necesarias, pero aún no podemos ejecutarlo. Necesitamos explicarle con que cuenta debe comunicarse. Para ello nos vamos a https://www.dropbox.com/developers/apps y creamos una nueva app "Dropbox API app". Le decimos que trabajaremos con "files and datastores" y que necesitamos acceder también a archivos de dropbox (por si nos hiciera falta) y para lo cual hay que pulsar en el No. Especificamos como archivos fotos (y el video es opcional) y le damos un nombre a la app. No cerreis la ventana que os sale. Ahora si teneis que ejecutar el script instalado anteriormente. Os pedira una "app key" y una "app secret" las cuales son las que os dice la ultima ventana de dropbox. Si os pregunta si darle acceso full, aceptad.
Si ahora escribierais en la consola:
dropbox_uploader.sh list

Os devolvería todas las carpetas y archivos que tenéis en la raíz.

Bueno, como usaremos un solo comando para subir (en este caso) los archivos de motion a dropbox, vamos a usar un alias en vez de un script (por hacerlo más liviano).
Un alias en Linux es una palabra que tu reservas y que significará uno o varios comandos seguidos. Por ejemplo, si pusieramos como alias a='cd /' cada vez que escribieramos 'a' y pulsaramos enter nos llevaría a la carpeta raíz del disco. Bueno, nuestro comando será el siguiente:

/usr/local/bin/./dropbox_uploader.sh upload /tmp/motion/* Motion/$(date +%Y%m%d)


El cual lo que hace es ejecutar dropbox_uploader.sh con la opcion upload, la carpeta de origen de motion y como destino una carpeta en Dropbox llamada Motion (si no existe, la crea) y dentro de ella una carpeta con la fecha actual. Para crear el alias editaremos un archivo llamado bashrc. Para ello ejecutamos:

sudo nano /home/pi/,bashrc


y bajamos abajo del todo. Allí escribimos :

alias subidaMotion='/usr/local/bin/./dropbox_uploader.sh upload /tmp/motion/* Motion/$(date +%Y%m%d)'


Cerramos con Control+X, nos pregunta si guardar, escribimos 'y' y dejamos el nombre tal y como está. Deberemos reiniciar para que surta efecto el cambio. A partir de ese momento cada vez que escribais subidaMotion os copiará todas las imagenes de /tmp/motion a la carpeta de dropbox; la cual depende de la fecha.

Bueno gente, eso es todo. Ya solo os queda toquetear. Quizás en un futuro próximo me de por hacer un script que cada 5 minutos mirase el contenido de la carpeta /tmp/motion y si fuera distinto de vacío subiera automáticamente. También cabe la posibilidad de hacer que nos enviara un correo o nos avisara vía Twitter. Son cosas sencillas que iré poniendo en cuanto tenga tiempo.

Saludos y espero que os haya gustado;)

2 comentarios:

  1. Hola, quisiera saber si tienes algún tutorial de conexión ssh entre raspberry y una aplicación creada en adt de android, pues estoy haciendo un proyecto con eso y nada que logro la conexión.

    ResponderEliminar
  2. No tengo nada... Quizás debieras probar primero con alguna aplicación de ssh de android (como por ejemplo JuiceSSH que es la que uso yo) y si te funciona, ya implementarla tú o quedarte con ella.

    Es más, para controlar la Raspberry desde el móvil uso tanto esa como XBMC Remote y TeamViewer.

    Saludos;)

    ResponderEliminar