一
Node-RED環境搭建
Node-RED是構建物聯網(IoT,Internet of Things)應用程序的一個強大工具,其重點是簡化代碼塊的“連接”以執行任務。它使用可視化編程方法,允許開發人員將預定義的代碼塊(稱為“節點”,Node)連接起來執行任務。連接的節點,通常是輸入節點、處理節點和輸出節點的組合,當它們連接在一起時,構成一個“流”(Flows)。
Node-RED網關開發環境安裝流程
docker環境如何部署,網上已經有很多教程,這里不再說明,推薦參考官方安裝說明。
二
項目鏡像安裝
docker安裝項目文件非常的簡單,只需要兩條指令即可實現Node-RED開發環境部署,其中第一條通過“docker pull 存儲庫名稱”,就可以項目鏡像,也可以通過“docker --help”查詢指令說明。
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到容器/數據目錄;
--name mynodered:命名為“mynodered”;
nodered/node-red:鏡像地址;
只使用“Docker run”不先拉取項目鏡像也是可以的,該指令會查詢本地鏡像如果沒有就會自動從Docker Hub存儲庫下載項目鏡像;
其他的自定義安裝建議仔細閱讀Node-RED官方文檔后進行,筆者這里只是介紹這個工具的一種用法,不使用自定義安裝功能。
三
安裝插件
通過Node-RED默認安裝環境是無法實現RTU設備的邊緣采集,還需要通過安裝不同的功能插件才能實現,安裝Modbus功能插件(node-red-contrib-modbus)實現Modbus RTU/Modbus TCP協議轉換和邊緣采集,安裝數據庫插件(node-red-node-mysql)實現邊緣采集數據的存儲,除了安裝插件還需要少量的“javascript”腳本轉換格式和數據上報等。
好在安裝插件的過程可以通過可視化網頁界面實現,無需理解復雜的安裝指令,這也是Node-RED的優點之一,在地址欄中輸入部署Node-RED環境的IP地址和端口,這里為192.168.88.5:1880。
打開右上角的菜單,選擇節點管理,點擊“安裝”,搜索框中輸入Modbus功能插件(node-red-contrib-modbus)和數據庫插件(node-red-node-mysql)。
成功安裝節點后在工具欄新增以下節點:
“node-red-contrib-modbus”節點作者,制作了不同用法的示例,可以通過導入功能,測試理解不同節點的功能,強烈建議多去理解這些實例,方便后續使用。
四
網關實現
添加“Modbus read”節點周期查詢Modbus設備狀態,第一需要配置Modbus設備的地址,筆者這里使用“Modbus Slave”軟件模擬,地址為192.168.88.100:8890:
圖左通過雙擊打開“Modbus read”配置界面,圖右新增Modbus設備連接地址,圖中配置寄存器參數,這里以地址0x0000的保持寄存器為例,配置“Poll Rate”查詢周期。
使用“function”節點提取“Modbus read”節點周期查詢的數據,雙擊打開函數節點,編輯以下腳本:
msg.payload=msg.payload.data;
msg.payload=msg.payload.slice(0,1);
return msg;
使用“template”將“function”節點處理的結果進行打包,這里將數據打包為JSON數據:
最后通過TCP連接將數據傳輸到指定服務器:
“6”為“DEBUG”節點用于調試,通過上述配置就可以將Modbus TCP指令采集到的數據轉換為JSON數據并將數據上報到指定服務器:
也可以通過Node-RED提供的MQTT連接節點將數據傳輸到服務器,同時也可以通過“mysql”節點將將采集數據通過sql語句傳輸到數據庫。
采集上報數據庫與MQTT服務器流程舉例
至此,一個簡單的邊緣采集網關搭建完成。
-
物聯網
+關注
關注
2911文章
44824瀏覽量
375080 -
容器
+關注
關注
0文章
498瀏覽量
22086 -
Docker
+關注
關注
0文章
489瀏覽量
11887
發布評論請先 登錄
相關推薦
評論