Node-RED 是一款根據流程的視覺化程式設計工具,特別適用於 IoT 裝置的快速開發。結合 Raspberry Pi 的硬體特性,能輕易打造各式物聯網應用。本文將示範如何使用 Node-RED 控制 LED、讀取 Sense HAT 環境感測器資料,並利用 Dashboard 建立客製化網頁介面,最後說明如何透過 MQTT 協定與 AWS IoT 雲端平臺進行資料交換,實作遠端監控與控制。

範例:控制LED燈

以下是使用Node-RED控制LED燈的範例:

  1. 新增一個輸入節點,組態為GPIO27。
  2. 新增一個輸出節點,組態為GPIO17。
  3. 將輸入節點連線到輸出節點。
  4. 佈署流程。

這樣,就可以使用Node-RED控制LED燈的亮滅。

範例:使用Sense HAT

Sense HAT是一個為Raspberry Pi設計的感應器板,可以感應環境的溫度、濕度等資料。以下是使用Node-RED使用Sense HAT的範例:

  1. 安裝Sense HAT節點。
  2. 新增一個Sense HAT輸入節點。
  3. 組態Sense HAT輸入節點,選擇環境事件。
  4. 將Sense HAT輸入節點連線到一個debug輸出節點。
  5. 佈署流程。

這樣,就可以使用Node-RED讀取Sense HAT的資料。

範例:使用Node-RED Dashboard

Node-RED Dashboard是一個根據Web的使用者介面,可以用於顯示和控制IoT裝置的資料。以下是使用Node-RED Dashboard的範例:

  1. 安裝Node-RED Dashboard。
  2. 新增一個slider節點。
  3. 組態slider節點,設定最大值為100。
  4. 將slider節點連線到一個gauge節點。
  5. 組態gauge節點,設定範圍為0到100。
  6. 佈署流程。

這樣,就可以使用Node-RED Dashboard控制LED燈的亮度。

以上是使用Node-RED進行IoT應用開發的基本步驟和範例。透過Node-RED,可以快速地開發和佈署IoT應用。

第15章:IoT、Pi和Node-RED

15.10 Sense HAT輸出

我們可以在Sense HAT螢幕上顯示訊息。建立一個新節點,將注入節點和Sense HAT輸出節點拖到畫布上。連線它們,如果需要,可以新增一個除錯節點: 設定注入節點,如前所述,我還給我的Sense HAT取了個名字,但沒有其他事情可做。儲存並佈署。 注入一個訊號,觀察你的Sense HAT顯示“Hello World!”。 當然,你也可以在除錯視窗中看到它:

15.11 IoT - 接收MQTT訊息

Node-RED提供MQTT輸入(訂閱)和輸出(釋出)節點用於IoT通訊。 要與AWS IoT進行通訊,我們需要證書。前面在第12章中已經討論過這個問題。

15.12 建立一個新的IoT物件進行MQTT通訊

檢視第12章,但簡而言之,過程是:選擇AWS > IoT核心 > 管理 > 物件 > 建立物件 > 建立單個物件。 物件名稱 > NodeREDthing 忽略其他型別,選擇預設的“無影子”。 下一個螢幕:選擇“自動生成一個新的證書(推薦)”。 在策略中,點選“建立策略”(名稱:NodeREDPolicy)。 針對動作,選擇“所有AWS IoT動作”,並且“策略資源”設定為*。 在下一個螢幕中,將策略新增到物件中並建立物件。 下載你的證書。

你現在應該已經有了這個物件。

15.12.1 訂閱一個主題

在開始從Raspberry Pi接收訊息之前,選擇測試 > MQTT測試客戶端並“訂閱一個主題”。我們之前已經看到過這個功能。這次,選擇node-red作為主題(你可以選擇任何你想要的,但確保它與Node-RED設定中的一致)。 現在轉到你的Node-RED應用程式。

15.13 Node-RED IoT應用程式

啟動Node-RED。 我們將從連線一個注入節點到一個MQTT輸出節點開始。 留下注入節點不動,它只會注入一個時間戳。但是我們需要組態MQTT節點。 找到屬性。

給伺服器命名(它允許你選擇伺服器,如果你有多個)。 新增一個主題名稱(我們將在AWS IoT中訂閱它)- node-red。我還重新命名了節點。 現在點選鉛筆編輯連線並新增證書。 輸入你之前儲存的AWS IoT伺服器名稱。將埠改為8883。 選擇TLS並點選鉛筆新增TLS安全性。

對於證書,找到以certificate.pem.crt結尾的檔案。 對於私鑰,使用以private.pem.key結尾的檔案。 對於CA證書,使用AmazonRootCA1.pem 保持驗證伺服器證書已勾選,但其他欄位留空。

命名它(AWSIoT)並點選新增 點選完成並佈署。你的MQTT節點應該說已連線。 檢查你是否在AWS IoT MQTT測試中接收訊息,並從你的Node-RED流中注入一個時間戳。 你應該在你的AWS IoT中看到一個時間戳出現。 你可以將注入節點改為注入一個字串訊息,這個訊息會伴隨著錯誤接收:

IoT、Pi 和 Node-RED

IoT(物聯網)技術的應用越來越廣泛,Node-RED 作為一種流行的視覺化程式設計工具,能夠簡化 IoT 專案的開發過程。下面,我們將探討如何使用 Node-RED 和 Raspberry Pi 來實作 IoT 應用。

安裝 Node-RED

首先,你需要在 Raspberry Pi 上安裝 Node-RED。這個過程相對簡單,你可以按照 Node-RED 官方檔案中的指導來完成安裝。

Node-RED 使用介紹

安裝完成後,你可以透過瀏覽器存取 Node-RED 的介面。Node-RED 的介面分為幾個部分,包括流程編輯區、節點函式庫和除錯區。流程編輯區是你建立和編輯流程的地方,節點函式庫提供了各種可用的節點,除錯區則用於顯示節點的輸出。

建立簡單流程

建立一個簡單的流程來瞭解 Node-RED 的基本使用方法。例如,你可以建立一個流程來控制 LED 燈的亮滅。這個流程包括一個輸入節點(例如,按鈕)、一個邏輯節點(例如,延遲)和一個輸出節點(例如,LED 燈)。

Node-RED在簡化IoT應用開發流程中扮演著 increasingly crucial 的角色。藉由視覺化程式設計方法,Node-RED降低了開發門檻,讓使用者無需深入程式碼即可快速搭建IoT應用原型,例如控制LED燈、讀取Sense HAT感測器資料,以及建構客製化的Dashboard。然而,Node-RED在處理複雜邏輯或大規模佈署時,其視覺化程式設計的優勢可能轉變為限制,debug和維護的難度也會隨之提升。此外,安全性考量,特別是MQTT等通訊協定的安全性設定,仍需開發者仔細評估與組態,才能確保IoT裝置和資料的安全。展望未來,隨著低程式碼/無程式碼平臺的興起,Node-RED與雲端服務的整合將更加緊密,預期將衍生更多創新應用場景。對於追求快速開發和簡易佈署的IoT專案而言,Node-RED無疑是一個值得關注且持續學習的技術選項。玄貓認為,著重於使用者經驗和快速原型開發的IoT專案可以優先考慮採用Node-RED,但需同時關注其安全性和可擴充套件性方面的侷限。