>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
C

Como Construir um Detector Acústico de Drones com ESP32 por Alguns Mil Rublos

Logo Batear

A detecção de drones geralmente está associada a radares complexos e caros, scanners de frequência de rádio ou sistemas ópticos com câmeras térmicas. Todas essas soluções custam milhares de dólares e exigem infraestrutura séria. Recentemente, encontrei um projeto interessante chamado Batear, cujos autores decidiram abordar o problema de um ângulo diferente. Eles usam um microfone e um pequeno microcontrolador que custa algumas dezenas de dólares.

A ideia é ouvir o céu. As hélices de drones girando criam um ruído acústico característico com harmônicos estáveis. O projeto realiza todo o processamento de som diretamente no microcontrolador, sem streaming de áudio para a nuvem e sem necessidade de conexão constante com a internet.

Demo Batear

Por baixo do capô

O projeto é escrito em C para ESP-IDF e otimizado para chips ESP32-S3. O som do microfone I2S (a documentação recomenda o sensor MEMS ICS-43434) vai diretamente para a memória do chip. Lá, o firmware executa uma Transformada Rápida de Fourier (FFT) e busca picos de frequência específicos característicos de motores e hélices de drones.

Todos os cálculos acontecem localmente. Se o dispositivo detectar som de hélices, ele envia imediatamente um alerta através de um dos dois canais de comunicação suportados.

Duas opções de implantação

Os desenvolvedores projetaram o firmware para cobrir dois cenários diferentes de montagem. O papel específico é selecionado durante o build ou flash:

1. Loop autônomo sem fio via LoRa

Neste modo, os sensores podem ser espalhados ao redor do perímetro do local, montados em postes ou árvores.

Um sensor baseado na placa Heltec WiFi LoRa 32 ouve as ondas do ar e envia um pacote criptografado de 36 bytes (AES-128-GCM) via rádio LoRa em 915 ou 868 MHz quando um alarme é acionado.

Uma segunda placa idêntica é colocada na casa como gateway. O gateway recebe o sinal de rádio, exibe o status na tela OLED integrada e encaminha o evento via Wi-Fi através de um broker MQTT.

[ Детектор с микрофоном ] ──(LoRa 868/915 МГц, AES-128)──> [ Шлюз Heltec ]
                                                                   
                                                              WiFi / MQTT
                                                                   
                                                            [ Home Assistant ]

2. Detector com fio Ethernet com PoE

Se o sensor for planejado para instalação permanente em uma fachada ou telhado, não faz sentido executar um gateway de rádio separado. O firmware suporta placas como a LILYGO T-ETH-Lite S3, que possui um controlador Ethernet W5500 soldado.

O dispositivo é alimentado via par trançado através de PoE, conecta-se à rede local independentemente e envia mensagens MQTT diretamente para o servidor de automação.

[ Проводной детектор (LILYGO) ] ──(Ethernet / PoE)──> [ Home Assistant / MQTT ]

Integração com casa inteligente

Os desenvolvedores não se incomodaram inventando aplicativos móveis personalizados e, em vez disso, implementaram suporte nativo ao Home Assistant via MQTT Auto-Discovery. Assim que o gateway ou sensor com fio se conecta ao broker, o dispositivo aparece automaticamente no painel de controle.

Painel Home Assistant

Através da interface de casa inteligente você pode:

  • Acompanhar o status do alarme em tempo real
  • Visualizar diagnósticos do canal de rádio (níveis RSSI e SNR)
  • Configurar automações: acionar sirenes, ligar holofotes ou enviar notificações do Telegram quando ruído suspeito for detectado

Como fazer o flash do firmware

Para quem não quer configurar uma toolchain ESP-IDF localmente, o site do projeto possui um web flasher baseado em WebSerial. Basta abrir a página em um navegador baseado em Chromium, conectar a placa via cabo USB-C e pressionar o botão de instalação.

Se você preferir compilar a partir do código-fonte, tudo é construído com ferramentas padrão:

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 o gateway ou a variante com fio, basta especificar o arquivo de configuração correspondente (sdkconfig.gateway ou sdkconfig.wired_detector).

Pensamentos e limitações

O projeto é um exemplo tecnicamente interessante de como o processamento digital de sinais pode extrair o máximo de um microcontrolador barato.

Claro, um método puramente acústico tem limitações físicas. Ventos fortes e rajadas, ruído de um cortador de grama do vizinho ou uma motoneta passando por perto podem interferir na detecção ou causar alarmes falsos. Para operação precisa, você precisará calibrar os limites de sensibilidade através do config. No entanto, como base para experimentos DIY combinados com Home Assistant, este é um excelente projeto totalmente open-source.

Projetos relacionados