智慧家庭:PM2.5 空氣感測器(感測器篇)

未來的智慧家庭的核心觀念是提供人類更健康,更舒適的生活,然而空氣中存在許多污染物,其中漂浮在空氣中類似灰塵的粒狀物稱為懸浮微粒(particulate matter,簡稱 PM)。如下表所示,懸浮微粒粒徑大小有別,小於或等於 2.5 微米(μm)的粒子,就稱為 PM2.5,通稱細懸浮微粒,單位以微克/立方公尺(μg/m3)表示之,它的直徑還不到人的頭髮絲粗細的 1/28,非常微細可穿透肺部氣泡,並直接進入血管中隨著血液循環全身,故對人體及生態所造成之影響是不容忽視的。

(表 1)懸浮微粒粒徑說明一覽表

粒徑(μm)粒徑大小說明
<100稱 總懸浮微粒(TSP),約為海灘沙粒,可懸浮於空氣中。
<10稱 懸浮微粒(PM10) ,約為沙子直徑的1/10,容易通過鼻腔之鼻毛與彎道到達喉嚨
2.5~10稱 粗懸浮微粒(PM2.5-10),約頭髮直徑的1/8~1/20大小,可以被吸入並附著於人體的呼吸系統
<2.5稱 細懸浮微粒(PM2.5),約頭髮直徑的1/28,可穿透肺部氣泡,直接進入血管中隨著血液循環全身。

資料來源:http://air.epa.gov.tw/Public/suspended_particles.aspx

簡介懸浮微粒生成與來源

懸浮微粒 PM2.5 來源可分為原生性及衍生性,皆可能由自然界或人為產生。

如下表所示,原生性細懸浮微粒係指被排放到大氣時即為懸浮微粒 PM2.5 的粒狀物,該成分主要乃由物理破碎或一次污染排放所產生,原生性氣膠主要的化學組成份與來源分別為海鹽飛沫、裸露地表經由風力作用所揚起的灰塵微粒,鍋爐及機動車輛之燃燒排放,而衍生性細懸浮微粒則係指被釋出之非懸浮微粒 PM2.5 之化學物質(稱為前驅物,可能為固體、液體或氣體),在大氣環境中經過一連串極其複雜的化學變化與光化反應後成為懸浮微粒 PM2.5 的微粒,主要為硫酸鹽、硝酸鹽及銨鹽。

(表 2)懸浮微粒 PM2.5 生成與來源一覽表

自然界產出火山爆發、地殼岩石等
人類行為產出石化燃料及工業排放、移動源廢氣等燃燒行為。

原生性PM2.5直接從自然與人為活動所排放,在大氣環境中未經化學反應的微粒-如天然的海鹽飛沫、營建工地粉塵、車行揚塵及工廠直接排放。
衍生性PM2.5自然與人為活動排放到大氣環境中的化學物質經過太陽光照或其他化學反應後生成-如燃煤、燃油及燃氣電廠、煉鋼廠、石化相關產業工廠、機動車輛、船舶、建物塗料、農業施肥、禽畜排泄及生活污水等。

資料來源:http://air.epa.gov.tw/Public/suspended_particles.aspx

標準衡量方法

我們參考行政院環境保護署環境檢驗所,在空氣中懸浮微粒(PM2.5)檢測方法-手動採樣法所階露的資料中提到的方法:以定流量抽引空氣進入特定形狀之採樣器進氣口,經慣性微粒分徑器,將氣動粒徑小於或等於2.5微米(μm)之細懸浮微粒(PM2.5)收集於濾紙上。而此濾紙於採樣前、後均於特定溫度與濕度環境中調理後秤重,以決定所收集之 PM2.5 微粒之淨重,再除以 24 小時之採樣總體積即得微粒 24 小時之質量濃度。

其方法適用溫度 –30 至 45℃,相對溼度 0 至 100% ,大氣壓力 600 至 800 mmHg 之環境空氣中氣動粒徑小於或等於 2.5 微米(μm)細懸浮微粒(PM2.5)24 小時之質量濃度值測定。由於其採樣器組成:包括進氣口、空氣導管、微粒分徑器、濾紙匣、空氣採樣馬達、流率控制系統、流率量測裝置、環境和濾紙溫度監測系統、大氣壓力量測系統、計時器、戶外環境用外殼、適當的機械、電氣或電子控制能力方法,上述這些都需要精密的儀器與操作程序,並且操作人員需要受過相當時數的訓練與相關領域的技術能力,所以無法適用於一般民眾。

