在物聯網應用開發中,Node-RED 作為一個視覺化程式設計工具,簡化了開發流程。本文將引導讀者在 Raspberry Pi 上安裝和使用 Node-RED,從基礎的 Hello World 範例到硬體 I/O 控制,逐步瞭解 Node-RED 的核心功能。文章涵蓋 Node-RED 的安裝、執行、使用者介面介紹、流程設計、硬體 I/O 控制與輸入新增,並以 LED 控制的例項說明如何結合硬體與 Node-RED 進行互動,最後也提供使用 Node-RED 進行 IoT 應用開發的簡要流程。
15.3 安裝
Node-RED 3.0現在可供安裝,這意味著需要Node.js 14.x或更新版本。如果您從版本2更新,您需要遵循更新。安裝Node-RED的最佳方法是使用提供的指令碼,這個指令碼可以安裝Node.js、npm和Node-RED到您的Raspberry Pi上。使用以下命令:
update-nodejs-and-nodered
新增--node14選項以安裝Node.js版本14(如果您沒有最新版本,系統會提示您)。
15.4 執行Node-RED
在您的Raspberry Pi上,輸入node-red-start命令啟動Node-RED。根據Node-RED的建議,最佳方式是在您的PC上開啟瀏覽器並存取Node-RED。
flowchart TD
A[安裝Node-RED] --> B[執行Node-RED]
B --> C[存取Node-RED]
C --> D[建立流程]
D --> E[佈署應用]
圖表翻譯:
此圖表描述了安裝和執行Node-RED的流程。首先,您需要安裝Node-RED,然後執行它。接下來,您可以存取Node-RED並建立流程。最後,您可以佈署您的IoT應用。
IoT、Pi 和 Node-RED
15.5 Node-RED 使用者介面
當我們開啟 Node-RED 時,會看到一個簡單的使用者介面。中間是設計視窗,我們可以在這裡放置節點並建立設計。左手邊是節點,分為多個群組:常用、函式、網路、輸出、序列、解析器、儲存和 Raspberry Pi。
例如,網路群組包含 MQTT 輸入和輸出節點。Raspberry Pi 特定的節點包括:
- GPIO 輸入和輸出節點
- I2C 和 SPI 通訊節點
在右手邊是資訊螢幕,可以顯示節點的資訊和錯誤訊息。點選「bug」圖示可以顯示 debug 訊息。
15.6 第一個流程設計 - Hello World
在開始 IoT 的設計之前,讓我們先試試一個簡單的 Hello World 流程。為了輸入,我們使用一個 inject 節點,為了輸出,我們使用一個 debug 節點。
將這兩個節點拖曳到設計視窗中,並連線起來。你可以將 inject 節點保留原樣,這樣它會注入一個時間戳。現在,讓我們看看如何傳送一個訊息。雙擊 inject 節點以開啟編輯器,給節點命名,並從 payload 下拉式選單中選擇「string」。在 msg.payload 中輸入「Hello world!」。
你可以將其他設定保留原樣,也可以選擇如何注入訊號。讓我們選擇每秒重複一次。點選「Done」。
點選「bug」圖示並佈署以執行程式。你應該在 debug 視窗中看到訊息。
15.7 硬體 I/O
你可以控制 Raspberry Pi 的 I/O,當然。首先,讓我們控制一個 LED。將 LED 的長腳連線到 GPIO 17,並將短腳連線到地線透過一個電阻。
找到 rpi - gpio out 節點並將其拖曳到畫布上。紅色三角形表示屬性尚未設定,藍色圓圈表示尚未佈署。點選編輯節點,選擇 GPIO17,檢查輸出型別是否為數位輸出,設定初始狀態為 0,並給節點命名。點選「Done」。
選擇一個 inject 輸入節點,如前所述。對於屬性,命名為「ON」,並再次使用 payload 「string」並設定輸入 1。儲存它。
重複另一個 inject 節點,命名為「OFF」,並使用 payload 字串 0。將兩者都連線到 LEDOUT。點選「Deploy」。
現在,點選 inject 按鈕左側的 ON inject 節點(如下所示)應該會亮起 LED,點選 OFF 應該會關閉它。如果你已經連線了硬體,LED 應該會亮起,如果沒有,你可以使用 debug 節點進行檢查。
拖曳 debug 節點並將 ON 和 OFF 輸出連線到它。再次佈署。
點選「bug」以顯示 debug 視窗,並注入訊號以檢視結果。
要停止 Node-RED 在你的 Pi 上執行,使用 control-c 然後輸入 node-red-stop。
15.7.1 新增輸入
你可以向你的 Node-RED 設計新增輸入。
硬體 Pi 的 GPIO 輸入具有內部拉高和拉低電阻,但最好使用外部拉高或拉低電阻。這裡使用的是 GPIO 27:
拉低 拉高
這些是 Node-RED 中的基本硬體 I/O 設計。透過這些設計,你可以控制和監視你的硬體,並建立複雜的 IoT 應用程式。
使用Node-RED進行IoT應用開發
Node-RED是一個根據JavaScript的視覺化程式設計工具,廣泛應用於IoT(物聯網)應用開發中。以下是使用Node-RED進行IoT應用開發的步驟:
安裝Node-RED
首先,需要在Raspberry Pi上安裝Node-RED。可以透過命令列工具進行安裝。
建立新的流程
建立新的流程,可以透過點選Node-RED介面的「+」按鈕來新增新的節點。然後,可以將節點透過連線的方式進行連線,形成一個完整的流程。
新增節點
Node-RED提供了許多內建節點,例如輸入節點、輸出節點、函式節點等。可以根據需要新增不同的節點到流程中。
組態節點
新增節點後,需要組態節點的屬性。例如,輸入節點需要組態輸入的型別和格式,輸出節點需要組態輸出的型別和格式。
佈署流程
組態完成後,可以將流程佈署到Raspberry Pi上。然後,流程就會開始執行。
從技術架構視角來看,Node-RED 顯著降低了 IoT 應用開發的門檻。本文詳細介紹了 Node-RED 的安裝、執行、基本流程設計,以及與 Raspberry Pi 硬體 I/O 的互動,涵蓋了從軟體設定到硬體連線的完整流程。利用其視覺化程式設計介面,開發者可以快速構建從簡單的 “Hello World” 到控制 LED 等硬體元件的應用,無需編寫複雜的程式碼。然而,Node-RED 的易用性也可能隱藏一些技術債務,例如對於複雜邏輯的處理和除錯,視覺化程式設計的效率可能不如傳統程式碼。此外,安全性議題也需要開發者額外關注,尤其是在處理敏感資料和網路連線時。展望未來,隨著邊緣運算的興起,Node-RED 可望在更靠近資料源的場景中扮演更重要的角色,整合更多感測器和執行器,並與雲端平臺協同工作,構建更複雜且具有更高即時性的 IoT 應用。對於想要快速入門 IoT 開發的使用者,建議從小型專案開始,逐步熟悉 Node-RED 的功能和特性,並深入瞭解其背後的 JavaScript 基礎,才能更好地駕馭這個強大的工具。