メインコンテンツまでスキップ

reCamera と Meshtastic を使った長距離セキュリティシステムの構築

1. はじめに

WiFi や携帯電話ネットワークの圏外である荒野や大規模農場、遠隔の山間部で、どのようにインテリジェントなセキュリティ監視を実現すればよいでしょうか?

このチュートリアルでは、かなりギークな「ネットワーク不要セキュリティ」ソリューションを提供します。つまり、reCamera PoE の強力なエッジ AI 演算能力を活用してリアルタイムの人物検出を行います。ターゲットを検出すると、基板上のハードウェアピンを介して即座に XIAO ESP32S3 + Wio-SX1262 モジュール(送信機) をトリガーします。アラート信号は低周波の電波に変換され、数キロメートルにわたる複雑な地形を伝搬して屋内の Wio-SX1262 受信機 に捕捉され、ローカルの Home Assistant (HA) システムへプッシュされる MQTT メッセージへとシームレスに変換されます。

この一連の経路ではクラウドサーバーを一切必要とせず、プライバシー・低消費電力・超長距離通信を高い次元で両立できます。

システム通信アーキテクチャ

全体のデータフローは次のとおりです。

  • reCamera PoE が YOLO 人物検出モデルを実行し、人を検出すると GPIO ピンから Low レベル信号を出力する
  • XIAO ESP32S3(送信機)が D2 ピンで Low レベルのトリガーを検出し、Wio-SX1262 を介して LoRa 無線パケットを送信する
  • XIAO ESP32S3(受信機)が Wio-SX1262 経由で LoRa パケットを受信し、MQTT プロトコルを用いて WiFi 経由で Home Assistant にプッシュする
  • Home Assistant が MQTT メッセージを受信し、自動アラート(通知や他のスマートデバイスとの連携など)をトリガーする

2. ハードウェアの準備

XIAO ESP32S3 & Wio-SX1262 キットreCamera PoE
  • XIAO ESP32S3 & Wio-SX1262 キット:2 セット(1 セットは LoRa 送信機用、もう 1 セットは LoRa 受信機用)
  • ローカルスマートホスト:1 台。Home Assistant と MQTT Broker を実行するために使用(HA を実行できる小型ホストであれば何でも可)
  • ジャンパワイヤ延長ケーブル:数本。reCamera の GPIO と XIAO ESP32S3 間の物理信号配線に使用

3. Meshtastic ネットワークの設定

2 台の XIAO ESP32S3 間で長距離 LoRa 通信を実現するために、両方に Meshtastic オープンソースファームウェアを書き込む必要があります。

3.1 ファームウェアの書き込みと基本 RF 同期(受信機・送信機の両方に必須)

Step 1: XIAO ESP32S3 を USB-C データケーブルでパソコンに接続します。

Note

書き込み前に、ESP32 を Bootloader ダウンロードモードにします。操作方法:BOOT ボタンを押し続けたまま RESET ボタンを 1 回押し、その後 BOOT ボタンを離します。

Step 2: Meshtastic Web Flasher にアクセスし、デバイスタイプとして Seeed Xiao ESP32-S3 を選択し、Full Erase にチェックを入れてから Flash をクリックしてファームウェアを書き込みます。

Step 3: ファームウェア書き込み後、Meshtastic Web Client にアクセスし、Add Connection をクリックして新しいデバイスを追加し、接続方法として Serial を選択して対応するシリアルデバイスを選び、Connect をクリックします。

Step 4: Settings → Radio Config → LoRa に移動し、Region をお住まいの地域で合法な周波数帯(例:CNUS)に変更し、Modem Preset を応答速度を高めるために Short Turbo に設定します。

3.2 受信機の設定(屋内に設置し HA に接続)

受信機は LoRa パケットを受信し、WiFi 経由で MQTT を用いて Home Assistant にプッシュする役割を担います。

Step 1 — キーの生成と保存: Channels タブで、Primary チャンネル用に 128-bit の Pre-Shared Key を生成します。

Note

必ずこのキーをコピーしてオフラインで保存してください。後で送信機側に入力する必要があり、両端のキーは完全に一致していなければなりません。

Step 2 — ローカルネットワークへの接続: Device Config → Network で WiFi を有効にし、自宅の WiFi の SSID とパスワードを入力します。

Step 3 — MQTT 転送の有効化: Module Config → MQTTEnable MQTT Client にチェックを入れ、JSON Enabled を有効にし、Address には HA ホストのローカル IP アドレスを正確に入力します(例:192.168.4.7)。

Step 4: すべての設定が完了したら、右上の Save をクリックして保存し、デバイスの再起動を待ちます。

3.3 送信機の設定(屋外に設置し reCamera に接続)

送信機は GPIO ピンのレベル変化を監視し、Low レベルを検出したときに LoRa アラートパケットを送信する役割を担います。

Note

送信機側では WiFi と MQTT を有効にしないでください。GPIO トリガーの受信と LoRa 無線信号の送信に専念させます。

Step 1: 受信機側の ESP32 を取り外し、送信機用の ESP32 に差し替え、Meshtastic Web Client で Connect をクリックしてそのまま接続します。

Step 2 — RF パラメータの同期: Radio Config → LoRa に移動し、受信機側と一致していることを確認します(Region と Modem Preset が完全に同じであること)。MQTT を有効にする必要はありません。

Step 3 — Pre-Shared Key の入力: Channels タブで、受信機側で生成した Pre-Shared Key を余さず貼り付けます。

Step 4 — GPIO ハードウェアトリガーの設定: Module Config → Detection Sensor でモジュールを有効化し、以下のパラメータで設定します。

