Author - 台灣物聯科技

SCD41 氣體感測器模組 檢測CO2二氧化碳、溫濕度二合一 I2C通訊

智慧教室必備:二氧化碳感測器的應用與數據監測

在教室裡待久了,學生會覺得昏昏欲睡,其實原因往往不是課程內容,而是空氣品質。當二氧化碳濃度逐漸升高,注意力與學習效率都會受到影響。這時候,二氧化碳感測器(CO₂ Sensor)就能發揮作用,透過即時數據監測,協助打造更健康的智慧教室環境,讓老師與學生都能維持最佳狀態。

為什麼智慧教室需要 CO2 感測器?

  • 學習效率:研究顯示,教室內 CO₂ 濃度過高會導致專注力下降與學習表現不佳。
  • 健康安全:長時間處於高濃度 CO₂ 的環境,可能造成頭暈與疲倦。
  • 智慧通風:透過即時監測,能自動控制空調或通風系統,確保空氣流通。

常見的 CO₂ 感測器模組

  • SCD41:體積小巧,高精度,適合智慧教室與教育套件。
  • MH-Z19:廣泛使用,支援 UART 與 PWM 輸出。
  • 其他CO₂感測器:專業級產品,適合長期監測與工業環境。

應用場景

智慧教室

結合 CO2感測器與顯示面板,教師能即時觀察教室空氣品質,提醒學生開窗或啟動通風。

教育專題與科展

學生可透過 Arduino 或 ESP32 開發板,搭配 二氧化碳感測模組,進行數據蒐集與分析,作為物聯網或環境科學專題的一部分。

學校後勤管理

校方可集中收集各教室的 CO₂ 數據,建立校園空氣品質監測平台,優化能源與通風管理。

材料清單

  • CO₂ 感測器模組(推薦使用 SCD41)
  • Arduino Uno 或 ESP32 開發板
  • OLED 或 LCD 顯示器(選配)
  • 杜邦線與麵包板

接線方式

  • SCD41 使用 I²C 通訊:SDA → Arduino A4,SCL → A5(ESP32 可接 D21/D22)
  • VCC → 3.3V 或 5V(依模組規格)
  • GND → GND

範例程式碼(SCD41 + Arduino)

要驅動 SCD41,我們需要安裝對應的函式庫。本範例採用由 SparkFun 維護的 SCD4x Arduino Library,請先透過 Arduino IDE 的程式庫管理員安裝它。


// SCD41 CO₂ 感測器範例
#include 
#include "SparkFun_SCD4x_Arduino_Library.h"
SCD4x mySensor;
void setup() {
  Serial.begin(115200);
  Wire.begin();
  if (mySensor.begin() == false) {
    Serial.println("未找到 SCD41 感測器!");
    while (1);
  }
}
void loop() {
  if (mySensor.readMeasurement()) {
    Serial.print("CO2: ");
    Serial.print(mySensor.getCO2());
    Serial.print(" ppm, Temp: ");
    Serial.print(mySensor.getTemperature(), 1);
    Serial.print(" °C, Humidity: ");
    Serial.print(mySensor.getHumidity(), 1);
    Serial.println(" %");
  }
  delay(5000);
}

未來發展與整合

  • 結合校園 IoT 平台,集中管理全校教室的空氣品質數據。
  • 與 AI 演算法整合,根據課表與學生人數預測 CO₂ 上升趨勢,主動調整通風。
  • 搭配其他感測器(PM2.5、VOC、溫濕度)打造完整智慧校園解決方案。

CO₂ 感測器是智慧教室不可或缺的元件,能保障師生健康,提升學習效率,並協助校方實現智慧化管理。在教育專題、科展實驗或智慧校園建設,CO₂ 感測器都能發揮重要作用。

開始打造您的智慧教室感測專案

VOC 空氣品質感測器

VOC 空氣品質感測器教學:如何檢測甲醛與室內污染

生活品質提升後,大家越來越關注室內空氣污染問題。揮發性有機化合物(VOC, Volatile Organic Compounds),例如甲醛、苯、甲苯等,常見於裝潢建材、傢俱與清潔劑中,長期暴露可能造成頭痛、呼吸道疾病或者健康隱憂。接下來介紹如何利用 VOC 空氣品質感測器,進行室內污染檢測,並提供 Arduino 入門實驗教學。

什麼是 VOC 空氣品質感測器?

VOC 感測器能偵測空氣中揮發性有機氣體的濃度,部分模組也可延伸檢測 CO₂、CO 或煙霧。常見的 VOC 感測器包括:

  • MQ 系列感測器(如 MQ-135):價格低廉,適合教育用途。
  • 專業型 VOC 感測模組:靈敏度更高,適合科研與空氣品質監測系統。
  • 複合式環境感測器:同時支援溫濕度、VOC 與 PM2.5 偵測。

應用場景

家庭空氣監測

檢測裝潢後的甲醛釋放,或廚房、客廳的揮發性氣體,提醒是否需要開窗通風。

學校與公共空間

教室內若空氣不流通,VOC 濃度會升高,搭配 CO₂ 感測器能完整反映室內環境品質。

科研與實驗室

提供基礎數據,用於研究室內空污源與健康影響。

所需材料

接線方式

  • VOC 感測器訊號腳 → Arduino A0(類比輸入)
  • VCC → 5V
  • GND → GND
  • (若有數位輸出腳,亦可接至數位輸入 D2)

Arduino 範例程式


// VOC 感測器 (MQ-135) 入門實驗
const int sensorPin = A0;
int value = 0;
void setup() {
 Serial.begin(9600);
}
void loop() {
 value = analogRead(sensorPin);
 Serial.print("VOC sensor value: ");
 Serial.println(value);
 
 if (value > 400) {
   Serial.println("空氣品質不佳,建議通風!");
 } else {
   Serial.println("空氣品質正常");
 }
 
 delay(1000);
}

數據解讀與校正

  • 不同感測器的數值範圍不同,需依模組規格書調整。
  • 建議進行「基線校正」:在新鮮空氣環境下讀取基準值,並以此作為比較依據。
  • 若要換算成 ppm,需要參考感測器特性曲線或搭配校正氣體。

未來延伸應用

  • 搭配 Wi-Fi/LoRa/NB-IoT,將數據上傳雲端。
  • 與 CO₂、PM2.5 感測器整合,打造完整智慧教室或家庭空氣品質監測系統。
  • 結合 AI 演算法,預測室內空氣污染趨勢,主動提醒開窗或啟動空氣清淨機。

VOC 空氣品質感測器不僅能幫助我們檢測甲醛與有害氣體,更能提升家庭與學校的健康保障。對教育單位而言,這也是結合 Arduino、IoT 與環境科學的絕佳教材。

相關產品

長照應用:利用人體紅外線感測器偵測跌倒與活動狀態

台灣逐漸進入高齡化社會,如何確保長者的日常安全,成為長照機構與居家看護的重要課題。其中「跌倒」是最常見且危險的意外之一,若能即時偵測並發出警示,就能大幅降低後續醫療與看護的風險。本文將介紹如何利用人體紅外線感測器,實現跌倒與活動狀態的監測,並探討其在長照領域的應用價值。

什麼是人體紅外線感測器?

人體紅外線感測器(PIR Sensor, Passive Infrared Sensor)能偵測人體移動時釋放的紅外線變化。當人體進入感測範圍,感測器會輸出訊號,常用於自動燈光控制、防盜系統與智慧家居。若搭配長照應用,則能進一步用來監測長者的活動狀態。

長照情境中的應用

跌倒偵測

如果感測器在長時間內偵測不到動作,卻同時偵測到「突然的強烈信號變化」(例如快速跌倒動作),系統即可判定疑似跌倒,並立即發送通知給看護人員。

活動狀態監控

感測器能持續偵測長者是否在房間內移動。如果長時間完全沒有活動,系統可自動發送提醒,幫助照護人員確認長者是否需要協助。

夜間安全

感測器能在夜間自動開啟微光照明,協助長者安全起身,降低半夜跌倒風險。

所需硬體與材料

接線示例

  • PIR 感測器訊號腳 → Arduino D2
  • VCC → 5V
  • GND → GND
  • 蜂鳴器 / LED → Arduino D7

範例程式碼


// PIR 感測器跌倒/活動狀態偵測範例
const int PIR_PIN = 2;
const int ALERT_PIN = 7;
void setup() {
 pinMode(PIR_PIN, INPUT);
 pinMode(ALERT_PIN, OUTPUT);
 Serial.begin(9600);
}
void loop() {
 int pirState = digitalRead(PIR_PIN);
 if (pirState == HIGH) {
   Serial.println("偵測到活動");
   digitalWrite(ALERT_PIN, HIGH); // 亮燈或蜂鳴
 } else {
   Serial.println("無活動");
   digitalWrite(ALERT_PIN, LOW);
 }
 delay(1000);
}

