0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Docker容器實現(xiàn)邊緣采集

億佰特物聯(lián)網(wǎng)應(yīng)用專家 ? 2023-12-15 08:20 ? 次閱讀

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

Node-RED是構(gòu)建物聯(lián)網(wǎng)IoT,Internet of Things)應(yīng)用程序的一個強(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)它們連接在一起時,構(gòu)成一個“流”(Flows)。

ce2c249e-9adf-11ee-9788-92fbcf53809c.png

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

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


項目鏡像安裝

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

ce3e8b3e-9adf-11ee-9788-92fbcf53809c.png

docker --help指令(部分)


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

要以最簡單的形式在 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:打印安裝會話,可以省略;

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

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

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

nodered/node-red:鏡像地址;

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

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

安裝插件

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

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

ce4dcaea-9adf-11ee-9788-92fbcf53809c.png

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

ce6e8320-9adf-11ee-9788-92fbcf53809c.png

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

ce8475a4-9adf-11ee-9788-92fbcf53809c.png

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

ce9e4524-9adf-11ee-9788-92fbcf53809c.png

網(wǎng)關(guān)實現(xiàn)

ceb620f4-9adf-11ee-9788-92fbcf53809c.png

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

cec679a4-9adf-11ee-9788-92fbcf53809c.png

圖左通過雙擊打開“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ù):

cedc324e-9adf-11ee-9788-92fbcf53809c.png

最后通過TCP連接將數(shù)據(jù)傳輸?shù)街付ǚ?wù)器:

ceef5b62-9adf-11ee-9788-92fbcf53809c.png

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

cf01556a-9adf-11ee-9788-92fbcf53809c.png

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

cf22dd70-9adf-11ee-9788-92fbcf53809c.png

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


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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2894

    文章

    43316

    瀏覽量

    366518
  • 容器
    +關(guān)注

    關(guān)注

    0

    文章

    490

    瀏覽量

    21986
  • Docker
    +關(guān)注

    關(guān)注

    0

    文章

    446

    瀏覽量

    11738
收藏 人收藏

    評論

    相關(guān)推薦

    如何使用 Docker容器化技術(shù)

    對于開發(fā)人員來說,Docker肯定都不陌生,今天小編帶大家重新學(xué)習(xí)一下Docker。 什么是 Docker 官話: Docker 是一種開源的容器
    的頭像 發(fā)表于 09-30 11:24 ?1.6w次閱讀

    Node-RED實現(xiàn)電表數(shù)據(jù)采集并上云

    容器實現(xiàn)邊緣采集”。前文指引:《【教程】圖文詳解!Docker容器
    的頭像 發(fā)表于 06-07 08:21 ?2462次閱讀
    Node-RED<b class='flag-5'>實現(xiàn)</b>電表數(shù)據(jù)<b class='flag-5'>采集</b>并上云

    ARM平臺實現(xiàn)Docker容器技術(shù)

    及依賴包到一個可移植的鏡像中,然后發(fā)布到任何流行的Linux或Windows機(jī)器上,亦可實現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會有任何接口。使用Docker,可像管理應(yīng)用程序一樣管理基礎(chǔ)結(jié)構(gòu)
    發(fā)表于 07-17 11:05

    ARM平臺實現(xiàn)Docker容器技術(shù)

    及依賴包到一個可移植的鏡像中,然后發(fā)布到任何流行的Linux或Windows機(jī)器上,亦可實現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會有任何接口。使用Docker,可像管理應(yīng)用程序一樣管理基礎(chǔ)結(jié)構(gòu)
    發(fā)表于 07-25 14:36

    如何在Docker中創(chuàng)建容器

    Docker是一個開源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建一個輕量級的、可移植的、自給自足的容器。開發(fā)者在筆記本上編譯測試通過的容器可以批量地在生產(chǎn)環(huán)境中部署,包括VMs(虛擬機(jī))、bare metal
    發(fā)表于 01-03 15:58

    理解Docker容器并暢玩docker

    !命令行!玩docker,簡單幾句命令就夠了。Docker容器響應(yīng)迅速,執(zhí)行迅速,回憶一下VM啟動要多久?最佳的試驗場所,想怎么玩怎么玩,rm -rf /* 根本不是大問題。主機(jī)上刪掉容器
    發(fā)表于 11-05 09:54

    請問docker容器如何查看日志?

    docker容器如何查看日志
    發(fā)表于 11-19 07:29

    Docker容器管理命令(一)

    1、Docker容器管理命令的使用方法查看當(dāng)前主機(jī)本地docker鏡像:啟動容器必須依賴鏡像,所以要獲取到鏡像的唯一標(biāo)識docker
    發(fā)表于 04-20 17:55

    Docker容器管理命令(二)

    1、Docker容器管理命令的使用方法批量刪除docker 容器docker cp命令docker
    發(fā)表于 04-21 11:31

    基于DOCKER容器的ELK日志收集系統(tǒng)分析

    針對Docker容器集群中日志的收集和集中處理的問題。本文采用Docker Swarm和Etcd實現(xiàn)容器的管理、服務(wù)發(fā)現(xiàn)以及調(diào)度,并為分布式
    發(fā)表于 11-06 14:15 ?3次下載
    基于<b class='flag-5'>DOCKER</b><b class='flag-5'>容器</b>的ELK日志收集系統(tǒng)分析

    docker容器刪除后數(shù)據(jù)還在嗎

    Docker作為一個容器化平臺,提供了輕量級的虛擬化解決方案,能夠方便地創(chuàng)建、部署和管理應(yīng)用程序。然而,對于Docker容器的數(shù)據(jù)持久性是一個令人關(guān)注的問題。當(dāng)我們刪除一個
    的頭像 發(fā)表于 11-23 09:32 ?1479次閱讀

    docker容器容器之間通信

    Docker是一種輕量級容器化技術(shù),能夠?qū)?yīng)用程序及其依賴項封裝在一個獨(dú)立、可移植的容器中。而容器化的應(yīng)用程序通常是以分布式方式設(shè)計的,因此實現(xiàn)
    的頭像 發(fā)表于 11-23 09:36 ?1245次閱讀

    docker進(jìn)入容器的方法有哪些

    Docker是一種流行的容器化平臺,它能夠快速構(gòu)建、交付和運(yùn)行應(yīng)用程序。在使用Docker時,我們經(jīng)常需要進(jìn)入容器進(jìn)行調(diào)試、管理和運(yùn)行命令等操作。本文將詳細(xì)介紹
    的頭像 發(fā)表于 11-23 09:45 ?8963次閱讀

    docker容器有幾種狀態(tài)

    Docker 是一種流行的容器化平臺,它能夠幫助開發(fā)人員將應(yīng)用程序和其依賴打包成一個獨(dú)立的容器,并且能夠在不同的環(huán)境中進(jìn)行部署和運(yùn)行。在 Docker 中,
    的頭像 發(fā)表于 11-23 09:50 ?1785次閱讀

    ARM平臺實現(xiàn)Docker容器技術(shù)

    ,亦可實現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會有任何接口。使用Docker,可像管理應(yīng)用程序一樣管理基礎(chǔ)結(jié)構(gòu)。通過利用Docker的快速發(fā)布、測試和部署代碼的方法,可顯著減少產(chǎn)
    的頭像 發(fā)表于 03-07 13:48 ?573次閱讀
    ARM平臺<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>Docker</b><b class='flag-5'>容器</b>技術(shù)