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

 

 

 

说明

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

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

 

测试

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

 

 

 

 

 

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

 

 

3.开发板上面的串口会打印连接成功的日志

 

 

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

 

 

 

 

 

5.配置说明

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

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

MQTT调试助手上订阅和发布的主题要和设备相反, 如下图我的配置

 

 

 

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

在调试助手上点击连接, 然后点击订阅主题, 然后设置发送的消息,点击发送

 

 

 

 

 

程序说明

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

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

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

 

 

 

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

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

 

 

 

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

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

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

 

 

 

 

 

 

 

 

 

下面就是连接TCP服务器

 

 

 

3,接着是MQTT连接通信, MQTT文件我封装成了回调函数的形式

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

 

 

 

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

 

 

 

 

 

 

5.发送连接协议给服务器以后,如果服务器返回连接成功消息,便会调用MQTT连接成功回调函数

 

 

 

 

 

 

 

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

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

 

 

 

 

 

7.接收消息和发送消息

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

 

 

 

 

 

 

 

结语

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

 

posted on 2020-05-23 04:57  广源时代  阅读(2737)  评论(1编辑  收藏  举报

导航

支付宝 QQ群