パラメータ設定値説明
Minimum Broadcast Seconds15頻繁なトリガーによるチャネル輻輳を防ぐための最小送信間隔
Friendly NameHumanカスタムアラート名。MQTT メッセージの識別子として使用される
Monitor Pin3XIAO ESP32S3 の D2 ピンに対応
Detection Triggered TypeLOGIC_LOWLow レベルトリガー(reCamera は人物検出時に Low レベルを出力)

Step 5: 右上の Save をクリックして保存し、デバイスの再起動を待ちます。


4. reCamera エンドポイントの設定と物理配線

4.1 システムリソースの解放

デフォルトでは、reCamera の Node-RED と SSCMA バックグラウンドサービスがカメラリソースを占有しています。SSH 経由で reCamera にログインし(デフォルト IP は 192.168.42.1、ユーザー名とパスワードはいずれも recamera)、ターミナルで次のコマンドを実行してバックグラウンドサービスを停止します。

sudo /etc/init.d/S03node-red stop
sudo /etc/init.d/S91sscma-node stop
sudo /etc/init.d/S93sscma-supervisor stop

4.2 ビデオストリーム転送スクリプトの起動

Note

スクリプトを実行するホストは、同一ローカルネットワーク 上で reCamera PoE と接続されている必要があります。reCamera PoE バージョンは、同じルーターまたはスイッチに接続して IP アドレスを取得していれば十分です。

監視用ホスト(ビデオストリームを受信するために使用するホスト)上で Python スクリプトを実行し、reCamera からプッシュされるビデオフレームを受信します。

python udp_client.py

4.3 人物検出プログラムの起動

reCamera のターミナルで次のコマンドを実行し、オンボードの YOLO 人物検出モデルを起動します。最初のパラメータはモデルファイルのパス(reCamera 付属のモデルをそのまま使用可能)、2 つ目のパラメータはビデオストリーム転送スクリプトを実行しているホストの IP アドレスです。

sudo ./model_detector ./Models/model.cvimodel 192.168.4.7

4.4 ESP32 送信機を reCamera に接続する

上記のソフトウェア設定が完了したら、ジャンパーワイヤーを使用して XIAO ESP32S3(送信機)を reCamera に物理的に接続します:

  • 黒いケーブル:ESP32 の GND ピン → reCamera の GND ピン に接続
  • 緑のケーブル:ESP32 の D2 ピン → reCamera の GPIO 信号出力ピン に接続
Note

LoRa モジュールが十分な送信電力を確保できるように、ESP32 送信機には(USB ケーブルまたはバッテリー経由で)別途電源を供給してください。


5. Home Assistant でアラートを受信する

5.1 受信機が正常に動作していることを確認する

開始する前に、受信機側の ESP32 の電源が入っており動作していること、HA ホストと同じ WiFi ネットワークに接続されていること、MQTT アドレスが正しく設定されていることを確認してください。

5.2 HA で MQTT メッセージをリッスンする

ブラウザを開き、Home Assistant の IP アドレスを入力して MQTT 管理インターフェース にアクセスします。設定で Listen to all オプションを有効にします。

reCamera が人を検知すると、Meshtastic 送信機は LoRa 経由で受信機にアラート情報を送信し、その後受信機は Human(送信機側で設定した Friendly Name)を含むメッセージを MQTT 経由で HA にプッシュします。MQTT リッスンインターフェース上で、リアルタイムにアラートメッセージを確認できます:

{
"payload": {
"text":"Human detect"
}
}

5.3 HA で自動アラートを設定する

Home Assistant でオートメーションルールを作成し、MQTT メッセージ内の payload.textHuman detect のときに(モバイル通知、アラームとの連動、ログ記録などの)アラートアクションをトリガーするように設定することで、「ネットワーク不要のセキュリティ」システム全体のクローズドループを完成させます。


6. 注意事項

  • 送信機と受信機の LoRa RegionModem Preset は完全に同一である必要があります。一致していない場合、通信は失敗します
  • 送信機と受信機の Pre-Shared Key は同一である必要があります。異なる場合、パケットを正しく復号できません
  • Minimum Broadcast Seconds を短くしすぎると LoRa チャネルの輻輳を引き起こす可能性があります。15 秒以上に保つことを推奨します
  • reCamera の GPIO ピンは 3.3V レベルであり、XIAO ESP32S3 の D2 ピンレベルと互換性があるため、レベル変換は不要です
  • 送信機は、可能な限り開けた高い位置に設置して、最良の LoRa 通信距離を確保してください

7. よくある質問

Q1: 受信機と送信機が通信できない場合はどうすればよいですか?

両端の LoRa RegionModem Preset が完全に同一であるか、Pre-Shared Key が一致しているかを確認してください。さらに、2 台のデバイス間の距離が有効な LoRa 通信範囲内であるか、アンテナが正しく取り付けられているかも確認してください。

Q2: reCamera が人を検知しているのに、HA がアラートを受信しない場合は?

次の順序で切り分けを行ってください:reCamera の GPIO 信号出力が正常かどうか(テスターで測定可能);送信機側の Detection Sensor モジュールの Monitor Pin が正しく 3(D2)に設定されているか;受信機側の WiFi および MQTT 設定が正しいか、MQTT Address に HA ホストの IP が入力されているか。

Q3: Meshtastic 受信機が WiFi と MQTT に正常に接続できているかを確認するには?

Meshtastic Web Client で受信機のデバイスステータスパネルを確認し、WiFi ステータスが Connected、MQTT ステータスが Connected になっていることを確認してください。


8. リソース


テクニカルサポートと製品ディスカッション

当社製品をお選びいただきありがとうございます。製品をできるだけスムーズにご利用いただけるよう、さまざまなレベルのサポートを提供しています。お好みやニーズに合わせて選べる複数のコミュニケーションチャネルをご用意しています。

Loading Comments...