摘要:目前酒后驾驶已经成为交通事故的主要原因。虽然国家通过加大检查力度来控制酒驾,但交警在路上抽查具有随机性,且效率低下。基于单片机的智能防酒驾系统能够识别驾驶员是否酒驾并且能够实现智能提醒。当传感器检测到司机体内的酒精浓度大于预先设定的酒驾值时,单片机对警报提示系统发出信号,警报系统在接收到信号后蜂鸣器发出警报,并在LCD屏上显示传感器检测到的酒精浓度。以此源头上减少酒驾人员出行,从而减少酒驾事故的发生。
关键词:arduino单片机;MQ-3酒精传感器;1602液晶屏
0引言
随着人民生活水平的提高,机动车的数量日渐增多。但随着车辆的增多,酒驾成为威胁道路安全的重要因素。据世界卫生组(WHO)统计,全球每年有60-70万人死于因酒驾引发的交通事故。酒后驾驶已经被世界卫生组织列为车祸致死的首要原因。大部分的酒驾人员并不是没有意识到酒驾的危害性,而是无法清楚的判断自身是否能够达到驾车要求。为了避免这类交通悲剧的发生,我们希望设计一种智能报警系统,用于司机在刚上车时检测其体内的酒精含量是否达到酒驾标准,在液晶屏上显示驾驶员的酒精含量,若达到酒驾标准则通过单片机的发出的报警。
很多的酒驾人员知道自己喝酒了,但大多数认为自己不会轻易的达到酒驾标准就继续开车上路,酒驾报警系统可以清晰的提醒司机,其已达到酒驾标准,继续上路会被交警查出或引发事故。
1 硬件设计
1.1硬件设计方案
酒驾检测报警系统分为三部分,检测系统、报警系统和控制系统。检测系统主要为3路MQ-3酒精传感器,报警系统为1602液晶屏、蜂鸣器和LED灯,控制系统为arduino单片机。MQ-3酒精传感器通过模拟信号输出端将检测到的信号传输至arduino单片机,单片机通过A/D转换将模拟信号转换为数字信号,并由MCU运算处理器得出检测数值显示在1602液晶屏上,并判断该模拟数值是否需要报警,若需要,则将信号发送给蜂鸣器及LED灯。3路酒精传感器分别安装在挡光板、方向盘和窗边这三个位置,以适应不同身高,不同坐姿的驾驶员。
图1 系统运行流程图
1.2 Arduino单片机
Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境 。主要包含两个的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE。Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。
图2 Arduino实物图
1.3 MQ-3酒精传感器
酒精传感器的基本原理可简述为将探测到的酒精浓度转换成有用电信号的器件,并根据这些电信号的强弱就可以获得与待测气体在环境中的存在情况有关的信息。酒精传感器选择 MQ -3 半导体型酒精传感器,其由敏感材料二氧化硅加工而成,敏感材料在空气中具有较低的电导率,当驾驶空间内有酒精气体存在时,随着气体浓度的变化二氧化硅的电导率也随着变化,传感器的变送电路将电导率的变化转化为0 ~5V 的模拟电压的变化,并且电压值对应的气体浓度变化接近线性,可以直接使用线性公式进行计算。传感器的内部结构如图3所示。
图3 MQ-3酒精传感器结构图
MQ-3酒精传感器结构小巧,本身只有4个引脚,在主驾驶室内安装便利且不占用过多的空间。并且其对乙醇蒸汽具有很高的灵敏度和良好的选择性。具有长期的使用寿命和可靠的稳定性,在一次检测完成后拥有快速的响应恢复特性。酒精传感器的实物如图4所示。
图4 MQ-3酒精传感器实物图
1.4 LCD1602液晶显示器
LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。在酒驾报警系统中只需显示检测到的酒精含量即可,LCD1602液晶显示器已经可以满足显示要求,且价格低廉。1602液晶显示器的实物图如图5所示
图5 1602液晶显示器实物图
2 软件设计
2.1软件流程
本装置的软件部分均采用C语音编程,主要流程图如图4所示。
系统初始化后,对MQ-3酒精传感器进行100次采样,并将100次采样的结果保留,在结束采样后,计算100次采样值的平均值,并将其作为0ppm点。主要由于每个酒精传感器都有些许的差异,且不同的环境会影响其数值,故需要这样的初值确定方式来确定0值点。并且MQ-3酒精传感器需要一定的时间进行预热,采样的时间也可为其预热提供一定的时间。在初值点确定后,就可以开始进行气体酒精浓度的检测了。根据布置的 3 路酒精传感器检测信号,检测驾驶员位置附近的气体酒精浓度,酒精传感器将酒精浓度信号转化为0 ~5V 的电压信号,通过引线将3路的信号传递至arduino单片机上,单片机通过A/D转换,将计算结果与初值进行二次计算,得出当前驾驶室内的气体酒精浓度。并将其与设定好的酒精浓度进行比较。根据《中华人民共和国交通法》的有关规定,当血液中的酒精浓度超过20mg/100ml就构成酒驾行为,其对应的气体浓度为40ppm,但是由于在开放环境中进行检测,虽然设置了3路的酒精传感器但是检测到的数值依旧会比口腔内的浓度低,所以在其基础上进行大量实验以得出一个修正量,在检测到的数值上加上修正量作为最终的酒精检测含量。确定最终数值后将其与40ppm进行比较,如果其大于40ppm则蜂鸣器开始报警,红色LED小灯开始亮,以此提醒驾驶员,酒精含量已经达到酒驾值,请勿继续进行危险的驾驶。液晶屏从初值计算完成开始显示,并在以上过程中一直处于实时显示的状态,在测试时可以清楚的看到液晶屏上的数字进行不停的跳变,最终趋于稳定。
图6 酒驾报警系统的软件流程图
2.2软件编程环境
本设计采用arduino1.7.8编程环境,此为arduino单片机的专有编程环境,可支持不同版本的arduino单片机,而且能够实现编程烧录一体化。编程界面如图5所示。
图7 arduino编程界面
3 系统测试
3.1测试方案
液晶屏的数值显示通过软件编程调整为分别显示三个酒精传感器各自检测到的酒精含量以及达到酒驾值所需的时间。在测试时模拟真实车辆的主驾驶室,在方向盘、窗边和挡光板这三个位置安装MQ-3酒精传感器。测试人员饮酒达到酒驾标准后进入模拟的主驾驶室进行测试。通过改变坐姿,以及测试人员的身高进行多次测试。观察每次测试时每个酒精传感器显示的数值以及达到酒驾标准所需的时间并记录。
图8测试方案流程图
3.2测试结果
测试结果如表1所示,测试所得的结果数值单位均为ppm。
表1酒驾报警系统测试结果
4 结束语
酒驾不仅在我国还是在世界的道路交通安全中都是非常大的隐患,并且在我国尤为常见。由于我国自古以来就有的酒文化和现代形成的“项目在酒桌上谈成”观念的深入,很多社会人员都接触酒,饮酒,但这就是酒驾的最大隐患。很多时候不是不知道酒驾有多么惨痛的后果,而是无法清楚的评判自身是否酒驾,是否达到酒驾,是否有人提醒自身已经酒驾。对此酒驾报警系统就有他的意义。酒驾报警系统是基于arduino单片机和MQ-3酒精传感器模块进行的设计,可用来检测驾驶员座位的气体酒精浓度的含量。并根据检测到的数值决定是否进行报警。有系统来对驾驶员进行提醒可以加深驾驶员的意识,强制的停止不如就此慢慢培养意识。
参考文献:
[1] 阮观强.酒后驾驶发动机自锁系统的研究与开发[J].制造业自动化,2011,33(12):101-103.
[2] 袁绪,宋康,查长海,等.基于STC12C5A60S2的空气质量检测系统设计[J].电子设计工程,2015,23(6):132-135.
[3] 王静霞.单片机应用技术(C 语言版)第 2 版[M].北京:电子工业出版社,2014.
[4] 郭天祥.51单片机C语言教程[M].北京:电子工业出版社,2009.
[5] 道路安全法律小全书[M].北京:中国法制出版社,2007:337.
[6] 蒋建平,蒋晶等.关于现代酒驾安全控制技术推行的探讨[J].轻工科技,2012:1-2.