Skip to main content

在 SenseCraft AI 上为 XIAO ESP32S3 Sense 配置通过 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. 安装在电脑上的第三方 MQTT 客户端,例如 MQTTX
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 文档,了解如何在设备上训练和部署模型。

如果你想使用自己训练的模型,可以参考以下两个 Wiki。

步骤 3. 配置 MQTT 输出​

在工作区页面左侧边栏中,点击 Output 选项。在可用的输出选项中选择 MQTT,进入 MQTT 配置界面。

步骤 4. 设置 MQTT 配置​

点击 MQTT 输出区域底部的 Configuration 按钮。此时会弹出一个配置窗口,提示你输入以下信息:

  • SSID:输入你的 Wi-Fi 网络名称。
  • Password:输入你的 Wi-Fi 网络密码。
  • Encryption:选择你的 Wi-Fi 网络加密类型(例如 AUTO)。
  • MQTT:选择 "Yes" 以启用 MQTT 通信。

填写 MQTT 配置字段:

  • Host:输入你的 MQTT Broker 的主机名或 IP 地址(例如 broker.emqx.io)。
  • Port:指定 MQTT 通信使用的端口号(例如 1883)。
  • Client ID:为你的 XIAO ESP32S3 Sense 提供一个唯一的客户端 ID(例如 xiao_esp32s3)。
  • User Name:如果 MQTT Broker 需要认证,输入你的 MQTT 用户名。
  • Password:如果 MQTT Broker 需要认证,输入你的 MQTT 密码。
  • SSL:选择是否启用 SSL 加密。如果你的 MQTT Broker 支持 SSL,可以选择 "Yes" 以增强通信安全性。

点击 Apply 按钮保存配置。

caution

此步骤需要网络连接,请为 XIAO ESP32S3 Sense 接上天线。

如果一切配置顺利,你应该可以在网页上看到如下信息。

步骤 5. 配置 MQTT 客户端(MQTTX)​

在电脑上启动 MQTTX 应用。

创建一个新连接,并进行如下设置:

  • Host:输入与 SenseCraft AI 平台中相同的主机名或 IP 地址(例如 broker.emqx.io)。
  • Port:指定 MQTT 通信使用的端口号(例如 1883)。
  • Client ID:为你的 MQTTX 实例提供一个唯一的客户端 ID(例如 seeed_computer)。

点击 Connect 按钮,与 MQTT Broker 建立连接。

步骤 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 上触发模型推理。

tip

请确保你发送的是正确的主题。

如果你发现仍然没有任何模型识别相关的数据上报,可以尝试以 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 格式的详细说明,请阅读**此处**的文档。

tip

在设备固件中,已经定义了一套通信协议,用于规定模型结果输出的格式,以及用户可以对模型执行的操作。由于篇幅原因,我们不会在本 Wiki 中展开这些协议的具体细节,而是会通过 Github 上的文档来详细说明这一部分。如果你对更深入的开发感兴趣,请前往 这里。

要对 base64 编码的图像进行解码:

  1. 从 JSON 对象中的 "image" 字段复制 base64 编码的字符串。

  2. 在浏览器中访问网站 https://base64.guru/converter/decode/image。

  3. 将复制的 base64 编码字符串粘贴到网站上的 "Base64 string" 文本区域中。

  4. 点击 Decode Base64 to Image 按钮。

  5. 解码后的图像会显示在按钮下方,你可以查看或下载它。

总结​

通过完成本分步指南,你已经学会了如何在 SenseCraft AI 平台上,为 XIAO ESP32S3 Sense 开发板配置通过 MQTT 输出模型结果。现在,你可以通过 MQTT 获取模型推理结果,并将其集成到你的应用或系统中。请记得确保 Wi-Fi 连接稳定,并正确配置 MQTT Broker 和客户端的相关设置,以实现流畅的通信。

技术支持与产品讨论​

感谢你选择我们的产品!我们将为你提供多种支持,确保你在使用我们产品的过程中尽可能顺利。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...