SWA2G422&485JK2G基础篇: STM32+W5500实现MQTT通信控制,485/422透传通信

2019-12-10 16:35:18 浏览数 (1)

说明

  这节实现的功能:

  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"}

0 人点赞