>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
C

Hoe bouw je een akoestische drone-detector met ESP32 voor een paar duizend roebel

Batear Logo

Drone-detectie wordt meestal geassocieerd met complexe en dure radars, radiofrequentiescanners of optische systemen met thermische camera's. Al deze oplossingen kosten duizenden dollars en vereisen serieuze infrastructuur. Onlangs stuitte ik op een interessant project genaamd Batear, waarvan de auteurs besloten het probleem vanuit een andere hoek te benaderen. Ze gebruiken een microfoon en een kleine microcontroller die een paar tientjes kost.

Het idee is om naar de lucht te luisteren. Roterende drone-propellers creëren een karakteristiek akoestisch geluid met stabiele harmonischen. Het project voert alle geluidsverwerking direct uit op de microcontroller, zonder audio naar de cloud te streamen en zonder constante internetverbinding.

Batear Demo

Onder de motorkap

Het project is geschreven in C voor ESP-IDF en geoptimaliseerd voor ESP32-S3-chips. Geluid van de I2S-microfoon (de documentatie raadt de ICS-43434 MEMS-sensor aan) gaat direct naar het geheugen van de chip. Daar voert de firmware een Fast Fourier Transform (FFT) uit en zoekt naar specifieke frequentiepieken die kenmerkend zijn voor drone-motoren en propellers.

Alle berekeningen vinden lokaal plaats. Als het apparaat propellergeluid detecteert, stuurt het onmiddellijk een waarschuwing via een van de twee ondersteunde communicatiekanalen.

Twee implementatieopties

De ontwikkelaars hebben de firmware ontworpen voor twee verschillende montagemogelijkheden. De specifieke rol wordt geselecteerd tijdens het bouwen of flashen:

1. Draadloze autonome lus via LoRa

In deze modus kunnen sensoren rond de omtrek van het terrein worden verspreid, gemonteerd op palen of bomen.

Een sensor op basis van het Heltec WiFi LoRa 32-bord luistert naar de lucht en stuurt een versleuteld 36-byte pakket (AES-128-GCM) via LoRa-radio op 915 of 868 MHz wanneer een alarm wordt geactiveerd.

Een tweede identiek bord wordt in huis geplaatst als gateway. De gateway ontvangt het radiosignaal, toont de status op het ingebouwde OLED-scherm en stuurt de gebeurtenis via Wi-Fi door naar een MQTT-broker.

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

2. Bedrade Ethernet-detector met PoE

Als de sensor bedoeld is voor permanente installatie op een gevel of dak, heeft het geen zin om een apart radiogateway te gebruiken. De firmware ondersteunt borden zoals de LILYGO T-ETH-Lite S3, die een W5500 Ethernet-controller heeft gesoldeerd.

Het apparaat wordt gevoed via twisted pair via PoE, maakt zelfstandig verbinding met het lokale netwerk en stuurt MQTT-berichten rechtstreeks naar de automatiseringsserver.

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

Slimme thuisintegratie

De ontwikkelaars hebben zich niet beziggehouden met het uitvinden van aangepaste mobiele apps en hebben in plaats daarvan native Home Assistant-ondersteuning geïmplementeerd via MQTT Auto-Discovery. Zodra de gateway of bedrade sensor verbinding maakt met de broker, verschijnt het apparaat automatisch op het bedieningspaneel.

Home Assistant Dashboard

Via de slimme thuisinterface kun je:

  • Alarmstatus in realtime volgen
  • Radiokanaaldiagnostiek bekijken (RSSI- en SNR-niveaus)
  • Automatiseringen configureren: sirenes activeren, floodlights inschakelen of Telegram-notificaties sturen wanneer verdacht geluid wordt gedetecteerd

Hoe de firmware te flashen

Voor degenen die geen ESP-IDF-toolchain lokaal willen instellen, is er op de projectwebsite een webflasher gebaseerd op WebSerial. Open simpelweg de pagina in een op Chromium gebaseerde browser, sluit het bord aan via USB-C-kabel en druk op de installatieknop.

Als je liever vanuit de broncode compileert, wordt alles gebouwd met standaard tools:

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

Om de gateway of bedrade variant te bouwen, geef je eenvoudig het bijbehorende configuratiebestand op (sdkconfig.gateway of sdkconfig.wired_detector).

Gedachten en beperkingen

Het project is een technisch interessant voorbeeld van hoe digitale signaalverwerking het maximale uit een goedkope microcontroller kan halen.

Natuurlijk heeft een puur akoestische methode fysieke beperkingen. Sterke, vlagerige wind, het geluid van een grasmaaier van de buurman of een brommer die voorbijrijdt, kunnen de detectie verstoren of valse alarmen veroorzaken. Voor nauwkeurige werking moet je de gevoeligheidsdrempels calibreren via de config. Desondanks is dit, als fundament voor DIY-experimenten gecombineerd met Home Assistant, een uitstekend volledig open-source project.

Gerelateerde projecten