本文來源電子發燒友社區,作者:jyaxz, 帖子地址:https://bbs.elecfans.com/jishu_2308726_1_1.html
基于MQTT的智能環境監視控制器
前一個試用中
https://bbs.elecfans.com/jishu_2307663_1_1.html
利用天啟M1和傳感器采集板S1完成了本地采集和控制功能。
由于天啟M1集成了無線連接wifi控制器,同時支持mqtt的功能,所以對第一個設計升級,使它成為一個網絡化的監視和控制器。
這個想法在試用開始的時候就有,但是一直也沒有很好的解決MQTT的網絡化問題,借著十一的時間,認真的研究了一下,終于可以成功的解決了所有的環節。
本測試包換前置采集和執行器,由天啟M1+S1來完成,采用樹莓派ZeroW架設MQTT的broker,利用Node-Read作為上位的監視和控制部分。
這里重點介紹一下天啟M1的實現。
M1程序介紹
變量創建
這里面創建了三個變量,用來存儲從S1傳感器采集的溫度、濕度和亮度值。
無線網絡連接
利用wifi連接模塊和家里面的路由器建立無線連接,并獲取IP地址。
和MQTT Broker建立連接
無線連接建立后,就可以完成MQTT的連接了,通過和廠家的技術支持連接,第一條本機ID的設置很重要,應該被執行,以前在MQTT連接建立的時候總是出錯,一個原因是這個ID的設置沒有執行,另一個就是MQTT 的 Broker建立的有問題。因此這次我采用了樹莓派ZeroW在局域網內來建立。
這里采用的是mosquitto開源軟件,在樹莓派上編譯并運行。這里我們不詳細介紹在樹莓派上布置mosquitto的相關信息,感興趣的話可以baidu一下,信息還是很多的。
環境參量獲取
這里實現了三個函數,分別是讀取溫度,讀取濕度和讀取亮度。
發布環境變量信息
當讀取完環境參量后,我們向MQTT服務器發布三條信息。
訂閱控制信息及處理
在MQTT鏈接成功建立后,向服務器發布訂閱信息。
通過“接受到的MQTT消息”塊,獲取MQTT的控制信息,由于系統沒有提供更多的處理功能,所以支持選取最簡單的信息內容,采用1-6這6個數字,每個數字分別代表一個控制量,這里模擬RGB小燈的紅燈和綠燈共6個狀態。
MQTT的運行信息監視
通過MQTTX這個軟件,我們可以作為監視調試窗口,看到所有M1的信息發布,和訂閱的控制信息傳輸。
Node-Red搭建的采集和控制系統
node-red系統的搭建大家可以在網上查一下,由于不是重點,這里也不介紹整個系統的搭建過程。
在node-red中搭建的溫度采集和控制流圖。
在dashboard中看到的采集溫度圖和紅綠燈控制接口。
測試總結
實際測試過中,發現M1的MQTT網絡連接效果不是太好,整體運行很難持續較長的時間,基本30分鐘左右會出現斷聯的情況。這種情況是如何發生的,目前還沒有找到原因。
mqtt發布信息和接收控制信息,視頻演示內容,詳見作者原帖子文章。
-
開發板試用
+關注
關注
3文章
301瀏覽量
2124
發布評論請先 登錄
相關推薦
評論