向 MQTT 服务器发送消息

物联网 (IoT) 系统经常要处理断断续续的、质量不佳的或低速的 Internet 连接。 MQTT 是一种机器到机器 (M2M) 连接协议,它是为了应对此类难题而开发的。

此处使用的 MQTT 客户端库是 Eclipse Paho 项目的一部分,该项目提供了用于通过多种传输方式使用 MQTT 的 API。

学习内容

此项目介绍:

  • 如何使用 MQTT 客户端库向 MQTT 代理发送消息。
  • 如何将 MXChip Iot DevKit 配置为 MQTT 客户端。

需要什么

完成入门指南来实现以下目的:

  • 将 DevKit 连接到 Wi-Fi
  • 准备开发环境

打开项目文件夹

  1. 如果 DevKit 已连接到计算机,请断开连接。

  2. 启动 VS Code。

  3. 将 DevKit 连接到计算机。

打开 MQTTClient 示例

展开左侧的“ARDUINO 示例”部分,浏览到“MXCHIP AZ3166 的示例”>“MQTT”,然后选择“MQTTClient”。 此时会打开一个新的 VS Code 窗口,其中包含一个项目文件夹。

注意

也可以从命令面板打开示例。 使用 Ctrl+Shift+P(macOS: Cmd+Shift+P)打开命令面板,键入“Arduino”,然后找到并选择“Arduino: Examples”。

生成 Arduino 草图并将其上传到 DevKit

键入 Ctrl+P(macOS:Cmd+P)以运行 task device-upload。 上传完成后,DevKit 将重启并运行草图。

device-upload

注意

可能会收到“错误:AZ3166:未知程序包”错误消息。 如果未正确刷新板包索引,则会出现此错误。 若要解决此错误,请参阅 IoT DevKit 常见问题解答的开发部分

测试项目

在 VS Code 中,按照以下过程打开并设置串行监视器:

  1. 单击状态栏上的 COM[X] 字样以使用 STMicroelectronics 设置正确的 COM 端口:set-com-port

  2. 在状态栏上单击电源插头图标以打开串行监视器:serial-monitor

  3. 在状态栏上,单击表示波特率的数字并将其设置为 115200set-baud-rate

串行监视器显示由示例草图发送的所有消息。 该草图将 DevKit 连接到 Wi-Fi。 在 Wi-Fi 连接成功后,该草图会向 MQTT 代理发送一条消息。 之后,示例分别使用 QoS 0 和 QoS 1 重复发送两条“iot.eclipse.org”消息。

serial-output

问题和反馈

如果遇到问题,请参阅 IoT DevKit 常见问题解答或通过以下渠道进行联系:

另请参阅