基于STM32F103單片機的甲醛檢測報警儀設(shè)計
引言
甲醛作為一種裝修材料中普遍存在的有毒氣體,是最主要的室內(nèi)污染物。研究表明,室內(nèi)空氣中的甲醛對人體的危害隨著濃度增高而增大。當(dāng)甲醛含量僅為0.1mg/m3時,人體就會感到不適:當(dāng)甲醛含量為0.2mg/m3時,會使人患上咽喉炎、哮喘等病癥:當(dāng)室內(nèi)空氣中甲醛含量為0.5mg/m3時,會刺激人的眼睛:當(dāng)室內(nèi)空氣中甲醛含量大于0.6mg/m3時,便會威脅人們的生命健康。
目前國內(nèi)外的氣體檢測方法分為乙酰丙酮分光光度法、酚試劑分光光度法、AHMT分光光度法、氣相色譜法和電化學(xué)檢測法等。這些方法普遍要求檢測人員按照標(biāo)準(zhǔn)采集空氣樣本,并用專業(yè)儀器按照嚴格的化學(xué)實驗步驟檢測樣本的甲醛濃度。本文設(shè)計的甲醛氣體檢測報警儀采用電化學(xué)檢測法,將電化學(xué)傳感器的輸出量轉(zhuǎn)換為氣體濃度,通過液晶屏顯示以及無線通信的方法,將氣體濃度信息反饋給用戶和遠程終端,并在氣體濃度高于額定濃度時實現(xiàn)報警功能。
1硬件設(shè)計
1.1硬件系統(tǒng)總體設(shè)計
甲醛檢測報警儀硬件系統(tǒng)主要分為:甲醛傳感器檢測模塊、STM32F103單片機控制模塊、LCD液晶顯示模塊、wi-Fi連接模塊和報警模塊等。其主要功能為實時檢測當(dāng)前室內(nèi)空氣中的甲醛氣體含量并顯示在液晶模塊中,在甲醛含量超標(biāo)時進行聲光報警。
本設(shè)計采用基于ARM32位的ContexTM-M3CPU為內(nèi)核的miniSTM32F103ZE-T6微控制器。甲醛檢測儀外擴的按鍵、LCD顯示器和報警裝置通過通用的I/o接口與微控制器連接:無線傳輸模塊通過UART接口與微控制器連接并實現(xiàn)通信:傳感器將采集到的信息以電壓的形式傳遞到A/D采集端口從而與微控制器連接,硬件系統(tǒng)如圖1所示。
1.2模塊介紹
LCD12864是一種具有多種接口方式,內(nèi)部含有國標(biāo)一級、二級簡體中文字庫的點陣圖形液晶顯示模塊,其內(nèi)置8192個16×16點漢字和128個16×8點ASCII字符集,顯示分辨率為128×64dpi。該模塊采用低電壓電源(VDD:3.0~5.5V),可選擇串/并行兩種通信方式。與同類型的圖形點陣液晶顯示模塊相比,LCD12864具有更為簡潔的電路結(jié)構(gòu)與顯示程序,且功耗較低,符合甲醛檢測儀需求。為節(jié)省I/o接口資源,本研究通過串行方式將LCD12864與微控制器進行連接。
ESP8266是一個完整且自成體系的wi-Fi網(wǎng)絡(luò)解決方案,能夠通過另一個應(yīng)用處理器卸載所有wi-Fi網(wǎng)絡(luò)功能,或搭載軟件應(yīng)用。該模塊支持STA/AP/STA+AP工作模式與Sm+atConrig功能(包括Andaoid和ioS設(shè)備),采用3.3V單電源供電,可使用UART數(shù)據(jù)通信接口與微控制器連接或使用USf轉(zhuǎn)TTL接口通過主機進行調(diào)試。
M-01傳感器為電化學(xué)原理免標(biāo)定的通用型和小型化的智能傳感器,通過電化學(xué)原理對空氣中的甲醛濃度進行探測,然后經(jīng)過數(shù)據(jù)處理轉(zhuǎn)變?yōu)殡娦盘栞敵?具有高分辨率、溫度補償和高穩(wěn)定性等特點,廣泛應(yīng)用于室內(nèi)檢測領(lǐng)域。
2軟件設(shè)計
2.1軟件開發(fā)環(huán)境
STM32微處理器基于ARM核,所以很多基于ARM嵌入式開發(fā)環(huán)境都可用于STM32開發(fā)平臺。開發(fā)工具都可用于STM32開發(fā)。選擇合適的開發(fā)環(huán)境可以加快開發(fā)進度,節(jié)省開發(fā)成本。本文選用STM32常用的開發(fā)工具BeiKMDB。
2.2軟件總體設(shè)計
系統(tǒng)軟件設(shè)計目的即實現(xiàn)甲醛檢測傳感儀的主要功能,包括對當(dāng)前室內(nèi)甲醛濃度的檢測,與wi-Fi模塊的通信,甲醛濃度的實時顯示,甲醛濃度超標(biāo)時的報警等。系統(tǒng)實時讀取A/D轉(zhuǎn)換器采集的電壓值并將其轉(zhuǎn)化為氣體濃度,將氣體濃度通過顯示和無線傳輸?shù)姆绞椒答伣o用戶,當(dāng)氣體濃度大于警戒值時啟動報警程序。
2.3A/D采集模塊軟件部分
周期性采集A/D轉(zhuǎn)換器寄存器中的數(shù)據(jù),根據(jù)采集到的數(shù)據(jù)計算出I/o口輸入的電壓,再用電壓計算出傳感器得到的氣體濃度。使用ADCConleatedV+KueLoc+K=(rKo+t)ADCConleatedV+Kue×3.3/4096函數(shù)得到甲醛傳感器輸出的電壓值,使用ADCvⅤlue=(floⅤt)ADCConvertedVⅤlueLocⅤl/2×2函數(shù)換算出甲醛氣體濃度。
2.4Wi-Fi模塊軟件部分
EsP8266wi-Fi模塊以服務(wù)器模式進行工作并周期性發(fā)送數(shù)據(jù),用戶連接到EsP8266后即可以接收到EsP8266所發(fā)送的數(shù)據(jù)。EsP8266模塊初始化程序如下:
EsP8266Init()://EsP8266初始化
EsP8266Cmd("AT+CwM0DE=3"."0K"."nochⅤnge".2500)://設(shè)置成sTA+AP指令模式,
EsP8266Rst()://EsP8266重啟
EsP8266BuildAP("esp8266"."1234567890".3)://設(shè)置wifi用戶名,密碼
EsP8266EnⅤbleMultipleId(l)://啟動多鏈接模式
EsP8266stⅤrt0rshutserver(l."8080"."2880")://開啟服務(wù)器模式,發(fā)送采集的數(shù)據(jù)
EsP8266sendstring(ADCvⅤlue.5):
2.5顯示和報警模塊軟件部分
在甲醛檢測儀顯示與報警模塊中,首先要進行引腳配置,根據(jù)液晶引腳的功能進行定義,保證其與硬件連接相一致。在該模塊中,字符和漢字是以點陣字模的形式存儲:顯示用l6xl6點陣或8×l6點陣數(shù)據(jù)確定。由二進制位來表示每一個點,在液晶屏上顯示亮點則表示此點存入值為l,否則表示存入值為0。對于液晶的顯示,其功能函數(shù)在程序中并不是以整體形式出現(xiàn),而是在程序的主函數(shù)、報警和檢測功能函數(shù)當(dāng)中穿插出現(xiàn)。查看檢測結(jié)果時,通過調(diào)用顯示字符或漢字的函數(shù)displⅤygrⅤphicl6×l6或displⅤygrⅤphic8×l6將數(shù)據(jù)寫入液晶屏幕,得到氣體濃度后,與警戒值進行比較,若高于警戒值則進行電平翻轉(zhuǎn),點亮二極管并觸發(fā)蜂鳴器發(fā)出警報。
3檢測與分析
將本研究所設(shè)計的甲醛檢測儀與常見的半導(dǎo)體型甲醛檢測儀所得的標(biāo)準(zhǔn)結(jié)果進行數(shù)據(jù)對比,以驗證研究設(shè)備的性能。在相同的常溫常壓條件下,選取剛剛完成裝修和裝修完成時間較久的不同條件下的房間,測試結(jié)果如表l所示,其中甲醛含量l表示半導(dǎo)體型甲醛檢測儀的檢測結(jié)果,甲醛含量2是本研究所設(shè)計的甲醛檢測儀的檢測結(jié)果。
實驗結(jié)果表明,本研究所設(shè)計的甲醛檢測儀與常見的半導(dǎo)體型甲醛檢測儀的檢測誤差在2.9%~11.8%,檢測結(jié)果無較大誤差。本研究所設(shè)計的甲醛檢測儀可以對傳統(tǒng)檢測儀的檢測方法進行補充,并達到實時監(jiān)測檢測結(jié)果的目的。
4結(jié)語
甲醛作為重要的有機原料被應(yīng)用于人們?nèi)粘I畹姆椒矫婷?為人類帶來便利的同時,對人體健康的損害也是不容忽視的。甲醛較高的毒性使世界衛(wèi)生組織和美國環(huán)境保護局都把它列為危險致癌物和重要的環(huán)境污染物,在我國有毒化學(xué)品優(yōu)先控制名單中,甲醛也高居第二位。在這樣的情況下,人們亟需可以被應(yīng)用于室內(nèi)檢測的低成本甲醛檢測儀器。而本文所設(shè)計的儀器不需要借助其他試劑或工具,對檢測環(huán)境的要求較低且檢測精度較高,能滿足人們?nèi)粘I钪屑兹z測需要。