Construye una cámara de vigilancia remota con motionEyeOS y Raspberry Pi
Introducción
Las cámaras de vigilancia están en todas partes hoy en día, o eso parece. Las encontrarás por doquier: protegiendo negocios y propiedades, resguardando viviendas o vigilando a los niños y sus niñeras.

La disponibilidad de módulos de cámara de bajo costo hace de una cámara de vigilancia un excelente proyecto. Si bien puedes comprar sin problema una cámara conectada a la web en tu tienda de electrónica local, hay algo intrigante en construir una tú mismo. Puedes personalizarla para que se adapte perfectamente a tus necesidades y quizá ocultarla en un lugar que solo tú conozcas.
Hoy construiremos una cámara de vigilancia que puede usarse por sí sola o en conjunto con otras cámaras. Este versátil proyecto tendrá varias funciones avanzadas como detección de movimiento, la capacidad de guardar videos e imágenes y una interfaz web que te permitirá ver la(s) cámara(s) en tu computadora de escritorio, tablet o teléfono móvil.
Si esto suena como un proyecto complejo y costoso, te sorprenderá saber que no lo es. De hecho, este es un proyecto que casi cualquiera puede armar sin necesidad de habilidades especiales. Gracias a un producto de código abierto llamado motionEyeOS, junto con una Raspberry Pi, puedes armar una cámara remota personalizada que puede convertirse en el corazón de un sistema de seguridad muy sofisticado.
¡Y todo el “trabajo pesado” ya está hecho por ti, así que no se requiere programación!
motionEyeOS
Como acabo de mencionar, motionEyeOS es un producto de código abierto que puede convertir cualquier Raspberry Pi (y muchas otras computadoras de placa única) en una sofisticada cámara conectada a la red. El código está disponible en GitHub.

motionEyeOS viene empaquetado como un archivo de imagen que puede grabarse en una tarjeta microSD y luego insertarse en una Raspberry Pi. Funciona de forma completamente autónoma; no se requiere teclado, ratón ni monitor.
El software tiene las siguientes características:
- Instalación y configuración muy sencillas.
- Tiene una interfaz de usuario basada en web, adaptada a móviles/tablets, que puede personalizarse de muchas maneras.
- Usa tanto el módulo de cámara de la Raspberry Pi como varias cámaras USB.
- Puede usar varias cámaras en la misma Raspberry Pi.
- También tiene soporte para cámaras IP (de red).
- Tiene detección de movimiento con notificaciones por correo electrónico.
- Puede configurarse con un horario.
- Usa archivos JPEG para las imágenes fijas.
- Varios formatos de archivo disponibles para los videos.
- Puede grabar videos en time-lapse.
- Se conecta a tu red local usando ethernet o wifi.
- Almacena imágenes y videos en tarjeta SD, unidad USB o carpeta compartida en red.
- Almacena imágenes y videos en servicios de almacenamiento en la nube (Google Drive, Dropbox).
- Los archivos multimedia son visibles en la red local como recursos compartidos SMB.
- También se puede acceder a los archivos multimedia a través del servidor FTP o SFTP integrado.
¡Es un conjunto de características bastante impresionante, si me permites decirlo!
motionEye
motionEyeOS es en realidad una combinación de varios otros proyectos de código abierto:
- Buildroot – Buildroot es una herramienta que se puede usar para crear sistemas Linux embebidos. Soporta varios procesadores y computadoras de placa única.
- Motion – Motion es un programa de código abierto que monitorea señales de video y detecta movimiento. Puede usarse con varios tipos de cámaras de video y también puede trabajar con archivos de video, permitiéndote analizar video grabado.
- motionEye – motionEye es el frontend web de Motion. Está escrito en Python.
De hecho, puedes personalizar aún más tu sistema de cámara usando los tres proyectos de software y compilando tu propia versión. Sin embargo, para la mayoría de nosotros, motionEyeOS ofrece un método mucho más sencillo para ponerlo en marcha.
Primeros pasos con motionEyeOS
Todo lo que realmente necesitas para empezar con motionEyeOS es una Raspberry Pi, una tarjeta micro SD y una cámara de Raspberry Pi o una cámara USB compatible.
En nuestro proyecto usaremos una cámara de Raspberry Pi. Te mostraré cómo conectar la cámara y usarla tanto con una Raspberry Pi 3B+ como con una Raspberry Pi Zero W. Si tienes otro modelo de Raspberry Pi, también funcionará; solo tendrás que asegurarte de descargar el archivo de imagen correcto para tu placa.
Puedes ejecutar tu sistema de cámara motionEyeOS en tu red de área local usando ya sea una conexión ethernet o WiFi. Te mostraré cómo hacerlo de ambas maneras.
También puedes usar una de varias cámaras de Raspberry Pi. Echemos un vistazo a algunas de ellas ahora.
Cámara de Raspberry Pi
Una de las características de la primera Raspberry Pi Modelo A era que podías conectar una placa de cámara directamente a la microcomputadora. La cámara se conecta usando un conector CSI de 15 pines y un cable plano tipo listón.

