宋晓宇 高国伟 李世川 吴冰洋 李孟楠 黄璐
1.北京信息科技大学自动化学院,北京100192;2. 北京信息科技大学信息获取与检测重点实验室,北京 100101
根据相关部门的调查显示,大约60%的交通事故都是酒后驾驶造成的,酒后驾车已成为威胁人类生命的 “隐形杀手”。即使在饮酒很少的情况下,交通事故的的发生率也能成倍增长,酒后驾车已成为交通事故的第一大杀手[1]。
自《刑法修正案(八)》和修改后的《道路交通安全法》正式实施,“醉酒驾驶”正式入刑。不仅交警部门,而且很多车主都期盼能够有便携仪器方便地测量气体酒精浓度,为安全驾驶提供保障,有效减少重大交通事故的发生。
基于上述原因设计了一种智能酒精浓度检测仪,用来检测被测者或者被测环境的酒精浓度,由显示模块显示出检测的值,还能通过外部按键改变检测仪的报警浓度阈值,从而来界定不同环境条件下酒精含量的安全范围,超过安全阈值可以促发报警电路产生报警,达到预防、阻止交通事故发生的目的。
本次酒精浓度测试仪的设计以单片机为控制核心,由气体传感器电路、显示电路、报警电路[2]等电路模块组成的硬件电路,编制相关控制软件,从而实现对驾驶人员呼出气体的酒精浓度进行实时监测,并在超过安全值时报警。系统设计框图如图1所示。
MQ-3乙醇气体传感器输出信号,经信号调理电路处理,输出随乙醇浓度变化的电压信号,经A/D转换,该电压信号送入单片机系统,与设定的醉酒阈值进行比较,并显示或报警。
本次设计的酒精浓度检测系统具有如下点:
(1)数据采集系统以单片机为控制核心,外围电路带有LCD 显示以及按键控制电路,无需要其他计算机,用户就可以与之进行交互工作,完成数据的采集、存储、计算、分析等过程;
(2)系统具有低功耗、小型化、高性价比等特点;
(3)从便携式的角度出发,系统成功使用了大屏幕液晶显示器以及小按键,由单片机系统控制按键和LCD 显示来实现人机交互操作,界面友好;
(4)软件系统采用C语言编写,在兼顾实时性处理的同时也能很方便地进行数据处理。
本研究设计的酒精浓度测试仪系统电路图如图2所示。
本次检测气体的系统核心是气体传感器,一般情况下安装在探测头内。从本源上讲,气体传感器是一种将某种气体体积分数转化成对应电信号的转换器。探测头通过气体传感器对气体产品进行分析整理,通常包括清除渣滓和干扰气体、干燥或制冷处理、样品抽吸,以便传感器进行更加快速的分析处理。
由于本次测量环境在正常室温条件下进行,并且被测对象为空气中的酒精气体,挥发性较强,检测范围变化较大,所以在选择传感器的时候,一定要考虑到稳定性、灵敏度、选择性和抗腐蚀性,而本次设计使用的MQ-3传感器符合上述条件。
MQ-3传感器,具有很好的稳定性、相当高的灵敏度、较好的选择性和长期的使用寿命以及可靠地稳定性。该传感器由微型Al2O3、陶瓷管和SnO2敏感层、测量电极和加热器构成敏感元件,固定在塑料或者不锈钢的腔体内,加热器为气敏元件的工作提供了必要的工作条件,当其受热后,加温室环境中的可燃气体浓度迅速增大,传感器的内阻阻值将会迅速降低[3],Vout值将逐渐增大,当超过设定阈值时,可产生相应的操作。经过处理后检测信号由电阻值转变成电压值,就可用于后续电路进行 A/D 转换和处理。
传感器的由两条回路组成:第一部分为加热回路;第二部分为信号输出回路,它可以准确反映传感器表面电阻变化,上述这些参数使得传感器输出0~5V的电压[4]。
MQ-3乙醇气体传感器管脚与测试电路如图3所示,主要技术指标见表1。
图4为 MQ-3传感器的灵敏度曲线。由图中可以看出,具有气敏特性的电阻,其输出的电阻阻值会随着乙醇气体浓度的变化而相应变化。MQ-3传感器对于乙醇气体的反应程度最高,其输出的电阻阻值与乙醇气体浓度成反比,经过测试阻值变化率约为0.6,传感器阻值变化率与酒精浓度、外界温度的关系慎密,为了使测量的酒精浓度最高误差最小,需要找到合适的温度,一般在测量前需将传感器预热5min。预热后半导体颗粒表面的吸附可导致材料载流子浓度发生相应变化,从而改变电导率,使传感器输出电压信号发生改变来相应反映浓度变化。
MQ-3乙醇气体传感器的输出信号经过调理,检测信号由电阻值转变成电压值,便于后续电路进行A/D转换和处理。图2中AOUT为MQ-3传感器模块输出的检测电压信号,送入ADC0832采集芯片端口进行A/D转换处理。
表1 MQ-3气体传感器的主要技术指标
本设计选用的ADC0832是美国国家半导体公司生产的一种 8 位分辨率、双通道 A/D 转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎。ADC0832的最高分辨可达256 级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。芯片转换时间仅为 32μs,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过 DI 数据输入端,可以轻易的实现通道功能的选择[5]。再本设计中ADC0832的功能是将酒精传感器输出的模拟信号转化为数字信号,然后将信号送入单片机进行处理,试验证明,本电路满足本设计要求。在本设计中,ADC0832选择模拟输入通道0即CH0作为信号的采集端口。
CPU模块主要由单片机电路、晶振电路和复位电路三部分组成。
核心单片机电路选用宏晶公司高性能单片机STC89C52,它是一种低功耗、高性能CMOS8位微控制器,具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口[6]。可在内部对外来数字信号进行处理,显示并产生报警信号。
复位电路由按键S1、电解电容C1和电阻R3组成。具有手动按键复位和上电自动复位功能。系统上电复位按键接口采集到两个高端信号后进行手动复位,就是非自动的按键复位;系统检测到的电压由低电平上升到高电平的一段时间后,在这段时间过后,系统通过电阻与接地之间形成一条通路,然后自动把高电平进行拉低,使得单片机从高电位变为低电位,从而就是给单片机自动进行复位即上电复位[7]。
晶振电路由晶振Y1、瓷片电容C2和C3组成,本设计用12MHz晶振和20pF的电容组合,电容为了帮助晶振起振的,满足了数字控制器上电以后可以正常工作。
显示部分采用LCD1602液晶屏。LCD1602为字符型液晶显示屏,主要技术参数为:显示容量为16×2个字符、芯片工作电压为4.5~5.5V、工作电流为2.0mA(5.0V)、模块最佳工作电压为5.0V、字符尺寸为2.95×4.35(W×H)mm[8]。
LCD1602采用标准的14脚,其中,第4脚RS为寄存器选择,RS=1数据寄存器、RS=0指令寄存器;第5脚RW为读写信号线,RW=1读操作,RW=0写操作。当RS=0并RW=0时可以写入指令或者显示地址,当RS=0并RW=1读忙信号,当RS=1并RW=0写入数据。第6脚E端为使能端,当E端由1跳变成0时,液晶模块执行命令。单片机通过P2.7~P2.5控制这三个引脚进而控制LCD的显示。
在本系统中,按键作为系统的输入,起到了人机交互的枢纽作用。初始阈值直接在系统中设置为80mg/L,按键电路设置了S2和S3两个按键,两个按键的单片机控制引脚默认为高电平,按键按下后,单片机的相关引脚则变成低电平。S2按键按下后,单片机检测到低电平,对相应的阈值变量执行“+1”的指令,S3按键按下后,单片机检测到低电平,对相应的阈值变量执行“-1”的指令,从而改变阈值,进而实现对系统的手动输入。其中阈值的调整范围为0~999mg/L。
本系统所采用的报警模块为5V有源蜂鸣器模块,电路中采用三极管9012来驱动,只要单片机引脚为低电平,蜂鸣器就会鸣叫报警,反之则不鸣叫,可以通过控制单片机相关引脚方波输出形式控制蜂鸣器的鸣叫方式。同时,将LED灯串联个电阻与蜂鸣器并联,串联电阻为限流电阻,当蜂鸣器间隔鸣叫的时候,LED指示灯将闪烁报警。电路简单可靠,不需额外占单片机的I/O口。
本设计采用电池盒接口供电,电源电压5V,开关设置为按键开关。
系统的软件部分采用C语言编写。先将系统按功能作用划分为若干子模块,然后根据子模块要实现的功能完成各个子程序的编写[9]。整个程序是采用查询的方式编写的。
主程序主要完成:检测环境下的酒精浓度,对当前的酒精浓度进行显示,并且经过处理与设定的阈值进行比较,产生声光报警信号等。本设计软件主程序流程图如图5所示。给设备连接上电测试之后,主控芯片单片机对系统进行初始化,酒精传感器检测外界环境的酒精浓度,经过A/D转换后,进入单片机处理,显示模块显示酒精浓度,并且与初始设定阈值相比较,如果超过阈值,单片机触发报警装置,否则,继续检测信号;检测过程中,可以通过按键电路调整阈值,系统经过按键增加或者减小阈值大小,新的阈值确定后,系统重复进行信号检测、A/D转换、显示、报警等流程。
经过软件、硬件部分的调试,最后实现了本次酒精浓度测试仪的设计功能。图6所示为测试结果显示。
上述测试结果是在实验室模拟车辆内环境下进行的,被测对象为以酒精为主的测试样本通过喷雾的形式释放出一定浓度的酒精。由图6可知,开机后先对系统进行预热大约5min,当酒精浓度低于设定值时,系统没有任何反应;当有一定浓度的酒精释放,系统的响应时间约为15~20s,酒精气体被传感器采集后浓度开始上升,超过设定值时LED灯亮,蜂鸣器发出报警;过段时间可以发现液晶屏上浓度开始下降,并在降到设定值以下后LED熄灭,蜂鸣器不再发出报警,测试成功。
测试的同时,运用市场上常用的警用JS-PD800酒精测试仪(此仪器的分辨率可达0.01mg/L,测量精度在室温条件下,对乙醇气体的测量允许误差不超过0.8mg/L,仪表的精度等级为0.4级)进行比对测试,共进行了五次比对测试实验,五组比对数据如表2。经过比对,本设计的测量误差小于6%,系统精度符合预期。
当然系统还有待进一步的完善发展。由于各种环境因子相互影响,而本系统的控制输出仅为简单的百分比信号量,这显然不能满足高精度的控制要求。应引入模糊算法,专家系统等技术以进一步提高系统的智能决策水平[10]。系统还可以开发成多机监控模式,同时监测多个被测对象,通过串行通信传到上位机进行综合处理[11]。
设计的酒精浓度检测系统兼有浓度监测与报警的功能。结果表明:整个系统性能稳定、灵敏度高、体积小、性价比高。该酒精浓度检测系统不仅可以用于检测空气中酒精的含量,对人身安全起到预防保护的作用,而且可以用于其他需要进行酒精浓度检测的环境。因此,市场前景广阔、推广价值高。