05-PPD42NS

這是由Shinyei公司出的,型號為PPD42NS,規格可見本連結。不過,這個感測器並不是正規的PM 2.5感測器,SeeedStudio的官網百科說明:「該粉塵傳感器測量的顆粒大小與PM2.5顆粒大小不同,不能直接用於PM2.5的測量,但顆粒大小相近,可略作參考。」

阿簡老師:使用Arduino動手監測空氣懸浮微粒

http://a-chien.blogspot.tw/2016/03/arduino.html

=================================================

(2017/12/18)

會重新把這個Shinyei公司出的,型號為PPD42NS的PM2.5感測器拿出來研究是因為前幾天買了小米空氣清淨機發現裡面所裝的PM2.5偵測器就是它,所以才想再出來玩一玩,並比較所呈現的數據有沒有相關性。其實有關這個偵測器在上方的阿簡老師已有詳細的說明,所以只好照著阿簡老師的內容來做了~~

使用的懸浮微粒偵測器是日本神榮的Shinyei PPD42,是Grove Starter Kit for LinkIt ONE裡的感應器-Grove 灰塵感測器。不一定要買Grove的套件,單組PPD42也可以單獨買得到。我買到的,雖然外型一樣,但主機板上的內容不一樣,而且沒有Shinyei PPD42NS的字樣,所以可能是盜版的!

裡頭有紅外線LED,還有一顆photodiode,當懸浮微粒經過紅外線的光路時,photodiode會產生電壓變化,藉由計算電壓變化情形,換算出懸浮微粒的濃度。黑色塑膠件裡還有一顆電阻,用來當加熱器,應該是造成空氣對流用的。下方的長方形口是進氣口,上方則是排氣口。

偵測的微粒大小大於1微米,與PM2.5粒徑不同,不能直接說測的就是PM2.5,但可以拿來作為參考值的。

這是某段時間裡,房間裡的懸浮微粒濃度變化,單位是pcs/0.01cf,意思是每0.01cf有多少顆微粒。cf是立方英尺,0.01cf=283mL,一立方英尺則是28.3L。

這裡有篇別人拆解其構造的PDF文章

De-construction of the Shinyei PPD42NS dust sensor

這篇則有Grove官方的說明文件

Grove - Dust Sensor 粉塵傳感器

  • 请保证传感器正面朝上。

  • 第一次使用前,请保证3分钟的预热时间。

  • VR1和VR2针脚已经进行预设,请不要调整它们的配置。

  • 该粉尘传感器测量的颗粒大小与PM2.5颗粒大小不同,不能直接用于PM2.5的测量,但颗粒大小相近,可略作参考。

接法:

程式:

    1. /* Grove - Dust Sensor Demo v1.0 Interface to Shinyei Model PPD42NS Particle Sensor Program by Christopher Nafis Written April 2012 http://www.seeedstudio.com/depot/grove-dust-sensor-p-1050.html http://www.sca-shinyei.com/pdf/PPD42NS.pdf JST Pin 1 (Black Wire) => Arduino GND JST Pin 3 (Red wire) => Arduino 5VDC JST Pin 4 (Yellow wire) => Arduino Digital Pin 8 */ int pin = 8; unsigned long duration; unsigned long starttime; unsigned long sampletime_ms = 30000;//sampe 30s ; unsigned long lowpulseoccupancy = 0; float ratio = 0; float concentration = 0; void setup() { Serial.begin(9600); pinMode(8,INPUT); starttime = millis();//get the current time; } void loop() { duration = pulseIn(pin, LOW); lowpulseoccupancy = lowpulseoccupancy+duration; if ((millis()-starttime) > sampletime_ms)//if the sampel time == 30s { ratio = lowpulseoccupancy/(sampletime_ms*10.0); // Integer percentage 0=>100 concentration = 1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62; // using spec sheet curve Serial.print("concentration = "); Serial.print(concentration); Serial.println(" pcs/0.01cf"); Serial.println("\n"); lowpulseoccupancy = 0; starttime = millis(); } }

lowpulseoccupancy单位是微秒,sampletime_ms单位是毫秒, 所以要单位换算为(lowpulseoccupancy/(sampletime_ms*1000))*100%

在这个代码中,主控板记录了30秒内的低电平脉冲占用时间,通过它描绘了环境粉尘浓度。打开串口监视器,我们可以读出具体的数值。

結果:不知代表何意???

上图的结果包括三个部分:低电平脉冲占用时间,比例,粉尘水平。

"lo pulse occupancy"表示30秒内低电平脉冲占用时间,它的单位是微秒。

"ratio"反映的是LPO时间占总时间的比例。

"concentration" 具有物理意义,它是通过下表,将LPO时间比例对应到粉尘浓度得出的数据。它的单位是pcs/0.01cf。

哪邊有程式碼呢?以下兩個連結裡都有。

這款感測器算是很平價的感測器,雖然不是針對PM2.5,但是經過一些實驗對比,發現是可以參考的。請見 http://aqicn.org/sensor/shinyei/hk/

一些空氣品質監測與教學的相關文件,在以下兩個網頁都可以連出去一大堆