未來延伸應用

  • 結合 AI 影像辨識,提升跌倒判斷準確度。
  • 透過 LoRa 或 NB-IoT 模組,將長者活動數據傳送至後端平台,提供醫護人員遠端監測。
  • 與智慧家居系統整合,自動開燈、通報家屬或醫護中心。

人體紅外線感測器不僅價格低廉、安裝容易,更能有效協助長照領域實現「即時偵測、快速反應」的安全需求。對於想要建立智慧照護系統的教育單位或開發者來說,這是一個入門簡單、應用價值高的解決方案。

相關產品

土壤濕度感測器應用:智慧農業的入門實例

土壤濕度感測器能精準量測土壤含水量,協助農業專案提升灌溉效率與作物品質。本文介紹土壤濕度感測器的種類、應用場景與 Arduino 入門實驗,適合智慧農業研究、教育專題與自動灌溉系統設計。

什麼是土壤濕度感測器

常見兩種類型:

  • 電阻式:以電阻變化判斷乾濕,價格低、適合教學。
  • 電容式:受鹽分影響較小,訊號穩定,較適合長期監測。

應用場景

入門示警(本文示範)

根據乾濕程度點亮 LED 或鳴叫蜂鳴器,方便學生或研究人員快速觀察變化。

教學與專題

可搭配 Arduino/ESP32 完成量測、記錄、可視化與簡易自動化控制,適合科展或課程實作。

進階延伸(選配)

加入水流量感測器(如 YF-S201、G1/2、G3/4 等規格),在開啟閥門或手動澆水時,確認是否真的有水流通過,以避免「以為澆到水但其實沒流量」的情況。

所需材料清單

接線示意

  • 土壤濕度感測器訊號腳 → A0(類比輸入)
  • 繼電器或電晶體控制腳 → D7(數位輸出)
  • LED 示警(若不用繼電器):D6 → 電阻 → LED → GND
  • VCC 依模組規格接 3.3V 或 5V;GND 共地
  • (選配)水流量感測器訊號腳 → D2(數位輸入)

程式範例:可調整閾值+相容高/低電位觸發


// 土壤濕度入門示範(LED/蜂鳴器示警,無水泵)
// 可調整乾濕閾值,並相容「高/低電位觸發」的繼電器或電晶體模組
const int SOIL_PIN = A0;     // 土壤濕度讀取腳
const int ALERT_PIN = 7;     // 繼電器/電晶體或蜂鳴器控制腳
const int LED_PIN = 6;       // LED 示警(若不用可忽略)
const int DRY_THRESHOLD = 400;   // 低於此值視為偏乾,請依實測調整
// 若你的繼電器/電晶體是低電位觸發(常見),請設為 true
// 若為高電位觸發,請設為 false
const bool ACTIVE_LOW = true;
void setup() {
 pinMode(ALERT_PIN, OUTPUT);
 pinMode(LED_PIN, OUTPUT);
 digitalWrite(ALERT_PIN, ACTIVE_LOW ? HIGH : LOW); // 初始化為關閉
 digitalWrite(LED_PIN, LOW);
 Serial.begin(9600);
}
void setAlert(bool on) {
 // 將「是否啟動」轉為正確的電位輸出
 if (ACTIVE_LOW) {
   digitalWrite(ALERT_PIN, on ? LOW : HIGH);
 } else {
   digitalWrite(ALERT_PIN, on ? HIGH : LOW);
 }
 digitalWrite(LED_PIN, on ? HIGH : LOW);
}
void loop() {
 int soil = analogRead(SOIL_PIN);
 Serial.print("Soil raw: ");
 Serial.println(soil);
 bool isDry = (soil < DRY_THRESHOLD);
 setAlert(isDry);  // 偏乾則啟動蜂鳴器/繼電器與 LED
 delay(1000);
}

如何校正乾濕閾值

  • 先將探針完全置於乾燥土壤,記錄數值(約 600~900,依模組而異)。
  • 再將探針置於濕潤土壤,記錄數值(約 200~500)。
  • 以兩者中間或實際需求設定 DRY_THRESHOLD,例如 400。

加入水流量感測器(選配)

若要確認「澆水時是否真的有流量」,可讀取水流量感測器的脈波訊號做簡單判定。以下為概念化範例(不同型號腳位與係數略有差異)。


