完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
准备工作
首先需要下载 MQTT 软件包,并将软件包加入到项目中。在 BSP 目录下使用 menuconfig 命令打开 Env 配置界面,在 RT-Thread online packages → IoT - internet of things 中选择 Paho MQTT 软件包,操作界面如下图所示: 开启功能示例,便于测试 MQTT 功能: 配置项介绍如下: --- Paho MQTT: Eclipse Paho MQTT C/C++ client for Embedded platforms MQTT mode (Pipe mode: high performance and depends on DFS) --->#高级功能 Enable MQTT example #开启 MQTT 功能示例 [ ] Enable MQTT test #开启 MQTT 测试例程 [ ] Enable support tls protocol #开启 TLS 安全传输选项 (1) Max pahomqtt subscribe topic handlers #设置 Topic 最大订阅数量 Enable debug log output #开启调试Log输出 version (latest) ---> #选择软件包版本,默认为最新版选择合适的配置项后,使用 pkgs --update 命令下载软件包并添加到工程中即可。 使用流程 这一节介绍 MQTT 软件包的配置参数和使用方法。 设置代理信息 首先要设置好代理服务器的地址,用户名、密码等必要信息。以 MQTT sample 为例有如下的设置: #define MQTT_URI "tcp://iot.eclipse.org:1883" //设置服务器地址#define MQTT_USERNAME "admin" //代理服务器用户名#define MQTT_PASSWORD "admin" //代理服务器密码#define MQTT_SUBTOPIC "/mqtt/test" //订阅的 Topic#define MQTT_PUBTOPIC "/mqtt/test" //推送的 Topic#define MQTT_WILLMSG "Goodbye!" //设置断开通知消息配置 MQTT 客户端结构体 接下来需要初始化 MQTT 软件包客户端实例,将上一步设定的数据写入客户端实例的配置项,对客户端进行必要的配置,在这一步需要进行如下操作:
配置完成 MQTT 客户端实例后,需要启动客户端,代码示例如下: /* 运行 MQTT 客户端 */paho_mqtt_start(&client);启动 MQTT 客户端之后,客户端会自动连接代理服务器,自动订阅已经设置的 Topic,根据事件执行回调函数进行数据的处理。 向指定 Topic 推送消息 连接服务器成功之后,便可以通过代理服务器向指定的 Topic 推送消息。推送消息时需要设置消息内容、Topic、消息等级等配置,示例代码如下: MQTTMessage message;const char *msg_str = send_str;const char *topic = MQTT_PUBTOPIC; //设置指定 Topicmessage.qos = QOS1; //设置消息等级message.retained = 0;message.payload = (void *)msg_str; //设置消息内容message.payloadlen = strlen(message.payload);MQTTPublish(&client, topic, &message); //开始向指定 Topic 推送消息运行效果 演示示例可以展示连接服务器、订阅 Topic、向指定 Topic 推送消息的功能,如下所示: msh />mq_start /* 启动 MQTT 客户端连接代理服务器 */inter mqtt_connect_callback! /* 连接成功,运行上线回调函数 */ipv4 address port: 1883[MQTT] HOST = 'iot.eclipse.org'msh />[MQTT] Subscribe inter mqtt_online_callback! /* 上线成功,运行在线回调函数 */msh />mq_pub hello-rtthread /* 向指定 Topic 推送消息 */msh />mqtt sub callback: /mqtt/test hello-rtthread /* 收到消息,执行回调函数 */注意事项 需要注意正确填写 MQTT_USERNAME 和 MQTT_PASSWORD ,如果 MQTT_USERNAME 和 MQTT_PASSWORD 填写错误,MQTT 客户端无法正确连接到 MQTT 服务器。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
1591 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1112 浏览 0 评论
1557 浏览 0 评论
1402 浏览 0 评论
1044 浏览 0 评论
74637 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 22:47 , Processed in 0.546172 second(s), Total 71, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号