簡易的電子式感測衡量方法

目前有許多空氣粒子感測模組,如 SHARP GP2Y1010AU0F PM2.5 空氣品質感測器(如下圖.(a)所示)、DSM501A 灰塵感測器(如下圖.(b)所示)、PMS3003 G3 PM2.5 粉塵感測器(如下圖.(c)所示)、PMS5005 PM1.0 PM2.5 PM10 G5 濃度及顆粒數感測器(如下圖.(d)所示)、夏普原裝 DN7C3CA006 第 3 代 PM2.5 感測器(如下圖.(e)所示)、益杉科技的 CP-15-A4 灰塵感測器(如下圖.(f)所示)等等。由於方便研究所致,本書採用PMS3003 G3 PM2.5 粉塵感測器為空氣粒子感測裝置的核心元件。

未命名

(圖 1)市面常見的粉塵感測器

PMS3003 G3 PM2.5 粉塵感測器

本文採用 PMS3003 G3 PM2.5 粉塵感測器為空氣粒子感測裝置的核心元件;如下圖所示,PMS3003 使用鐳射散射原理,能夠得到空氣中 0.3 ~ 10 微米懸浮顆粒物濃度,數據穩定可靠;內置風扇,數位化輸出,可以獨立模組運作,不需要依靠其他元件,只需要獨立電源即可獨立運作,收集的資料採用串列埠輸出。

未命名

(圖 2)PMS3003 G3 PM2.5 粉塵感測器工作原理圖

本文採用 PMS3003 G3 PM2.5 粉塵感測器為空氣粒子感測裝置的核心元件。

如下圖所示,PMS3003 粉塵感測器使用鐳射散射原理,使用風扇將空氣吸入通道之中,在使用鐳射光射擊該通道內的空氣,透過雷射接收器感測雷射光,由於空氣中的粒子會導致鐳射光散射,而減弱訊號,所以只要透過雷射接收器感測雷射光的訊號,透過放大電路來偵測更細微的粒子,就能夠得到空氣中 0.3 ~ 10 微米懸浮顆粒物濃度,並內置微處理機處理該訊號,所以收集到的數據穩定可靠;並透過內置微處理機將收集到的資料使用數位化輸出,收集的資料採用串列埠輸出,不需要依靠其他元件,只需要獨立電源即可獨立運作,是一個相當穩定、方便與好用的粉塵感測器。

未命名

(圖 3)PMS3003 G3 PM2.5 粉塵感測器工作原理圖。資料出處:https://www.dfrobot.com/wiki/index.php?title=PM2.5_laser_dust_sensor_SKU:SEN0177

如所示,PMS3003 粉塵感測器特點如下:

  • 數據準確:鐳射檢測,穩定、一致性好
  • 回應速度快速:使用環境變更時回應時間小於 10 秒
  • 獨立運作:使用標準的通訊埠輸出量測資料
  • 不須外加元件:自備風扇,不須外加。
  • 分析能力高:分辨顆粒最小直徑達 0.3 微米

適用範圍:

  • PM1.0、PM2.5、PM10 檢測儀、淨化器

工作原理:

採用鐳射散射原理:當鐳射照射到通過檢測位置的顆粒物時會產生微弱的光散射,在特定方向上的光散射波形與顆粒直徑有關,通過不同粒徑的波形分類統計及換算公式可以得到不同粒徑的實時顆粒物的數量濃度,按照標定方法得到跟公信單位統一的質量濃度。

技術參考:

  • 測量直徑:0.3-1.0um 1.0-2.5um 2.5-10um
  • 測量單位:ug/m3
  • 測量精度:ug/m3
  • 回應時間:小於10s
  • 工作電流:工作狀態為5V 200ma(毫安培) ,待機狀態為5V 2ma(毫安培)
  • 數據介面:通訊埠(串口)(3.3V TTL電位)
  • 體積:65x42x23mm
  • 工作溫度範圍:: -20〜50℃
  • 工作濕度範圍:0〜99%RH
  • 最大尺寸:65×42×23(毫米)

供電品質需求如下:

  • 電壓紋波:小於100mV的。
  • 電源電壓穩定度:4.95〜5.05V。
  • 電源:大於1W(5V 200 ma(毫安培))。
  • 上電和下電電壓浪湧是系統電源電壓的小於50%。

PMS3003 粉塵感測器連接方式如所示,PMS3003 粉塵感測器接腳如下:

未命名

(圖 4)PMS3003 G3 PM2.5 粉塵感測器接腳圖。資料出處:https://www.dfrobot.com/wiki/index.php?title=PM2.5_laser_dust_sensor_SKU:SEN0177

基本使用方法

如下圖所示,為連接 PMS3003 G3 PM2.5 粉塵感測器的標準接法,基本上 PMS3003 G3 PM2.5 粉塵感測器透過串列埠與任何單晶片、微處理機相互連接,基本上可以使用硬體的串列埠連接,也可以使用 GPIO 的軟體模擬串列埠連接,不過標準的 PMS3003 G3 PM2.5  粉塵感測器使用 9600 bps 的傳輸速率,請讀者注意傳輸速率的設定。

未命名

(圖 5)PMS3003 G3 PM2.5 粉塵感測器電路連接示意圖。資料出處:https://www.dfrobot.com/wiki/index.php?title=PM2.5_laser_dust_sensor_SKU:SEN0177

如下表所示,為基本上使用 Arduino 開發版,透過 Sketch IDE 開發程式將下列程式鍵入,編譯完成後,上傳到 Arduino 開發版,我們就可以開始測試 PMS3003 G3 PM2.5 粉塵感測器。

 

(表 3)PMS3003 G3 PM2.5 粉塵感測器測試程式

 

表 3 PMS3003 G3 PM2.5 粉塵感測器測試程式

/******************************

 

*Copyright (c) 2015, DFRobot

*All rights reserved

*

*File Name:PM2_5SensorDemo.ino

*Fileid:

*Abstract :Read value of PM1,PM2.5 and PM10 of air quality

*

*Version:V1.0

*Author:Joyce

*Time:2015.2.22

******************************/

 

#include “Arduino.h”

#include “serialReadPMValue.h”

 

uint16_t PM01Value=0;          //define PM1.0 value of the air detector module

uint16_t PM2_5Value=0;         //define PM2.5 value of the air detector module

uint16_t PM10Value=0;         //define PM10 value of the air detector module

 

#define receiveDatIndex 32

uint8_t receiveDat[receiveDatIndex]; //receive data from the air detector module

 

 

void setup() {

Serial.begin(9600);   //set the serial1’s Baudrate of the air detector module

}

 

void loop(){

int length = serialRead(Serial,receiveDat,receiveDatIndex,5);

int checkSum=checkValue(receiveDat,receiveDatIndex);

 

if(length&&checkSum)  {

PM01Value=transmitPM01(receiveDat); //count PM1.0 value of the air detector module

PM2_5Value=transmitPM2_5(receiveDat);//count PM2.5 value of the air detector module

PM10Value=transmitPM10(receiveDat); //count PM10 value of the air detector module

}

static unsigned long OledTimer=millis();       //every 0.5s update the temperature and humidity from DHT11 sensor

if (millis() – OledTimer >=1000)     {

OledTimer=millis();

 

Serial.print(“PM1.0: “);  //send PM1.0 data to bluetooth

Serial.print(PM01Value);

Serial.println(”  ug/m3″);

 

Serial.print(“PM2.5: “);  //send PM1.0 data to bluetooth

Serial.print(PM2_5Value);

Serial.println(”  ug/m3″);

 

Serial.print(“PM10:  “);  //send PM1.0 data to bluetooth

Serial.print(PM10Value);

Serial.println(”  ug/m3″);

}

}

資料出處:https://www.dfrobot.com/wiki/index.php?title=PM2.5_laser_dust_sensor_SKU:SEN0177

資料下載:https://github.com/brucetsao/makerdiwo/tree/master/201602

如下圖所示,為連接 PMS3003 G3 PM2.5 粉塵感測器,讀取到的畫面。

未命名

(圖 6)PMS3003 G3 PM2.5 粉塵感測器測試結果圖。資料出處:https://www.dfrobot.com/wiki/index.php?title=PM2.5_laser_dust_sensor_SKU:SEN0177

通訊資料格式

如下表所示,為 PMS3003 G3 PM2.5 粉塵感測器透過串列埠,定時會回傳給單晶片或其他處理器的資料之通訊格式。

(表 4)PMS3003 G3 PM2.5 粉塵感測器通訊資料格式

Serial port baudrate: 9600; Parity: None; Stop Bits: 1; packet length is fixed at 32 bytes.

Start Character 10x42(fixed bit)
Start Character 20x4d(fixed bit)
Frame Length 16-byteFrame Length = 2*9+2 (data+check bit)
Data 1, 16-byteconcentration of PM1.0, ug/m3
Data 2, 16-byteconcentration of PM2.5, ug/m3
Data 3, 16-byteconcentration of PM10.0, ug/m3
Data 4, 16-byteInternal test data
Data 5, 16-byteInternal test data
Data 6, 16-byteInternal test data
Data 7, 16-bytethe number of particulate of diameter above 0.3um in 0.1 liters of air
Data 8, 16-bytethe number of particulate of diameter above 0.5um in 0.1 liters of air
Data 9, 16-bytethe number of particulate of diameter above 1.0um in 0.1 liters of air
Data 10, 16-bytethe number of particulate of diameter above 2.5um in 0.1 liters of air
Data 11, 16-bytethe number of particulate of diameter above 5.0um in 0.1 liters of air
Data 12, 16-bytethe number of particulate of diameter above 10.0um in 0.1 liters of air
Data 13, 16-byteInternal test data
Check Bit for Data Sum, 16-byteCheck Bit = Start Character 1 + Start Character 2 + …all data

資料來源:https://www.dfrobot.com/wiki/index.php?title=PM2.5_laser_dust_sensor_SKU:SEN017

本文為『PM2.5空氣感測器』系列第一篇:感測器篇,主要介紹之 Arduino 開發板如何透過粉塵感測器來偵測搜尋空氣中懸浮微粒的濃度,了解如何連接,讀取粉塵感測器的資料,本系列主要是以哈爸開啟的【開源公益專案】LASS 環境感測網路系統(一般稱 Location Aware Sensor System :LASS),為『PM2.5 空氣感測器』系列的核心思想,將目前物聯網(Internet of Thing:IOT)最熱門的主題,PM2.5 空氣粒子感測技術,透過粒子感測器的讀取、LCD 顯示幕顯示機器狀態等,進行產品開發,進而透過網際網路來監控『PM2.5 空氣粒子的濃度』的行為,達到物聯網的概念的系列專欄。

參考文獻:

  • 曹永忠, 許智誠, & 蔡英德. (2015a). Ameba 空气粒子感测装置设计与开发(MQTT篇):Using Ameba to Develop a PM 2.5 Monitoring Device to MQTT (初版 ed.). 台湾、彰化: 渥瑪數位有限公司.
  • 曹永忠, 許智誠, & 蔡英德. (2015b). Ameba 空氣粒子感測裝置設計與開發(MQTT篇)):Using Ameba to Develop a PM 2.5 Monitoring Device to MQTT (初版 ed.). 台湾、彰化: 渥瑪數位有限公司.

分享到社群

曹永忠

曹永忠 (Yung-Chung Tsao) ,目前為自由作家暨專業Maker,專研於軟體工程、軟體開發與設計、物件導向程式設計,商品攝影及人像攝影。長期投入創客運動、資訊系統設計與開發、企業應用系統開發、軟體工程、新產品開發管理、商品及人像攝影等領域,並持續發表作品及相關專業著作。 Email:prgbruce@gmail.com Line ID:dr.brucetsao 作者網站:https://www.cs.pu.edu.tw/~yctsao/ 臉書社群(Arduino.Taiwan):https://www.facebook.com/groups/Arduino.Taiwan/ Github網站:https://github.com/brucetsao/ Youtube:https://www.youtube.com/channel/UCcYG2yY_u0m1aotcA4hrRgQ