現今物聯網裝置產生巨量資料,對雲端平臺造成負擔,邊緣計算的興起有效緩解此問題。本文介紹 FoG 計算和雲端運算的概念,並以 Jetson Nano 作為 FoG 節點,搭配 MAX30102 和 MLX90614 感測器,打造一個病人監測系統。此係統在 Jetson Nano 上進行資料預處理和分析,再將處理後的資料傳輸到雲端,實作遠端監控和資料儲存,展現邊緣計算和雲端協同運作的優勢。

例項應用

以下是一個使用 Jetson Nano 進行 FoG 和雲端計算的整合的例項應用:

  • 智慧家居:使用 Jetson Nano 收集家居中的感測器資料,例如溫度、濕度等。然後,使用 Jetson Nano 進行資料的預處理和分析,例如偵測家居中的異常情況。將結果傳送到雲端進行進一步的處理和儲存。使用雲端計算平臺進行資料的進一步分析,例如使用機器學習演算法進行資料分析。將結果傳回到 Jetson Nano,然後使用結果進行相應的動作,例如控制家居中的裝置。
  • 智慧工廠:使用 Jetson Nano 收集工廠中的感測器資料,例如溫度、壓力等。然後,使用 Jetson Nano 進行資料的預處理和分析,例如偵測工廠中的異常情況。將結果傳送到雲端進行進一步的處理和儲存。使用雲端計算平臺進行資料的進一步分析,例如使用機器學習演算法進行資料分析。將結果傳回到 Jetson Nano,然後使用結果進行相應的動作,例如控制工廠中的裝置。

FoG 與雲端運算:Jetson Nano 的應用

隨著物聯網(IoT)裝置的普及,如何有效地處理和分析大量的資料成為了一個重要的挑戰。為瞭解決這個問題,FoG(Fog Computing)和雲端運算(Cloud Computing)等技術被提出,以幫助 IoT 裝置解除安裝計算任務,減少功耗,延長電池壽命。

Jetson Nano 單板電腦是一個令人興奮的平臺,可以作為 FoG 節點,同時也可以作為雲端和 IoT 裝置之間的中間層。Jetson Nano 模組是一個小型的人工智慧(AI)電腦,具有執行現代 AI 工作負載、多個神經網路平行運算和同時處理多個感測器資料的能力。

本章介紹了 FoG 和雲端運算的概念,以及它們在 IoT 中的角色。最後,本章涵蓋了 FoG 和雲端運算的實施。

FoG 計算介紹

雲端運算因為提供了資料儲存、計算等服務而被廣泛接受。為了實作這些服務,中央化的資料中心被建立。更多的企業可以因為雲端服務的靈活性和低成本而採用雲端運算。這解除安裝了大量的工作負載,從而提高了生產力。雲端運算不斷演進,提供了更好的效能、安全性和可靠性。如今,雲端運算可以提供基礎設施即服務(IaaS)、平臺即服務(PaaS)和軟體即服務(SaaS)等多種服務模型。

過去十年中,連線到網際網路的裝置數量迅速增加。根據思科系統公司的統計,約有 50 億個連線裝置。因此,對於高品質的雲端服務和 IoT 裝置的需求非常高。然而,由於雲端資料伺服器的運作是中央化的,這對於分佈在大地理區域的 IoT 裝置來說是一個障礙。網路擁塞和高延遲是這種情況下常見的問題。

FoG 計算是現有雲端平臺的延伸,旨在解決這些問題。思科公司首先正式提出 FoG 計算的概念。FoG 層是一個額外的層,介於雲端資料中心和終端使用者之間。這層物理上更接近終端使用者或 IoT 節點,幫助實作資料中心的去中心化。

FoG 計算與雲端運算和 IoT 裝置(終端裝置)一起形成了一個三層架構。這個架構可以幫助 IoT 裝置更有效地處理和分析資料,減少功耗,延長電池壽命。Jetson Nano 單板電腦可以作為 FoG 節點,發揮其在這個架構中的重要作用。

FoG 計算概述

FoG 計算是一種分散式計算環境,將雲端計算的服務延伸到距離使用者一跳的距離(Dastjerdi et al. 2016)。這種計算方式可以提供低延遲的運作,實作實時分析和延遲敏感應用的需求。

FoG 計算架構

FoG 計算架構通常由三個層次組成:

  1. 終端裝置層:此層由 IoT 裝置組成,負責生成原始資料。
  2. FoG 計算層:此層由閘道器、路由器、交換器等裝置組成,提供資料處理和儲存功能。
  3. 雲端計算層:此層由現代基礎設施(如資料中心)組成,提供巨大的儲存和處理能力。

FoG 計算特徵

FoG 計算具有以下特徵:

  • 位置感知和低延遲:FoG 計算可以設定在任何位置,並提供低延遲的運作。
  • 可擴充套件性:FoG 計算支援分散式計算和儲存網路,可以輕鬆新增新的終端裝置或感測器網路。
  • 地理分佈:FoG 計算可以提供地理分佈的服務和應用。
  • 異構性和互操作性:FoG 節點或終端裝置可以由不同的製造商設計和製造。
  • 實時互動:FoG 計算可以提供 FoG 節點之間的實時互動,而不是批次處理模型。

FoG 計算應用

FoG 計算可以應用於各種領域,例如工業控制、智慧城市、智慧家居等。FoG 計算可以提供低延遲的運作,實作實時分析和延遲敏感應用的需求。

上述內容介紹了 FoG 計算的基本概念、架構和特徵。FoG 計算是一種分散式計算環境,可以提供低延遲的運作和實時互動。FoG 計算具有位置感知、可擴充套件性、地理分佈、異構性和互操作性等特徵。這些特徵使 FoG 計算可以應用於各種領域,例如工業控制、智慧城市、智慧家居等。

  graph LR
    A[終端裝置] --> B[FoG 計算層]
    B --> C[雲端計算層]
    C --> D[資料處理和儲存]
    D --> E[實時分析和延遲敏感應用]

上述圖表展示了 FoG 計算的基本架構。終端裝置層由 IoT 裝置組成,負責生成原始資料。FoG 計算層由閘道器、路由器、交換器等裝置組成,提供資料處理和儲存功能。雲端計算層由現代基礎設施(如資料中心)組成,提供巨大的儲存和處理能力。資料處理和儲存功能可以提供實時分析和延遲敏感應用的需求。

FoG 計算架構模型

在 FoG 計算中,提供的設施由節點提供,包括有限的計算、儲存和網路能力。這些能力以分散式方式提供,橫跨 Edge/IoT 裝置和傳統雲資料中心。這裡的主要目標是為在 Edge/IoT 裝置上執行的時間敏感應用程式提供最小的延遲。

FoG 的架構由六個層組成,包括物理和虛擬化層、監控層、預處理層、臨時儲存層、安全層和傳輸層。最低層是物理和虛擬化層,包括虛擬感知網路和物理無線感知網路。在這一層,各種型別的感知器地理分佈以進行環境感知,從而生成原始資料。這些原始資料透過閘道器傳遞給下一層進行進一步處理和過濾。

監控層負責監控 FoG 節點和其他網路元素的資源利用率和可用性。這一層還負責監控服務、效能、功耗和跟蹤在 FoG 節點上執行的應用程式的狀態。

預處理和臨時儲存層負責資料管理任務。由節點轉發的資料被修剪和過濾以提取有意義的資訊。這些預處理的資料在下一層需要臨時儲存。

安全層負責 FoG 節點上的資料加密和解密。另外,還應用了額外的完整性機制以保護資料免被篡改。

架構的最高層是傳輸層,資料在這一層被上傳到雲端以生成更有用的服務。由於 FoG 節點受到限制,節點上的通訊協議需要是輕量級的、效率高的和可定製的。

FoG 計算架構模型圖

  graph LR
    A[物理和虛擬化層] --> B[監控層]
    B --> C[預處理和臨時儲存層]
    C --> D[安全層]
    D --> E[傳輸層]

這個 FoG 計算架構模型圖表明了 FoG 的六個層,包括物理和虛擬化層、監控層、預處理和臨時儲存層、安全層和傳輸層。每一層都有其特定的功能和責任,共同實作 FoG 的計算和資料管理任務。

FoG 計算架構模型是為了實作 Edge/IoT 裝置和傳統雲資料中心之間的無縫連線而設計的。這個模型包括六個層,每一層都有其特定的功能和責任。透過這個模型,FoG 可以提供最小的延遲和高效的計算和資料管理服務。

雲端運算簡介

在雲端運算問世之前,如果需要計算設施,必須投資硬體、軟體、網路和儲存等方面,以滿足這種需求。這些成本包括購買硬體的前期費用、維護費用和運營費用。對於個人或企業來說,需要大規模計算設施,這將是一筆巨大的費用(Chandrasekaran,2015)。但是,雲端運算使得使用者可以根據需要使用計算設施,從而減少了前期投資和維護費用。因此,雲端運算可以被定義為使用提供商的計算基礎設施,按需使用,僅支付所消耗的服務費用。

什麼是雲端運算?

專家對於雲端運算的定義眾多,其中最為流行的定義是由玄貓(NIST)提出。它指出,「雲端運算是一種使能無處不在、方便、按需網路存取共享計算資源池(例如網路、伺服器、儲存、應用程式和服務)的模型,這些資源可以快速配置和釋放,且管理努力或服務提供商互動作用最小」(Sunyaev,2020)。

雲端運算的基本特性

雲端服務應該具有以下基本特性:按需自助服務、無處不在的存取、多租戶、位置獨立、快速彈性和計量。

  • 按需自助服務:雲端服務應允許使用者/消費者獨立獲得計算資源,例如網路儲存和伺服器時間,無需人工干預(Mell and Grance,2011)。
  • 無處不在的存取:服務透過寬頻網路釋出,主要使用網際網路。服務可以在各種裝置上使用,例如智慧手機、平板電腦和工作站,使用標準通訊介面。這使得使用者可以在任何時間從任何裝置或平臺上使用任何雲端服務(Mell and Grance,2011;Iyer and Henderson,2010)。
  • 資源池和多租戶:計算資源池在提供商端進行,以服務使用者/消費者使用多租戶架構。共享計算資源是使雲端運算在經濟上有益的部分(Mell and Grance,2011;Arasaratnam,2011)。
  • 位置獨立:使用雲端服務的使用者/消費者具有位置獨立性,無需知道或控制計算資源的物理位置。使用者可能在更高的抽象層次上提供選擇控制權,例如選擇國家、州或資料中心(Mell and Grance,2011)。

雲端運算的基本特性是按需自助服務、無處不在的存取、多租戶、位置獨立、快速彈性和計量。這些特性使得雲端運算在經濟上有益,並且可以根據需要使用計算資源。按需自助服務允許使用者/消費者獨立獲得計算資源,無需人工干預。無處不在的存取使得服務可以在任何時間從任何裝置或平臺上使用。多租戶和資源池使得計算資源可以共享,從而減少了成本。位置獨立使得使用者/消費者具有位置獨立性,無需知道或控制計算資源的物理位置。

  graph LR
    A[按需自助服務] --> B[無處不在的存取]
    B --> C[多租戶和資源池]
    C --> D[位置獨立]
    D --> E[快速彈性和計量]

此圖表示雲端運算的基本特性之間的關係。按需自助服務允許使用者/消費者獨立獲得計算資源,無需人工干預。無處不在的存取使得服務可以在任何時間從任何裝置或平臺上使用。多租戶和資源池使得計算資源可以共享,從而減少了成本。位置獨立使得使用者/消費者具有位置獨立性,無需知道或控制計算資源的物理位置。快速彈性和計量使得雲端運算在經濟上有益,並且可以根據需要使用計算資源。

雲端運算的核心服務模式

雲端運算是一種提供彈性和可擴充套件的計算資源的服務模式。玄貓將雲端運算的核心服務模式分為三個層次:基礎設施即服務(IaaS)、平臺即服務(PaaS)和軟體即服務(SaaS)。

基礎設施即服務(IaaS)

IaaS提供給使用者基礎設施的使用權,包括計算資源、儲存資源和網路資源。使用者可以根據自己的需求自由配置和管理這些資源。IaaS的優點是提供了高度的彈性和可擴充套件性,讓使用者可以根據自己的需求隨時增加或減少資源。

平臺即服務(PaaS)

PaaS提供給使用者一個完整的平臺,包括作業系統、 middleware和應用程式開發工具。使用者可以在這個平臺上開發、測試和部署自己的應用程式。PaaS的優點是提供了高度的便捷性和效率,讓使用者可以專注於自己的應用程式開發,而不需要關心基礎設施的管理。

軟體即服務(SaaS)

SaaS提供給使用者已經開發好的應用程式,讓使用者可以直接使用。SaaS的優點是提供了高度的便捷性和低成本,讓使用者可以使用高品質的應用程式,而不需要自己開發和維護。

雲端運算的核心特性

雲端運算的核心特性包括:

  • 快速彈性:雲端運算可以提供快速的彈性,讓使用者可以根據自己的需求隨時增加或減少資源。
  • 計量服務:雲端運算提供計量服務,讓使用者可以根據自己的使用情況支付費用。
  • 多租戶:雲端運算提供多租戶的支援,讓多個使用者可以共享同一套基礎設施和平臺。

雲端運算的架構

雲端運算的架構包括:

  • 前端:前端是使用者與雲端運算系統之間的介面,提供使用者與雲端運算系統之間的互動。
  • 後端:後端是雲端運算系統的核心,提供計算資源、儲存資源和網路資源等基礎設施。
  • 中介軟體:中介軟體是前端和後端之間的橋樑,提供前端和後端之間的通訊和協調。

雲端運算部署模式

雲端運算的部署模式有四種:私有雲、公有雲、社群雲和混合雲。私有雲的基礎設施專門為單一組織或企業提供服務,雲端基礎設施可以設定在組織的場地內或外部。社群雲的基礎設施則專門為具有共同關注點的多個組織提供服務,同樣可以設定在組織的場地內或外部。公有雲的基礎設施則對公眾開放,任何人都可以使用。混合雲則結合了兩種或以上不同的雲端部署模式,例如社群雲、公有雲或私有雲,但每個實體仍保持其獨立性。

雲端運算架構

雲端運算架構分為前端和後端兩部分。前端指的是雲端的客戶端基礎設施,包括所有使用者介面和應用程式。後端則指的是雲端本身,負責控制資源和實施安全措施,同時包含大量儲存、虛擬應用程式、虛擬電腦、流量管理技術、部署模式等。

雲端運算架構由多個層次組成,包括:

  • 應用層:提供軟體平臺以滿足使用者需求。
  • 服務層:提供三種雲端基礎服務:SaaS(軟體即服務)、PaaS(平臺即服務)和IaaS(基礎設施即服務),根據客戶需求提供可選擇的服務。
  • 執行層:負責為虛擬機器提供執行和執行環境。
  • 儲存層:負責管理和擴充套件儲存服務。
  • 基礎設施層:指的是雲端的軟體和硬體,包括伺服器、儲存、網路裝置等。
  • 管理層:管理所有後端元件。
  • 安全層:實施不同安全機制以保護後端。
  • 網際網路層:作為前端和後端之間的橋樑,實作互動和通訊。

雲端運算架構具有多種優點,包括簡化整體計算系統、改善資料處理能力、提高安全性、改善災難恢復、降低運營成本等。

FoG和雲端運算的例項

雲端運算和FoG(Fog Computing,霧計算)結合可以實作更多的應用場景和優點。霧計算是一種分散式計算模式,將計算和儲存資源推向網路邊緣,減少延遲和提高實時性。雲端運算和霧計算的結合可以提供更好的資料處理能力、更低的延遲和更高的安全性。這種結合在物聯網、智慧城市、工業自動化等領域具有廣泛的應用前景。

FoG 和雲端運算在 IoT 中的角色

隨著 IoT 的發展,智慧裝置已經遍佈每個家庭、車輛和工作場所,所有這些裝置都可以連線到網際網路。由於技術的進步,周圍的物體都有可能連線到網際網路,因此對現有的網際網路和雲端基礎設施造成了巨大的壓力。

傳統的方法是使用集中式雲端進行處理,雲端通常位於一個特定的位置。但是,由於 IoT 裝置的普及,所產生的資料量非常龐大,現有的雲端基礎設施將面臨嚴重的壓力。

FoG 計算允許計算在 IoT 裝置上進行,並且只將相關資料推送到雲端。FoG 將雲端帶到生成和作用於 IoT 資料的物體附近。FoG 節點可以在雲端和 IoT 裝置之間的網路上部署。它們在網路邊緣分析最為時敏的資料,而不是將大量的 IoT 資料傳送到雲端。只有需要的資料可以傳送到雲端進行歷史分析和長期儲存。需要注意的是,FoG 不是要取代雲端,而是補充雲端以提高效率。

FoG 和雲端運算的例子

FoG 和雲端運算已經在現代計算場景中無處不在。FoG 和雲端服務提供商正在不斷地為現有的平臺新增新的功能。以下是 FoG 和雲端運算在 IoT 中的一些應用例子。

病人監測系統

在現代社會,慢性疾病的發生率增加了,主要是由於飲食習慣、缺乏運動、飲酒等因素。預計在未來 10 年內,慢性疾病導致的死亡人數將增加。因此,監測健康引數是非常重要的。

這個應用示範了一個病人監測系統,使用 Jetson Nano 單板機作為核心。該系統監測氧飽和度、脈率和體溫等健康引數。MAX30102 感測器用於測量氧飽和度和脈率,而 MLX90614 紅外線溫度感測器用於測量體溫。這些資料可以更新到 ThingSpeak 雲端平臺,以便從任何地理位置進行監測。

FoG 計算在家居安全中的應用

FoG 計算也可以用於家居安全,例如家居監視、家居安全鎖和火警系統。這些系統可以在 FoG 節點上部署,以便在網路邊緣進行分析和處理,從而提高效率和安全性。

FoG 和雲端運算的優勢

FoG 和雲端運算有許多優勢,包括提高效率、降低延遲、提高安全性和提高可擴充套件性。FoG 可以將計算和資料分析帶到網路邊緣,從而降低延遲和提高效率。雲端運算可以提供大規模的資料儲存和處理能力,從而提高可擴充套件性和安全性。

FoG 和雲端運算是兩種互補的技術,FoG 可以將計算和資料分析帶到網路邊緣,而雲端運算可以提供大規模的資料儲存和處理能力。這兩種技術可以結合使用,以提高效率、降低延遲、提高安全性和提高可擴充套件性。

以下是 FoG 和雲端運算的架構圖:

  graph LR
    A[FoG 節點] --> B[網路邊緣]
    B --> C[雲端]
    C --> D[資料儲存和處理]
    D --> E[應用程式]

這個圖表展示了 FoG 和雲端運算的架構,FoG 節點可以在網路邊緣進行計算和資料分析,而雲端可以提供大規模的資料儲存和處理能力。

使用 Jetson Nano 和 MAX30102/MXL90614 感測器進行病人監測

Jetson Nano 是一款小型、低功耗的單板電腦,適合用於各種應用,包括病人監測。MAX30102 和 MLX90614 是兩款常用的感測器,分別用於測量心率和體溫。

硬體連線

首先,需要將 MAX30102 和 MLX90614 感測器連線到 Jetson Nano。MAX30102 的 VCC 和 GND 分別連線到 Jetson Nano 的 3.3V 和 GND,SDA 和 SCL 分別連線到 Jetson Nano 的 PIN 3 (I2C 1 SDA) 和 PIN 5 (I2C 1 SCL)。MLX90614 的 VCC 和 GND 分別連線到 Jetson Nano 的 3.3V 和 GND,SDA 和 SCL 分別連線到 Jetson Nano 的 PIN 3 (I2C 1 SDA) 和 PIN 5 (I2C 1 SCL)。

軟體設定

在開始使用 I2C 協議之前,需要安裝相關的庫和工具。可以使用以下命令安裝:

sudo apt-get install python-setuptools
sudo apt-get install -y i2c-tools

然後,需要測試 I2C 裝置是否正確連線。可以使用以下命令:

sudo i2cdetect –y –r 1

MAX30102 感測器設定

首先,需要下載 MAX30102 的庫檔案,並將其解壓縮到一個資料夾中。然後,需要安裝一些 Python 庫,包括 smbusnumpy。可以使用以下命令安裝:

sudo apt install python-smbus
sudo apt install python-numpy

然後,需要修改 heartrate_monitor.py 檔案,以便更好地存取 MAX30102 的引數。可以在 HeartRateMonitor 類別中新增兩個變數,self.print_bpmself.print_spo2,並初始化為 0。

程式碼範例

以下是 heartrate_monitor.py 檔案的範例:

# heartrate_monitor.py
from max30102 import MAX30102
import hrcalc
import threading
import time
import numpy as np

class HeartRateMonitor(object):
    """
    A class that encapsulates the max30102 device into a thread
    """
    LOOP_TIME = 0.01
    def __init__(self, print_raw=False, print_result=False):
        # ...

MLX90614 感測器設定

MLX90614 感測器使用 I2C 協議進行通訊。可以使用以下命令安裝相關的庫和工具:

sudo apt-get install python-setuptools
sudo apt-get install -y i2c-tools

然後,需要測試 I2C 裝置是否正確連線。可以使用以下命令:

sudo i2cdetect –y –r 1

在本文中,我們使用了 Jetson Nano 和 MAX30102/MXL90614 感測器進行病人監測。MAX30102 感測器用於測量心率,而 MLX90614 感測器用於測量體溫。Jetson Nano 是一款小型、低功耗的單板電腦,適合用於各種應用,包括病人監測。

以下是 Jetson Nano 和 MAX30102/MXL90614 感測器的連線圖:

  graph LR
    Jetson_Nano --> MAX30102
    Jetson_Nano --> MLX90614
    MAX30102 --> Heart_Rate
    MLX90614 --> Body_Temperature

在這個圖中,Jetson Nano 是核心單板電腦,MAX30102 和 MLX90614 是感測器,心率和體溫是輸出結果。

心率和血氧監測器的初始化

在開始監測心率和血氧之前,需要初始化一些變數。這包括設定心率(bpm)和血氧飽和度(spo2)的初始值為0。另外,還需要設定是否列印原始資料(print_raw)和結果(print_result)。

self.bpm = 0
self.print_spo2 = 0
self.print_bpm = 0

初始化MAX30102感測器

接下來,需要初始化MAX30102感測器。這個感測器可以用來監測心率和血氧飽和度。

sensor = MAX30102()

初始化資料儲存列表

為了儲存感測器收集到的資料,需要初始化一些列表。這包括紅光資料(red_data)和紅外線資料(ir_data)的列表。

ir_data = []
red_data = []
bpms = []

執行感測器監測

現在,需要執行感測器監測的主迴圈。這個迴圈會一直執行,直到停止監測的訊號被傳送。

while not self._thread.stopped:

檢查資料可用性

在每次迴圈中,需要檢查是否有新的資料可用。

num_bytes = sensor.get_data_present()
if num_bytes > 0:

讀取資料

如果有新的資料可用,需要讀取這些資料並儲存到列表中。

while num_bytes > 0:
    # 讀取資料並儲存到列表中
    pass

上述程式碼片段展示瞭如何初始化心率和血氧監測器的變數和感測器,然後進入監測迴圈。監測迴圈會不斷檢查是否有新的資料可用,如果有,則會讀取這些資料並儲存到列表中。這些列表可以用來計算心率和血氧飽和度的值。這個過程需要不斷地讀取感測器的資料並進行處理,以得到準確的結果。

心率和血氧監測系統的資料處理

在心率和血氧監測系統中,資料的收集和處理是非常重要的步驟。以下是這個過程的詳細描述:

資料收集

首先,系統會從感測器中讀取資料,包括紅光和紅外線資料。這些資料會被儲存在 ir_datared_data 列表中。

red, ir = sensor.read_fifo()
ir_data.append(ir)
red_data.append(red)

資料過濾

為了確保資料的準確性,系統會對收集到的資料進行過濾。當資料的長度超過 100 個時,系統會刪除最舊的資料,以保證資料的新鮮度。

while len(ir_data) > 100:
    ir_data.pop(0)
    red_data.pop(0)

心率和血氧計算

當收集到的資料達到 100 個時,系統會使用 hrcalc.calc_hr_and_spo2 函式計算心率和血氧。這個函式會傳回心率、血氧和其有效性。

if len(ir_data) == 100:
    bpm, valid_bpm, spo2, valid_spo2 = hrcalc.calc_hr_and_spo2(ir_data, red_data)

資料儲存

如果計算出的心率是有效的,系統會將其儲存到 bpms 列表中。為了防止資料過多,系統會刪除最舊的資料,以保證列表中的資料不超過 4 個。

if valid_bpm:
    bpms.append(bpm)
while len(bpms) > 4:
    bpms.pop(0)
  flowchart TD
    A[資料收集] --> B[資料過濾]
    B --> C[心率和血氧計算]
    C --> D[資料儲存]
    D --> E[資料顯示]

這個過程可以確保系統收集到的資料是準確和可靠的,並且可以提供實時的心率和血氧監測。

FoG 和雲端運算的應用:以 Jetson Nano 為例

在 FoG 和雲端運算的應用中,使用 Jetson Nano 進行病人監測系統的開發是一個重要的例子。以下是相關的程式碼和設定步驟:

程式碼範例

import numpy as np
import time
import threading

class Sensor:
    def __init__(self):
        self.bpm = 0
        self.print_result = True
        self.LOOP_TIME = 1.0

    def run_sensor(self):
        while not self._thread.stopped:
            # 讀取感測器資料
            ir_data = np.random.randint(0, 100000)
            red_data = np.random.randint(0, 100000)
            bpms = np.random.randint(0, 100)

            # 處理感測器資料
            if np.mean(ir_data) < 50000 and np.mean(red_data) < 50000:
                self.bpm = 0
            else:
                self.bpm = np.mean(bpms)

            # 列印結果
            if self.print_result:
                print("Finger not detected" if self.bpm == 0 else "BPM: {0}".format(self.bpm))

            # 等待下一次迴圈
            time.sleep(self.LOOP_TIME)

    def start_sensor(self):
        self._thread = threading.Thread(target=self.run_sensor)
        self._thread.stopped = False
        self._thread.start()

    def stop_sensor(self, timeout=2.0):
        self._thread.stopped = True
        self._thread.join(timeout)

# 建立感測器物件
sensor = Sensor()

# 啟動感測器
sensor.start_sensor()

# 等待 10 秒
time.sleep(10)

# 停止感測器
sensor.stop_sensor()

MLX90614 庫設定

在使用 MLX90614 庫之前,需要將庫檔案解壓縮到相同的資料夾中。這個庫不需要進行任何修改。

深入剖析 FoG 與雲端運算的整合架構後,可以發現 Jetson Nano 作為邊緣計算節點的優勢,尤其在處理即時性要求高的 IoT 應用,例如文中提到的病人監測系統和智慧家居場景。透過在邊緣端預處理和分析資料,有效降低了網路延遲和雲端負載,提升了整體系統效率。然而,Jetson Nano 的資源有限性也是其限制,對於複雜的 AI 模型和大量的資料處理,仍需仰賴雲端協同運作。權衡邊緣計算和雲端計算的資源分配和任務協調,是 FoG 架構設計的關鍵挑戰。玄貓認為,隨著邊緣計算硬體效能的提升和 AI 模型輕量化技術的發展,Jetson Nano 等邊緣裝置將在更多領域扮演更重要的角色,推動更廣泛的 IoT 應用落地。未來,更精細化的資料處理策略和更智慧化的邊緣-雲端協同機制,將是技術演進的重要方向,進一步釋放 FoG 架構的潛力。