葉金晶, 周 健, 喬穎碩, 孫謙晨
(1.中國科學院 上海微系統與信息技術研究所 上海 200050;2.中國科學院大學,北京 100039)
?
設計與制造
基于Arduino的PM2.5和溫濕度實時檢測器設計*
葉金晶1,2, 周健1, 喬穎碩1,2, 孫謙晨1,2
(1.中國科學院 上海微系統與信息技術研究所 上海 200050;2.中國科學院大學,北京 100039)
設計了能夠實時檢測周圍環境溫濕度、PM2.5值的便攜式檢測器,該檢測器以Arduino UNO開發板為核心,由外部多個傳感器采集數據,通過在Arduino IDE上的編程控制數據采集,經處理換算后將結果呈現在顯示屏上,顯示數值每隔2.5 s更新一次,從而達到實時檢測的目的。該檢測器在45~80 μg/m3范圍內與漢王N1型霾表相對偏差小于±5 %,具有快速響應、實時更新、簡單實用的特點。
PM2.5; Arduino; 傳感器; 實時檢測
空氣質量量化檢測通常采用PM2.5指標衡量,通過系列檢測器實現數據的實時檢測、顯示、記錄。目前市場上的一些專業檢測設備體積普遍偏大、功能繁雜、價格昂貴[1],不同廠家的檢測設備測試數據偏差較大,專業級別的測試價格昂貴,體積大,不適合廣大市民購買使用。迫切需要一種體積小,實時檢測,多功能集成,價格較低的檢測器滿足這一需求。本文擬通過設計優化給出合理的優化結構方案,研制出滿足這一需求的檢測器,可以在日常生活中隨時檢測,方便人們了解關注PM2.5指數以及周圍環境溫濕度變化。
本文設計的PM2.5及溫濕度實時檢測器主要有4個模塊:Arduino控制模塊、溫濕度模塊、PM2.5模塊、顯示模塊,其中Arduino控制模塊為重要部分。圖1所示即為本檢測器的系統框圖。Arduino開發板作為檢測器的核心,負責控制傳感器及數據處理,根據需求可選擇USB供電或外接電池供電,在灰塵傳感器和溫濕度傳感器從周圍環境中采集到相應數據后,交由Arduino中已編譯的程序進行整合處理,最后Arduino發送指令給顯示模塊,最終的檢測結果數據由LCD顯示屏輸出顯示。

圖1 PM2.5與溫濕度實時檢測器系統框圖Fig 1 System block diagram of PM2.5, temperature and humidity real-time detector
常規的PM2.5檢測器設計方案模塊分化多,一般如圖2所示,導致硬件電路復雜化、控制程序冗長、易修改性降低等缺點[2],例如,以AT89S52單片機為主控的家用PM2.5檢測儀[3]和以MSP430F149單片機為控制中心的PM2.5監測系統[4],它們都采用GP2Y1010AU0F傳感器,但其外圍電路相對復雜,在單片機程序控制上也較為麻煩。通過優化設計,本文給出了優化設計方案,其具有如下特點:1)電路簡潔,無多余外圍電路,即圖2中虛線部分電路可省略;2)程序分工明確,簡單易讀;3)程序易于控制和更改、檢測功能更多,修改或新增局部設計時不會牽扯無關部分。本檢測器模塊在檢測PM2.5指數同時還可獲得當前環境中的溫度、濕度,雖然沒有文獻中檢測儀的報警功能,但是具備PM2.5指數的等級分類功能。

圖2 常規PM2.5檢測器方案示意圖Fig 2 Diagram of general PM2.5 detector
2.1PM2.5模塊
此模塊中用到的傳感器是夏普光學粉塵傳感器GP2Y1023AU0F,這款傳感器是夏普2015年1月正式量產的新版灰塵傳感器。該傳感器取消了模擬輸出口,采用PWM輸出形式,輸出即為數字數據,比文獻[6~8]中采用的GP2Y1010AU0F更為穩定,無需進行A/D轉換,簡化了軟件編程部分的工作。
GP2Y1023AU0F內部結構包含一個微小的光學傳感系統,由一個紅外發光二極管和光電子晶體管按對角式排列組成,它利用激光散射法及粒子計數原理,通過檢測空氣中塵埃的反射光計算粉塵的濃度[5]。除了與舊版相似的光學傳感系統之外,它還附加了內置單片機模塊,使其輸出為數字信號,另外新增的熱敏電阻電路也使其無需再進行溫度校準,使用更方便。而且它個頭小、質量僅有16 g,非常適合用于本設計中的便攜式檢測器。
GP2Y1023AU0F共有5個引腳,在與Arduino UNO板連接時,數據傳輸實際只需用到其中一個引腳,1引腳Vo連接至Arduino數字端口的任一空閑引腳,剩余的4個引腳按照規格書中的要求與相應器件連接后接至Arduino的5V及GND端,具體連接方式如圖3所示。至此,該傳感器與Arduino核心控制模塊全部連接完畢。

圖3 GP2Y1023AU0F傳感器引腳連接電路Fig 3 GP2Y1023AU0F sensor pin connection circuit
GP2Y1023AU0F連接至Arduino開發板后,它通過Vo口把脈沖寬度(pulse width)值傳輸給Arduino板。將接收到的脈沖寬度數據按照公式Duty=PW/T(Duty為占空比,PW為脈沖寬度,T為傳感器中的脈沖的周期10 ms),計算求得占空比,根據夏普官方規格書中占空比與灰塵濃度的曲線圖為參考,進而換算得到灰塵濃度D,這些數據處理均由Arduino控制程序實現完成。相較于舊版傳感器需進行數/模轉換,本設計中的數據處理簡潔明確,不易造成誤差,輸出數據也更為穩定。
2.2溫濕度模塊
本模塊是普通小型PM2.5檢測器所不具備的部分,選用了可以直接同時測得溫度和濕度的傳感器DHT11數字溫濕度傳感器。它自身集成一個電阻式感濕元件,一個NTC測溫元件以及一個高性能單片機。由于采用了專業的數字模塊采集技術和溫濕度傳感技術,該傳感器抗干擾性強、響應速度快、體積小、功耗低、性價比高[6]。
DHT11采用單線制串行接口,直接輸出數字信號。同時,DHT11用4針單排引腳封裝,每個引腳都有固定的功能,如表1所示。

表1 DHT11引腳說明
在本設計中,DHT11的1引腳VCC、4引腳GND分別連接至Arduino的5 V和GND端,2引腳DATA連接至Arduino的模/數轉換(ADC)輸入端A0。
2.3顯示模塊
本設計液晶顯示器選用的是LCD1602,它的屏幕上能夠展現2行數字、字母或符號,每行最多16個,該芯片的工作電壓為4.5~5.5 V,它最適合的工作電壓是5.0 V,2.95 mm×4.35 mm為所能呈現的每個字符的尺寸大小。
LCD1602直接連接至Arduino UNO開發板的通用I/O端口。LCD1602的VO引腳接一個可調電阻,起到調節顯示屏對比度的作用。
軟件部分的設計包括定義、初始化、數據讀取、數模轉換等。所有功能模塊的程序都是在Arduino IDE平臺中完成的[7]。軟件流程圖如圖4所示。

圖4 軟件功能流程框圖Fig 4 Flow block diagram of software function
Arduino的核心程序主要由各傳感器傳入數據處理、串口控制、數據顯示等組成。在數據處理部分,將GP2Y1023AU0F傳感器得到的灰塵濃度值進行等級劃分,由高至低分為A,B,C,D,E五個等級。PM2.5值為0~50 μg/m3時為A級,51~100 μg/m3時為B級,101~150 μg/m3時為C級,151~200 μg/m3時為D級,201 μg/m3及以上時為E級,D,E級不適宜外出活動。當傳感器傳入數值在五個等級區間中的某一個時,LCD顯示屏上即會在PM2.5數值旁顯示相應等級。
程序也控制最終在LCD顯示屏上呈現的數據,例如顯示屏輸出的第一行:D=95 μg/m3B;第二行:T:28 C H:35 %。以上代表PM2.5指數為95 μg/m3,等級B良好,溫度為28 ℃,濕度為35 %RH。
另外,數據更新的時間亦可由軟件編程控制,最短間隔可以達到0.01 s,但為了數據的可靠性和穩定性,將數據更新間隔設置為2.5 s。如果另有需求,可以按照個性設置數據更新間隔。
4.1測試與調零
由于本檢測器的電路結構相較于其他單片機控制的小型檢測器而言更簡潔,制作更省時。為確保所有功能的完美實現,先在功能測試板上搭建電路,待基本功能測試正常再進行實物制作,功能測試板搭建情況如圖5所示,已包含所有元器件。制作過程只需將各元件按照所設計的硬件電路圖焊接即可,然后調整各部分的位置使其整體體積達到最小。灰塵傳感器不必整合到主體內部,需要使它與流通的空氣環境充分接觸。

圖5 功能測試板實物Fig 5 Functional test board
調零是PM2.5和溫濕度實時檢測器投入應用前必備的步驟。調零時用到專業用儀器霾表來進行對比校準。在日常環境中,基本無法做到PM2.5指數為0的情況,需要借助實驗室超凈間來調零。進入超凈間,待GP2Y1023AU0F的V0輸出數值相對穩定,記錄20組V0值與對應時刻霾表的PM2.5示數,利用統計算法求得最終PM2.5為0的V0值以及占空比Duty。圖6為霾表示數為0時記錄下來的V0值,即脈沖寬度時長,可以看出數據基本穩定,可以得到合理的零度值。

圖6 檢測器調零數據Fig 6 Zero adjustment data of detector
檢測器在正常工作時,電路中的LED指示燈會亮起,若是溫濕度模塊出現問題,顯示屏上會顯示相應錯誤提示,若是灰塵傳感器故障,則指示燈不亮或顯示屏PM2.5數據始終為0。
4.2校準與性能驗證
校準的過程是在日常環境中采集多組數據,利用統計算法求得線性擬合函數,調整占空比Duty與灰塵濃度D的換算函數,使得測量結果更為準確。本檢測器與霾表在同一環境同時檢測的數據圖線如圖7所示。
與市場上購置的漢王N1型霾傳感器測試結果比對,結果發現,PM2.5數據在45~80 μg/m3范圍內比較接近,相對偏差小于±5 %。在小于45 μg/m3時漢王傳感器在低PM2.5數值區間偏差較大,所研制的傳感器也有微弱波動,可能與測試時微弱的空間空氣流動有關。因此,后期的工作將進一步提高器件的探測靈敏度。

圖7 所設計檢測器測試數據與N1型霾傳感器比對Fig 7 Designed test data of detector compared with N1 type haze sensor
本文設計并制作出一種PM2.5與溫濕度實時檢測器,可以實現實時檢測,檢測數據間隔短,每2.5 s更新一次數據,并具有空氣質量等級報告功能。校準和驗證結果表明,該模塊可以在45~80 μg/m3范圍內與漢王N1型霾表相對偏差為±5 %。該檢測器在同類小型檢測器中,電路與程序更為簡潔,方便修改,當需要新增檢測功能時,能夠隨時做出調整,更具多樣化以及擴展性。
[1]王寅,王卉.PM2.5現狀及其檢測技術[J].資源節約與環保,2014 (12):139.
[2]闞海東,陳仁杰.PM2.5對人體危害有多大[J].中國經濟報告,2015 (4):114-116.
[3]中華人民共和國環境保護部.2014中國環境狀況公報[EB/OL].[2015—06—08] http:∥jcs.mep.gov.cn/hjzl/zkgb/ 2014zkgb/201506/t20150608_303142.htm.
[4]孫波,李爽.PM2.5檢測方法及研究進展[J].山東化工,2015,44(9):56-57.
[5]蘭冰芯.移動式環境空氣質量檢測儀的設計與實現[D].成都:西南石油大學,2015.
[6]王嘯東.PM2.5粉塵顆粒檢測儀的研制[J].電子世界,2013 (16):96.
[7]顧宏華,王鯤鵬.家用PM2.5檢測儀[J].硅谷,2015 (2):8,11.
[8]蘭冰芯,諶海云.基于單片機的PM2.5測試儀的設計與實現[J].物聯網技術,2014(11):32-34.
[9]Sharp Corperation.Dust sensor GP2Y1023AU0F specification[Z].2015.
[10] 韓丹翱,王菲.DHT11數字式溫濕度傳感器的應用性研究[J].電子設計工程,2013,21(13):83-85.
[11] Monk Simon.Programming arduino getting started with sket-ches [M].北京:科學出版社,2013.
周健,通訊作者,E—mail:zjian@mail.sim.ac.cn。
Design of PM2.5 temperature and humidity real-time detector based on Arduino*
YE Jin-jing1,2, ZHOU Jian1, QIAO Ying-shuo1,2, SUN Qian-chen1,2
(1.Shanghai Institute of Microsystem and Information Technology,Chinese Academy of Sciences,Shanghai 200050,China;2.University of Chinese Academy of Sciences,Beijing 100039,China)
Design a portable detector that can real-time detect ambient temperature, humidity and PM2.5 values.The detector uses an Arduino UNO board as the core, and collects data by multiple sensors.By programming on the Arduino integrated development environment(IDE),control data acquisition,and the processed results will be presented on monitor,the displayed data will update once every 2.5 s, so as to achieve the purpose of real-time detection.At range of 45~80 μg/m3, this detector has relative deviation less than ±5 % comparing with Hanwang N1 type haze meter,and the detector has features of sensitive response, real-time update, simple and practical.
PM2.5; Arduino; sensor; real-time detection
2015—11—22
中國科學院院地合作項目(YDJDBNJ—2012—027);上海市自然科學基金資助項目(13ZR1447400)
TN 710; TP 311
A
1000—9787(2016)08—0067—03
葉金晶(1992-),女,浙江杭州人,碩士研究生,研究方向為環境檢測傳感器技術,太陽電池標準測試技術,微能源技術。
DOI:10.13873/J.1000—9787(2016)08—0067—03