最新消息

Raspberry Pi 新版相機指令 libcamera 快速上手 (含舊版指令對照表)

 

作者
台灣物聯科技技術團隊
|
2025 技術專欄
為什麼這篇文章很重要?
如果您剛入手最新的 Raspberry Pi Camera Module 3,或者將樹莓派系統更新到了 Bullseye / Bookworm 版本,您會發現以前熟悉的 raspistill 指令失效了!
別驚慌,這是因為樹莓派全面轉向了更強大的開源相機堆疊——libcamera。本文將帶您快速掌握新指令。

1. 快速對照表:舊指令 vs 新指令

對於老玩家來說,最快的學習方式就是直接看對照。新版指令在命名邏輯上非常直觀:

功能 舊版指令 (Legacy) 新版指令 (libcamera)
純預覽 (不存檔) raspistill -f libcamera-hello
拍照 (JPG) raspistill libcamera-still
錄影 (H264) raspivid libcamera-vid
原始數據 (Raw) raspiyuv libcamera-raw

*註:在最新的 Raspberry Pi OS (Bookworm) 中,指令別名可能為 rpicam-stillrpicam-vid,但功能完全相同。


2. 實戰演練:常用指令範例

拍照指令 (libcamera-still)

這是最常用的指令,基本用法與舊版非常相似。

# 拍攝一張照片並儲存為 test.jpg
libcamera-still -o test.jpg

# 延遲 5 秒後拍攝 (單位為毫秒)
libcamera-still -t 5000 -o test.jpg

# 指定解析度為 1920×1080
libcamera-still –width 1920 –height 1080 -o test.jpg

錄影指令 (libcamera-vid)

新版錄影功能支援更靈活的檔案格式。

# 錄製 10 秒影片 (H.264 格式)
libcamera-vid -t 10000 -o test.h264

# 直接錄製為 mjpeg (方便某些播放器觀看)
libcamera-vid -t 10000 –codec mjpeg -o test.mjpeg

即時預覽 (libcamera-hello)

用來測試鏡頭是否安裝成功,或是單純想當作電子鏡子使用。

# 開啟預覽視窗,直到按下 Ctrl+C 結束 (-t 0 代表無限時)
libcamera-hello -t 0

3. 進階功能:解放 Camera Module 3 的潛力

如果您購買的是支援自動對焦 (Auto Focus)Camera Module 3,舊指令是完全無法驅動這個功能的。唯有 libcamera 能讓它火力全開。

啟用連續自動對焦

libcamera-hello -t 0 --autofocus-mode continuous

加上這個參數後,您會發現畫面中的物體移動時,鏡頭會自動重新對焦,就像手機一樣!

手動控制對焦

您也可以指定對焦距離(單位為 Dioptres 屈光度,數值 0 代表無限遠,數值越大代表對焦距離越近): 例如:10.0 大約對焦在 10公分處

libcamera-still -o focus_test.jpg --lens-position 5.0

4. 常見問題 Troubleshooting

Q: 執行指令出現 command not found
A: 請確認您的作業系統是否為 Raspberry Pi OS Bullseye 或更新版本。如果是舊版 Buster,請先升級系統。

Q: 出現 no cameras available 錯誤?
A:
1. 檢查排線是否接反(藍色膠帶應朝向網路孔/USB座,若是 Pi Zero 則相反)。
2. 如果您使用的是舊款 Pi Camera V1 (OmniVision),新系統可能支援度有限,建議升級至 Camera V2Camera V3

Q: 我還能切換回舊版指令嗎?
A: 在舊版 Bullseye 中可以透過 sudo raspi-config -> Interface Options -> Legacy Camera 啟用舊版支援,但在最新的 Bookworm 系統中,舊版堆疊已被大幅移除,建議盡早適應 libcamera。

官方權威資源參考

想要體驗最新的 AIoT 視覺應用?

台灣物聯科技提供最完整的樹莓派原廠鏡頭選擇,現貨供應中。

IoT
台灣物聯科技技術團隊

專注於 Raspberry Pi 與 AIoT 技術教學,我們致力於讓開發者能更輕鬆地使用最新的硬體技術。

LoRa 無線傳輸模組 SX1278/1276 LoRa 8000m擴頻技術

【ESP32 教學】打造 LoRa 超長距離無線感測器 (附完整程式碼)

您是否曾經想打造一個能覆蓋整座農場、整棟廠房,甚至穿越山谷的無線感測網絡,卻總是苦於市面上 Wi-Fi 或藍牙模組那短短數十公尺的「訊號距離」限制?

這篇文章,就是為了解決這個核心痛點而生。我們將帶您使用兩大神器——ESP32 開發板 的超低功耗模式,以及傳輸距離遠達 8 公里E32 系列 LoRa 無線模組,一步步打造一個真正能實現超長距離通訊的無線感測節點。

  • 專案目標: 打造一個由電池供電的 LoRa 無線溫濕度感測器。
  • 核心功能: 每 10 分鐘自動發送一次數據,然後進入深度睡眠以節省電力。
  • 所需時間: 約 30 分鐘。
  • 技術難度: ★★☆☆☆ (初學者友好)

一、為什麼選擇 ESP32 + E32 LoRa 模組?

  • ESP32 的「深度睡眠 (Deep Sleep)」模式:樂鑫科技 (Espressif) 開發,內建超低功耗模式,可將電池壽命延長數月甚至數年。
  • E32 LoRa 模組的「超長距離」與「簡易 UART」特性: 這款 1W (30dBm) 高功率 LoRa 模組,採用 UART 串列埠通訊,接線和程式設計遠比傳統的 SPI 介面更簡單。

二、專案實作:從零件到成果的完整步驟

步驟一:硬體準備

  1. 主控板: Arduino Nano ESP32 開發板 x 1 (或其他您偏好的 ESP32 開發板)
  2. LoRa 模組: LoRa 無線傳輸模組 (1W 30dBm) x 2 (發送端與接收端各需一片)
  3. 感測器: DHT22 溫濕度感測器模組 x 1
  4. 電源: 3.7V 鋰聚合物電池 (LiPo) x 1 (選配)
  5. 其他: 杜邦線麵包板

關於電池供電的選擇

我們推薦的 Arduino Nano ESP32 是一塊功能強大且小巧的開發板,但請注意它沒有內建鋰電池充電接口。如果您希望打造一個可重複充電的裝置,建議您可以選擇帶有電池座或充電電路的 ESP32 開發板,或是額外搭配一片 TP4056 鋰電池充電模組 來使用。

步驟二:軟體與函式庫設定

請確保您的 Arduino IDE 已經安裝了 ESP32 的開發板支援。由於我們選用的 E32 LoRa 模組是透過 UART 通訊,我們不需要安裝任何複雜的第三方 LoRa 函式庫!您唯一需要安裝的,只有感測器的函式庫:

步驟三:硬體接線

由於採用 UART 介面,接線變得非常簡單!我們將使用 ESP32 的第二組硬體序列埠 (Serial2)。

E32 LoRa 模組 ESP32 開發板 說明
VCC 5V / 3V3 電源 (請參考模組規格)
GND GND 接地
RXD GPIO 17 (TX2) 接收端 ↔️ ESP32 的發送端
TXD GPIO 16 (RX2) 發送端 ↔️ ESP32 的接收端
M0 GND 設為傳輸模式 (接地)
M1 GND 設為傳輸模式 (接地)
DHT22 DATA GPIO 13 DHT22 感測器數據線

【接線防呆提示】 UART 通訊就像兩個人說話,A 的嘴巴 (TX) 要對著 B 的耳朵 (RX),B 的嘴巴 (TX) 則要對著 A 的耳朵 (RX)。所以接線時,請務必將模組的 TXD 接到 ESP32 的 RX2,模組的 RXD 接到 ESP32 的 TX2,交叉連接!

⚠️ 【重要】請確認您的 LoRa 頻率!

這款模組提供 433MHz、868MHz、915MHz 等多種頻率版本,它們無法互相通訊!請務必確認您的「發送端」和「接收端」使用的是完全相同頻率的模組。

步驟四:上傳程式碼 (發送端)

將以下程式碼上傳到您的 ESP32 開發板。它會讀取 DHT22 數據,透過 LoRa 發送,然後讓 ESP32 進入深度睡眠 10 分鐘。


#include <HardwareSerial.h>
#include "DHT.h"

// --- E32 LoRa (UART) ---
HardwareSerial LoRaSerial(2); // 使用 ESP32 的 Serial2 (GPIO 16, 17)

// --- DHT22 設定 ---
#define DHTPIN 13
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

// --- Deep Sleep 設定 ---
#define uS_TO_S_FACTOR 1000000ULL
#define TIME_TO_SLEEP  600         // 睡眠 600 秒 (10 分鐘)

void setup() {
  Serial.begin(115200);
  while (!Serial);
  Serial.println("ESP32 LoRa Long-Range Sensor Node");

  LoRaSerial.begin(9600);
  dht.begin();
  delay(1000); // 等待感測器穩定
  
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Failed to read from DHT sensor!");
  } else {
    String dataToSend = "Temperature: " + String(temperature, 2) + " C, Humidity: " + String(humidity, 2) + " %";
    Serial.print("Sending data: ");
    Serial.println(dataToSend);
    LoRaSerial.println(dataToSend);
  }
  
  Serial.println("Going to sleep now for 10 minutes...");
  Serial.flush(); 
  
  esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
  esp_deep_sleep_start();
}

void loop() {
  // This part is not executed after deep sleep
}

步驟五:上傳程式碼 (接收端) 與最終測試

光有發送端還不夠,我們還需要一個接收端來驗證訊號是否成功發出。請將以下程式碼,上傳到您作為「接收端」的另一塊 ESP32 開發板上(接線方式與發送端相同,但可以不接 DHT22)。


#include <HardwareSerial.h>

HardwareSerial LoRaSerial(2);

void setup() {
  Serial.begin(115200);
  while (!Serial);
  Serial.println("ESP32 LoRa Receiver");
  LoRaSerial.begin(9600);
}

void loop() {
  if (LoRaSerial.available()) {
    String receivedData = LoRaSerial.readString();
    Serial.print("Received packet: '");
    Serial.print(receivedData);
    Serial.println("'");
  }
}

完成後,為您的發送端接上電池,並將接收端連接到電腦。打開 Arduino IDE 的序列埠監控視窗,您應該就能每 10 分鐘看到一次從遠方傳來的溫濕度數據了!


透過本篇教學的實作,您會發現,使用 UART 介面的高功率 LoRa 模組,其價值不僅在於強大的傳輸距離,更在於它極大地簡化了開發流程。這意味著您可以從複雜的底層通訊中解放出來,更專注於應用本身的創新,將您的物聯網創意,真正部署到任何過去訊號無法到達的角落。

本文由 台灣物聯科技 技術團隊,根據自家販售產品實測經驗分析彙整。

延伸閱讀

高通收購 Arduino 對創客與開發者的 5 大影響與未來變局

今日,一則標題為「高通收購 Arduino」的新聞,在全球創客圈與物聯網業界投下了一枚震撼彈。然而,在聳動的標題之下,真相其實是更為複雜且深遠的:這是一次以「收購」為名的「深度戰略合作」。

根據 iThome 等權威媒體的深度報導,高通確實收購了 Arduino 公司,但同時也做出了關鍵承諾:Arduino 將作為一個獨立子公司繼續運營,保留其品牌、社群和開源使命。

這就好比迪士尼收購了漫威影業,雖然老闆換了,但漫威依然保有其獨立的創作風格與宇宙。那麼,這場世紀聯姻,對每天在工作桌前奮鬥的你我——創客、開發者、教育工作者——究竟意味著什麼?身為深耕台灣物聯網領域的授權代理商,台灣物聯科技為您提出第一時間的深度分析。

Arduino uno q


影響一:強強聯手,Arduino 正式邁入「高效能 AI」時代

最令人興奮的,無疑是技術上的大融合。Arduino 首次推出的 Arduino UNO Q 開發板,採用了高通的 QRB2210 核心,這只是一個開始。

  • 終端 AI (Edge AI) 普及化: 藉助高通強大的 AI Engine 與影像處理能力,過去需要在 Raspberry Pi 或更高階電腦上才能實現的影像辨識、語音助理等應用,未來將有機會在更親民、更易於部署的 Arduino 平台上實現。
  • 無線技術的深度整合: 高通在 5G、Wi-Fi 領域的領導地位,預示著未來將有更多功能更強大、連接更穩定的 Arduino Pro 系列產品問世,特別是在工業物聯網 (IIoT) 領域。

影響二:開源精神的「保護性觀察」

社群最大的擔憂——「Arduino 是否不再開源?」——在「獨立子公司」的承諾下,得到了一定的緩解,但仍需密切觀察。

  • 核心社群的基石: 我們相信,由獨立運作的 Arduino 公司所主導的經典產品線(如 Uno R3 / Uno R4),將繼續維持其完全開源的傳統,因為這是維繫全球 3300 萬開發者的根本。
  • 高階產品的「開放核心」模式: 未來與高通深度合作的高階產品線,則極有可能採用「開放核心 (Open Core)」模式。也就是說,基礎功能開源,但整合了高通獨家 IP 的高效能 AI、5G 等「殺手級功能」,其驅動或函式庫則可能需要授權或部分封閉。

影響三:產品線的「分層」與市場區隔

這次合作,將使 Arduino 的產品藍圖變得空前清晰,正式「出圈」,從單一的創客/教育市場,擴展至專業與工業級市場。

  • 教育與入門市場: 將繼續由經典的 Arduino Uno R3、Nano 等低成本、易上手的開發板主導。
  • 高階與專業市場: 將由搭載高通晶片的 UNO Q 或未來的「Q 系列」主導,直接與 Raspberry Pi 在微型電腦、NAS、高階機器人等應用場景展開正面競爭。

影響四:供應鏈哲學 — 巨獸與精靈的整合

高通的介入,對供應鏈的影響是雙面的,這也是我們身為經銷商最關心的部分。

  • 潛在優勢:更具競爭力的成本結構。 藉助高通巨大的採購量,Arduino 在通用元件上的議價能力可能提升,理論上有助於穩定未來的產品售價。
  • 潛在風險:產品多樣性與靈活性的隱憂。 我們擔憂,習慣於「量大、標準化」生產模式的高通,可能會影響到 Arduino 生態中那些小眾、但極具創意的利基型產品的生存,導致產品線變得單一化。

影響五:對台灣開發者與產業的特殊機會

從在地觀點來看,這次合作對身處半導體重鎮的台灣,意義非凡。

  • 硬體合作的想像空間: 台灣在全球電子製造與IC設計產業中扮演關鍵角色。高通與 Arduino 的合作,是否會加深與台灣供應鏈的合作關係,值得密切關注。
  • 軟體人才的新舞台: 隨著具備強大 AI/ML 功能的 Arduino 硬體問世,台灣優秀的軟體與演算法人才,將有了一個全新的、更易於部署的硬體平台來大展身手,尤其是在智慧醫療、智慧農業等領域。

我們的觀點與承諾:挑戰與機遇並存

總結來說,高通與 Arduino 的結盟,是一次「機遇」與「挑戰」並存的巨大變革。技術的躍進令人興奮,但對開源社群文化的衝擊也值得警惕。

身為 Arduino 在台灣的授權代理商,台灣物聯科技向所有使用者承諾:

  1. 我們將持續站在社群與開發者的第一線,為大家爭取最合理的價格與最穩定的供貨。
  2. 我們將密切追蹤所有技術與政策的轉變,並為大家提供最即時、最白話的分析與教學。
  3. 我們將持續為您評測最新的硬體,提供最客觀的優劣分析,幫助您在變動的生態系中,始終能做出最明智的選擇。

常見問題 FAQ

Q1: 所以,Arduino 到底是不是被高通「買走」了?

A: 是的,從財務和法律上來說,高通收購了 Arduino 公司。但同時承諾讓 Arduino 作為「獨立子公司」運營,保留品牌和開源精神。最好的理解方式是「迪士尼收購漫威」的模式。

Q2: 我手上的 Uno R3 還能用嗎?會不會被淘汰?

A: 絕對可以繼續使用!Arduino 官方承諾會繼續支持現有產品線。Uno R3 作為全世界最多人使用的開發板,其社群與資源在未來很長一段時間內依然會非常活躍。

Q3: 新的 UNO Q 和 Raspberry Pi 哪個比較好?

A: 兩者定位開始重疊但各有側重。UNO Q 可能在整合 AI 與視覺處理上更具優勢且功耗更低;而 Raspberry Pi 則是一個更完整的 Linux 微型電腦,通用性更高。我們會盡快為大家帶來詳細的評測比較。


延伸閱讀


本文由 台灣物聯科技 技術團隊,根據產業知識與公開資訊分析彙整。

Arduino是義大利還是美國品牌?揭開其血統與正廠之爭的神秘面紗

您手中握著的 Arduino 開發板,不僅是開啟電子世界的鑰匙,它本身也是一段關於開源精神、設計初衷,以及義大利製造血統堅守的傳奇故事。

01. 誕生於義大利的開源初心

一切都始於 2005 年的義大利 Ivrea 小鎮。由 Massimo Banzi 等五位創辦人共同發起,他們懷抱著一個簡單的夢想:打造一個讓設計學院學生也能輕鬆上手的電子原型平台。他們創造了 Arduino,這個名稱源於他們經常聚會的酒吧,並委託其中一位創辦人 Gianluca Martino 的公司 (Smart Projects) 負責生產製造。

然而,隨著 Arduino 在全球大獲成功,創始團隊與製造商之間的裂痕也悄然浮現。爭議的核心在於,製造商在義大利悄悄地註冊了「Arduino」商標,並試圖將品牌完全商業化。這場分裂最終在 2015 年浮上檯面,導致品牌分裂為兩派:

  • 由 Massimo Banzi 等核心創始人領導的 Arduino LLC (arduino.cc),堅守開源初心。
  • 由原製造商主導的 Arduino S.r.l. (arduino.org),掌握了在義大利的製造與商標。

雙方為了「Arduino」這個名稱的正統性,展開了短暫但激烈的商標與法律爭議,這段時期在創客圈被稱為「Arduino vs. Arduino」事件。

02. URL 裡的歷史痕跡:短暫的過渡時期

您可能在我們的網址(URL)中發現了 「美國原廠」 這類字樣,這正是這段歷史的見證。

在品牌分裂、權利歸屬不明的過渡期間,為了確保全球市場能持續獲得高品質的開發板,由創始團隊主導的 Arduino LLC (arduino.cc) 在美國成立了公司,並與 Adafruit 等美國大型製造商合作生產,以「Genuino」品牌在美國以外地區銷售。我們的這款 Arduino Uno Rev3 SMD,正是在那個尋求解決方案的歷史階段上架的。URL 作為網站紀錄,忠實地保留了當時的市場資訊。

Arduino UNO R3 SMD 官方原廠開發板

03. 義大利的全面回歸與品質承諾

經過數年的不懈努力與協商,最終在 2017 年,Arduino 的創始團隊成功地完成了品牌的統一與收復。他們將生產、研發、品質控制等所有核心業務,全部收歸回義大利原廠

這次回歸,是對 Arduino 核心精神的強烈宣告:我們的產品必須保持純正的義大利設計與製造血統

  • 純正血統: 如今,您從我們這裡購買的每一塊官方開發板,都是在義大利境內生產製造,品質控制達到歐盟最高標準。
  • 專業穩定性:官方 Arduino 開發板始終貫徹義大利製造對細節的堅持,為您的專案提供長期、可靠的運行穩定性。
  • 承載使命: 每一塊板子都代表著 Arduino 對全球創客社群的承諾——提供最高品質、最純正的硬體,讓您的創造力永不妥協。

雖然我們的網址記載了過去的足跡,但我們所銷售的每一塊 Arduino 官方產品,都來自品牌統一後、百分之百純正血統的「Made in Italy」。選擇它,就是選擇對 Arduino 創始夢想與頂級品質的信任。

立即瀏覽我們的官方 Arduino 系列,體驗純正的義大利創客精神。


延伸閱讀:


本文由 台灣物聯科技 技術團隊,根據產業知識與公開資訊分析彙整。
心跳脈搏脈衝感測器套件 Arduino Pulse sensor

心跳感測模組實驗:Arduino 入門醫療科技應用

午休結束的生物課,老師讓同學把食指放在小小的感測頭上,幾秒後螢幕出現一條起伏的曲線。那不是擺設,而是每個人當下的心跳訊號。从智慧手环到临床监护,心率监测早已走入日常;而对学习者来说,只要一块 Arduino Uno 和一颗心跳感测模组,就能把「生命征象」化成能分析与应用的资料。

這篇文章會帶你做到什麼?

  • 了解兩類常用心跳感測器:類比式 Pulse Sensor、I²C 介面的 MAX30100
  • 完成 Arduino 讀值與即時監看,並給出可用的程式碼
  • 知道何時該選進階的 MAX30101/MAX32664 模組,以及常見問題與校正重點

感測原理,用白話說清楚:

多數心跳模組採用 PPG(光體積描記法)。發光元件照到手指(或耳垂),血液因心臟收縮與舒張而改變吸光量,回到感光元件的光強度就會呈現週期性的起伏,轉成電訊號後,便可計算心率(BPM)。

選哪一顆?依專案分級:

  • 入門與課堂展示:Pulse Sensor(類比輸出,接 A0 就能看波形)
  • 入門+想要心率/血氧數值:GY-MAX30100(I²C,搭配程式庫可算 HR/SpO₂)
  • 進階研究或更穩定算法:MAX30101 / MAX32664(Qwiic/SparkFun 板,演算法更完整)

提示:本文程式碼示範 Pulse SensorMAX30100;MAX30101/MAX32664 建議依供應商程式庫範例實作。

硬體接線:

Pulse Sensor(類比)

  • VCC → 5V 或 3.3V(依模組標示)
  • GND → GND
  • SIGNAL → A0(Arduino 類比輸入)

GY-MAX30100(I²C)

  • VIN → 3.3V(多數板可 3.3V;若標示可 5V 再接 5V)
  • GND → GND
  • SDA → A4(UNO)/ 21(ESP32)
  • SCL → A5(UNO)/ 22(ESP32)

程式碼範例:先看得到,再談計算

1)Pulse Sensor:先把波形讀出來(Arduino UNO)


// 讀取 Pulse Sensor 類比波形並輸出到序列監視器
const int SENSOR_PIN = A0;
void setup() {
 Serial.begin(9600);
}
void loop() {
 int v = analogRead(SENSOR_PIN);
 Serial.println(v);   // 在序列監視器用「繪圖」查看波形
 delay(10);           // 取樣間隔約 100 Hz
}
 

想要直接得到 BPM,建議安裝 PulseSensor 官方 PulseSensor Playground 程式庫,內含去雜訊與峰值偵測邏輯,比自行手刻更穩定。

2)GY-MAX30100:以程式庫計算 HR/SpO₂

安裝 MAX30100 專用程式庫(常見名稱:MAX30100_PulseOximeter)。以下為常用的穩定範例,能每秒輸出心率與血氧:


#include <Wire.h>
#include "MAX30100_PulseOximeter.h"
#define REPORTING_PERIOD_MS 1000
PulseOximeter pox;
uint32_t tsLastReport = 0;
void onBeatDetected() {
 Serial.println("Beat!");
}
void setup() {
 Serial.begin(115200);
 Wire.begin();
 if (!pox.begin()) {
   Serial.println("MAX30100 init FAILED");
   while (1); // 停在這裡方便排錯(接線/電源)
 }
 // 視板子/手指狀況可調整 LED 電流,過大會飽和、過小雜訊高
 pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);
 pox.setOnBeatDetectedCallback(onBeatDetected);
}
void loop() {
 pox.update(); // 必須持續呼叫以更新內部濾波與偵測
 if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
   Serial.print("HR: ");
   Serial.print(pox.getHeartRate(), 0);
   Serial.print(" bpm    SpO2: ");
   Serial.print(pox.getSpO2(), 0);
   Serial.println(" %");
   tsLastReport = millis();
 }
}
 

若數值不穩定,檢查電源是否雜訊大(改用 3.3V、加電源去耦),並嘗試不同 LED 電流或更穩定的手指姿勢。

實驗步驟與觀察

  • 先用 Pulse Sensor 看波形有無規律起伏;若雜訊高,放穩手指、避開強光。
  • 改用 MAX30100 程式庫,觀察每秒輸出的 HR/SpO₂ 是否在合理範圍。
  • 做一次「前後對照」:安靜坐著 2 分鐘量測,再做 20 次深蹲後量測,觀察 HR 的變化。

常見問題與校正建議

  • 波形亂跳:降低環境光、穩定手部、加上移動平均或低通濾波。
  • BPM 偏低/偏高:Pulse Sensor 請用官方程式庫;MAX30100 調整 LED 電流、確認 I²C 連線與取樣率。
  • 不同人體差異:血流弱、手指溫度低都會影響反射光;可改量耳垂或換手指。

何時改用 MAX30101 / MAX32664?

若你的專題需要更穩定演算法、更多參數(如 HRV)或長期連續記錄,推薦改用 MAX30101/MAX32664 的模組。它們的優勢在於光學路徑與演算法設計更成熟,適合研究或長照情境。不過請記得:這些仍屬開發與教學用途,非醫療認證設備。

把專題做漂亮:三個實作方向

  • 即時可視化:用 Arduino 串 OLED/LCD 顯示 HR 與波形
  • IoT 上雲:ESP32 透過 Wi-Fi 把心率資料送到雲端平台(MQTT/ThingSpeak)
  • 安全提示:心率超出門檻時,蜂鳴器/LED 提醒,並推播到手機

把手指放上感測頭,看著波形與數字同步跳動,是學習醫療科技的最佳起點。Pulse Sensor 讓你立刻看到訊號,MAX30100 協助你取得 HR/SpO₂,而 MAX30101/MAX32664 則支援更進階的研究需求。從這個小專案開始,你就能把「生理訊號」連上 Arduino、資料與應用,做出真正有價值的健康科技作品。

特別提醒:

1. MAX30100 與 MAX30102/01 差異

• MAX30100 已算舊款,部分使用者反應血氧數值不太穩。
• 對「血氧精準度」要求高的讀者,建議用 MAX30101 或 MAX30102。

2. Pulse Sensor 精度

• Pulse Sensor 本身容易受到雜訊干擾,用官方 Library,比較穩定。
• 在科展/專題時,建議加 RC 濾波器或用 Arduino 的 Moving Average。

延伸閱讀:為您的專案挑選最佳「心」: