2013年11月26日 星期二

Arduino動手做 - 使用TGS2602偵測空氣中的揮發物汙染


首先節錄一下中研院網站上對VoC這名詞的解釋


何謂揮發性有機化合物-VOC?
    Volatile Organic Compound (VOC),純物質的蒸氣壓和物質的種類與溫度有關,溶液汽化的物質稱為揮發性物質。在相同的溫度下一物質越容易揮發,其揮發性(Volatility)越高,蒸汽壓也會越高,而相對的沸點會較低。也就是說,蒸汽壓高的物質比蒸汽壓低的物質更容易揮發。儘管我們常聽見揮發性一詞被用來描述液體氣化的傾向,揮發性也可用來描述如乾冰、氯化銨等能直接昇華的固體氣化的傾向。

    丙酮、乙醇、乙醚和二氯甲烷等常見的有機溶劑,都是揮發性物質,這一類被稱為揮發性有機化合物(簡稱VOC)的污染物在常溫常壓下擁有夠高的蒸汽壓,使它們一旦暴露到空氣中就會迅速地從固體或液體變成氣體。

何處有VOC?
    在室外,VOC主要的來源為燃料的燃燒及交通運輸所產生的廢氣;在室內,VOC主要來自吸煙、烹調等產生的煙霧和天然氣(甲烷),裝飾材料、傢俱、家用電器、清潔劑等日常用品也會產生不少的VOC。

    此外,在室內裝飾過程中,油漆,塗料和膠粘劑等是VOC主要來源。據研究,室內VOC的總濃度通常在0.2mg/m3到2mg/ m3之間,而在不當裝修施工中,甚至可高出數十倍。美國環保署指出,有時室內的VOC比室外還要多出2到5倍。

而這裡使用的Figaro TGS2602 就可以檢測環境中的VOC含量作為判斷空氣品質的指標


官方的data sheet細節


接線如下


Pin1 - GND
Pin2 - GND串聯10K的電阻,電阻前接到arduino的pin A2
Pin3 - 5V
Pin4 - 5V

1,4是加熱器迴路,所以反向接也可

2,3是感測器迴路,3是正極
串接的電阻理論上要用可變電阻以方便校正
不過我懶就直接上10K啦


程式碼非常簡單,如下
int gasSensor = 2; // 指定要量測的analog腳位為2
int gasval = 0;
void setup() {
Serial.begin(9600);
}

void loop() {
gasval = analogRead(gasSensor);
Serial.println( gasval );
delay(500);
}



上傳進板子後就可以從serial port看到回傳的電壓拉



然後我找到一篇文獻可以用來參考,感測器於10K電阻下量測電壓與各種VOC的相關性 (理論估計值)



稍微試了一下,在感測器附近用酒精乾洗手

感測器電壓值就瞬間衝到700-900,打開窗戶抽風扇才慢慢降回至100左右



5 則留言:

  1. 作者已經移除這則留言。

    回覆刪除
  2. 我一開啟 看數值時 一開始就8~9百多 是正常的嗎? 還是要等它下降呢(開啟後慢慢下降)
    請問一般室內大約為多少值?
    上面那張表 可以解釋如何看嗎? 感謝你^^

    回覆刪除
    回覆
    1. 剛開啟數值會很高沒錯,需要數小時才會穩定
      如果通風非常良好的戶外基本上會是接近零
      室內就要看有無揮發汙染源了,我的經驗是通常會在100之內
      那張表代表的是不同汙染物的不同ppm濃度會在感測器上產生的測值對照表

      刪除
  3. 請問鄰居排油煙機排放的油煙味可以用這個偵測嗎?

    回覆刪除