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