智慧工廠教具箱系列(三):工業物聯網應用層實務技術 -使用 Node-Red-Dashboard

智慧工廠教具箱系列(三):工業物聯網應用層實務技術 -使用 Node-Red-Dashboard

還記得在上一篇「智慧工廠教學實驗平台系列(二):物聯網感知層實務技術」最後留給讀者的一個問題,就是「如果想實現同時蒐集光敏感測器,氣體感測器,火焰感測器,溫濕度感測器並以 10hz 頻率回傳此數據至電腦端,該怎麼做呢?」,本篇將繼續透過此範例程式,來說明物聯網網路層和應用層的相關實務應用技術。 

一、物聯網網路層介紹

物聯網(IoT)的網路層技術是整個物聯網架構中非常重要的一環,它負責管理裝置間的通信和數據傳輸。這一層的技術確保了裝置能夠有效地連接並進行數據交換,從而實現智慧化和自動化的應用。以下是幾個常見的網路層無線通訊技術:

1. Wi-Fi:

Wi-Fi 是一種常見的無線局域網技術,它使用 IEEE 802.11 標準,廣泛應用於辦公環境和家庭網絡。在工業領域,Wi-Fi通常用於資料收集、設備監控和控制,特別是在需要高速數據傳輸的應用中,目前最新為WiFi 6。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

2. 藍牙(Bluetooth):

藍牙技術提供了短距離通信,用於低功耗應用和設備之間的連接。在工業領域,藍牙通常應用於物聯網裝置之間的通信,例如嵌入式感測器和行動設備的互聯,在未來,藍牙5.0 因其優勢將會成為主流。

3. Zigbee:

Zigbee 是一種低功耗、自組織和自愈合的無線通信技術。它適用於需要節能和長期運行的工業自動化應用,如智能照明、監控系統和無線感測網絡。

4. Z-Wave:

Z-Wave 是一種專門用於家庭自動化和工業控制的無線技術。它在工業環境中常用於建築監控系統、安全系統和能源管理等領域。

5. LoRaWAN:

LoRaWAN 是一種遠距離低功耗的無線通信技術,適用於長距離的感測和監控應用。它被廣泛應用於智慧城市、農業監測和環境監測等場景。

6. NB-IOT:

NB-IoT,全稱窄帶物聯網(Narrowband Internet of Things),是一種專為物聯網(IoT)應用而設計的低功耗、低速率無線通信技術。NB-IoT 基於現有的LTE(Long Term Evolution)網絡基礎設施,但對於小數據傳輸和節能方面做了優化,以支援大量低功耗、低帶寬的物聯網裝置。

二、物聯網網路層通訊協議

在物聯網網路層通訊協定中,存在許多關鍵技術協議,其中一些重要的協議包括:

1. IPv6:

IPv6(Internet Protocol version 6)是一種網際網路協議,取代了 IPv4,它擁有更大的 IP 地址空間,可支援更多的連接設備。這對於物聯網來說至關重要,因為預計將有數十億個裝置需要連接。

2. 6LoWPAN:

6LoWPAN(IPv6 over Low-power Wireless Personal Area Networks),是一種將 IPv6 協議應用於低功耗無線個人區域網絡的技術。它允許物聯網中的低功耗裝置通過無線方式進行連接,同時保持高效能和節能。

3. RPL:

RPL(Routing Protocol for Low-power and Lossy Networks),是專為低功耗和丟包網絡設計的路由協議。它確保數據能夠以有效的方式從源節點路由到目標節點,同時考慮到物聯網中裝置的限制。

4. CoAP:

CoAP(Constrained Application Protocol)是一個輕量級的應用層協議,專為物聯網裝置設計。它提供了簡單的 RESTful 接口,使得裝置可以進行高效的數據交換。

5. MQTT:

MQTT(Message Queuing Telemetry Transport)是一種輕量級的消息通訊協議,它對於低帶寬和不穩定網絡環境非常適用。它支援發布/訂閱模型,可以使裝置之間進行高效的通信。

三、物聯網應用層實務技術實作

1、實驗平台: 

此次教學將使用智慧工廠教學實驗平台作為開發平台,其內建 Node-RED 開發工具。Node-RED 是一款卓越的物聯網開發工具,提供介面簡單友善的開發環境,讓開發人員能輕鬆創建複雜的物聯網應用程式,並使得程式的開發、測試和雲端部署變得十分簡單。

Node-RED 是 IBM 推出的一款基於流程編程的視覺化程式開發工具,主要用於物聯網(IoT)相關程式的開發並於 2016 年成為開源 JS 基金會的子項目。Node-RED 係以Node.js為基礎,發展出來的視覺化程式開發工具,就算完全不會 Node.js,也可以透過視覺化的功能模組,以流程編程的方式,達到程式開發的目的。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

GitHub 開源專案,Github連結

2、實驗目的: 

透過 Node-RED,實現智慧工廠感測器大數據的可視化分析。它提供了豐富的節點和圖形化編程工具,讓使用者能夠輕鬆連接數據來源、處理數據並生成視覺化圖表。這使得數據分析變得直觀和易於理解,用戶可以快速地識別數據的趨勢、模式和關聯性,讓非專業的數據分析人員也能輕鬆進行數據的探索和洞察。

3、實驗步驟: 

a. 感測器大數據收集(Arduino 端)

還記得在智慧工廠教具箱系列(二):工業物聯網感知層實務技術,最後提及「如果同時收集光敏感測器、氣體感測器、火焰感測器、旋轉電位計、按鍵、紅外線及溫濕度感測器並以 0.5 秒頻率回傳此數據至電腦端?」,以下接著說明該如何實作此範例。

(一)、建立分時多工執行緒(thread),執行多個感測器的數據擷取並透過序列埠定時上傳數據。每 1 秒更新溫/濕度感測器數據一次;每 0.8 秒更新氣體感測器數據一次;每 0.3 秒更新光敏感測器數據一次;每 0.3 秒更新火焰感測器數據一次;每 0.2 秒更新按鍵狀態一次;每 0.2 秒更新紅外線偵測狀態一次;每 0.2 秒更新旋轉電位計值一次;每 0.5 秒上傳數據一次。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

(二)、程式初始化

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

(三)、主程式執行

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

(四)、透過序列埠監控視窗觀察執行結果,數據每 0.5 秒更新一次。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

b. Arduino 與 Node-RED 之間的序列通訊(raspberry端)

藉由 Arduino 收集多感測器的即時資訊後,再來就是把這些資訊,透過序列通訊機制(serial communication),上傳至樹莓派主機上的 Node-RED 程式作為數據的交換並顯示。

(一)、於 Node-RED 安裝『node-red-node-serialport』功能節點。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

接著可以找到新增了三個序列通訊用的功能節點(Nodes)。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

(二)、於 Node-RED 新建一個『serialin』節點並命名為『ArduinoMega』,設置內部的序列埠口與鮑率(Baud Rate)。序列通訊鮑率需與 Arduino 程式設定一樣,雙方才能正確通信。

(三)、於 Node-RED 新建一個『function』節點並命名為『BinToString』。因為 Arduino 傳輸的資訊是二進制(Binary)數據模式,透過此功能節點可以把二進制轉成字串模式,方便之後的字串解析。

(四)、於Node-RED新建一個『split』節點,用『空白符號』把數據字串分開。

(五)、於 Node-RED 新建一個『function』節點並命名為『Payload Object Sensor』,把數據字串分配到對應的感測器,之後可以 Dashboard 顯示元件。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

(六)、於 Node-RED 新建一個『file』節點並命名為『SaveTo_SensorFile』,收集到的感測器數據會存放於此。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

(七)、完整的感測器數據交換 Node-RED 程式。

(八)、部署 Node-RED 訂閱/發布程式,點選右上角的【部署】按鈕,即可完成通訊協定的連線測試。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

(九)、觀察執行結果。當執行Node-RED程式後,觀察『serialin』節點是否有出現【已連接】的文字。若是有,則代表 Arduino 控制器與Node-RED主機間的序列通訊是正常的。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

其次,當序列通訊正常時,打開『Sensor DataBase.txt』文字檔,此時可以觀察到數據是否更新。如果結果都正常,接下來則要把數據作可視化分析。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

c. Node-RED Dashboard(raspberry 端)

通過觀察數字、統計數據加以轉換獲得清晰的結論並不是一件容易的事。而人類大腦對視覺信息的處理優於對文本的處理,因此使用圖表、圖形和設計元素把數據進行可視化,可以幫你更容易的解釋數據模式、趨勢、統計規律和數據相關性。

Node-RED Dashboard 是一個在 Node-RED 中的功能模組,提供一組節點用以快速創建數據儀表板所需的各種工具,例如,有按鈕、圖表及儀表等的用戶界面節點可供使用。

(一)、於 Node-RED 安裝『node-red-dashboard』功能節點和『node-red-contrib-ui-artless-gauge』。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

(二)、Node-RED Dashboard 提供以下的功能節點,用以快速創建數據儀表板。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard
智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

(三)、使用者可以透過以下 URL:http://localhost:1880/ui,訪問設計好的 Dashboard 介面。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

(四)、把感測器數據轉化成儀表資訊。

分別建立八個 artless gauge 節點與二個 chart 節點。編輯 artless gauge 節點分別為,DHT-Temp、DHT-Humid、Light、FlameSensor、Mq4Sensor、emgbtn、knob及irdetect。根據感測器的數據,編輯 artless-gauge 節點內容 : DHT-Temp 範例。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

(五)、把設定好的這些節點,連接起來。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

(六)、部署 Node-RED 訂閱/發布程式,點選右上角的【部署】按鈕,即可完成 Dashboard 儀表板顯示。

4. 實驗結果

在瀏覽器端輸入網址 http://localhost:1880/ui,觀看大數據可視化的顯示效果,儀表板上的各元件分別對應到不同的感測器,例如 : 透過手電筒打光進入光敏感測器,看看工廠照明度的值是否急速增加。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard
智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

例如 : 當按下智慧工廠的按鈕開關模組,儀表板上的緊急開關由 0 變 1,外圈也變為紅色,代表緊急開關被按下。

智慧工廠教學實驗平台系列(三):工業物聯網應用層實務技術 -使用Node-Red-Dashboard

四、結論

這次的分享就到這邊,想要了解更多更有趣智慧工廠的應用方式嗎?歡迎持續追蹤並支持我們唷!