说明
这节实现的功能:
STM32 W5500实现MQTT通信控制
细节功能:
1.DHCP动态获取IP
2.DNS域名解析
3.网口<--MQTT-->485/422透传通信
测试准备工作
注:如果想连接自己的服务器测试,请修改为自己的MQTT连接信息
一,按照下面方式短接通信端口
电脑串口<-->STM32串口1
422/485 <-->STM32串口3
二,连接网线(网线另一端连接可以上网的路由器或者交换机)
三,连接485/422通信模块(任选一种即可,下面说明两种接线方式)
3.1: 485连接方式
3.1: 422连接方式
四,打开两个串口调试助手,分别监控STM32串口1和485/422的数据
4.1: 单片机串口1监听配置
4.2: 485/422通信口串口配置
注:之所以这样配置是由于后面章节测试与PLC远程通信所需.
五,打开MQTT调试助手
如果上面程序中修改了MQTT信息,此处请按照自己的修改
六,下载单片机程序
注:hex文件路径
测试
一,正常状态下STM32串口1打印如下
如果使用域名连接,则会经过DHCP->DNS->TCP连接->MQTT连接通信
如果使用IP连接,则会经过DHCP->TCP连接->MQTT连接通信
二,根据设备订阅和发布的主题,设置MQTT调试助手订阅和发布的主题
测试 网口<--MQTT-->485/422 透传通信
测试 MQTT客户端控制开发板两路继电器
一,查询两路继电器的状态
{"data":"switch","bit":"-1","status":"-1"}
设备返回
{"data":"switch","bit":"-1","status":"00"}
00:第一路和第二路状态
二,控制第一路继电器吸合
{"data":"switch","bit":"1","status":"1"}
设备返回
{"data":"switch","bit":"-1","status":"10"}
10:第一路和第二路状态
三,控制第二路继电器吸合
{"data":"switch","bit":"2","status":"1"}
设备返回
{"data":"switch","bit":"-1","status":"11"}
11:第一路和第二路状态
四,同时控制两路继电器指令(用户自行测试)
控制第一路断开,第二路断开
{"data":"switch","bit":"-1","status":"00"}
控制第一路断开,第二路吸合
{"data":"switch","bit":"-1","status":"01"}
控制第一路吸合,第二路断开
{"data":"switch","bit":"-1","status":"10"}
控制第一路吸合,第二路吸合
{"data":"switch","bit":"-1","status":"11"}