將Node-RED應(yīng)用到物聯(lián)網(wǎng)和邊緣計算場景
如今,我們所有人都以這樣或那樣的方式使用物聯(lián)網(wǎng),而且這種使用在不久的將來只會增長。本文詳細介紹了 Node-RED 這個功能強大且易于使用的編程平臺如何幫助實施物聯(lián)網(wǎng)和邊緣計算。
物聯(lián)網(wǎng) (IoT) 在當今世界無所不在。下面列出了它占主導(dǎo)地位的幾個領(lǐng)域:
- 智慧健康醫(yī)療服務(wù):智能救護車、醫(yī)院管理、智能藥控等。
- 智慧城市:智能交通控制、智能收費站、污染監(jiān)測、水質(zhì)管理、自動駕駛汽車、無人機、執(zhí)法、節(jié)能等。個人應(yīng)用:智能健康、防盜、控制家電等。
- 零售行業(yè):自動結(jié)賬、物流監(jiān)控與管理等。
- 農(nóng)業(yè):作物分析、動態(tài)配水、智能灌溉、農(nóng)場監(jiān)控、智能農(nóng)業(yè)無人機、農(nóng)業(yè)機器人等。
許多其他領(lǐng)域也與物聯(lián)網(wǎng)領(lǐng)域相關(guān),特別是正在開發(fā)智能機器人應(yīng)用程序的領(lǐng)域。萬物互聯(lián)(IoE)是智能應(yīng)用的另一個術(shù)語,是物聯(lián)網(wǎng)與云和萬維網(wǎng)的集成,用于設(shè)備的實時連接。
許多編程平臺可用于處理 IoT、IoE、霧或邊緣場景,還提供數(shù)百個功能強大且易于用于動態(tài)研究的工具包,以下是一些常見的平臺軟件:
軟件 | URL | 使用場景 |
Node-RED | nodered.org | 基于流程的編程環(huán)境 |
Contiki | contiki-os.org | 微控制器、IPv6、IPv4、原線程、低資源、游戲機 |
FlowHub | flowhub.io | 基于流程的物聯(lián)網(wǎng)編程 |
NoFloJS | noflojs.org | 基于JavaScript的流程編程 |
Netron | github.com/lutzroeder/netron | 動態(tài)可視化 |
PyFlow | wonderworks-software.github.io/PyFlow | 可視化腳本 |
Yet another robot platform (YARP) | yarp.it | 機器人編程 |
OROCOS | orocos.org | 機器人編程和機器控制 |
OpenIoT | openiot.eu | 傳感即服務(wù) (S2aaS) |
Zetta | zettajs.org | WebSocket 編程、TCP 實時、反應(yīng)式編程、低開銷場景 |
DSA | iot-dsa.org | 實時接口、設(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ù)分析、實時應(yīng)用、動態(tài)通信和更新 |
Node-RED
Node-RED:基于流程的 IoT 場景編程工具
Node-RED ( https://nodered.org/ ) 是一個功能強大且易于使用的編程平臺,用于模擬 IoT 場景。霧和邊緣計算也可以使用 Node-RED 中基于流的編程來完成。這里,可以使用最少的編碼來實現(xiàn)高性能結(jié)構(gòu)。安裝和工作Node-RED 是一個安裝在 Node.js 平臺上的專用軟件包。后者是一個基于JavaScript的輕量級但高性能的編程環(huán)境。Node.js 中提供了許多適用于多種應(yīng)用程序的包,包括物聯(lián)網(wǎng) (IoT)、云計算、機器學(xué)習、數(shù)據(jù)科學(xué)和區(qū)塊鏈。
要使用 Node-RED,應(yīng)首先安裝 Node.js 平臺,該平臺可從https://nodejs.org獲取,適用于 Windows、Mac 和 Linux 等多種操作系統(tǒng),適用于 32 位或 64 位架構(gòu)(圖 1)。
安裝 Node.js 后,可以從節(jié)點包管理器 (NPM) 安裝 Node-RED 包,該管理器是為 Node 平臺開發(fā)和部署的包的存儲庫(圖 2)。
在Node.js的安裝目錄下,使用npm命令安裝Node-RED,如下:
E:\>cd nodejs
E:\nodejs>npm i node-red
Node-RED 可以安裝在多個平臺上,包括開源硬件設(shè)備、物聯(lián)網(wǎng)設(shè)備、云或?qū)S梅?wù)器。其云部署可以在 IBM Cloud、Microsoft Azure、SenseTecnic FRED 和 Amazon Web Services 上完成。為了處理物聯(lián)網(wǎng)、霧和邊緣場景,它可以安裝在 Raspberry Pi、BeagleBone Black 或 Arduino 上。這些設(shè)備支持多種應(yīng)用的物聯(lián)網(wǎng)傳感器接口。
要在專用系統(tǒng)上運行 Node-RED,請執(zhí)行 node-red 命令來啟動服務(wù)器。生成基于本地主機的IP地址和端口號,在其上完成物聯(lián)網(wǎng)、邊緣計算等的編程。
啟動服務(wù)器后,有數(shù)千個包可以連接到多個應(yīng)用程序。要創(chuàng)建 IoT 或邊緣場景,可以從 NPM 存儲庫安裝與 Wi-Fi、藍牙、MQTT、CoAP、天氣預(yù)報等相關(guān)的軟件包。
安裝所需的軟件包后,將使用左側(cè)的圖標調(diào)色板創(chuàng)建流程圖。在這里,所有包都是可見的,并且可以在儀表板上拖動。
Node-RED 調(diào)色板中提供了消息隊列遙測傳輸 (MQTT) 協(xié)議,以幫助其與 IoT 配合使用。它用作物聯(lián)網(wǎng)代理,用于與傳感器進行實時連接和通信。IoT 場景由文件處理模塊創(chuàng)建,從傳感器捕獲數(shù)據(jù)并使用 MQTT 協(xié)議將其與 Wi-Fi 連接。單擊運行此場景后,結(jié)果將顯示在 Node-RED 的右側(cè)面板上??梢詣?chuàng)建和部署類似的其他結(jié)構(gòu),以便與物聯(lián)網(wǎng)設(shè)備進行動態(tài)通信。
研究人員和工程師可以根據(jù)自己的要求通過在 Node-RED 上定制和添加軟件包來創(chuàng)建 IoT 場景。
Node-RED 可以與 Raspberry Pi 或 Arduino 連接,提供與傳感器的實時通信,可用于基于智能農(nóng)業(yè)的應(yīng)用,以便農(nóng)民可以跟蹤他們的田地和農(nóng)作物。天氣預(yù)報和氣候分析也可以使用此類編程平臺來完成。