Как собрать акустический детектор дронов на ESP32 за пару тысяч рублей

16 авг 2026
387
51
15
4 месяца

Batear Logo

Обнаружение дронов обычно ассоциируется со сложными и дорогими радарами, радиочастотными сканерами или оптическими системами с тепловизорами. Все эти решения стоят тысячи долларов и требуют серьезной инфраструктуры. На днях наткнулся на любопытный проект Batear, авторы которого решили подойти к задаче с другой стороны. Они используют микрофон и крошечный микроконтроллер за несколько десятков долларов.

Идея в том, чтобы слушать небо. Вращающиеся лопасти дронов создают характерный акустический шум с устойчивыми гармониками. Проект переносит всю обработку звука прямо на микроконтроллер, без передачи аудиопотока в облако и без необходимости держать постоянный интернет.

Batear Demo

Что под капотом

Проект написан на C для ESP-IDF и оптимизирован под чипы ESP32-S3. С микрофона I2S (в документации рекомендуют MEMS-датчик ICS-43434) звук попадает сразу в память чипа. Там прошивка выполняет быстрое преобразование Фурье (FFT) и ищет специфические частотные пики, характерные для двигателей и пропеллеров беспилотников.

Реклама

Все вычисления происходят локально. Если устройство фиксирует звук пропеллеров, оно тут же отправляет сигнал тревоги по одному из двух поддерживаемых каналов связи.

Два варианта развертывания

Разработчики спроектировали прошивку так, чтобы она закрывала два разных сценария монтажа. Конкретная роль выбирается на этапе сборки или прошивки:

1. Беспроводной автономный контур через LoRa

В этом режиме датчики можно раскидать по периметру участка, закрепить на столбах или деревьях.

Датчик на базе платы Heltec WiFi LoRa 32 слушает эфир и при тревоге отправляет зашифрованный 36-байтный пакет (AES-128-GCM) по радиоканалу LoRa на частоте 915 или 868 МГц.

В доме ставится вторая такая же плата в роли шлюза. Шлюз принимает радиосигнал, выводит статус на встроенный OLED-экран и пересылает событие по Wi-Fi через MQTT брокер.

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

2. Проводной детектор по Ethernet с PoE

Если датчик планируется монтировать стационарно на фасаде или крыше, тянуть отдельный радиошлюз нет смысла. Прошивка умеет работать с платами вроде LILYGO T-ETH-Lite S3, где распаян Ethernet-контроллер W5500.

Устройство запитывается по витой паре через PoE, самостоятельно подключается к локальной сети и шлет MQTT-сообщения напрямую на сервер автоматизации.

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

Интеграция с умным домом

Разработчики не стали изобретать кастомные мобильные приложения и сделали нативную поддержку Home Assistant через MQTT Auto-Discovery. Как только шлюз или проводной сенсор подключается к брокеру, датчик сам появляется на панели управления.

Home Assistant Dashboard

Через интерфейс умного дома можно:

  • Отслеживать статус тревоги в реальном времени
  • Смотреть диагностику радиоканала (уровни RSSI и SNR)
  • Настраивать автоматизации: включать сирену, зажигать прожекторы или отправлять уведомления в Telegram при обнаружении подозрительного шума

Как залить прошивку

Для тех, кто не хочет разворачивать у себя тулчейн ESP-IDF, на сайте проекта есть веб-прошивальщик на базе WebSerial. Достаточно открыть страницу в браузере на базе Chromium, подключить плату кабелем USB-C и нажать кнопку установки.

Если же вам ближе компиляция из исходников, то собирается все стандартными средствами:

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

Для сборки шлюза или проводного варианта нужно просто указать соответствующий файл конфигурации (sdkconfig.gateway или sdkconfig.wired_detector).

Мысли и ограничения

Проект выглядит технически интересным примером того, как с помощью цифровой обработки сигналов выжать максимум из недорогого микроконтроллера.

Разумеется, у чисто акустического метода есть физические ограничения. Сильный порывистый ветер, шум газонокосилки у соседа или проезжающий рядом мопед могут мешать детекции или вызывать ложные срабатывания. Для точной работы придется калибровать пороги чувствительности через конфиг. Тем не менее как база для DIY-экспериментов в связке с Home Assistant это отличный, полностью открытый проект.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.