前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0-STM32G070+CH395Q基本控制篇(自建物联网平台)-整体运行测试-STM32+CH395Q连接MQTT服务器

0-STM32G070+CH395Q基本控制篇(自建物联网平台)-整体运行测试-STM32+CH395Q连接MQTT服务器

作者头像
杨奉武
发布2022-09-02 11:20:16
1.2K1
发布2022-09-02 11:20:16
举报
文章被收录于专栏:知识分享知识分享

说明

这节测试一下STM32+CH395Q连接MQTT服务器

测试的是连接我的服务器,用户可以根据后面的教程搭建自己的MQTT服务器.

测试

1.使用网线连接路由器或者交换机

2.编译下载这节的程序到开发板 

3.使用单片机串口1打印串口日志(115200)

4.正常运行情况下日志会打印

5.使用MQTT上位机测试通信

6.开发板订阅和发布的主题使用的CH395的MAC地址

设备订阅的主题是: user/MAC地址

设备发布的主题是: device/MAC地址

日志上会打印设备的MAC地址

调试助手上填写

发布的主题填写: user/mac地址

订阅的主题填写: device/mac地址

然后点击连接, 再点击订阅

每隔一段时间会收到设备的数据(设备采集的温湿度数据)

7.使用调试助手发送消息

程序说明

1.关于主要的几个文件说明(后面章节有详细的移植使用说明,用户前期只需要了解即可)

tcp_mqtt文件是处理TCP连接通信和MQTT连接通信的文件;

mqtt文件夹: MQTT协议处理文件,使用环形队列式缓存管理,支持消息等级0,1,2

tcp_client1文件是tcp客户端连接通信程序.

2, 设置CH395工作在SPI模式

3, 初始化CH395

4, CH395的各种事件在这个函数里面执行

5.MQTT本身就是TCP服务器,所以先连接TCP服务器

设置要连接的服务器的地址和端口号

咱连接的地址tcp_mqtt_ip有可能是域名也可能是ip, 使用ch395_strip_tempip函数来处理一下;

如果是ip字符串则会把地址解析到 mqtt_ip_addr 数组,

如果是域名, 则启动DNS解析下域名, 也把地址解析到 mqtt_ip_addr 数组,

下面就是连接TCP服务器

6,接着是MQTT连接通信, MQTT封装成了回调函数的形式

咱一开始的时候已经初始化了

7.连接成功TCP以后,发送MQTT连接协议

8.发送连接协议给服务器以后,服务器会返回连接状态数据

把服务器返回的数据让mqtt_function_connect_ack 函数处理

在连接回调函数里面订阅主题和设置发布的主题

9.只要是连接上了MQTT服务器,咱后续可以在任意的地方调用订阅主题 mqtt_subscribe 或者发布消息 mqtt_publish 函数

 所有的消息都会打包为MQTT协议以后存储到内部缓存里面,然后轮训发送出去

10.接收消息和发送消息

连接MQTT成功以后收到的服务器发送的数据需要让 mqtt_read_function函数处理, 该函数内部会处理消息并调用相应的回调函数

结语

这节测试了基本的MQTT远程通信,在后面的章节中将学习到整个流程是如何实现的.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 说明
    • 这节测试一下STM32+CH395Q连接MQTT服务器
      • 测试的是连接我的服务器,用户可以根据后面的教程搭建自己的MQTT服务器.
      • 测试
        • 1.使用网线连接路由器或者交换机
          • 2.编译下载这节的程序到开发板 
            • 3.使用单片机串口1打印串口日志(115200)
              • 4.正常运行情况下日志会打印
                • 5.使用MQTT上位机测试通信
                  • 6.开发板订阅和发布的主题使用的CH395的MAC地址
                    • 设备订阅的主题是: user/MAC地址
                    • 设备发布的主题是: device/MAC地址
                    • 日志上会打印设备的MAC地址
                    • 调试助手上填写
                    • 发布的主题填写: user/mac地址
                    • 订阅的主题填写: device/mac地址
                    • 然后点击连接, 再点击订阅
                    • 每隔一段时间会收到设备的数据(设备采集的温湿度数据)
                  • 7.使用调试助手发送消息
                  • 程序说明
                    • 1.关于主要的几个文件说明(后面章节有详细的移植使用说明,用户前期只需要了解即可)
                      • tcp_mqtt文件是处理TCP连接通信和MQTT连接通信的文件;
                      • mqtt文件夹: MQTT协议处理文件,使用环形队列式缓存管理,支持消息等级0,1,2
                      • tcp_client1文件是tcp客户端连接通信程序.
                    • 2, 设置CH395工作在SPI模式
                      • 3, 初始化CH395
                        • 4, CH395的各种事件在这个函数里面执行
                          • 5.MQTT本身就是TCP服务器,所以先连接TCP服务器
                            • 设置要连接的服务器的地址和端口号
                            • 咱连接的地址tcp_mqtt_ip有可能是域名也可能是ip, 使用ch395_strip_tempip函数来处理一下;
                            • 如果是ip字符串则会把地址解析到 mqtt_ip_addr 数组,
                            • 如果是域名, 则启动DNS解析下域名, 也把地址解析到 mqtt_ip_addr 数组,
                            • 下面就是连接TCP服务器
                          • 6,接着是MQTT连接通信, MQTT封装成了回调函数的形式
                            • 咱一开始的时候已经初始化了
                          • 7.连接成功TCP以后,发送MQTT连接协议
                            • 8.发送连接协议给服务器以后,服务器会返回连接状态数据
                              • 把服务器返回的数据让mqtt_function_connect_ack 函数处理
                              • 在连接回调函数里面订阅主题和设置发布的主题
                            • 9.只要是连接上了MQTT服务器,咱后续可以在任意的地方调用订阅主题 mqtt_subscribe 或者发布消息 mqtt_publish 函数
                              •  所有的消息都会打包为MQTT协议以后存储到内部缓存里面,然后轮训发送出去
                            • 10.接收消息和发送消息
                              • 连接MQTT成功以后收到的服务器发送的数据需要让 mqtt_read_function函数处理, 该函数内部会处理消息并调用相应的回调函数
                          • 结语
                            • 这节测试了基本的MQTT远程通信,在后面的章节中将学习到整个流程是如何实现的.
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档