// 範例:偵測是否有水流(僅作為概念示意)
const int FLOW_PIN = 2;
volatile unsigned long pulseCount = 0;
unsigned long lastMillis = 0;
void IRAM_ATTR onFlowPulse() { // 某些板子不需 IRAM_ATTR,依平台調整
 pulseCount++;
}
void setupFlow() {
 pinMode(FLOW_PIN, INPUT_PULLUP);
 attachInterrupt(digitalPinToInterrupt(FLOW_PIN), onFlowPulse, FALLING);
 lastMillis = millis();
}
void checkFlowOncePerSecond() {
 if (millis() - lastMillis >= 1000) {
   unsigned long pulses = pulseCount;
   pulseCount = 0;
   lastMillis = millis();
   // 只做有無流量判斷:有脈波即代表有水流
   bool hasFlow = (pulses > 0);
   Serial.print("Flow pulses/s: ");
   Serial.println(pulses);
   // 可依 hasFlow 做提示或記錄
 }
}

常見實作重點

  • 探針插拔次數不宜過多,易磨損或氧化;電容式較耐用。
  • 室外長期部署建議做防水與防腐蝕處理,並加遮雨結構。
  • 若要資料長期記錄,可加入 SD 卡、雲端或藍牙/Wi-Fi 上傳。

入門可先完成「土壤濕度偵測+LED/蜂鳴器提示」,熟悉後再加入水流量感測器、雲端上傳或低功耗無線傳輸。

如何使用 STM32MP135D 打造安全的 IoT 邊緣節點

隨著智慧城市與工業物聯網(IIoT)應用日益普及,邊緣節點的重要性逐漸上升。相較於將所有資料送往雲端,邊緣節點能在現場即時處理與篩選數據,提升反應速度並降低傳輸風險。而在這些應用場景中,「安全」成為不可忽視的重點。

本文將帶你了解如何利用 Seeed Studio 推出的 STM32MP135D 開發板(ODYSSEY 系列),打造一個具備安全開機、防偽驗證、資料加密與遠端管理功能的安全 IoT 邊緣節點。

硬體準備

  • STM32MP135D with eMMC: 內建 8GB eMMC、Cortex-A7 核心、支援 Linux
  • USB Type-C 線: 作為電源與 UART 調試之用
  • Grove 感測器模組: 如溫濕度、CO₂、PIR 等,視應用情境而定
  • 路由器與網路環境: 用於連網與遠端操作
  • Micro SD 卡(可選): 備用開機媒體或紀錄資料

作業系統與開發環境

STM32MP135D 支援 STM 官方的 OpenSTLinux,為 Debian 架構,並支援:

  • U-Boot + TF-A 安全啟動架構
  • Yocto build system(進階用戶)
  • TrustZone、Firewall、AES 加解密硬體模組

安裝方式建議使用 eMMC 預設映像,或透過 STM32CubeProgrammer 寫入 SD 卡。

建構安全架構的 4 大步驟

1. 啟用 Secure Boot(安全開機)

STM32MP135D 內建 Arm TrustZone,可透過 OTP 設定安全開機流程:

  • 建立私鑰/公鑰對
  • 將公鑰燒錄至 OTP 區域
  • 驗證每次開機的 U-Boot 與 kernel 映像

優點:防止惡意修改開機流程,保障系統完整性。

2.加密通訊與防偽驗證

  • 使用 OpenSSL 或 mbedTLS 建立 HTTPS 或 MQTT 加密連線
  • 透過唯一 Device ID 進行簽章與認證
  • 可搭配 AWS IoT、Azure 或本地 Mosquitto Server

3.安裝遠端管理框架

  • 整合 Ansible 或 Shell Script 進行大規模部署
  • 結合 Hawkbit OTA Framework 實現遠端韌體更新
  • 可加裝 WireGuard 或 OpenVPN 建立安全維護通道

4.本地資料處理與感測模組控制

連接 Grove 感測器後,可使用 Python、C 或 Node-RED 快速建立邏輯流程:

sudo i2cdetect -y 1  # 檢查 I2C 裝置
python read_sensor.py  # 範例程式讀取感測數據

應用場景示意

[ 感測器 ] → [ STM32MP135D 邊緣處理 ] → [ HTTPS/MQTT 傳輸 ] → [ 雲端伺服器 ]
                     ↑                        ↓
        [ Secure Boot / TrustZone ]      [ 遠端 OTA 更新 / 管理平台 ]

適合導入的應用場景

  • 工業機台監控與預測維護
  • 醫療感測節點(加密上傳病患數據)
  • 智慧交通燈控制系統
  • 低功耗能源監控與節點緩存裝置

STM32MP135D 是一款結合 Linux 彈性與 STM32 安全架構的開發板,非常適合用來打造安全、低功耗、可遠端管理的 IoT 邊緣節點。

搭配 Grove 感測器與合適的系統設計,您可以輕鬆打造商用級的邊緣解決方案,從原型到部署一站完成。

延伸推薦: