ID.LODA 发表于 2020-9-5 17:26

【ESP32-S2-Kaluga-1测评】mqtt 组件连接 onenet

通过 mqtt 方式连接 onenet 云,没有在例程里面看到 mqtt 的例程,有点不应该啊,但是在 IDF SDK 的 examples 目录下其实是有的,而且在工程的默认配置选项里可以看到 mqtt 的配置,所以应该添加对应的库就能直接使用,直接把例程的代码复制过来,替换前一节 httpss_request 的例程即可

1. MQTT的使用并不复杂,从例程的代码结构也也看出来
- 1.1.首先在主函数里面初始化启动必须的外设,然后初始化mqtt

- 1.2.mqtt的初始化主要涉及一个重要的结构体 `esp_mqtt_client_config_t`,和一个关键的消息回调函数`esp_mqtt_client_register_event`,完成这个的点的设置和实现,就能顺利使用mqtt


- 1.3.消息回调函数会返回各种类型的消息事件,如连接状态,推送消息反馈,订阅消息通知等,用户可以根据自己需要实现相应的处理



## 修改例程适配 ONENET 云
1. 打开配置界面,修改例程配置里,WiFI 的账户密码,这里注意有些 mqtt 的服务器不支持 websocket 的方式,记得反选,如果没用加密项也需要反选

1. 修改需要连接的服务器地址端口等,client_id,username,password 都是根据你在 ONENET 平台建立的产品来的,具体可以去看 onenet 的官方文档

1. 修改处理信息的回调函数,例程是在连接成功消息内,订阅和发布消息,我们测试就在这里简单修改下,适配 onenet 平台的需求

1. 编译运行,输出如下,可以看到服务器已经连接成功,而且收到了订阅的 topic 信息,错误是因为,平台需要发送的信息需要走 json 格式,我这里发送的信息不符合格式


1. 以上就是 mqtt 的使用
页: [1]
查看完整版本: 【ESP32-S2-Kaluga-1测评】mqtt 组件连接 onenet