將Node-RED應(yīng)用到物聯(lián)網(wǎng)和邊緣計(jì)算場(chǎng)景
如今,我們所有人都以這樣或那樣的方式使用物聯(lián)網(wǎng),而且這種使用在不久的將來(lái)只會(huì)增長(zhǎng)。本文詳細(xì)介紹了 Node-RED 這個(gè)功能強(qiáng)大且易于使用的編程平臺(tái)如何幫助實(shí)施物聯(lián)網(wǎng)和邊緣計(jì)算。

物聯(lián)網(wǎng) (IoT) 在當(dāng)今世界無(wú)所不在。下面列出了它占主導(dǎo)地位的幾個(gè)領(lǐng)域:
- 智慧健康醫(yī)療服務(wù):智能救護(hù)車(chē)、醫(yī)院管理、智能藥控等。
 - 智慧城市:智能交通控制、智能收費(fèi)站、污染監(jiān)測(cè)、水質(zhì)管理、自動(dòng)駕駛汽車(chē)、無(wú)人機(jī)、執(zhí)法、節(jié)能等。個(gè)人應(yīng)用:智能健康、防盜、控制家電等。
 - 零售行業(yè):自動(dòng)結(jié)賬、物流監(jiān)控與管理等。
 - 農(nóng)業(yè):作物分析、動(dòng)態(tài)配水、智能灌溉、農(nóng)場(chǎng)監(jiān)控、智能農(nóng)業(yè)無(wú)人機(jī)、農(nóng)業(yè)機(jī)器人等。
 
許多其他領(lǐng)域也與物聯(lián)網(wǎng)領(lǐng)域相關(guān),特別是正在開(kāi)發(fā)智能機(jī)器人應(yīng)用程序的領(lǐng)域。萬(wàn)物互聯(lián)(IoE)是智能應(yīng)用的另一個(gè)術(shù)語(yǔ),是物聯(lián)網(wǎng)與云和萬(wàn)維網(wǎng)的集成,用于設(shè)備的實(shí)時(shí)連接。
許多編程平臺(tái)可用于處理 IoT、IoE、霧或邊緣場(chǎng)景,還提供數(shù)百個(gè)功能強(qiáng)大且易于用于動(dòng)態(tài)研究的工具包,以下是一些常見(jiàn)的平臺(tái)軟件:
軟件  | URL  | 使用場(chǎng)景  | 
Node-RED  | nodered.org  | 基于流程的編程環(huán)境  | 
Contiki  | contiki-os.org  | 微控制器、IPv6、IPv4、原線(xiàn)程、低資源、游戲機(jī)  | 
FlowHub  | flowhub.io  | 基于流程的物聯(lián)網(wǎng)編程  | 
NoFloJS  | noflojs.org  | 基于JavaScript的流程編程  | 
Netron  | github.com/lutzroeder/netron  | 動(dòng)態(tài)可視化  | 
PyFlow  | wonderworks-software.github.io/PyFlow  | 可視化腳本  | 
Yet another robot platform (YARP)  | yarp.it  | 機(jī)器人編程  | 
OROCOS  | orocos.org  | 機(jī)器人編程和機(jī)器控制  | 
OpenIoT  | openiot.eu  | 傳感即服務(wù) (S2aaS)  | 
Zetta  | zettajs.org  | WebSocket 編程、TCP 實(shí)時(shí)、反應(yīng)式編程、低開(kāi)銷(xiāo)場(chǎng)景  | 
DSA  | iot-dsa.org  | 實(shí)時(shí)接口、設(shè)備間通信、多層編程  | 
IoTivity  | iotivity.org  | 受限應(yīng)用協(xié)議 (CoAP)、物聯(lián)網(wǎng)編程  | 
CupCarbon  | cupcarbon.com  | 智慧城市、SCI-WSN 模擬、可視化、2D 和 3D OpenStreetMap、MQTT 編程、傳感器編程  | 
KAA  | kaaproject.org  | 數(shù)據(jù)分析、實(shí)時(shí)應(yīng)用、動(dòng)態(tài)通信和更新  | 
Node-RED
Node-RED:基于流程的 IoT 場(chǎng)景編程工具
Node-RED ( https://nodered.org/ ) 是一個(gè)功能強(qiáng)大且易于使用的編程平臺(tái),用于模擬 IoT 場(chǎng)景。霧和邊緣計(jì)算也可以使用 Node-RED 中基于流的編程來(lái)完成。這里,可以使用最少的編碼來(lái)實(shí)現(xiàn)高性能結(jié)構(gòu)。安裝和工作Node-RED 是一個(gè)安裝在 Node.js 平臺(tái)上的專(zhuān)用軟件包。后者是一個(gè)基于JavaScript的輕量級(jí)但高性能的編程環(huán)境。Node.js 中提供了許多適用于多種應(yīng)用程序的包,包括物聯(lián)網(wǎng) (IoT)、云計(jì)算、機(jī)器學(xué)習(xí)、數(shù)據(jù)科學(xué)和區(qū)塊鏈。
要使用 Node-RED,應(yīng)首先安裝 Node.js 平臺(tái),該平臺(tái)可從https://nodejs.org獲取,適用于 Windows、Mac 和 Linux 等多種操作系統(tǒng),適用于 32 位或 64 位架構(gòu)(圖 1)。

安裝 Node.js 后,可以從節(jié)點(diǎn)包管理器 (NPM) 安裝 Node-RED 包,該管理器是為 Node 平臺(tái)開(kāi)發(fā)和部署的包的存儲(chǔ)庫(kù)(圖 2)。

在Node.js的安裝目錄下,使用npm命令安裝Node-RED,如下:
E:\>cd nodejs
E:\nodejs>npm i node-red
Node-RED 可以安裝在多個(gè)平臺(tái)上,包括開(kāi)源硬件設(shè)備、物聯(lián)網(wǎng)設(shè)備、云或?qū)S梅?wù)器。其云部署可以在 IBM Cloud、Microsoft Azure、SenseTecnic FRED 和 Amazon Web Services 上完成。為了處理物聯(lián)網(wǎng)、霧和邊緣場(chǎng)景,它可以安裝在 Raspberry Pi、BeagleBone Black 或 Arduino 上。這些設(shè)備支持多種應(yīng)用的物聯(lián)網(wǎng)傳感器接口。

要在專(zhuān)用系統(tǒng)上運(yùn)行 Node-RED,請(qǐng)執(zhí)行 node-red 命令來(lái)啟動(dòng)服務(wù)器。生成基于本地主機(jī)的IP地址和端口號(hào),在其上完成物聯(lián)網(wǎng)、邊緣計(jì)算等的編程。

啟動(dòng)服務(wù)器后,有數(shù)千個(gè)包可以連接到多個(gè)應(yīng)用程序。要?jiǎng)?chuàng)建 IoT 或邊緣場(chǎng)景,可以從 NPM 存儲(chǔ)庫(kù)安裝與 Wi-Fi、藍(lán)牙、MQTT、CoAP、天氣預(yù)報(bào)等相關(guān)的軟件包。
安裝所需的軟件包后,將使用左側(cè)的圖標(biāo)調(diào)色板創(chuàng)建流程圖。在這里,所有包都是可見(jiàn)的,并且可以在儀表板上拖動(dòng)。

Node-RED 調(diào)色板中提供了消息隊(duì)列遙測(cè)傳輸 (MQTT) 協(xié)議,以幫助其與 IoT 配合使用。它用作物聯(lián)網(wǎng)代理,用于與傳感器進(jìn)行實(shí)時(shí)連接和通信。IoT 場(chǎng)景由文件處理模塊創(chuàng)建,從傳感器捕獲數(shù)據(jù)并使用 MQTT 協(xié)議將其與 Wi-Fi 連接。單擊運(yùn)行此場(chǎng)景后,結(jié)果將顯示在 Node-RED 的右側(cè)面板上??梢詣?chuàng)建和部署類(lèi)似的其他結(jié)構(gòu),以便與物聯(lián)網(wǎng)設(shè)備進(jìn)行動(dòng)態(tài)通信。

研究人員和工程師可以根據(jù)自己的要求通過(guò)在 Node-RED 上定制和添加軟件包來(lái)創(chuàng)建 IoT 場(chǎng)景。
Node-RED 可以與 Raspberry Pi 或 Arduino 連接,提供與傳感器的實(shí)時(shí)通信,可用于基于智能農(nóng)業(yè)的應(yīng)用,以便農(nóng)民可以跟蹤他們的田地和農(nóng)作物。天氣預(yù)報(bào)和氣候分析也可以使用此類(lèi)編程平臺(tái)來(lái)完成。















 
 
 









 
 
 
 