摘?要:本設計主要針對家用轎車設計了一款基于STM32F103C8T6單片機的一氧化碳檢測儀,通過MQ-7一氧化碳傳感器能夠檢測車內一氧化碳濃度,并將其通過OLED屏幕顯示出來,若一氧化碳濃度超出設定的危險閾值,檢測儀啟動聲光兩重報警,提示車主及時做出應對措施。該檢測儀電路簡單,而且體積小、成本低、使用方便,具有較高的實用價值。
關鍵詞:單片機;聲光報警;MQ-7一氧化碳傳感器
一氧化碳(Carbon?Monoxide)是無色、無味、無刺激性的氣體,人體在短時間內吸收較高濃度的CO時會造成急性中毒,甚至死亡[1]。由于發(fā)生一氧化碳中毒事件的隱蔽性和普遍性,迫切需要一種監(jiān)控室內一氧化碳濃度的檢測儀,當一氧化碳濃度過高時及時報警,保護人們的生命財產安全[2]。尤其是在密閉環(huán)境中,比如汽車,由于天氣較熱,大部分車主選擇關閉車窗開啟空調,造成空氣不流通,導致一氧化碳事故時有發(fā)生。因此,做好對一氧化碳的監(jiān)測,能極大減少事故的發(fā)生?;诖四康?,我們設計一款簡單實用、價格實惠的便攜式一氧化碳檢測系統(tǒng)。
一、系統(tǒng)硬件概述
一氧化碳檢測系統(tǒng)以STM32F103C8T6單片機作為主控芯片,結合一氧化碳濃度采集模塊、A/D轉換模塊、聲光報警模塊等模塊。一氧化碳濃度采集模塊用于采集環(huán)境中的一氧化碳濃度,A/D轉換模塊將采集到的一氧化碳濃度數(shù)據(jù)轉換成單片機能處理的數(shù)字信號,單片機將收集的信號進行處理,然后通過OLED屏幕顯示檢測到的數(shù)據(jù),并判斷收集到的數(shù)據(jù)是否超過系統(tǒng)設定的閾值,若超出設定值,則能通過蜂鳴器發(fā)出的鳴叫聲提醒用戶。其整體框圖如圖1所示。
圖1?系統(tǒng)框圖
STM32F103C8T6單片機是意法半導體較早推向市場的基于Cortex-M內核的微處理器系列產品,這是一款功能強大的單片機,相較于C51單片機在性能方面更有優(yōu)勢,而且新系列產品整合先進的面向連接的外設,使開發(fā)人員可以在設備上整合更多的功能。
一氧化碳濃度采集模塊則采用了MQ-7氣體傳感器,屬于半導體電阻式傳感器,它所使用的氣敏材料是在清潔空氣中電導率較低的二氧化錫,當所處的環(huán)境中存在目標氣體時,傳感器的電導隨空氣中目標氣體濃度的增大而增大,可將電導的變化量轉換為與之對應的輸出信號[3]。采用高低溫循環(huán)檢測方式,低溫(1.5V加熱)檢測一氧化碳,傳感器的電導率隨空氣中一氧化碳氣體濃度增加而增加,高溫(5.0V加熱)清晰低溫時吸附的雜散氣體。使用簡單的電路即可將電導率的變化,轉化為與一氧化碳濃度相對應的輸出信號。盡管MQ-7氣體傳感器探測的范圍不是很廣泛,但對于一氧化碳濃度靈敏度卻很高。
顯示模塊則采用了OLED(Organic?Light-Emitting?Diode,有機發(fā)光二極管)。OLED被稱為第三代顯示技術,不僅更輕薄、能耗低、亮度高、發(fā)光率高,并且可以做到彎曲。與傳統(tǒng)的LCD顯示方式不同,無需背光燈,采用非常薄的有機材料涂層和玻璃基板,當有電流通過時,這些有機材料就會發(fā)光。
報警模塊包含聲、光雙重報警兩部分。光報警部分采用LED(Light?Emitting?Diode,發(fā)光二極管)。LED是一種常用的發(fā)光元器件,在電路中及儀器中作為指示燈,或者組成文字或數(shù)字顯示。在現(xiàn)代社會,應用很廣泛,如平板顯示、交通信號燈、醫(yī)療等。聲音報警部分則采用的傳統(tǒng)的蜂鳴器。常見的蜂鳴器有無源蜂鳴器和有源蜂鳴器。本模塊采用的是價格較便宜的無源蜂鳴器。蜂鳴器的電路工作原理圖如圖2所示。
圖2?蜂鳴器原理圖
蜂鳴器報警模塊為高電平驅動,通過I/O口來驅動該模塊,當P口接收的信號為高電平時,三極管導通,蜂鳴器有電流,蜂鳴器便會發(fā)出聲音,Vcc的電壓值不要超過蜂鳴器的極限,否則電路不能正常工作。當P口接收的信號為低電平時,三極管截止,蜂鳴器無電流,蜂鳴器不發(fā)出聲音。
二、系統(tǒng)軟件設計
主程序的流程圖如下圖圖3所示。需要實現(xiàn)的功能有:(1)經單片機處理后的信號轉成需要顯示的數(shù)據(jù)并將在OLED屏幕上顯示出來。(2)MQ-7一氧化碳傳感器的故障檢測,如果是傳感器發(fā)生故障,則在此時綠燈熄滅,黃燈閃亮,提醒車主該系統(tǒng)有傳感器發(fā)生故障,不能正常工作,需要檢修或進行更換。(3)當系統(tǒng)正常工作時,若車內一氧化碳濃度正常時,LED綠燈亮起;若車內一氧化碳的濃度超出閾值,警示燈LED紅燈亮起,同時啟動蜂鳴器,提醒車主盡快做出相應的防范措施。
圖3?主程序流程圖
檢測部分程序如下:
if(co>50)
{LED1_OFF;
LED3_ON;}//一氧化碳濃度超過50時,綠燈滅,紅燈亮,蜂鳴器響起
else?if(co<50&&cnt<18&&temp<30)
{LED1_ON;
LED2_OFF;
LED3_OFF;}?//正常情況下綠燈亮。
三、電路測試
(一)硬件測試
(1)MQ-7一氧化碳傳感器測試。傳感器先預熱20秒左右,然后接近含較高濃度一氧化碳被測氣體,燈亮;將傳感器遠離被測氣體,燈滅,說明傳感器能正常工作。在實際的操作中,需要指示燈來顯示其處于連接的狀態(tài),因此,當電路接通的時候,傳感器的指示燈是常亮狀態(tài)的。通過測試,本模塊能正常工作。
(2)蜂鳴器的測試。在本系統(tǒng)中,蜂鳴器要求在車內一氧化碳濃度超過設定值時能及時的報警。在調試的過程中,拿打火機靠近一氧化碳傳感器時,當一氧化碳的濃度超過閾值時,蜂鳴器發(fā)出聲音提醒,所以,本模塊調試成功。
(3)OLED顯示屏測試。要使OLED上面能顯示出傳感器檢測到的各類數(shù)據(jù),必須要經A/D轉換之后才傳輸?shù)絆LED模塊進行顯示,在整個過程中需要軟件調試來輔助進行。通過調試最終順利將所需的信息顯示在OLED顯示屏上。圖4即為OLED正常工作時的顯示屏幕內容。
圖4?OLED顯示屏測試
(二)系統(tǒng)軟件測試
系統(tǒng)軟件測試是通過軟件開發(fā)工具來將編寫好的代碼運行測試。在本系統(tǒng)軟件,使用的是Keil5軟件編寫,程序語言為C語言。打開Keil5軟件,創(chuàng)建新的工程項目,選擇好對應的單片機型號,在相應的界面下開始著手程序的編寫,通過keil5的運行功能可以檢查出程序是否存在語序或邏輯的錯誤,根據(jù)運行后的提示進行修改,完善程序代碼。
當程序編譯通過后,可使用軟件生成hex文件,并通過ISP下載方法將其下載到芯片中,至此程序部分測試完成一半。再通過硬件的各功能模塊測試系統(tǒng)的功能指標是否達到。在這個過程當中,遇到的往往都是一些細微的差別,如要求led綠燈亮,但硬件模塊展現(xiàn)的卻是黃燈在閃,這明顯是功能搞反了,一開始認為是兩個燈的引腳接錯了,但在換了之后卻還是沒有改變情況,排查了許久,最終還是在代碼那里發(fā)現(xiàn)了問題。代碼的邏輯沒問題,也能正常的運行,但卻將燈閃與滅對換了。
四、結語
轎車已經進入千家萬戶,但每年由一氧化碳中毒引發(fā)的事故時有發(fā)生,本文所設計的一氧化碳檢測儀,電路簡單,成本低廉,能夠準確檢測密閉車內的一氧化碳濃度,并能夠發(fā)出聲光兩重報警以提醒車主,除了可用于車內,還可以廣泛應用于其他可能產生一氧化碳的密閉空間,實用價值較高。
參考文獻:
[1]段閃閃,李元帥,萬超.溫室大棚用CO報警器設計[J].計算機產品與流通,2018(4):131.
[2]李瑞福.基于單片機AT89C51的一氧化碳濃度檢測儀設計[J].軟件,2015,36(9):106-108.
[3]郭全民,馬旋坤,王健.室內空氣質量測量儀的設計與實現(xiàn)[J].國外電子測量技術,2015,34(1):52-55.
作者簡介:曹燦云(1981-),女,湖南衡陽人,碩士研究生,講師,廣東石油化工學院電子信息工程學院,主要從事電工與電子技術教學與研究。