ESP32で数千ルーブルの音響ドローン検知器を作る方法
ドローン検知は、通常、複雑で高価なレーダー、無線周波数スキャナー、またはサーマルカメラを備えた光学システムと関連付けられています。これらのソリューションはすべて数千ドルかかり、本格的なインフラが必要です。最近、Batearという興味深いプロジェクトを見つけました,作者たちは異なる角度からこの問題に取り組むことにしました。わずか数十ドルのマイクと小さなマイコンを使用しています。
アイデアは空を聴くことです。回転するドローンのプロペラは安定した高調波を持つ特徴的な音響ノイズを生成します。このプロジェクトは、すべてのサウンド処理をマイコン上で直接実行し、クラウドへのオーディオストリーミングや常時インターネット接続を必要としません。
内部構造
このプロジェクトはESP-IDF用のCで記述されており、ESP32-S3チップに最適化されています。I2Sマイク(ドキュメントではICS-43434 MEMSセンサーを推奨)からのサウンドは、直接チップのメモリに入ります。そこでは、ファームウェアが高速フーリエ変換(FFT)を実行し、ドローンのモーターとプロペラに特徴的な特定の周波数ピークを検索します。
すべての計算はローカルで行われます。デバイスがプロペラ音を検出すると、即座に2つのサポートされている通信チャネルのいずれかを介してアラートを送信します。
2つの導入オプション
開発者は、ビルドまたはフラッシュ時に選択される2つの異なるマウントシナリオをカバーするようにファームウェアを設計しました:
1. LoRa経由のワイヤレス自律ループ
このモードでは、センサーを敷地の周囲に散布したり、柱や木に取り付けることができます。
Heltec WiFi LoRa 32ボードベースのセンサーは、空気をリスニングし、アラームが発生したときにLoRaラジオ(915または868 MHz)で暗号化された36バイトのパケット(AES-128-GCM)を送信します。
2枚目の同一のボードをゲートウェイとして家の中に置きます。ゲートウェイはラジオ信号を受信し、組み込みのOLED画面にステータスを表示し、MQTTブローカーを介してWi-Fiでイベントを転送します。
[ Детектор с микрофоном ] ──(LoRa 868/915 МГц, AES-128)──> [ Шлюз Heltec ]
│
WiFi / MQTT
▼
[ Home Assistant ]
2. PoE搭載有線イーサネット検知器
センサーが外壁や屋根への恒久的な設置を予定している場合、別個のラジオゲートウェイを実行しても意味がありません。ファームウェアは、W5500イーサネットコントローラーがんだ付けされたLILYGO T-ETH-Lite S3などのボードをサポートしています。
デバイスはPoE経由でLANケーブルから給電され、個別にローカルネットワークに接続し、自動化サーバーにMQTTメッセージを直接送信します。
[ Проводной детектор (LILYGO) ] ──(Ethernet / PoE)──> [ Home Assistant / MQTT ]
スマートホーム統合
開発者はカスタムモバイルアプリを開発する面倒を避け、代わりにMQTT Auto-Discoveryを介したHome Assistantサポートをネイティブに実装しました。ゲートウェイまたは有線センサーがブローカーに接続するとすぐに、デバイスはコントロールパネルに自動的に表示されます。
スマートホームインターフェースから次のことができます:
- アラームステータスをリアルタイムで追跡
- ラジオチャンネルの診断(RSSIとSNRレベル)を表示
- 自動化を設定:疑わしいノイズが検出されたときにサイレンをトリガーしたり、照明を点灯したり、Telegram通知を送信したり
ファームウェアのフラッシュ方法
ローカルでESP-IDFツールチェーンを設定したくない人のために、プロジェクトウェブサイトにはWebSerialベースのWebフラッシャーが用意されています。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)を指定するだけです。
考察と制限事項
このプロジェクトは、デジタル信号処理を使用して安価なマイコンから最大限の性能を引き出すことができる、技術的に興味深い例です。
もちろん、純粋な音響方式には物理的な制限があります。強い突風、隣人の芝刈り機の音、または近くのそばを通り過ぎる原動機付き自転車は、検知を妨げたり誤ったアラームを引き起こす可能性があります。正確な動作のためには、configを通じて感度しきい値を調整する必要があります。それでも、Home Assistantと組み合わせたDIY実験の基盤として、これは優れた完全にオープンソースのプロジェクトです。
関連プロジェクト