向 MQTT 服务器发送消息
物联网 (IoT) 系统经常要处理断断续续的、质量不佳的或低速的 Internet 连接。 MQTT 是一种机器到机器 (M2M) 连接协议,它是为了应对此类难题而开发的。
此处使用的 MQTT 客户端库是 Eclipse Paho 项目的一部分,该项目提供了用于通过多种传输方式使用 MQTT 的 API。
学习内容
此项目介绍:
- 如何使用 MQTT 客户端库向 MQTT 代理发送消息。
- 如何将 MXChip Iot DevKit 配置为 MQTT 客户端。
需要什么
完成入门指南来实现以下目的:
- 将 DevKit 连接到 Wi-Fi
- 准备开发环境
打开项目文件夹
如果 DevKit 已连接到计算机,请断开连接。
启动 VS Code。
将 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 将重启并运行草图。
注意
可能会收到“错误:AZ3166:未知程序包”错误消息。 如果未正确刷新板包索引,则会出现此错误。 若要解决此错误,请参阅 IoT DevKit 常见问题解答的开发部分。
测试项目
在 VS Code 中,按照以下过程打开并设置串行监视器:
单击状态栏上的
COM[X]
字样以使用STMicroelectronics
设置正确的 COM 端口:在状态栏上单击电源插头图标以打开串行监视器:
在状态栏上,单击表示波特率的数字并将其设置为
115200
:
串行监视器显示由示例草图发送的所有消息。 该草图将 DevKit 连接到 Wi-Fi。 在 Wi-Fi 连接成功后,该草图会向 MQTT 代理发送一条消息。 之后,示例分别使用 QoS 0 和 QoS 1 重复发送两条“iot.eclipse.org”消息。
问题和反馈
如果遇到问题,请参阅 IoT DevKit 常见问题解答或通过以下渠道进行联系: