MQTT出力を介して
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
SenseCraft AIでXIAO ESP32S3 SenseのMQTTを介したモデル出力の設定
この記事では、SenseCraft AIプラットフォーム上でXIAO ESP32S3 Senseボードを使用して、MQTT(Message Queuing Telemetry Transport)を介してモデル出力を設定する方法をステップバイステップで説明します。MQTTは、デバイス間の効率的な通信を可能にする軽量なメッセージングプロトコルです。この手順に従うことで、MQTT通信を設定し、XIAO ESP32S3 Senseからモデル推論結果を取得する方法を学ぶことができます。
前提条件
始める前に、以下のものを用意してください:
- XIAO ESP32S3 Senseボード
- XIAOボードをコンピュータに接続するためのUSB-Cデータケーブル
- MQTTXなどのサードパーティ製MQTTクライアントがコンピュータにインストールされていること
XIAO ESP32S3 Sense |
---|
![]() |
ステップ1. SenseCraft AI Vision Workspaceにアクセスし、XIAO ESP32S3 Senseを接続する
ウェブブラウザを開き、SenseCraft AI Vision Workspaceページにアクセスします。
利用可能なデバイスからXIAO ESP32S3 Senseボードを選択します。

USB-Cケーブルを使用して、XIAO ESP32S3 Senseボードをコンピュータに接続します。接続後、SenseCraft AI Vision Workspaceページの左上にあるConnectボタンをクリックします。

ステップ2. XIAO ESP32S3 Senseにモデルがロードされていることを確認する
次に進む前に、XIAO ESP32S3 Senseボードにトレーニング済みのモデルがロードされていることを確認してください。まだモデルをロードしていない場合は、SenseCraft AIのドキュメントを参照して、デバイスにモデルをトレーニングおよびデプロイする方法を確認してください。
独自にトレーニングしたモデルを使用したい場合は、以下の2つのWikiを参照してください。
Step 3. MQTT 出力の設定
Vision Workspace ページの左サイドバーで、Output オプションをクリックします。利用可能な出力オプションから MQTT を選択し、MQTT 設定画面にアクセスします。

Step 4. MQTT 設定のセットアップ
MQTT 出力セクションの下部にある Configuration ボタンをクリックします。設定ウィンドウが表示され、以下の情報を入力するよう求められます:
- SSID: Wi-Fi ネットワークの名前を入力します。
- Password: Wi-Fi ネットワークのパスワードを入力します。
- Encryption: Wi-Fi ネットワークの暗号化タイプを選択します(例: AUTO)。
- MQTT: MQTT 通信を有効にするために「Yes」を選択します。
MQTT 設定フィールドに以下を入力します:
- Host: MQTT ブローカーのホスト名または IP アドレスを入力します(例: broker.emqx.io)。
- Port: MQTT 通信のポート番号を指定します(例: 1883)。
- Client ID: XIAO ESP32S3 Sense 用のユニークなクライアント ID を入力します(例: xiao_esp32s3)。
- User Name: MQTT ブローカーが必要とする場合、MQTT ユーザー名を入力します。
- Password: MQTT ブローカーが必要とする場合、MQTT パスワードを入力します。
- SSL: SSL 暗号化を有効にするかどうかを選択します。MQTT ブローカーが SSL をサポートしている場合、「Yes」を選択して通信のセキュリティを向上させることができます。

Apply ボタンをクリックして設定を保存します。
このステップではネットワーク接続が必要です。XIAO ESP32S3 Sense にアンテナを接続してください。
すべてが正常に設定されていれば、ウェブサイト上で以下の情報が表示されるはずです。

Step 5. MQTT クライアント (MQTTX) のセットアップ
コンピュータで MQTTX アプリケーション を起動します。
以下の設定で新しい接続を作成します:
- Host: SenseCraft AI プラットフォームで使用したのと同じホスト名または IP アドレスを入力します(例: broker.emqx.io)。
- Port: MQTT 通信のポート番号を指定します(例: 1883)。
- Client ID: MQTTX インスタンス用のユニークなクライアント ID を入力します(例: seeed_computer)。

Connect ボタンをクリックして、MQTT ブローカーとの接続を確立します。
Step 6. MQTT トピックの購読
MQTTX アプリケーションで、New Subscribe ボタンをクリックして新しい購読を作成します。トピック sscma/v0/#
を入力し、Subscribe をクリックします。

このトピックは、XIAO ESP32S3 Sense からのモデル推論情報を受信するために使用されます。
ステップ 7. モデル推論結果を取得するコマンドを送信
MQTTXアプリケーションで、デバイストピックチャンネルに移動します。SenseCraft AIのMQTTページでデバイスのトピックを照会ボタンをクリックすることで取得できます。

コマンド AT+INVOKE=-1,0
を送信して、XIAO ESP32S3 Sense上でモデル推論をトリガーします。
正しいトピックを送信していることを確認してください。

もしモデル認識に関連するデータが報告されない場合は、HEX形式でコマンドを送信してみてください。


XIAO ESP32S3 Senseはコマンドを処理し、モデル推論結果を購読しているトピックに公開します。MQTTXアプリケーションでは、sscma/v0/#
トピックで推論結果を受信します。
例:
例えば、トレーニングされたモデルが画像内のオブジェクトを検出するように設計されている場合、'AT+INVOKE=-1,0' コマンドを送信すると、XIAO ESP32S3 Senseは画像をキャプチャし、モデル推論を実行し、結果をMQTT経由で公開します。推論結果には、検出されたオブジェクト、そのバウンディングボックス、信頼度スコアなどの情報が含まれる場合があります。例えば、MQTTメッセージのペイロードは以下のようになることがあります:
{"type":1,"name":"INVOKE","code":0,"data":{"count":989,"image":"/9j/4AAQSkZJRgABAQEAAAAAAAD...CUxBQAYoAPpQAc0AA/9X/2Q==","boxes":[[208.46,215.41,69.49,48.64,80.60,0]],"perf":[70,470,0],"rotation":0,"width":240,"height":240}}
JSON形式の詳細な説明については、ドキュメントをこちらで確認してください。
デバイスのファームウェアには、モデル結果の出力形式やユーザーがモデルでできることを指定する一連の通信プロトコルが確立されています。スペースの都合上、このプロトコルの詳細についてはこのWikiでは拡張しませんが、Githubのドキュメントで詳細を説明します。より深い開発に興味がある場合は、こちらをご覧ください。
Base64でエンコードされた画像をデコードする方法:
JSONオブジェクトの "image" フィールドからBase64エンコードされた文字列をコピーします。
Webブラウザで
https://base64.guru/converter/decode/image
のウェブサイトにアクセスします。コピーしたBase64エンコードされた文字列をウェブサイトの "Base64 string" テキストエリアに貼り付けます。
Decode Base64 to Image ボタンをクリックします。
ボタンの下にデコードされた画像が表示され、閲覧またはダウンロードすることができます。

結論
このステップバイステップガイドに従うことで、XIAO ESP32S3 Senseボードを使用してSenseCraft AIプラットフォーム上でMQTTを利用したモデル出力の設定方法を学びました。これで、MQTTを介してモデル推論結果を取得し、それらをアプリケーションやシステムに統合することができます。安定したWi-Fi接続を確保し、MQTTブローカーとクライアント設定を正しく構成して、シームレスな通信を実現することを忘れないでください。
技術サポートと製品ディスカッション
弊社製品をお選びいただき、ありがとうございます!製品をご利用いただく際に、できる限りスムーズな体験を提供するため、さまざまなサポートをご用意しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルを提供しています。