03-STM32+W5500+AIR202基本控制篇-功能1-STM32+W5500連接MQTT服務器,實現485,422通信和繼電器控制


 

 

 

說明

這節實現的功能:

  STM32+W5500實現MQTT通信控制,

  通過MQTT調試助手控制開發板兩路繼電器

  485/422接口輸入的數據通過W5500(MQTT) 轉發給MQTT調試助手

  MQTT調試助手發送的信息通過W5500(MQTT)轉發到485/422接口輸出

  細節功能:

  1.DHCP動態獲取IP

  2.DNS域名解析

 

功能演示

1.注:根據自己的修改,默認連接我的服務器

 

 

hex文件路徑

 

 

 

 

2,按照下面方式短接通信端口

 電腦串口 連接 STM32串口1  (注:單片機的串口1作為了Debug端口)

 422/485 連接 STM32串口3

 

 

 

 

 

3.連接網線(網線另一端連接可以上網的路由器或者交換機)

 

 

 

    

 

 

4.連接485/422通信模塊(任選一種即可,下面說明兩種接線方式)

  4.1: 485連接方式

 

    

 

 

  4.2: 422連接方式

   

 

5,打開串口調試助手,分別監控STM32串口1和485/422的數據

  5.1: 單片機串口1監聽配置

    

 

 

    5.2: 485/422通信口串口配置

  

 

 

 

 

 

6,打開MQTT調試助手

    

 

 

  

 

 

    

 

 

    

 

    根據自己的修改,默認連接我的服務器

    

    

 

測試

1.下載好單片機程序以后看一下串口1打印的信息

復位下,單片機

 

 

 

 

 

 

 

2.根據設備訂閱和發布的主題,設置MQTT調試助手訂閱和發布的主題

 

 

 

 

 

 

3.調試助手發送信息

 

 

 

 

4. 485/422接口上傳數據

 

 

 

 

5. 控制開發板兩路繼電器

 

協議規定:

上位機同時控制兩路繼電器協議:  "data":"switch":開關指令;  "bit":"1&2":第一路和第二路

詢問兩路繼電器狀態:  {"data":"switch","bit":"1&2","status":"-1"}

控制兩路繼電器吸合:  {"data":"switch","bit":"1&2","status":"1&1"}

控制兩路繼電器斷開:  {"data":"switch","bit":"1&2","status":"0&0"}

控制第一路吸合,第二路斷開:  {"data":"switch","bit":"1&2","status":"1&0"}

控制第一路斷開,第二路吸合:  {"data":"switch","bit":"1&2","status":"0&1"}

下位機回復兩路繼電器狀態:

第一路斷開,第二路吸合:  {"data":"switch","bit":"1&2","status":"0&1"}

 

    

 

上位機控制一路繼電器協議:  "bit":"1":第一路

詢問第一路繼電器狀態:  {"data":"switch","bit":"1","status":"-1"}

詢問第二路繼電器狀態:  {"data":"switch","bit":"2","status":"-1"}

控制第一路繼電器吸合:  {"data":"switch","bit":"1","status":"1"}

控制第二路繼電器斷開:  {"data":"switch","bit":"2","status":"0"}

下位機回復兩路繼電器狀態:

第一路斷開  {"data":"switch","bit":"1","status":"0"}

第二路吸合  {"data":"switch","bit":"2","status":"1"}

 

 

6. 測試

控制兩路繼電器吸合

{"data":"switch","bit":"1&2","status":"1&1"}

 

 

 

 

 

 

控制兩路繼電器斷開

{"data":"switch","bit":"1&2","status":"0&0"}

 

 

 

 

 

 

控制第一路吸合,第二路斷開

{"data":"switch","bit":"1&2","status":"1&0"}

 

 

 

 

 

控制第一路斷開,第二路吸合

{"data":"switch","bit":"1&2","status":"0&1"}

 

 

 

 

 

 

程序說明

1.STM32唯一碼作為W5500的MAC地址

MAC地址的字符串形式作為 MQTT的ClientID

 

 

 

 

2.網線狀態檢測,DHCP 和 DNS解析

 

 

 

3.連接TCP(MQTT)

 

 

 

 

 

 

4.訂閱主題

 

 

 

5.接收處理消息

 

 

 

提示

程序中打開了3個串口,為保證程序的執行效率,程序中使用了緩存處理

注:串口1作為日志輸出口,為保證全部打印所有的運行日志,發送數據采用的環形隊列

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM