Raspberry Pi como cámara de vigilancia HD de bajo costo

Este instructable describe cómo construir una cámara de vigilancia basada en una microcomputadora Raspberry Pi que graba video HD cuando algo se mueve en el área monitoreada. La imagen en vivo se puede ver desde cualquier navegador web, incluso desde su dispositivo móvil mientras está de viaje.

Lo que obtendrás:

  • Vea la transmisión en vivo en cualquier navegador web desde cualquier lugar
  • Grabe cualquier movimiento en el archivo de video
Por lo general, dicha cámara le costará alrededor de US $ 1.000, pero con el resultado de este instructable, obtendrá una cámara de este tipo por solo alrededor de US $ 120.

Paso 1: antecedentes

¿Alguna vez has oído hablar de Raspberry Pi? Es una microcomputadora de bajo costo que puede ejecutar Linux y tiene infinitas posibilidades de extensión. Cuesta solo alrededor de US $ 35 y abre infinitas posibilidades de lo que puede construir con él. El sitio web oficial se puede encontrar en //www.raspberrypi.org/

Paso 2: componentes de hardware

Necesitamos un poco de hardware para este proyecto. Esta es una lista de las principales cosas que necesitamos:

  • Raspberry Pi Modelo B: este es el modelo más grande del sistema informático Raspberry con 700MHz y 512MB de RAM. Es compatible con video HD. Puede ordenarlo fácilmente, es decir, aquí. Costo: alrededor de US $ 40 . También podría usar el Raspberry Pi Model A, que es un poco más barato y consume menos energía. Stefan Knight ha escrito un excelente artículo sobre cómo ejecutar todo este proyecto en un modelo A.
  • Módulo de cámara Raspberry Pi: este módulo fue especialmente diseñado para la microcomputadora Raspberry. Tiene un conector que se conecta directamente a la placa Raspberry y admite video HD de hasta 1080p. El sitio web //www.rs-components.com/raspberrypi le mostrará dónde puede pedirlo en su país. Es decir, //www.alliedelec.com/lp/130513rasocameramodule/ envía esta cámara a los EE. UU. Por solo US $ 29 .
    Pronto habrá un módulo de cámara infrarroja para Raspberry Pi (//www.raspberrypi.org/archives/5089). Todavía no hemos tenido la oportunidad de probarlo, pero también debería funcionar para esta cámara de vigilancia.
  • Una carcasa para la cámara: no necesita comprar una carcasa de alto precio para su Raspberry. Hay un montón de cámaras de seguridad falsas muy baratas disponibles que se adaptan perfectamente a nuestras necesidades aquí. Busque en la web el "simulador de cámara de vigilancia" y encontrará montones de carcasas para su nueva cámara por solo unos pocos dólares. Es decir, este hará el trabajo: //amzn.to/15XLaAj por solo US $ 9 . Hemos pedido esta carcasa de cámara por unos 20 € en Alemania que tenía espacio suficiente para todos los componentes: //amzn.to/19CTEaN. Puede usar cualquier carcasa de cámara, pero solo tenga cuidado con el tamaño de la carcasa para que la placa Rasperry encaje allí. Las dimensiones de la placa Raspberry son 85, 6 x 53, 98 x 17 mm (aproximadamente 3, 37 x 2, 13 x 0, 67 pulgadas).
  • Fuente de alimentación: la computadora Raspberry no viene con ninguna fuente de alimentación, debe obtener una por nuestra cuenta. Cualquier fuente de alimentación con un conector micro-USB puede hacer el trabajo siempre que suministre al menos 1A de energía. Hemos ordenado una fuente de alimentación de este tipo que ya tiene un conector micro-USB por aproximadamente US $ 10
  • Tarjeta SD: como la Raspberry Pi no tiene ningún almacenamiento a bordo, debe agregar algunos para poder instalar y ejecutar el sistema operativo de este dispositivo. Cualquier SD o microSDHC debe hacer el trabajo, pero recomendamos usar una tarjeta SD de Clase 10. Solo cuesta alrededor de US $ 7
  • Para conectar esta cámara a su red, también necesita algún tipo de conexión de red. Una posibilidad es usar una conexión LAN, pero necesitaría colocar el cable LAN en el punto donde desea montar la cámara. Una mejor alternativa es un adaptador USB WiFi de este tipo por solo US $ 10
Eso es todo: por aproximadamente US $ 120 tenemos todo el hardware que necesitamos para construir esta cámara de vigilancia HD.

Paso 3: instalar Raspbian

Al principio, debe instalar el sistema operativo y el software en la Raspberry Pi antes de montarlo todo junto. Un sistema operativo es el software básico del sistema operativo que le dice al hardware Raspberry qué hacer. Linux es perfecto para esto. Hemos elegido Raspbian, ya que es uno de los sistemas operativos más avanzados para Raspberry con mucha ayuda y tutoriales en Internet.
Debe preparar la tarjeta SD para poder ejecutar Raspbian en Raspberry: este excelente tutorial de Adafruit le explicará los pasos necesarios.
Ahora conecte temporalmente su placa Raspberry Pi al cable LAN, un monitor (el televisor HDMI funciona de fábrica, pero un cable HDMI a DVI como este también funcionará) y un teclado USB para la configuración básica.
Inserte la tarjeta SD preparada con el instalador Raspbian y conecte la fuente de alimentación.
La Raspberry debería arrancar y guiarte a través del proceso de configuración como se explica en este tutorial de Adafruit. Después de esto, debe tener un sistema operativo Raspbian básico ejecutándose.
Asegúrese de habilitar SSH en Raspbian para poder controlar el dispositivo Raspberry también cuando no hay monitor y teclado conectados. Y también debe habilitar la cámara desde el menú de configuración de Raspbian para que podamos usarla para la detección de movimiento.
Ahora asegúrese de que su RPI esté actualizado:

 sudo apt-get install rpi-update sudo rpi-update 

Y también actualice todos los paquetes:

 sudo apt-get update sudo apt-get upgrade 

Paso 4: Conéctate a través de SSH

Ahora que la configuración básica está hecha, debe conectarse a su dispositivo Raspberry desde su computadora. Puede conectarse a la consola de Linux desde cualquier computadora en su red local y controlarla como si estuviera sentado directamente frente a ella. Esto es muy importante ya que una vez montado lejos de su escritorio, debe poder realizar actualizaciones y cambiar la configuración de esta cámara en cualquier momento posterior sin la necesidad de separarla de la pared y llevarla de vuelta a su escritorio.

Recuerde que esta cámara no es solo un dispositivo de cámara de volcado sino una computadora muy poderosa con sistema operativo Linux ejecutándose en ella. No se limita a lo que explicamos en este artículo ahora; seguirá cualquier desarrollo de software para que pueda instalar software actualizado y más módulos en cualquier momento posterior.

Primero, necesita un software para conectarse a la consola de Linux en Raspberry. Para Windows, necesitará el software adicional (gratuito) PuTTY. Descárguelo del sitio web de PuTTY, instálelo y conéctese a su dispositivo Raspberry Pi:

De ahora en adelante, ya no necesitará ningún monitor y teclado conectados a la Raspberry.

Paso 5: Habilita WiFi

Si desea ejecutar esta cámara con un dongle USB WiFi (como hemos sugerido en el paso 2), deberá realizar algunos pasos adicionales rápidos para que el WiFi funcione en la Raspberry:
Desde la consola (ventana PuTTY), edite las propiedades de red de Raspberry:
 sudo nano / etc / network / interfaces 
Ahora agregue estas líneas al final del archivo (o cambie las líneas existentes para que coincidan):
 allow-hotplug wlan0 iface wlan0 inet dhcp wpa-ssid "SU SSID DE RED" wpa-psk "CONTRASEÑA WIFI" 
(Complete el SSID y la contraseña para su red WiFi)
Reinicie la Raspberry con este comando y vea si se conecta correctamente a su red WiFi:
 reinicio de sudo 

Paso 6: junte el hardware

Ahora es el momento de ensamblar todos los componentes de hardware en la carcasa. Dependiendo de la vivienda, este no debería ser un trabajo demasiado complicado. Asegúrese de montar la placa Raspberry de forma segura para que no se caiga en la carcasa.
Como nuestra vivienda tenía una ventana de vidrio muy grande en la parte delantera, la hemos cerrado con un papel negro con un agujero. Esto tiene la ventaja de que la "tecnología" de la cámara ya no es visible. Si desea que el LED de grabación de la cámara sea visible, no lo cubra. Siempre que la cámara detecte algún movimiento o esté grabando, la luz LED se iluminará en un rojo muy brillante.
También puede apagar el LED rojo de la cámara agregando esta línea a /boot/config.txt:

 disable_camera_led = 1 



Paso 7: Instalación del software de detección de movimiento

Un software de detección / vigilancia de movimiento muy bueno (y de código abierto gratuito) con muchas opciones de configuración es el movimiento.
Ahora necesitamos instalarlo usando la línea de comando (inicie sesión en su frambuesa como usuario "pi"):
 sudo apt-get install motion 
Algunos paquetes se instalarán en el proceso de instalación; simplemente escriba "y" para continuar con la instalación.
Como la versión actual de motion no admite (todavía) el módulo de cámara Raspberry, necesitamos descargar e instalar una compilación especial con soporte para este módulo de cámara.
 cd / tmp sudo apt-get install -y libjpeg62 libjpeg62-dev libavformat53 libavformat-dev libavcodec53 libavcodec-dev libavutil51 libavutil-dev libc6-dev zlib1g-dev libmysqlclient18 libmysqlclient-dev libprops / libqqq-libqq-libqq / libqqp // /xdfcxm5hu71s97d/motion-mmal.tar.gz 
Y ahora necesita descomprimir el archivo descargado en el directorio / tmp:
 tar zxvf motion-mmal.tar.gz 
Después de descomprimir, ahora necesita actualizar su movimiento instalado con la compilación descargada:
 sudo mv motion / usr / bin / motion sudo mv motion-mmalcam.conf /etc/motion.conf 
También debe habilitar el daemon de movimiento para que el movimiento siempre se ejecute:
 sudo nano / etc / default / motion 
y cambie la línea a:
 start_motion_daemon = yes 
Estamos bastante seguros de que la construcción oficial de movimiento también admitirá en breve el módulo de cámara Raspberry.
Un comando muy importante para editar el archivo de configuración de movimiento es
 sudo nano /etc/motion.conf 
Nota: en la instalación de movimiento estándar, motion.conf está en / etc / motion /, pero en la construcción especial motion-mmal de dropbox-url (ver arriba) está en / etc /. Si sigue este tutorial con todos los pasos, esto no es un problema en absoluto.
Asegúrese de tener los permisos de archivo correctos: cuando instala motion mediante ssh mientras está conectado como usuario "pi", debe asegurarse de otorgarle al usuario "motion" los permisos para ejecutar motion como servicio después del reinicio:
 sudo chmod 664 /etc/motion.conf sudo chmod 755 / usr / bin / motion sudo touch /tmp/motion.log sudo chmod 775 /tmp/motion.log 
Hemos realizado algunos cambios en el archivo motion.conf para satisfacer nuestras necesidades. Nuestro archivo actual motion.conf se puede descargar aquí. Simplemente descargue, descomprima y copie el motion.conf que lo contiene a /etc/motion.conf si desea utilizar las opciones de configuración exactas que describimos a continuación.
Algunos de los principales cambios son:
Asegúrese de que el movimiento siempre se ejecute como un demonio en segundo plano:
 demonio en 

En su lugar, queremos almacenar el archivo de registro en / tmp (de lo contrario, el usuario de inicio automático no podrá acceder a él en la carpeta / home / pi /):

 archivo de registro /tmp/motion.log 
Como queremos usar un video de vigilancia de alta calidad, hemos establecido la resolución en 1280x720:
 ancho 1280 altura 720 
No necesitamos video en tiempo real, 2 imágenes por segundo son totalmente adecuadas para nuestras necesidades:
 framerate 2 
Esta es una característica muy útil del software de movimiento: graba algunos fotogramas (2 en nuestra configuración) antes y después de detectar el movimiento en la imagen:
 pre_capture 2 post_capture 2 
No queremos películas sin fin. En cambio, queremos tener max. Rebanadas de 10 minutos de los videos en movimiento. Esta opción de configuración cambió su nombre de max_movie_time a max_mpeg_time en movimiento. Si usa la construcción motion-mmal, esta funcionará. Si obtiene un error 'Opción de configuración desconocida "max_mpeg_time"' cambie esta a max_movie_time o asegúrese de usar realmente la compilación motion-mmal como se muestra arriba.
 max_mpeg_time 600 
Como algunos reproductores multimedia como VLC no pueden reproducir las películas grabadas, hemos cambiado el códec a msmpeg4. Luego, las películas se reproducen correctamente en todos los jugadores:
 ffmpeg_video_codec msmpeg4 
Habilite el acceso a la transmisión en vivo desde cualquier lugar. De lo contrario, solo localhost (= el dispositivo Raspberry) podría acceder a la transmisión en vivo:
 stream_localhost off 
Si desea proteger la transmisión en vivo con un nombre de usuario y contraseña, debe habilitar esto:
 stream_auth_method 2 stream_authentication SOMEUSERNAME: SOMEPASSWORD 
Todos los parámetros de configuración se explican en detalle en la documentación de configuración de movimiento.
Después de sus cambios en motion.conf, reinicie Raspberry:
 reinicio de sudo 
Después del reinicio, la luz roja del módulo de la cámara debe encenderse, lo que muestra que el movimiento actualmente está usando la cámara para detectar cualquier movimiento.

Paso 8: guardar videos en la carpeta compartida de Windows

Como la tarjeta SD de la Raspberry Pi es un recurso bastante limitado, hemos decidido dejar que la cámara Raspberry almacene los videos en uno de nuestros servidores de Windows. Esto es bastante fácil:
Primero comparta una carpeta de alguna máquina Windows. Simplemente siga algunas guías en Internet si nunca antes ha compartido una carpeta de una máquina Windows.
Luego abra la configuración fstab en su Raspberry desde una consola PuTTY o directamente desde el dispositivo:
 sudo nano / etc / fstab 
Ahora agregue una línea adicional con la configuración de su carpeta compartida de red de Windows:
 // YOURSERVERNAME / YOURSHAREDFOLDERNAME / mnt / camshare cifs username = YOURSHAREDFOLDERUSERNAME, password = YOURSHAREDFOLDERPASSWORD, iocharset = utf8, file_mode = 0777, dir_mode = 0777 0 0 
Asegúrese de que el usuario tenga los permisos correctos para guardar archivos en esa carpeta compartida.
Después de reiniciar, Raspberry debería tener una carpeta adicional / mnt / camshare montada en la carpeta compartida de Windows. Ahora debe configurar en su motion.conf:
 dir_destino / mnt / camshare 
para que el movimiento guarde todas las películas en la carpeta compartida en la máquina con Windows.


Paso 9: Arreglar Motion Autostart

Tuvimos algunos problemas porque el movimiento no se inició automáticamente al reiniciar la Raspberry. Descubrimos que esto se debía a que la carpeta montada de la máquina con Windows aún no estaba lista cuando Motion intentó acceder a ella.
Una solución muy rápida resolvió nuestro problema:
Solo edite el archivo de movimiento con
 sudo nano /etc/init.d/motion 
y agrega la línea
 dormir 30 
a la secuencia de inicio.
Nuestro script modificado /etc/init.d/motion se puede descargar desde aquí.

Paso 10: montaje de la cámara

Después de todos estos pasos, finalmente puede montar la cámara de vigilancia en el punto de destino.
Algunas sugerencias útiles:
  • Asegúrese de colocar la fuente de alimentación en un lugar seco y seguro
  • Esté atento a la señal WiFi: si monta la cámara fuera del alcance del WiFi, no podrá enviar ningún video en vivo ni guardar ningún video en movimiento

Paso 11: Acceso a la transmisión en vivo

Ahora puede acceder a la transmisión en vivo desde la cámara desde cualquier navegador a través de la url // IPADDRESSOFRASPBERRY: 8080
Donde 8080 es el puerto que hemos configurado para nuestra transmisión en el archivo motion.conf. Vea su propia configuración "stream_port" en motion.conf para el puerto.
Descubrimos que Google Chrome 30 (ni siquiera en iOS) no pudo reproducir esta transmisión directamente debido a un error en el proyecto subyacente de Chromium.
Una solución para esto es crear un archivo html simple que contenga una imagen grande con la URL de flujo de la cámara. Vea el archivo cam.html de raspberry_surveillance_cam_scavix.zip. De esta manera, Chrome también puede mostrar la transmisión en vivo. Esperemos que Chrome solucione este problema en su navegador.
Pero otros navegadores como Firefox, Safari e incluso el reproductor multimedia VLC pudieron mostrar la transmisión en vivo de la cámara.
No pudimos hacer que la transmisión en vivo funcionara en Internet Explorer ya que no es compatible con Motion JPEG. Kenneth Lavrsen (el creador del movimiento) ha descrito aquí una solución alternativa para la transmisión en vivo en Internet Explorer.

Paso 12: Acceda a la transmisión en vivo desde cualquier lugar

Para que la transmisión en vivo sea accesible desde cualquier lugar, deberá habilitar algún tipo de servicio de dominio dinámico en su red local. Esto le permitirá poder conectarse siempre a su dirección IP local desde el exterior, incluso si su dirección IP local cambia (aquí en Alemania, cada dirección IP DSL privada cambia cada 24 horas).
Dicho servicio (gratuito) le permite acceder a su Raspberry desde cualquier lugar, incluso si cambia su dirección IP. Un servicio muy bueno que estamos usando desde hace algunos años es dyn.com. Tienen algunos servicios gratuitos y están integrados en muchos enrutadores.
Una vez que haya configurado la URL de IP dinámica, puede acceder a la transmisión de la cámara desde cualquier lugar de su navegador (es decir, // YOURDYNAMICDOMAIN: 8080).
Y esto también funciona desde el navegador en su dispositivo móvil.

Paso 13: próximos pasos

Hay mil cosas que puede hacer con una configuración básica de cámara de vigilancia ahora. ¿Qué tal enviar notificaciones de Growl cuando se detectó algún movimiento? Esta guía explica cómo agregar esta funcionalidad fácilmente.

O bien, podría agregar fácilmente un sensor de temperatura a la cámara. Solo cuesta unos pocos dólares y se puede integrar muy fácilmente.
Actualmente estamos trabajando para integrar la transmisión en vivo en el servidor MediaPortal para que podamos cambiar a un canal de TV para ver la transmisión en vivo desde la cámara en nuestra oficina.

Si desea seguridad adicional, también puede agregar una batería a la cámara. Asegúrese de comprar uno que pueda cargarse simultáneamente mientras alimenta la Raspberry. Esto le permitiría detectar si algún tipo malo corta las tomas de corriente de su cámara y le envía algunos mensajes de alerta (es decir, SMS o correo electrónico), incluido el video del perturbador.

¿Qué vas a agregar? ¡Haznos saber!

Artículos Relacionados