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

XIAO ESP32S3 Sense 向け SenseCraft AI で MQTT を用いてモデル出力を設定する

この Wiki では、SenseCraft AI プラットフォーム上で XIAO ESP32S3 Sense ボードに対して MQTT(Message Queuing Telemetry Transport)を使用してモデル出力を設定する手順をステップバイステップで説明します。MQTT は、デバイス間の効率的な通信を可能にする軽量なメッセージングプロトコルです。本記事の手順に従うことで、MQTT 通信を設定し、XIAO ESP32S3 Sense からモデル推論結果を取得する方法を学ぶことができます。

事前準備

始める前に、以下を用意してください。

  1. XIAO ESP32S3 Sense ボード
  2. XIAO ボードをコンピュータに接続するための USB-C データケーブル
  3. MQTTX などのサードパーティ製 MQTT クライアント(コンピュータにインストール済み)
XIAO ESP32S3 Sense

ステップ 1. XIAO ESP32S3 Sense ワークスペースへアクセスしデバイスを接続する

SenseCraft AI > Models > Workspace > XIAO ESP32S3 Sense の順に進んで XIAO ESP32S3 Sense ワークスペースにアクセスするか、ワークスペースへの直接リンクを使用します。

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

ステップ 2. XIAO ESP32S3 Sense にモデルがロードされていることを確認する

次に進む前に、XIAO ESP32S3 Sense ボードに学習済みモデルがロードされていることを確認してください。まだモデルをロードしていない場合は、SenseCraft AI のドキュメントを参照して、デバイスにモデルを学習・デプロイする方法を確認してください。

独自に学習させたモデルを使用したい場合は、以下の 2 つの Wiki を参照してください。

ステップ 3. MQTT 出力を設定する

ワークスペースページの左サイドバーで 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 でエンコードされた画像をデコードするには、次の手順を実行します。

  1. JSON オブジェクト内の "image" フィールドから base64 エンコードされた文字列をコピーします。

  2. Web ブラウザで https://base64.guru/converter/decode/image にアクセスします。

  3. コピーした base64 エンコード文字列を、Web サイト上の "Base64 string" テキストエリアに貼り付けます。

  4. Decode Base64 to Image ボタンをクリックします。

  5. デコードされた画像がボタンの下に表示され、閲覧またはダウンロードできます。

まとめ

このステップバイステップガイドに従うことで、SenseCraft AI プラットフォーム上で XIAO ESP32S3 Sense ボード向けに MQTT を使用したモデル出力の設定方法を学びました。これで、MQTT を介してモデル推論結果を取得し、自身のアプリケーションやシステムに統合できるようになります。安定した Wi-Fi 接続を確保し、MQTT ブローカーおよびクライアントの設定を正しく行うことで、シームレスな通信が実現できます。

技術サポート & 製品ディスカッション

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

Loading Comments...