Todos los modelos de Raspberry Pi han incluido el conector de cámara, con excepción de la Raspberry Pi Zero original versión 1.2. ¡Simplemente no había espacio para colocar el conector en la diminuta placa de circuito! Se convirtió en una función “muy solicitada” y con el lanzamiento de la versión 1.3 de la Pi Zero se incluyó un conector CSI en miniatura. Este conector también se encuentra en los modelos Raspberry Pi Zero W y Zero WH.
Modelos de cámara de Raspberry Pi
La cámara original de Raspberry Pi Versión 1 se lanzó en 2013. Tenía las siguientes especificaciones:
- Sensor – OmniVision OV5647
- Resolución de imagen fija – 5 megapíxeles
- Resolución del sensor – 2592 × 1944 píxeles
- Área de imagen del sensor – 3.76 × 2.74 mm
- Distancia focal – 3.60 mm
La cámara Versión 2 se lanzó en 2016. Sus especificaciones son las siguientes:
- Sensor – Sony IMX219
- Resolución de imagen fija – 8 megapíxeles
- Resolución del sensor – 23280 × 2464 píxeles
- Área de imagen del sensor – 3.68 x 2.76 mm
- Distancia focal – 3.04 mm
Ambas cámaras están disponibles en dos versiones: una versión estándar con filtro infrarrojo y la versión “NoIR” sin el filtro IR para aplicaciones de “ver en la oscuridad”.
También hay muchos clones de la cámara de Raspberry Pi disponibles; la mayoría de ellos usan el sensor OmniVision OV5647 utilizado en la cámara V1 original.
Conector CSI-2 de la cámara de Raspberry Pi
Con excepción de la placa Raspberry Pi Zero original, todos los modelos de Pi incluyen un conector Camera Serial Interface o CSI. Este es un conector ZIF (Zero Insertion Force, fuerza de inserción cero) de 15 pines que aloja el cable de listón o película que viene de la cámara.

El bus CSI-2 es un bus de alto ancho de banda que envía datos por un par de líneas de datos balanceadas. El uso de una conexión balanceada hace posible tender un cable sin blindaje razonablemente largo sin degradación significativa de la señal. Es posible alcanzar anchos de banda de 2 Gb en la implementación del bus CSI de la Raspberry Pi. El bus también transporta reloj y datos I2C.
En la mayoría de las placas Raspberry Pi se usa un zócalo estándar ZIF 15. En los modelos Raspberry Pi Zero, sin embargo, el conector se ha “reducido” para adaptarse a la placa de circuito impreso más pequeña usada en estas microcomputadoras.
Uso de una cámara con la Raspberry Pi Zero
Como la Raspberry Pi Zero y la Zero W usan un conector ZIF más pequeño, requieren un cable correspondientemente más pequeño para acoplarse. Puedes conseguir cables o adaptadores especiales para usar con estas placas Raspberry Pi.

También hay cámaras de terceros fabricadas exclusivamente para la serie Zero; estos módulos de cámara ya traen el conector correcto.
En cualquier modelo de Raspberry Pi, debes asegurarte de insertar el cable en la orientación correcta; no hay ninguna guía ni muesca en el cable, así que encajará en cualquier dirección. Los conductores están en un solo lado del cable y una mirada rápida al conector de la Raspberry Pi dejará bastante claro qué lado del zócalo ZIF tiene los contactos de acoplamiento.
Si llegas a conectar el cable al revés, no es realmente un problema, ya que el cable solo tiene conductores en un lado; no puedes dañar nada, ¡excepto quizás tu propio orgullo! Por supuesto, la cámara solo funcionará con el cable insertado correctamente.
Probar tu cámara
Este es un paso opcional, pero no es mala idea averiguar si todo funciona correctamente antes de instalar motionEyeOS.
Para probar tu cámara usarás el sistema operativo Raspbian. Este es el sistema operativo predeterminado usado con la Raspberry Pi. Si has estado usando tu Raspberry Pi para otra cosa, probablemente ya tengas Raspbian instalado en una tarjeta micro SD en tu placa.
Si aún no tienes una micro SD con Raspbian, entonces necesitarás obtenerlo del sitio web oficial de Raspberry Pi. Ten en cuenta que querrás descargar la imagen de Raspbian y no “NOOBS”, que es un cargador de arranque que te permite elegir qué SO instalar en tu Raspberry Pi.
La primera vez que arranques Raspbian te hará algunas preguntas sobre tu región; esto es para poder configurar correctamente tu teclado y conexiones de red. Después de responder las preguntas necesitarás reiniciar.

Una vez que Raspbian haya arrancado estarás en el escritorio. Primero necesitarás hacer algo de configuración para habilitar la conexión de la cámara, ya que está deshabilitada de forma predeterminada. Así es como se hace:
- Haz clic en el ícono “Raspberry” en la esquina superior izquierda de la pantalla. Aparecerá un menú.
- Baja el ratón hasta el elemento de menú Preferences (Preferencias). Aparecerá un submenú a la derecha.
- Selecciona Raspberry Pi Preferences en la parte inferior del submenú. Aparecerá un cuadro de diálogo con pestañas.
- Haz clic en la pestaña Interfaces.
- Busca la interfaz Camera y habilítala con el botón de opción.
- Haz clic en el botón OK. Se mostrará un mensaje informándote de que necesitarás reiniciar para que los cambios surtan efecto.
- Reinicia la Raspberry Pi.
Ahora que la interfaz de la cámara está habilitada, puedes probar la cámara usando la línea de comandos.
Abre una ventana de terminal haciendo clic en el ícono en la parte superior de la pantalla. Una vez que se muestre la ventana, escribe lo siguiente en el símbolo del sistema:
raspistill -v -o test.jpg
Si todo funciona, verás una vista previa de video de tu cámara durante unos cinco segundos. Luego tomará una foto y la guardará como test.jpg en tu directorio home.
Ahora puedes cerrar la ventana de terminal y abrir el administrador de archivos (el ícono a la izquierda del ícono de la terminal). Como el administrador de archivos se abre por defecto en el directorio home, deberías ver ahí un archivo test.jpg. Haz clic en él y el visor de imágenes se abrirá mostrando la foto que acabas de tomar con nuestra cámara.
Ahora has verificado que tu cámara funciona. Si no funciona, apaga la Raspberry Pi y revisa de nuevo la conexión del cable en ambos extremos, tanto en la Pi como en el módulo de la cámara; en particular, asegúrate de que el cable esté correctamente asentado en el conector ZIF y que los conductores estén orientados en la dirección correcta.
Con una cámara funcionando, ya estás listo para trabajar con motionEyeOS.
Obtener motionEyeOS
Ahora que hemos hablado del software motionEyeOS y de las cámaras de Raspberry Pi, es hora de juntar todo y construir realmente una cámara de vigilancia.
Vas a necesitar las siguientes piezas:
- Una Raspberry Pi. Si bien puedes usar cualquier modelo de Raspberry Pi, voy a mostrarte cómo armar el sistema tanto con una Raspberry Pi 3B+ como con una Raspberry Pi Zero W.
- Una cámara de Raspberry Pi. En realidad, también puedes usar una cámara USB, pero no todas las cámaras USB son compatibles con motionEyeOS. Recomendaría que empieces con una cámara de Raspberry Pi; cualquier modelo funcionará.
- Una tarjeta micro SD en blanco para alojar motionEyeOS.
- Una fuente de alimentación USB para la unidad. Debe tener una capacidad mínima de 1.5 amperios, preferiblemente 2 amperios o más.
Hay algunas piezas opcionales que quizá quieras tener:
- Un cable Ethernet, suponiendo que planeas usar una conexión cableada y no una conexión WiFi. Esto depende del modelo de Raspberry Pi que estés usando; una Zero W (o WH) no tiene conexión ethernet RJ45, mientras que una Raspberry Pi 2 solo tiene conexión cableada. La Raspberry Pi 3B+ tiene ambas.
- Un monitor de video HDMI y su cable. Nuevamente, esto no es necesario, pero hace que observar el proceso de arranque y obtener la dirección IP inicial sea mucho más fácil. Si usas una Raspberry Pi Zero W, necesitarás un adaptador para convertir la conexión HDMI a un tamaño estándar.

Además, probablemente querrás algún tipo de carcasa para tu cámara, aunque yo simplemente armé un par en el banco de trabajo sin ninguna carcasa. Aquí es donde tu imaginación y creatividad tienen oportunidad de desbordarse. Puedes montar tu unidad en una carcasa de cámara estándar o disfrazarla dentro de un libro ahuecado, una radio vieja o ¡un osito de peluche!
Esa parte te la dejo a ti.
Obtener la versión correcta
motionEyeOS está disponible como un archivo de imagen que puede grabarse en una tarjeta micro SD que luego se instala en la microcomputadora que desees usar como servidor de video. Hay varias microcomputadoras compatibles:
- Banana PI M1
- Nano Pi Neo2
- Orange Pi One
- Odroid C1/C1+
- Odroid C2
- Odroid XU4/XU4Q/HC1/HC2/MC1
- Pine A64/A64+
- Raspberry PI (modelos A, B, A+, B+, Compute Module, Zero y Zero W)
- Raspberry PI 2
- Raspberry PI 3 (B, B+, Compute Module 3)
Ten en cuenta que al momento de escribir esto no hay una imagen específica para la nueva placa Raspberry Pi 3A; sin embargo, sospecho que la imagen de la Raspberry Pi 3 funcionaría en ella.
El primer paso es obtener la última versión de la imagen de motionEyeOS para tu placa de microcomputadora específica. Visita la página de dispositivos compatibles de motionEyeOS y sigue el enlace a la última versión para tu placa. Será un archivo ZIP que debes descargar a tu computadora.
Grabar la imagen
Ahora que tienes el archivo de imagen (o archivos, si planeas usar más de un modelo de Raspberry Pi, como hice yo) necesitarás grabarlo en una tarjeta micro SD.
Ten en cuenta que simplemente descomprimirlo y copiarlo a una tarjeta en blanco no funcionará, ya que el sistema operativo necesita crear un sector de arranque separado. En realidad necesitas usar un software que pueda extraer los archivos y formatear la tarjeta micro SD correctamente.
Para esta tarea uso un programa llamado Etcher. Lo he usado en artículos y videos anteriores para crear micro SD para la Raspberry Pi. Etcher tiene algunas características geniales:
- Es un producto gratuito de código abierto.
- Está disponible para Windows, Linux y Mac OS X.
- ¡Es lo bastante inteligente como para no grabar accidentalmente los archivos en un disco duro externo!
- Es muy fácil de usar.
Puedes obtener Etcher desde su sitio web e instalarlo en tu computadora.
También necesitarás un método para insertar una tarjeta micro SD en tu computadora. La mayoría de las computadoras modernas tienen ranuras para tarjetas SD; también puedes comprar un lector de tarjetas SD USB externo. Puede que necesites un adaptador para adaptar una tarjeta micro SD a una tarjeta SD de tamaño completo; esto suele venir incluido cuando compras una tarjeta micro SD en blanco.
Una vez que tengas Etcher (u otro grabador de tarjetas SD) instalado, ábrelo y selecciona el archivo ZIP de motionEyeOS como tu imagen. Si usas Etcher, debería encontrar automáticamente la tarjeta micro SD, pero siempre puedes seleccionarla manualmente.

Haz clic en el botón Flash y graba la imagen en la tarjeta. La imagen de motionEyeOS es bastante pequeña, así que no tardará mucho en grabarse. Si usas Etcher, verificará la imagen después de grabarla para asegurar su integridad.
El siguiente paso es retirar la tarjeta micro SD de la computadora e insertarla en una placa Raspberry Pi sin alimentación. Ahora repasaré el procedimiento tanto para una Raspberry Pi 3B+ como para una Raspberry Pi Zero W.
motionEyeOS y Raspberry Pi 3B+
Empiezo con una Raspberry Pi 3B+ ya que soporta una conexión Ethernet cableada, que es la forma más fácil de empezar con motionEyeOS. Por supuesto, la Raspberry Pi 3B+ también soporta WiFi, pero de ser posible deberías ejecutarla primero con una conexión cableada. Verás por qué en un momento.
Hacer que motionEyeOS funcione en una Raspberry Pi 3B+ es tan simple como conectar todo y encenderla. No necesitas teclado y realmente no necesitas un monitor de video; sin embargo, si tienes un monitor HDMI y su cable, hará las cosas un poco más fáciles. También te permitirá observar la carga del sistema operativo y de motionEye y, lo más importante, es la forma más fácil de ver qué dirección IP ha obtenido tu servidor de cámara para poder usarlo realmente.
Usé un monitor HDMI con mi Raspberry Pi 3B+. Le conecté un cable ethernet, inserté la tarjeta micro SD con la imagen adecuada y luego la encendí con una fuente de alimentación USB.
Cuando arranques motionEyeOS por primera vez, terminará de formatear tu tarjeta micro SD y luego se reiniciará. Esto en realidad es una función del sistema operativo Raspbian que ejecuta; necesita determinar el tamaño de la tarjeta micro SD y crear una partición de trabajo adecuada.
Al reiniciar observarás (si tienes un monitor de video conectado) que se cargan varios módulos. Después de eso, el software intentará establecer una conexión de red.

Esta es la parte a la que quieres prestar atención: permanece en la pantalla, así que no te preocupes por perdértela. Cuando se establece una conexión de red, usará DHCP para solicitar y luego obtener una dirección IP. La dirección IP es la clave para hacer que todo esto funcione.
Anota la dirección IP y luego dirígete a una computadora o tablet que esté conectada a la red.
Ver tu cámara
La dirección IP que obtengas tendrá un formato como 192.168.1.101/24 (tu dirección probablemente será diferente pero tendrá un formato similar).
Abre un navegador web en la computadora o dispositivo en el que quieras ver tu cámara. En la barra de direcciones de tu navegador escribe la dirección IP sin la parte “/24” (es decir, 192.168.1.101).
Si todo funciona, ¡te recibirá la pantalla de motionEyeOS y una imagen de tu cámara!

La imagen se transmitirá a una tasa relativamente baja; podrás cambiar eso más adelante si quieres, aunque la mayoría de los sistemas de vigilancia no transmiten a una tasa alta.
Cuando inicies sesión por primera vez en la cámara motionEyeOS estarás en modo Usuario. Si haces clic en el ícono de Settings (Configuración) en la esquina superior izquierda de la pantalla, solo tendrás opciones para organizar cómo se muestran varias cámaras en tu pantalla, lo cual por supuesto no sirve de nada cuando solo tienes una cámara.
Para configurar los ajustes de la cámara necesitarás iniciar sesión como Administrador. Para hacer eso, haz clic en el ícono User (Usuario), que es el ícono con forma de silueta de persona justo al lado del ícono de Settings.
Después de hacer clic en el ícono de Usuarios obtienes un cuadro de inicio de sesión. De forma predeterminada, el nombre de usuario y la contraseña son ambos “admin”. Obviamente querrás cambiar eso; te mostraré cómo hacerlo en un momento.

Una vez que hayas iniciado sesión como administrador, puedes abrir Settings de nuevo haciendo clic en el ícono. Esta vez verás muchas más opciones. Cubriré esas opciones muy pronto, pero primero quiero configurar una segunda cámara, esta vez usando una Raspberry Pi Zero W.
motionEyeOS y Raspberry Pi Zero W
La Raspberry Pi Zero W es una pequeña microcomputadora notable si consideras su precio de 10 dólares. Si bien eso es el doble del precio de una simple Raspberry Pi Zero, te da las características adicionales de conectividad WiFi y Bluetooth.
Usaremos motionEyeOS en una Raspberry Pi Zero W para crear una cámara remota inalámbrica usando la conexión WiFi. Las instrucciones para hacer esto también aplican a cualquier otra Raspberry Pi con capacidad WiFi, incluida la Pi 3B+ que acabamos de usar.
Usar WiFi con motionEyeOS presenta un desafío, una especie de problema del tipo “el huevo o la gallina”. Si recuerdas cómo arrancó la Raspberry Pi conectada por Ethernet, estableció una conexión de red y luego usó DHCP para solicitar una dirección IP. Pero con WiFi, establecer una conexión de red requiere un paso extra.
Si quieres ver el problema en acción, configura una Raspberry Pi Zero W con una cámara y la imagen correcta en una tarjeta micro SD, junto con un monitor de video para observar lo que sucede durante el arranque. Cuando el sistema arranque por primera vez, actuará igual que lo hizo la Raspberry Pi 3B+: formateará la partición de la micro SD, se reiniciará y luego empezará a cargar módulos.
El problema surge cuando va a establecer una conexión de red. Busca una conexión cableada, pero como ninguna existe, el proceso de arranque fallará. Lo cual tiene sentido, por supuesto.
Por cierto, si decides observar cómo falla la Pi Zero W, entonces habrás arruinado tu oportunidad de hacerla funcionar. No tendrás más opción que volver a grabar la tarjeta micro SD. El procedimiento que estoy a punto de mostrarte funciona en el arranque inicial y debe hacerse en una tarjeta micro SD recién grabada.
Crear un archivo de preconfiguración WiFi
Si lo piensas, el proceso de arranque realmente no puede empezar a buscar una señal WiFi para establecer una conexión. Considera lo que haces cuando traes a casa un dispositivo nuevo por primera vez y quieres conectarlo a tu red inalámbrica.
- Primero, abres la utilidad de configuración WiFi y ves todas las redes WiFi disponibles. Si vives cerca de tus vecinos, probablemente veas varias de ellas.
- Luego, seleccionas la red a la que quieres conectarte.
- Finalmente, necesitas proporcionar un código de acceso para autenticar tu dispositivo en la red.
Por lo general solo necesitas hacer esto una vez, ya que tu dispositivo suele estar configurado para recordar las credenciales de inicio de sesión. Pero sin hacerlo no puedes usar la red WiFi.
El servidor motionEyeOS tiene los mismos requisitos. Y la pantalla que ves en tu navegador web efectivamente tiene un lugar para ingresar tus credenciales WiFi.
Pero no puedes llegar a esa pantalla, ¡ya que la Raspberry Pi no puede conectarse a la red para dártela! Este es el escenario del “huevo o la gallina” al que aludí antes.
La solución a esto es crear un archivo especial con las credenciales de tu red y luego colocarlo en la tarjeta micro SD ANTES de arrancar por primera vez. Esto se llama “archivo de preconfiguración WiFi”.
El archivo de preconfiguración WiFi es un archivo de texto en un formato específico llamado “wpa_supplicant.conf“. El archivo contiene el SSID (nombre) de la red WiFi a la que quieres conectarte, así como la clave (contraseña) necesaria para autenticarte en la red. El formato del archivo se muestra a continuación.

He creado una plantilla para este archivo que puedes descargar y modificar con las credenciales de tu propia red.
Una vez que hayas creado el archivo, debe colocarse en el sector de arranque de la tarjeta micro SD de motionEyeOS recién creada. La tarjeta se inserta luego en la Raspberry Pi Zero W y entonces la enciendes.
Durante el arranque inicial, motionEyeOS busca el archivo wpa_supplicant.conf. Si lo encuentra, se copia a otra ubicación y se usa cada vez que el dispositivo arranca. Mientras la información del archivo sea válida, se conectará a la red WiFi en lugar de buscar una red cableada.
Una vez que se establece la conexión a la red WiFi, el dispositivo se comporta de forma idéntica a la Raspberry Pi 3B+ cableada que vimos antes.
Encontrar las cámaras en la red
Cuando configuré ambas cámaras de Raspberry Pi, conecté un monitor de video a las placas para poder observar el proceso de arranque y, lo más importante, obtener la dirección IP asignada a la cámara.
Pero, ¿qué pasa si no puedes (o simplemente no quieres) usar un monitor de video? ¿Cómo determinas la dirección IP del servidor de cámara motionEyeOS para poder verlo y controlarlo con un navegador web?
La solución es escanear tu red y buscar el/los servidor(es) de cámara. Hay varias formas de hacer esto y, con algunos sistemas operativos, incluso puedes usar el administrador de archivos. Pero un método mucho más fácil es usar un escáner de puertos IP, un software diseñado específicamente para este propósito.
Angry IP Scanner
No estoy seguro de por qué el software es “Angry” (enojado), pero el Angry IP Scanner es un producto gratuito y de código abierto que se ejecuta en Windows, Linux o Mac OSX. Es una herramienta ideal para determinar la dirección IP de todos los dispositivos conectados a tu red de área local.
Puedes conseguir una copia del Angry IP Scanner aquí.
Una vez que tengas el Angry IP Scanner instalado en tu computadora, ábrelo y presiona el botón Start (Iniciar).
Verás el progreso mientras el software escanea tu red. Cuando encuentra un dispositivo conectado, mostrará su dirección IP y su Hostname (nombre de host), así como algunos otros parámetros. La dirección IP y el Hostname son las columnas que nos interesan.

Cualquier servidor de video motionEyeOS detectado por el escáner de puertos tendrá un hostname que comienza con “MEYE-“. Por ejemplo, mi Raspberry Pi 3B+ tenía un hostname de “MEYE-0B4D1F76”. El hostname se genera cuando motionEyeOS realiza su secuencia de arranque inicial y será diferente para cada instalación de motionEyeOS.
Al buscar esos hostnames únicos puedes determinar rápidamente la dirección IP de todas tus cámaras motionEyeOS.
Usar las cámaras motionEyeOS
Así que ahora asumiré que tienes una o más cámaras motionEyeOS configuradas y has verificado que funcionan. Si empiezas a explorar la interfaz de usuario web mientras estás conectado como administrador (el nombre de usuario y la contraseña son ambos “admin” de forma predeterminada), notarás que hay muchas funciones y opciones.
Dediquemos algo de tiempo a examinar estas opciones para poder personalizar nuestro sistema de vigilancia.
DHCP
Cuando arrancaste tu(s) cámara(s), se le(s) proporcionó una dirección IP. El método usado para obtener la dirección es el Dynamic Host Control Protocol o DHCP.
Todo dispositivo que quiera conectarse a tu red requiere una dirección IP (Internet Protocol). Esta dirección, junto con otros parámetros como una máscara de subred y una puerta de enlace predeterminada, permite que tu dispositivo se comunique correctamente con los otros dispositivos de la red.
No puede haber dos dispositivos en la misma red con la misma dirección IP, así como no puede haber dos edificios en tu calle con la misma dirección.
Hay dos métodos para configurar una dirección IP para un dispositivo:
- Configurar manualmente el dispositivo con una dirección IP que sepas que no está en uso en tu red.
- Usar DHCP para que se te asigne una.
Sería bastante incómodo tener que asignar manualmente una dirección IP única a todas tus computadoras, tablets, teléfonos e impresoras. Así que para estos dispositivos DHCP es un gran sistema.
DHCP funciona teniendo en tu red un dispositivo llamado servidor DHCP. El servidor DHCP tiene un grupo de direcciones IP reservadas que puede usar para repartir a los nuevos dispositivos que se conectan a la red, tal como lo hizo cuando arrancamos nuestro servidor motionEyeOS.
En la mayoría de las redes domésticas y de negocios, el servidor DHCP está integrado en tu router. Funciona así:
- Un nuevo dispositivo se une a la red y hace una solicitud de dirección IP. Incluye su dirección MAC (Media Access Control) como parte de la solicitud para identificarse. Cada dispositivo de red en el planeta tiene una dirección MAC única.
- El servidor DHCP recibe la solicitud y busca en su grupo de direcciones una que no esté en uso. Mientras haya una disponible, anota la dirección MAC del nuevo dispositivo y le asigna la dirección IP de su grupo. También establece una fecha u hora de expiración para la dirección.
- El dispositivo que solicita la dirección IP anota la dirección que se le ha asignado y la usa. También anota la fecha u hora de expiración.
- Mientras el dispositivo permanezca conectado a la red y esté encendido, tendrá la misma dirección IP. Cuando ve que el tiempo de expiración se acerca, hace una solicitud de “DHCP Renew” (renovación DHCP) al servidor DHCP. El servidor renueva el “arrendamiento” de la dirección, es decir, establece la fecha u hora de expiración más adelante en el futuro.
- Si el dispositivo abandona la red (se desconecta o se apaga) y el tiempo de arrendamiento expira, entonces pasará por el procedimiento de nuevo. No hay garantía de que obtenga la misma dirección IP.
Subrayé ese último punto porque es bastante importante. Si apagas o retiras tu servidor motionEyeOS de la red, puede que termines con una dirección IP diferente la próxima vez que lo conectes o lo enciendas.
Esto puede volverse confuso, ya que cada vez que hagas eso necesitarías determinar la nueva dirección IP y configurar tu navegador web con la nueva dirección. ¡Con más de una cámara podría ser una pesadilla!
Establecer una dirección IP fija
Sería mucho mejor si pudiéramos asignar una dirección IP fija a nuestro servidor motionEyeOS. De esa manera siempre podríamos monitorearlo usando la misma dirección.
En realidad hay dos maneras de hacer esto:
- Usar un archivo de configuración, similar a como configuramos la Raspberry Pi Zero W para usar una red WiFi específica.
- Usar el panel de control de motionEyeOS y cambiar la dirección IP a una fija.
Voy a mostrarte cómo hacerlo con el panel de control de motionEyeOS. Si prefieres hacerlo con un archivo de configuración, hay detalles en el Wiki de motionEyeOS.
Antes de usar cualquiera de los métodos, necesitarás averiguar qué dirección IP quieres asignar a tu dispositivo motionEyeOS. Quieres una dirección que no esté siendo usada por ningún otro dispositivo de tu red y que esté fuera del grupo de DHCP.
La mejor manera de determinar qué dirección usar es examinar la configuración de tu router para ver qué direcciones están reservadas para DHCP. Pero si no tienes acceso a la configuración del router, puedes hacer una estimación fundamentada observando las direcciones con un escáner de puertos como el Angry IP Scanner. Notarás que la mayoría de los dispositivos de tu red tienden a estar agrupados en un rango de direcciones; ese es probablemente tu rango de DHCP. Elige una dirección muy por debajo (o por encima) de ese rango y probablemente estarás bien.
Una vez que hayas determinado qué dirección usar, es hora de configurar tu servidor motionEyeOS para que la use en lugar de DHCP.
Empieza iniciando sesión en tu servidor motionEyeOS como administrador. Ahora abre el menú Settings (ícono en la parte superior izquierda de la página).
Desplázate hacia abajo un poco hasta llegar al área de General Settings (Configuración general). Hay un interruptor deslizante para Advanced Settings (Configuración avanzada); actívalo con tu ratón. Aparecerán más opciones, incluida una sección Network (Red).
Abre la configuración de Network y observa el menú desplegable para IP Configuration. En este momento estará configurado en DHCP. Cámbialo a Manual (Static IP) (IP estática manual).
Se mostrarán cuatro nuevos cuadros para ingresar tu IP Address, Network Mask, Default Gateway y DNS Server. El único del que necesitarás preocuparte es la IP Address (dirección IP).

Ingresa la dirección IP fija que deseas usar. Luego haz clic en el botón Apply (Aplicar), el naranja en la parte superior de la pantalla.
Recibirás un mensaje diciendo que el servidor motionEyeOS se reiniciará.
Mientras el servidor se reinicia, perderás la imagen de la cámara. Y ahora que la dirección IP ha cambiado, necesitarás cambiar la dirección en la barra de tu navegador para que coincida. Dale un minuto al sistema para reiniciar antes de hacerlo.
Cuando el servidor se reinicie, ahora estará en la dirección IP fija. Y permanecerá ahí incluso si lo desconectas o lo apagas.
Recomendaría que hagas eso con todos los servidores motionEyeOS que construyas.
Y si tienes más de un servidor motionEyeOS, querrás pasar a la siguiente sección.
Ver varias cámaras en una sola pantalla
A menos que vivas en un departamento de una sola habitación, probablemente querrás tener más de un servidor de video motionEyeOS, uno para cada habitación o área de interés. En el video que acompaña este artículo he armado dos de ellos.
Mis dos servidores motionEyeOS tienen cada uno su propia dirección IP fija. Y ahora mismo necesito monitorear cada uno en una pestaña o ventana de navegador separada. Sería mucho más agradable ponerlos todos en la misma pantalla para poder observar todas las cámaras a la vez.
Naturalmente, hay una manera de hacer esto: puedes mostrar varias cámaras en la misma pantalla y también puedes administrarlas desde la misma pantalla.
Hay un par de métodos para mostrar varias cámaras, y puedes usar ambos simultáneamente.
- Conectar una cámara USB a la Raspberry Pi además de la cámara que tienes conectada al conector CSI. La segunda cámara se mostrará automáticamente en la pantalla.
- Usar una Raspberry Pi como “servidor maestro” y mostrar su(s) cámara(s) así como otras cámaras motionEyeOS.
- Usar varias cámaras motionEyeOS y usar una Raspberry Pi potente como “concentrador de cámaras” para mostrarlas todas.
El Wiki de motionEyeOS tiene varias configuraciones potenciales ilustradas, junto con las ventajas y desventajas de cada una de ellas.
Veamos cómo vería mis dos cámaras motionEyeOS en una sola página. Usaré la instalación en la Raspberry Pi 3B+ como mi servidor maestro, ya que tiene mucha más “potencia” de cómputo que la Raspberry Pi Zero W.
Antes de hacer nada de esto, asegúrate de configurar todos tus servidores de cámara motionEyeOS con una dirección IP fija, como se describió en la sección anterior.
Ahora inicia sesión en la Raspberry Pi que quieres usar como servidor maestro. Este sería un buen momento para renombrar la cámara, ya que de forma predeterminada se llama “Camera1”. Solo abre la configuración y desplázate hacia abajo hasta la sección Video Device y cambia el Camera Name a algo más descriptivo (por ejemplo, “Sala”). Haz clic en Apply para guardar el cambio.
Ahora ve a la parte superior izquierda del panel de configuración; verás un menú desplegable que tendrá el nombre de la cámara actual (Camera1 o como sea que la acabes de nombrar). Despliega el menú y selecciona “Add New Camera” (Añadir nueva cámara).
Ahora se mostrará el cuadro de diálogo Add Camera. Usa el menú desplegable y selecciona “Remote motionEye Camera” como el Camera Type (Tipo de cámara). Ten en cuenta que tienes varios tipos para elegir, así que puedes integrar en tu sistema cámaras IP que quizá ya poseas.

En el campo URL ingresa la dirección IP de la otra cámara motionEyeOS en formato de URL, es decir http://192.168.1.81/. Una manera fácil de obtener esta dirección ya formateada es simplemente copiarla de la barra de direcciones del navegador; el “http://” se insertará por ti.
Ahora ingresa la contraseña de administrador, que de forma predeterminada es “admin”. Una vez que lo hagas, el cuadro Camera debería poblarse con el nombre de la cámara remota, ya sea “Camera1” o un nombre personalizado que le hayas dado.
Finalmente presiona OK. Después de un par de segundos deberías ver la nueva cámara mostrada junto a la existente.

Ahora también puedes administrar la cámara en esta pantalla. El menú desplegable en la parte superior te permite seleccionar cualquiera de las cámaras.
Guardar imágenes y videos
Tener una cámara de vigilancia es genial, pero sería poco práctico tener que verla 24 horas al día; estoy seguro de que tienes mejores cosas que hacer. Afortunadamente eso no es necesario, ya que motionEyeOS puede capturar imágenes y videos que puedes ver más tarde.
Puedes elegir entre capturar imágenes y video de forma continua o capturarlos únicamente cuando se detecta movimiento. Esta última opción puede ahorrar mucho espacio de almacenamiento y también puede hacer mucho más fácil encontrar imágenes y videos de eventos que puedan haber ocurrido bajo el atento ojo de tu cámara.
También puedes elegir dónde guardar tus grabaciones; de forma predeterminada se almacenan en la tarjeta micro SD, pero también puedes almacenarlas en una ubicación de red compartida o incluso en servidores de almacenamiento en la nube como Google Drive o Dropbox.
En el panel de configuración, mientras estés conectado como administrador, desplázate hacia abajo hasta las secciones de Still Images (Imágenes fijas) y Movies (Videos) y expándelas. Ambas secciones tienen opciones similares.

Primero, puedes establecer la plantilla para los nombres de archivo; de forma predeterminada usan la fecha, incluyendo la hora hasta el segundo.
Puedes seleccionar la calidad tanto para imágenes como para videos; las grabaciones de mayor calidad ocuparán más espacio de almacenamiento. Encontré que la configuración predeterminada era satisfactoria para mis necesidades.
Para los videos también puedes seleccionar el formato de video. Para las imágenes puedes habilitar Manual Snapshots (Capturas manuales); si lo haces, se mostrará un pequeño ícono de “cámara” en cada pantalla de video para permitirte tomar una foto instantánea haciendo clic en él.
El Capture Mode (Modo de captura) tanto para imágenes como para videos determina cuándo se grabarán las cosas. Configuré ambos en Motion Triggered (Activado por movimiento).
Finalmente, puedes seleccionar cuánto tiempo conservar las imágenes y los videos.
Para ver imágenes y videos encontrarás íconos en cada pantalla de video que te permiten abrir un cuadro de diálogo que lista todas tus grabaciones. Luego puedes elegir verlas directamente, descargarlas o eliminarlas.
Detección de movimiento
Debajo de la configuración de Imágenes y Videos, encontrarás la configuración para la detección de movimiento. Estas determinan qué tan sensible es la cámara al movimiento.
Puede que descubras que necesitas ajustar los umbrales para evitar disparos falsos o para habilitar el disparo en entornos poco iluminados. Los disparos falsos pueden ser causados por cosas como cortinas que ondean con la brisa o mascotas que entran en el rango de visión. También pueden reducirse reposicionando o reenfocando las cámaras.
Al usar una Raspberry Pi para combinar las señales de todas tus cámaras motionEyeOS, puedes administrar todo desde una sola pantalla y crear un sistema de vigilancia verdaderamente personalizado para tu negocio u hogar.
Conclusión
Puede parecer increíble después de leer más de 6500 palabras, pero ¡todavía hay mucho que no he cubierto sobre motionEyeOS! Realmente tiene tantas funciones que probablemente podría escribir un libro sobre él.
Puedes usar motionEyeOS para que te envíe un correo electrónico con una imagen o video adjunto cuando detecte algo en movimiento. Puedes usarlo para disparar una API y hacer que otro evento o dispositivo responda a un movimiento detectado. Y los desarrolladores de motionEye, en el que se basa motionEyeOS, están constantemente añadiendo nuevas funciones y creando nuevas versiones.
Realmente es un software notable y su disponibilidad como archivo de imagen para una Raspberry Pi lo hace muy fácil de usar.
Para información adicional sobre el software, tu primera parada debería ser el Wiki de motionEyeOS en GitHub.
Si has llegado hasta aquí, ¡gracias por aguantar! Ahora sal y arma unas cuantas cámaras motionEyeOS.
Recursos
Wiki de motionEyeOS – La fuente definitiva de información sobre motionEyeOS
Wiki de motionEye – El producto sobre el que se construye motionEyeOS. Si necesitas una configuración más avanzada puedes instalarlo bajo Raspbian.
Raspbian – El sistema operativo predeterminado para la Raspberry Pi
Angry IP Scanner – Un escáner de puertos IP disponible para Windows, Linux y Mac OSX
Etcher – Una gran utilidad para grabar imágenes en tarjetas SD y micro SD. Disponible para Windows, Linux y Mac OSX.
Plantilla para IP estática – Mi plantilla para crear tu propio archivo wpa_supplicant.conf.
Versión en PDF – Una versión en PDF de este artículo, ideal para imprimir y usar en tu banco de trabajo.
Artículo traducido al español. Fuente original: DroneBot Workshop