曾憲陽(yáng)1,楊紅莉2,郁漢琪1,褚南峰1
(1.南京工程學(xué)院 工業(yè)中心,江蘇 南京 211167;2.南京工程學(xué)院 數(shù)理部,江蘇 南京 211167)
摘要:根據(jù)市場(chǎng)上甲醛檢測(cè)裝置存在誤差大、功耗高等缺點(diǎn),設(shè)計(jì)了以MSP430單片機(jī)作為控制核心,多子機(jī)網(wǎng)點(diǎn)輔助監(jiān)測(cè),無(wú)線模塊進(jìn)行數(shù)據(jù)通信的甲醛檢測(cè)儀。使用單片機(jī)內(nèi)部A/D轉(zhuǎn)換模塊將傳感器采集到的模擬量轉(zhuǎn)換成數(shù)字量,再經(jīng)卡爾曼濾波器進(jìn)行濾波,保證了采樣數(shù)據(jù)的準(zhǔn)確性。該監(jiān)測(cè)系統(tǒng)檢測(cè)精度高、功耗低、穩(wěn)定性好,經(jīng)試驗(yàn)驗(yàn)證,能很好地滿足消費(fèi)者需求。
關(guān)鍵詞:低功耗;MSP430單片機(jī);甲醛監(jiān)測(cè)儀;卡爾曼濾波;多網(wǎng)點(diǎn)
0引言
當(dāng)前,空氣環(huán)境污染嚴(yán)重,特別是新裝修的房間含有甲醛等有害物質(zhì)[1-5],影響到人們的身體健康。市面現(xiàn)有的甲醛檢測(cè)系統(tǒng)多為單點(diǎn)測(cè)試,體積大、功耗高、檢測(cè)單一、價(jià)格昂貴,且不能自動(dòng)對(duì)甲醛含量高的區(qū)域進(jìn)行重點(diǎn)實(shí)時(shí)監(jiān)測(cè)[6-7],因此本文設(shè)計(jì)了一種新的甲醛含量監(jiān)控報(bào)警系統(tǒng)。該系統(tǒng)包括多個(gè)子機(jī)系統(tǒng)及一個(gè)主機(jī)系統(tǒng),將每個(gè)子機(jī)系統(tǒng)分散安置在各個(gè)房間的某個(gè)區(qū)域,主機(jī)系統(tǒng)放置在臥室或客廳等住戶常活動(dòng)的位置,主機(jī)與子機(jī)之間采用NRF24L01無(wú)線網(wǎng)絡(luò)進(jìn)行通信。子機(jī)系統(tǒng)定時(shí)將采集到的甲醛含量信息通過無(wú)線網(wǎng)絡(luò)傳遞給主機(jī),主機(jī)通過中斷接收各子機(jī)發(fā)來的信息并進(jìn)行分析處理,同時(shí)根據(jù)需要將數(shù)據(jù)通過無(wú)線網(wǎng)絡(luò)發(fā)送給上位機(jī)PC,給用戶帶來方便。
1系統(tǒng)設(shè)計(jì)思路
系統(tǒng)選用MSP430F149單片機(jī)作為主控制芯片,以減少功耗,提高效率。采用具有精度高、功耗低的AQM201傳感器來檢測(cè)甲醛含量。采用多個(gè)430單片機(jī)作為子機(jī)模塊分別測(cè)量對(duì)應(yīng)區(qū)域甲醛含量,然后各子機(jī)實(shí)時(shí)將采集到的甲醛含量信息傳送給430主機(jī)模塊,子機(jī)與主機(jī)之間采用NRF24L01無(wú)線模塊進(jìn)行通信。系統(tǒng)設(shè)計(jì)框圖如圖1所示。
子機(jī)系統(tǒng)中的甲醛傳感器檢測(cè)空氣中的甲醛含量,經(jīng)處理以模擬信號(hào)形式輸出,經(jīng)A/D轉(zhuǎn)換為數(shù)字量后傳送給CPU,考慮到傳感器非線性因素,CPU將數(shù)據(jù)修正后轉(zhuǎn)換為實(shí)際甲醛含量濃度百分比,通過各自無(wú)線通信模塊通道傳輸給主機(jī)。以上過程每隔5 s重復(fù)采集發(fā)送一次,該采樣時(shí)間可通過主機(jī)發(fā)送給子機(jī)的命令參數(shù)進(jìn)行自動(dòng)調(diào)整。
主機(jī)通過外部中斷及時(shí)采集各子機(jī)發(fā)來的信息,并根據(jù)子機(jī)發(fā)來的地址碼將各子機(jī)發(fā)來的信息進(jìn)行歸類,同一子機(jī)發(fā)來的信息存放在對(duì)應(yīng)房間號(hào)的數(shù)組中。主機(jī)通過數(shù)組數(shù)據(jù)及時(shí)分析各房間的甲醛含量值,對(duì)于甲醛含量長(zhǎng)時(shí)間未呈減少趨勢(shì)的房間區(qū)域,主機(jī)將自動(dòng)通知子機(jī)調(diào)整采樣時(shí)間來進(jìn)行重點(diǎn)監(jiān)測(cè)。當(dāng)甲醛含量連續(xù)多天一直超過設(shè)定上限值時(shí),主機(jī)還會(huì)發(fā)出報(bào)警聲,用以提示用戶甲醛超標(biāo)。在實(shí)際測(cè)量過程中,傳感器接收到的信號(hào)包括環(huán)境干擾信號(hào),因此各子機(jī)采用卡爾曼濾波器對(duì)采樣數(shù)據(jù)進(jìn)行濾波,更大程度地保證了采樣數(shù)據(jù)的準(zhǔn)確性。
2硬件電路設(shè)計(jì)
2.1MSP430單片機(jī)最小系統(tǒng)電路設(shè)計(jì)[8-9]
本系統(tǒng)選用MSP430F149單片機(jī)作為主控單元,其最小系統(tǒng)包含了時(shí)鐘電路、復(fù)位電路、JTAG調(diào)試電路,如圖2所示。單片機(jī)的引腳VeREF+為內(nèi)部A/D轉(zhuǎn)換參考電壓,接3.3 V。為保證參考電壓穩(wěn)定,該引腳及單片機(jī)電源引腳DVCC均對(duì)地增加了濾波電容C8、C6以濾掉環(huán)境電磁干擾。由于430單片機(jī)為低電平復(fù)位,由R1、C5組成復(fù)位電路,系統(tǒng)上電后電容C5充電,相當(dāng)于短路,RST端為低電平,充電完畢后RST變?yōu)楦唠娖?,完成上電自?dòng)復(fù)位功能。按鍵S2為系統(tǒng)增加了手動(dòng)復(fù)位功能。JTAG電路為系統(tǒng)程序調(diào)試下載接口,連接MSP-FET430UIF仿真器即可實(shí)現(xiàn)程序調(diào)試下載工作。在主機(jī)系統(tǒng)電路設(shè)計(jì)中,增加了按鍵電路如圖2中S3、S4、S5、S6所示。S3鍵為功能鍵,用于選擇采樣時(shí)間、顯示模式、報(bào)警上下限等功能;S4、S5分別為增加、減少按鍵,用于參數(shù)調(diào)整;S6鍵作為備用按鍵,便于后期功能拓展開發(fā)。按鍵接至單片機(jī)具有外部中斷功能的P1口,CPU可隨時(shí)進(jìn)入按鍵中斷服務(wù)子程序?qū)ο鄳?yīng)參數(shù)進(jìn)行設(shè)定調(diào)整。
2.2甲醛傳感器模塊電路設(shè)計(jì)[10]
所設(shè)計(jì)的甲醛傳感器模塊電路如圖3所示。由于甲醛傳感器AQM201輸出模擬量,需經(jīng)A/D轉(zhuǎn)換后得到數(shù)字量方可送給單片機(jī)處理。考慮到MSP430單片機(jī)內(nèi)部自帶高精度12位A/D轉(zhuǎn)換器,滿足設(shè)計(jì)要求,因此直接采用430單片機(jī)內(nèi)部A/D轉(zhuǎn)換器將信號(hào)轉(zhuǎn)換為數(shù)字量后供單片機(jī)CPU處理。由于甲醛傳感器輸出模擬量電壓范圍為0~5 V,而單片機(jī)A/D采樣滿量程電壓為3.3 V,因此傳感器輸出的模擬量還需進(jìn)行電壓量程匹配轉(zhuǎn)換。如圖3所示,R2、R3組成分壓電路,阻值分別為1.7 kΩ、3.3 kΩ。3.3 kΩ電阻兩端的電壓作為模擬電壓輸出,此時(shí)該模塊輸出模擬電壓范圍將為0~3.3 V,與單片機(jī)A/D轉(zhuǎn)換量程匹配,該輸出信號(hào)接至單片機(jī)A/D轉(zhuǎn)換口P6.0。
2.3無(wú)線通信模塊電路設(shè)計(jì)
無(wú)線通信采用NRF24L01模塊[11-12],電路如圖4所示,N1為無(wú)線通信模塊,其中第8腳為中斷請(qǐng)求輸出端,接至單片機(jī)的外部中斷P1.4口。各無(wú)線通信模塊在接收到數(shù)據(jù)后,將數(shù)據(jù)保存在自身存儲(chǔ)器中,然后向單片機(jī)發(fā)出中斷請(qǐng)求,以便單片機(jī)及時(shí)讀取保存在自身存儲(chǔ)器中的數(shù)據(jù),防止該數(shù)據(jù)被新接收的數(shù)據(jù)覆蓋。
主機(jī)中的無(wú)線通信模塊IRQ引腳接至單片機(jī)外部中斷接口,以便主機(jī)及時(shí)響應(yīng)各子機(jī)發(fā)來的數(shù)據(jù)。系統(tǒng)中各子機(jī)將定義各自的地址碼,代表各子機(jī)所在的不同房間。子機(jī)在發(fā)送數(shù)據(jù)的同時(shí)連同自身的地址碼一并發(fā)出,主機(jī)接收到數(shù)據(jù)后,通過地址碼來區(qū)分各個(gè)子機(jī)的數(shù)據(jù)信息,從而得到對(duì)應(yīng)房間區(qū)域的甲醛含量濃度。主機(jī)采集到信息后在液晶顯示屏上顯示當(dāng)前各個(gè)區(qū)域的甲醛濃度百分比,以及甲醛含量隨時(shí)間變化的曲線圖,便于用戶分析甲醛濃度分布及走向。
2.4報(bào)警模塊電路設(shè)計(jì)
選用蜂鳴器作為報(bào)警發(fā)生裝置,采用PNP三極管9012作為驅(qū)動(dòng),如圖5中Q1所示??紤]到I/O口的驅(qū)動(dòng)能力,單片機(jī)將以灌電流形式控制蜂鳴器發(fā)聲,控制I/O口由單片機(jī)的P5.5引腳提供,當(dāng)I/O口為低電平時(shí),蜂鳴器發(fā)聲,為高電平時(shí),蜂鳴器停止發(fā)聲。
2.5顯示模塊電路設(shè)計(jì)
如圖6所示,顯示模塊采用LCD12864HZ液晶顯示器,其自帶漢字字庫(kù),可顯示漢字、字符及圖形,使用方便。液晶直接采用3.3 V電壓供電,便于與單片機(jī)I/O口電平匹配。為簡(jiǎn)化電路設(shè)計(jì),節(jié)約I/O口開支,液晶顯示模塊與單片機(jī)的接口采用串行接口進(jìn)行通信,SCLK、SID、CS三引腳分別接至單片機(jī)的P3.5、P3.6、P3.7三個(gè)引腳。
3軟件程序設(shè)計(jì)
3.1子機(jī)系統(tǒng)軟件設(shè)計(jì)
在子機(jī)系統(tǒng)中,傳感器每隔一定時(shí)間采集一次數(shù)據(jù),經(jīng)數(shù)據(jù)處理、卡爾曼濾波[13-15]后,通過無(wú)線通信模塊發(fā)送給主機(jī),同時(shí)子機(jī)實(shí)時(shí)準(zhǔn)備接收主機(jī)發(fā)送過來的設(shè)置命令(用于設(shè)置子機(jī)傳感器采樣時(shí)間間隔等)。因此子機(jī)系統(tǒng)軟件任務(wù)包含傳感器數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收幾個(gè)部分。由于無(wú)線接收任務(wù)屬于緊急任務(wù),該任務(wù)由外部中斷來完成。主程序?qū)⑼瓿蓚鞲衅鲾?shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)發(fā)送任務(wù),流程圖如圖7所示。
3.2主機(jī)系統(tǒng)軟件設(shè)計(jì)
主機(jī)要完成的任務(wù)有:本機(jī)數(shù)據(jù)采集、子機(jī)數(shù)據(jù)接收、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)顯示、傳感器檢測(cè)、按鍵掃描、發(fā)送數(shù)據(jù)給上位機(jī)、報(bào)警等。根據(jù)任務(wù)的緊急性將數(shù)據(jù)接收、按鍵掃描任務(wù)均設(shè)置為外部中斷模式,并將數(shù)據(jù)接收設(shè)置為高優(yōu)先級(jí)中斷。數(shù)據(jù)顯示、傳感器檢測(cè)以及報(bào)警任務(wù)程序在主程序中循環(huán)調(diào)用。其中,初始化函數(shù)包含了時(shí)鐘配置、I/O口初始化、中斷初始化、各功能模塊初始化等,為系統(tǒng)工作做好準(zhǔn)備。外部中斷入口對(duì)應(yīng)的中斷源為主機(jī)系統(tǒng)單片機(jī)的P1.4引腳,在初始化函數(shù)中將該引腳設(shè)置為外部中斷模式。主機(jī)流程圖在此不再贅述。
3.3系統(tǒng)數(shù)據(jù)處理
圖8為甲醛傳感器模擬輸出特性曲線圖,橫軸為濃度值,縱軸為采集到的電壓,根據(jù)圖中提供的數(shù)據(jù)可知,對(duì)采集到的數(shù)據(jù)進(jìn)行處理即可計(jì)算出甲醛在空氣中的含量。設(shè)采集到的電壓為Vx,甲醛濃度為Y,則計(jì)算公式為:
4結(jié)論
圖9為系統(tǒng)主機(jī)實(shí)物圖及實(shí)時(shí)監(jiān)測(cè)曲線顯示。系統(tǒng)包括硬件設(shè)計(jì)和軟件編程兩部分,實(shí)現(xiàn)了對(duì)室內(nèi)甲醛含量的實(shí)時(shí)監(jiān)控與報(bào)警監(jiān)測(cè)。采用卡爾曼濾波器對(duì)傳感器采集到的信號(hào)進(jìn)行濾波,保證了采樣數(shù)據(jù)的準(zhǔn)確性。系統(tǒng)檢測(cè)精度高、功耗低、穩(wěn)定性好,可用于建筑室內(nèi)甲醛氣體含量監(jiān)測(cè),也可用于電廠、化工、地下管道等施工環(huán)境監(jiān)測(cè),防止甲醛中毒事故發(fā)生。
參考文獻(xiàn)
[1] 王維新.甲醛釋放與檢測(cè)[M].北京:化學(xué)工業(yè)出版社,2003.
?。?] 陳煥文,鄭健,李明,等.甲醛檢測(cè)方法及儀器[J].分析化學(xué)評(píng)述與進(jìn)展,2004,32(7):969-972.
?。?] GB/T 18204.26-2000,公共場(chǎng)所空氣中甲醛測(cè)定方法[S].北京:中國(guó)標(biāo)準(zhǔn)出版社,2000.
[4] GB/T 16129-1995,居住區(qū)大氣甲醛衛(wèi)生檢驗(yàn)標(biāo)準(zhǔn)方法:分光光度法[S].北京:中國(guó)標(biāo)準(zhǔn)出版社,1995.
?。?] 陸學(xué)奎,蘭建中.家庭室內(nèi)裝修后空氣中甲醛污染調(diào)查及防治措施初探[J].現(xiàn)代預(yù)醫(yī)學(xué),2006,33(6):952-953.
?。?] 馬天.甲醛分析儀現(xiàn)場(chǎng)檢測(cè)技術(shù)[J].中國(guó)測(cè)試技術(shù),2005,31(5):131-132.
?。?] 孫登峰,方正,馬天,等.甲醛快速測(cè)定儀測(cè)試性能研究[J].中國(guó)測(cè)試技術(shù),2006,32(6):26-28.
?。?] 胡大可.MSP430C語(yǔ)言程序設(shè)計(jì)與開發(fā)[M].北京:北京航空航天大學(xué)出版社,2003.
?。?] 劉忠超,殷華文,郭抒穎.基于MSP430單片機(jī)的智能儀表設(shè)計(jì)[J].自動(dòng)化與儀表,2015(2):20-24.
?。?0] 單成祥.傳感器的理論與設(shè)計(jì)基礎(chǔ)及應(yīng)用[M].北京:國(guó)防工業(yè)出版社,1999.
?。?1] 侯杏娜,陳壽宏,唐萬(wàn)順.基于NRF24L01的降雨量實(shí)時(shí)采集無(wú)線監(jiān)測(cè)系統(tǒng)[J].計(jì)算機(jī)測(cè)量與控制,2014,22(8):2372-2376.
?。?2] 嚴(yán)林祥,張紅雨.基于Web和nRF24L01的遠(yuǎn)程數(shù)據(jù)接收器設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2013,39(10):69-75.
?。?3] DAUM F. Nonlinear filters beyond the Kalman filter[J].IEEE A&E Systems Magazine,2005,20(8):57-69.
[14] KIM J, VADDI S S, MENON P K, et al.Comparison between nonlinear filtering techniques forspiraling ballistic missile state estimation [J].IEEE Transactions on Aerospace and Electronic Systems,2012,48(1):313-328.
?。?5] KALMAN R E. A new approach to linear filtering and prediction problems [J].Transactions of the AMSE Journal of Basic Engineering,1960,82(1):35-45.