Cómo construir un detector acústico de drones con ESP32 por unos pocos miles de rublos
La detección de drones suele asociarse con radares complejos y costosos, escáneres de radiofrecuencia o sistemas ópticos con cámaras térmicas. Todas estas soluciones cuestan miles de dólares y requieren una infraestructura seria. Recientemente me encontré con un proyecto interesante llamado Batear, cuyos autores decidieron abordar el problema desde un ángulo diferente. Usan un micrófono y un diminuto microcontrolador que cuesta apenas unas decenas de dólares.
La idea es escuchar el cielo. Las hélices de los drones en rotación crean un ruido acústico característico con armónicos estables. El proyecto realiza todo el procesamiento de sonido directamente en el microcontrolador, sin transmitir audio a la nube y sin necesidad de una conexión a internet constante.
Bajo el capó
El proyecto está escrito en C para ESP-IDF y optimizado para chips ESP32-S3. El sonido del micrófono I2S (la documentación recomienda el sensor MEMS ICS-43434) va directamente a la memoria del chip. Allí, el firmware realiza una Transformada Rápida de Fourier (FFT) y busca picos de frecuencia específicos característicos de los motores y hélices de drones.
Todos los cálculos ocurren de forma local. Si el dispositivo detecta el sonido de las hélices, inmediatamente envía una alerta a través de uno de los dos canales de comunicación soportados.
Dos opciones de despliegue
Los desarrolladores diseñaron el firmware para cubrir dos escenarios de montaje diferentes. El rol específico se selecciona durante la compilación o el flasheo:
1. Bucle autónomo inalámbrico mediante LoRa
En este modo, los sensores pueden dispersarse alrededor del perímetro del sitio, montados en postes o árboles.
Un sensor basado en la placa Heltec WiFi LoRa 32 escucha las ondas del aire y envía un paquete cifrado de 36 bytes (AES-128-GCM) mediante radio LoRa a 915 o 868 MHz cuando se activa una alarma.
Una segunda placa idéntica se coloca en la casa como puerta de enlace. La puerta de enlace recibe la señal de radio, muestra el estado en la pantalla OLED integrada y reenvía el evento a través de Wi-Fi mediante un broker MQTT.
[ Детектор с микрофоном ] ──(LoRa 868/915 МГц, AES-128)──> [ Шлюз Heltec ]
│
WiFi / MQTT
▼
[ Home Assistant ]
2. Detector cableado por Ethernet con PoE
Si el sensor está planeado para una instalación permanente en una fachada o techo, no tiene sentido ejecutar una puerta de enlace de radio separada. El firmware soporta placas como la LILYGO T-ETH-Lite S3, que tiene un controlador Ethernet W5500 soldado.
El dispositivo se alimenta mediante par trenzado a través de PoE, se conecta a la red local de forma independiente y envía mensajes MQTT directamente al servidor de automatización.
[ Проводной детектор (LILYGO) ] ──(Ethernet / PoE)──> [ Home Assistant / MQTT ]
Integración con el hogar inteligente
Los desarrolladores no se molestaron en inventar aplicaciones móviles personalizadas y en su lugar implementaron soporte nativo para Home Assistant mediante MQTT Auto-Discovery. Tan pronto como la puerta de enlace o el sensor cableado se conecta al broker, el dispositivo aparece automáticamente en el panel de control.
A través de la interfaz del hogar inteligente puedes:
- Seguimiento del estado de alarma en tiempo real
- Ver diagnósticos del canal de radio (niveles RSSI y SNR)
- Configurar automatizaciones: activar sirenas, encender reflectores o enviar notificaciones de Telegram cuando se detecta ruido sospechoso
Cómo flashear el firmware
Para quienes no quieran configurar una cadena de herramientas ESP-IDF localmente, el sitio web del proyecto tiene un flasher web basado en WebSerial. Simplemente abre la página en un navegador basado en Chromium, conecta la placa mediante cable USB-C y presiona el botón de instalación.
Si prefieres compilar desde el código fuente, todo se construye con herramientas estándar:
git clone https://github.com/batear-io/batear.git
cd batear
# Сборка прошивки для детектора
idf.py -B build_detector \
-DSDKCONFIG=build_detector/sdkconfig \
-DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.detector" \
set-target esp32s3
idf.py -B build_detector -DSDKCONFIG=build_detector/sdkconfig build
# Прошивка в устройство
idf.py -B build_detector -DSDKCONFIG=build_detector/sdkconfig -p /dev/ttyUSB0 flash monitor
Para construir la variante de puerta de enlace o cableada, simplemente especifica el archivo de configuración correspondiente (sdkconfig.gateway o sdkconfig.wired_detector).
Reflexiones y limitaciones
El proyecto es un ejemplo técnicamente interesante de cómo el procesamiento digital de señales puede extraer el máximo de un microcontrolador económico.
Por supuesto, un método puramente acústico tiene limitaciones físicas. Vientos fuertes y rachosos, el ruido de la cortacésped de un vecino o una moto pasando cerca pueden interferir con la detección o causar falsas alarmas. Para un funcionamiento preciso, necesitarás calibrar los umbrales de sensibilidad a través de la configuración. Sin embargo, como base para experimentos DIY combinados con Home Assistant, este es un proyecto excelente y completamente de código abierto.
Proyectos relacionados