加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 二、項(xiàng)目鏡像安裝
    • 三、安裝插件
    • 四、網(wǎng)關(guān)實(shí)現(xiàn)
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

【教程】圖文詳解!Docker容器實(shí)現(xiàn)邊緣采集

2023/12/15
2662
閱讀需 7 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

一、Node-RED環(huán)境搭建

Node-RED是構(gòu)建物聯(lián)網(wǎng)(IoT,Internet of Things)應(yīng)用程序的一個(gè)強(qiáng)大工具,其重點(diǎn)是簡化代碼塊的“連接”以執(zhí)行任務(wù)。它使用可視化編程方法,允許開發(fā)人員將預(yù)定義的代碼塊(稱為“節(jié)點(diǎn)”,Node)連接起來執(zhí)行任務(wù)。連接的節(jié)點(diǎn),通常是輸入節(jié)點(diǎn)、處理節(jié)點(diǎn)和輸出節(jié)點(diǎn)的組合,當(dāng)它們連接在一起時(shí),構(gòu)成一個(gè)“流”(Flows)。

?Node-RED網(wǎng)關(guān)開發(fā)環(huán)境安裝流程

docker環(huán)境如何部署,網(wǎng)上已經(jīng)有很多教程,這里不再說明,推薦參考官方安裝說明。

地址:https://docs.docker.com/engine/install/centos/(國內(nèi)可能訪問比較慢),也可以在阿里云的文檔中心查看如何部署docker環(huán)境。

二、項(xiàng)目鏡像安裝

docker安裝項(xiàng)目文件非常的簡單,只需要兩條指令即可實(shí)現(xiàn)Node-RED開發(fā)環(huán)境部署,其中第一條通過“docker pull 存儲(chǔ)庫名稱”,就可以項(xiàng)目鏡像,也可以通過“docker --help”查詢指令說明。

docker --help指令(部分)

從Node-RED 1.0開始,Docker Hub上的存儲(chǔ)庫已重命名為“nodered/node-red”,使用“docker pull nodered/node-red”拉取項(xiàng)目鏡像。

要以最簡單的形式在 Docker 中運(yùn)行,只需運(yùn)行:

docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red

讓我們解讀下指令:

docker run:運(yùn)行容器;

-it:打印安裝會(huì)話,可以省略;

-p:配置本地端口和外部映射端口;

-v node_red_data:/data:掛載一個(gè)名為“node_red_data”的docker到容器/數(shù)據(jù)目錄;

--name mynodered:命名為“mynodered”;

nodered/node-red:鏡像地址;

只使用“Docker run”不先拉取項(xiàng)目鏡像也是可以的,該指令會(huì)查詢本地鏡像如果沒有就會(huì)自動(dòng)從Docker Hub存儲(chǔ)庫下載項(xiàng)目鏡像;

其他的自定義安裝建議仔細(xì)閱讀Node-RED官方文檔(https://nodered.org/docs/)后進(jìn)行,筆者這里只是介紹這個(gè)工具的一種用法,不使用自定義安裝功能。

三、安裝插件

通過Node-RED默認(rèn)安裝環(huán)境是無法實(shí)現(xiàn)RTU設(shè)備的邊緣采集,還需要通過安裝不同的功能插件才能實(shí)現(xiàn),安裝Modbus功能插件(node-red-contrib-modbus)實(shí)現(xiàn)Modbus RTU/Modbus TCP協(xié)議轉(zhuǎn)換和邊緣采集,安裝數(shù)據(jù)庫插件(node-red-node-mysql)實(shí)現(xiàn)邊緣采集數(shù)據(jù)的存儲(chǔ),除了安裝插件還需要少量的“javascript”腳本轉(zhuǎn)換格式和數(shù)據(jù)上報(bào)等。

好在安裝插件的過程可以通過可視化網(wǎng)頁界面實(shí)現(xiàn),無需理解復(fù)雜的安裝指令,這也是Node-RED的優(yōu)點(diǎn)之一,在地址欄中輸入部署Node-RED環(huán)境的IP地址和端口,這里為192.168.88.5:1880。

打開右上角的菜單,選擇節(jié)點(diǎn)管理,點(diǎn)擊“安裝”,搜索框中輸入Modbus功能插件(node-red-contrib-modbus)和數(shù)據(jù)庫插件(node-red-node-mysql)。

成功安裝節(jié)點(diǎn)后在工具欄新增以下節(jié)點(diǎn):

“node-red-contrib-modbus”節(jié)點(diǎn)作者,制作了不同用法的示例,可以通過導(dǎo)入功能,測試?yán)斫獠煌?jié)點(diǎn)的功能,強(qiáng)烈建議多去理解這些實(shí)例,方便后續(xù)使用。

四、網(wǎng)關(guān)實(shí)現(xiàn)

添加“Modbus read”節(jié)點(diǎn)周期查詢Modbus設(shè)備狀態(tài),第一需要配置Modbus設(shè)備的地址,筆者這里使用“Modbus Slave”軟件模擬,地址為192.168.88.100:8890:

圖左通過雙擊打開“Modbus read”配置界面,圖右新增Modbus設(shè)備連接地址,圖中配置寄存器參數(shù),這里以地址0x0000的保持寄存器為例,配置“Poll Rate”查詢周期。

使用“function”節(jié)點(diǎn)提取“Modbus read”節(jié)點(diǎn)周期查詢的數(shù)據(jù),雙擊打開函數(shù)節(jié)點(diǎn),編輯以下腳本:

msg.payload=msg.payload.data;

msg.payload=msg.payload.slice(0,1);

return msg;

使用“template”將“function”節(jié)點(diǎn)處理的結(jié)果進(jìn)行打包,這里將數(shù)據(jù)打包為JSON數(shù)據(jù):

最后通過TCP連接將數(shù)據(jù)傳輸到指定服務(wù)器

“6”為“DEBUG”節(jié)點(diǎn)用于調(diào)試,通過上述配置就可以將Modbus TCP指令采集到的數(shù)據(jù)轉(zhuǎn)換為JSON數(shù)據(jù)并將數(shù)據(jù)上報(bào)到指定服務(wù)器:

也可以通過Node-RED提供的MQTT連接節(jié)點(diǎn)將數(shù)據(jù)傳輸?shù)椒?wù)器,同時(shí)也可以通過“mysql”節(jié)點(diǎn)將將采集數(shù)據(jù)通過sql語句傳輸?shù)綌?shù)據(jù)庫。

采集上報(bào)數(shù)據(jù)庫與MQTT服務(wù)器流程舉例

至此,一個(gè)簡單的邊緣采集網(wǎng)關(guān)搭建完成。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
KSZ9893RNXI-TR 1 Microchip Technology Inc Ethernet Transceiver
$79.88 查看
KSZ9031RNXVA-TR 1 Microchip Technology Inc Ethernet Transceiver
暫無數(shù)據(jù) 查看
KSZ8041FTLI-TR 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, PQFP48

ECAD模型

下載ECAD模型
$2.95 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