之前我們發(fā)布的《串口服務器基于EMQX平臺自建MQTT服務器實現(xiàn)通訊教程》一文中簡單的介紹了安裝Docker以及在Docker中部署EMQX 服務教程,也介紹了Docker系列優(yōu)勢優(yōu)點及其安裝部署教程,本文我們將通過Node-RED環(huán)境搭建、項目鏡像實現(xiàn)docker安裝、安裝Modbus功能插件、邊緣計算網(wǎng)關配置等教程詳細的介紹了Docker容器實現(xiàn)邊緣采集網(wǎng)關搭建案例教程。
Node-RED是構建物聯(lián)網(wǎng)(IOT, Internet of Things)應用程序的一個強大工具,其重點是簡化代碼塊的“連接”以執(zhí)行任務。它使用可視化編程方法,允許開發(fā)人員將預定義的代碼塊(稱為“節(jié)點”,Node)連接起來執(zhí)行任務。連接的節(jié)點,通常是輸入節(jié)點、處理節(jié)點和輸出節(jié)點的組合,當它們連接在一起時,構成一個“流”(Flows)。
圖1 Node-RED網(wǎng)關開發(fā)環(huán)境安裝流程
docker環(huán)境如何部署,網(wǎng)上已經(jīng)有很多教程,這里不在說明,推薦參考官方安裝說明,地址:https://docs.docker.com/engine/install/centos/(國內(nèi)可能訪問比較慢),也可以在阿里云的文檔中心查看如何部署docker環(huán)境。
docker安裝項目文件非常的簡單,只需要兩條指令即可實現(xiàn)Node-RED開發(fā)環(huán)境部署,其中第一條通過“docker pull 存儲庫名稱”,就可以項目鏡像,也可以通過“docker --help”查詢指令說明。
圖2 docker --help指令(部分)
從Node-RED 1.0開始,Docker Hub上的存儲庫已重命名為“nodered/node-red”,使用“docker pull nodered/node-red”拉取項目鏡像。
要以最簡單的形式在Docker 中運行,只需運行:
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red
讓我們解讀下指令:
docker run:運行容器;
-it:打印安裝會話,可以省略;
-p:配置本地端口和外部映射端口;
-v node_red_data:/data:掛載一個名為“node_red_data”的docker到容器/數(shù)據(jù)目錄;
--name mynodered:命名為“mynodered”;
nodered/node-red:鏡像地址;
只使用“Docker run”不先拉取項目鏡像也是可以的,該指令會查詢本地鏡像如果沒有就會自動從Docker Hub存儲庫下載項目鏡像;
其他的自定義安裝建議仔細閱讀Node-RED官方文檔(https://nodered.org/docs/)后進行,我這里只是介紹這個工具的一種用法就不使用自定義安裝功能;
通過Node-RED默認安裝環(huán)境是無法實現(xiàn)RTU設備的邊緣采集,還需要通過安裝不同的功能插件才能實現(xiàn),安裝Modbus功能插件(node-red-contrib-modbus)實現(xiàn)Modbus RTU/Modbus TCP協(xié)議轉換和邊緣采集,安裝數(shù)據(jù)庫插件(node-red-node-mysql)實現(xiàn)邊緣采集數(shù)據(jù)的存儲,除了安裝插件還需要少量的“javascript”腳本轉換格式和數(shù)據(jù)上報等。
好在安裝插件的過程可以通過可視化網(wǎng)頁界面實現(xiàn),無需理解復雜的安裝指令,這也是Node-RED的優(yōu)點之一,在地址欄中輸入部署Node-RED環(huán)境的IP地址和端口,我這里為192.168.88.5:1880。
打開右上腳的菜單,選擇節(jié)點管理,點擊“安裝”,搜索框中輸入Modbus功能插件(node-red-contrib-modbus)和數(shù)據(jù)庫插件(node-red-node-mysql)。
安裝成功節(jié)點后在工具欄新增以下節(jié)點:
“node-red-contrib-modbus”節(jié)點作者,制作了不同用法的示例,可以通過導入功能,測試理解不同節(jié)點的功能,強烈建議多去理解這些實例,方便后續(xù)使用;
添加“Modbus read”節(jié)點周期查詢Modbus設備狀態(tài),第一需要配置Modbus設備的地址我這里使用“Modbus Slave”軟件模擬,地址為192.168.88.100:8890:
圖左通過雙擊打開“Modbus read”配置界面,圖右新增Modbus設備連接地址,圖中配置寄存器參數(shù),這里以地址0x0000的保持寄存器為例,配置“Poll Rate”查詢周期。
使用“function”節(jié)點提取“Modbus read”節(jié)點周期查詢的數(shù)據(jù),雙擊打開函數(shù)節(jié)點,編輯以下腳本:
msg.payload=msg.payload.data;
msg.payload=msg.payload.slice(0,1);
return msg;
使用“template”將“function”節(jié)點處理的結果進行打包,我這里將數(shù)據(jù)打包為JSON數(shù)據(jù):
最后通過TCP連接將數(shù)據(jù)傳輸?shù)街付ǚ掌鳎?/span>
“6”為“DEBUG”節(jié)點用于調(diào)試,通過上述配置就可以將Modbus TCP指令采集到的數(shù)據(jù)轉換為JSON數(shù)據(jù)并將數(shù)據(jù)上報到指定服務器:
也可以通過Node-RED提供的MQTT連接節(jié)點將數(shù)據(jù)傳輸?shù)椒掌鳎瑫r也可以通過“mysql”節(jié)點將將采集數(shù)據(jù)通過sql語句傳輸?shù)綌?shù)據(jù)庫。
采集上報數(shù)據(jù)庫與MQTT服務器流程舉例。至此,一個簡單的邊緣采集網(wǎng)關搭建完成。
今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動化的發(fā)展,提升資源利用率,更多邊緣計算網(wǎng)關產(chǎn)品和邊緣技術技術資料信息,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)進行了解,也可以直接撥打400電話咨詢技術專員!
什么是邊緣計算網(wǎng)關?邊緣計算網(wǎng)關有什么特點?
7 X 24 銷售服務熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 無錫辦事處劉經(jīng)理:13558641933
成都總部銷售經(jīng)理:
秦 科(無線模塊):18884314654 馮子恒(無線模塊):18828049434
蔡友銀(無線模塊):13882211021 葛宇龍(通信設備):19138800613
胡兵(外貿(mào)銷售經(jīng)理):18584911141、 sales06@ebyte.com
業(yè)務郵箱:support@cdebyte.com 全國銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號B5棟(前臺座機:028-61543675)
?? 成都億佰特電子科技有限公司【版權所有】 蜀ICP備13019384號