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

搭載OpenHarmony操作系統(tǒng),視美泰SC-3568HA開發(fā)板免費試用

基于RK處理器,創(chuàng)龍TL3562-MiniEVM開發(fā)板試用體驗

性能強悍!合眾HZ-RK3568開發(fā)板試用體驗

有獎丨米爾 NXP i.MX91開發(fā)板免費試用來啦


免費丨米爾 STM32MP257開發(fā)板有獎試用

基于瑞薩R7FA2E1A72DFL的可觸摸燈帶控制器設(shè)計

追加名額丨米爾瑞芯微RK3576開發(fā)板有獎試用

評論