ZigBee+ESP8266網關代碼分析和測試記錄
這是一個可以實現自控/手控灌溉的程序:
①終端設備採集土壤溼度傳感器數據 √
②協調器收集終端設備發來的數據 √
③ESP8266將數據上傳至服務器 √
④設置自控/手控模式切換開關,且自控/手控兩種模式互鎖 √
⑤
1)手動控制模式下,服務端發送控制指令可遠程控制終端設備繼電器開/合 √
2)自動控制模式下,終端設備採集的數據達到閾值時自動開/合繼電器 √
控制模式 | 指令 | 繼電器狀態 | 效果 |
---|---|---|---|
L1MODE=1 | L1ON | 1 | 繼電器吸合 |
L1MODE=1 | L1OFF | 0 | 繼電器斷開 |
L1MODE=0 | 數據>80 | 1 | 繼電器吸合 |
L1MODE=0 | 數據<80 | 0 | 繼電器斷開 |
注:L1MODE=1爲手動控制模式;L1MODE=0爲自動控制模式。
後期可自己做一個網頁客戶端出來,網頁客戶端發指令給服務器,服務器再轉發指令給網關(協調器),網關(協調器)下發控制指令給終端設備。
整體流程和思路如下:
以上涉及內容和知識點較多,這裏只講ZigBee+ESP8266網關部分,當然,除了ESP8266,也可以用W5500以太網模塊。
這裏服務器端使用網絡調試助手這個工具進行數據接收和指令發送。
網關設備上電前,先單獨對ESP8266模塊使用串口調試助手發AT指令連接附近的WiFi,然後再插上底板上。
1.設備剛上電時
2.在服務器端使用網絡調試助手發送L1MODE=1指令,設爲手動控制模式
繼續發送L1OFF指令,繼電器斷開。
發送L1ON指令,繼電器吸合。
3.在服務器端使用網絡調試助手發送L1MODE=0指令,切換爲自動控制模式
此時,終端設備檢測到的傳感器數據大於80(自己設定的閾值),繼電器吸合。
當終端設備檢測到的傳感器數據小於80(自己設定的閾值),繼電器斷開。
4.溼度閾值的設置:
代碼太長,就不貼了。
我的核心板是CC2530+RFX2401,帶功放,關於如何開啓功放,可參考我寫的另外一篇博客。
CC2530+RFX2401啓用功放