
HORUS EYE
Torreta DIY que sigue personas con visión artificial y apunta foco, láser y bocina.
- Tipo
- Torreta DIY
- Detección
- MobileNet SSD
- Control
- ESP32 + MQTT
- Estado
- Prototipo
- año
- 2026
La idea
HORUS EYE es un experimento de seguridad perimetral que va más allá de una cámara que graba: una torreta que, cuando la cámara ve a alguien, le apunta con un foco de 30 W y un láser verde, y que puede hacer sonar una bocina de 120 dB. Va sobre un soporte de dos servos, la mueve un ESP32 y se maneja desde el móvil.
La vigilancia la hace una cámara IP que ofrece su vídeo por RTSP.



Cómo detecta y apunta
La detección corre en un ordenador, no en el microcontrolador. Un script de Python abre el flujo RTSP secundario de la cámara y pasa los fotogramas por una red MobileNet SSD preentrenada, con el módulo DNN de OpenCV. En cuanto aparece una persona con más de un 20 % de confianza, deja de detectar y arranca un tracker CSRT sobre su recuadro: seguir es mucho más barato que detectar en cada fotograma. Si el tracker falla cinco fotogramas seguidos, vuelve a buscar.
El centro del recuadro se traduce a ángulos con una regla lineal: el ancho de la imagen se reparte entre 60° y 120° de giro, y el alto igual para la inclinación. Es una correspondencia sin calibrar, que funciona mientras cámara y torreta miren a la misma escena. Los dos ángulos viajan como dos bytes por puerto serie.
Del banco de pruebas al ESP32
El primer prototipo movía dos microservos SG90 con un Arduino Uno: leía esos dos bytes, los limitaba a 0–180° y los escribía en los pines 9 y 10. Para la torreta real pasé a un ESP32 y a dos servos DS3115 de 15 kg, que aguantan el peso del foco. En el esquema eléctrico los servos van por PWM a los GPIO 25 y 26 y el relé del foco al GPIO 27; una fuente de 12 V alimenta el foco y un conversor DC-DC baja a 5 V para el ESP32 y los servos. El consumo está sumado a mano en el propio papel: 0,5 A del ESP32, 1 A por servo y 2,5 A del foco.
Entre medias hubo un paso intermedio: un joystick virtual de escritorio, en Python con Tkinter, que movía los servos del ESP32 por HTTP y limitaba los envíos a uno cada 100 ms.
La app de control
La torreta se maneja desde una app Flutter (en su repositorio se llama Osiris Sentinel) que habla MQTT con el ESP32. Tiene dos pestañas. En Control, una cruceta mueve los servos, un botón central los centra, la cabecera muestra los grados que publica cada servo y tres interruptores encienden el foco, el láser y la alarma de 120 dB. En Órdenes se programan posiciones: ángulo X e Y, qué actuadores se encienden y durante cuántos segundos; al ejecutar una orden, la app apunta, enciende y lo apaga todo al terminar.
Cada actuador tiene su propio tema MQTT y devuelve su estado por otro. Si la conexión con el broker se cae, la app reintenta cada cinco segundos.
Galería de la aplicación
Control manual: cruceta de los servos e interruptores de foco, láser y alarma.
Órdenes: posición X/Y, actuadores y duración de cada orden programada.
Ventana de información con los datos del desarrollador.
Materiales
- ESP32 como controlador central
- Cámara IP con RTSP
- 2 servos DS3115 de alto par (15 kg)
- Foco LED 30W (de moto, 3600 lm)
- Láser verde 12V
- Bocina 120 dB
- Fuente de alimentación 12V 10A
- Conversor DC-DC 12V a 5V (5A)
- 3 relés controlados por ESP32
- Estructura metálica para servos
- Cables y conectores
- App Flutter de control por MQTT
Materiales necesarios
Montaje
- Montar la estructura metálica con los dos servos de 15 kg.
- Acoplar el foco LED, el láser y la bocina a la base móvil.
- Cablear el ESP32 con los relés, la fuente de 12 V y el conversor a 5 V.
- Activar el RTSP de la cámara y lanzar el script de detección en el ordenador.
- Levantar un broker MQTT en la red local para el ESP32 y la app.
- Mover la torreta y disparar los actuadores desde la app Flutter.
El prototipo
Banco de pruebas: ESP32, relés, fuente y el esquema en papel.
Consejos & seguridad
- Asegura una fuente de alimentación estable para los servos y actuadores.
- Calibra los ángulos de los servos para evitar bloqueos mecánicos.
- Protege conexiones con carcasas si el sistema se instala en exterior.
- Aísla bien los circuitos de 12V y 5V para evitar caídas de tensión.
- Protege el broker MQTT con usuario y contraseña, y usa TLS si sale a Internet: el puerto 1883 viaja en claro.
Ojo con el láser
Un láser verde apuntado a los ojos puede dañar la vista, y un foco o una bocina orientados a la calle molestan a quien no tiene culpa. La disuasión tiene que quedarse dentro de tu propiedad.
Estado real
HORUS EYE es un prototipo, no un producto. Lo que existe: la torreta montada, la app que la mueve y enciende foco, láser y alarma por MQTT, y el seguimiento de personas. También probé la API de la propia cámara para leer y mover su pan/tilt y capturar fotogramas etiquetados con su posición; se quedó en pruebas.
El resto sigue en desarrollo. No detallo aquí qué hace sola y qué no.
Materiales / Compra
Tienda: Componentes comprados online (AliExpress y Amazon) y en tiendas de electrónica, elegidos por potencia y fiabilidad. Detección con el modelo MobileNet SSD preentrenado sobre OpenCV.
Agradecimientos
- •Inspiración en la comunidad maker y proyectos de seguridad autónoma.
Aprendizajes
Detectar en cada fotograma es caro, así que el sistema detecta una vez y luego sigue con un tracker CSRT, volviendo a detectar solo tras cinco fallos seguidos. Y con un foco de 30 W y dos servos de 15 kg en la misma fuente, el presupuesto de corriente se hizo en papel antes de enchufar nada.
Publicaciones relacionadas

Placa de desarrollo ESP32 DevKitC
El microcontrolador con WiFi y Bluetooth por 6 €. La base de casi cualquier cacharro conectado.

ORBIT (antes AdriPilot): telemetría y mando remoto sobre openpilot
Firmware, backend y app para ver un coche con openpilot en vivo y mandarle órdenes con cabeza.

Proyecto Eficiencia Energética
App y API que leen el inversor solar y el precio de la luz, y encienden enchufes inteligentes.
Comentarios
0 comentarios




















