XIAO ESP32S3 Sense用SenseCraft AIでのMQTTによるモデル出力の設定
このwiki記事では、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を接続する
Webブラウザを開き、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を参照してください。
ステップ3. MQTT出力を設定する
Vision Workspaceページの左サイドバーで、Outputオプションをクリックします。利用可能な出力オプションからMQTTを選択して、MQTT設定にアクセスします。

ステップ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にアンテナを接続してください。
すべてが正常に設定されている場合、Webサイトで以下の情報を確認できるはずです。

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

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

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

コマンド 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ブローカーとクライアント設定を正しく構成することを忘れないでください。
技術サポート & 製品ディスカッション
弊社製品をお選びいただき、ありがとうございます!弊社製品での体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。さまざまな好みやニーズに対応するため、複数のコミュニケーションチャネルを提供しています。