APP下载

基于Arduino的车辆防酒驾系统

2022-03-31贺焕利王宇峰章丽

湖北汽车工业学院学报 2022年1期
关键词:酒精阈值驾驶员

贺焕利,王宇峰,章丽

(湖北汽车工业学院 汽车工程学院,湖北 十堰 442002)

WHO 最新道路安全报告显示,每年约135 万人在交通事故中死亡,其中约60%的交通事故是酒后驾驶造成的,且呈上升趋势。[1]究其原因,主要是驾驶员对酒驾危害意识淡薄或心存侥幸。[2]目前最常见的酒精浓度检测方式是呼气式酒精浓度检测,但只能在某些路段进行,无法全方位覆盖。文中基于Arduino 单片机研发了智能化车辆防酒驾系统,相比传统的酒驾呼吸分析仪,操作便捷,强调驾驶员的主动性意识,成本低廉。

1 整体方案

系统通过酒精浓度传感器MQ-3 检测驾驶员呼气中酒精浓度,与设定的阈值进行比较,进而作出相应判断。

阈值依据GB19522 设定,驾驶员血液酒精浓度小于20 mg·(100 mL)-1时属于“正常”,血液酒精浓度为20~80 mg·(100 mL)-1时属于“酒后驾车”,血液酒精浓度不小于80 mg·(100 mL)-1时属于“醉酒驾车”。人体血液酒精浓度与呼气酒精浓度近似呈线性关系:[3]

式中:BAC为人体血液酒精浓度;Br为呼气酒精浓度;K通常取2200。

如果测定数值大于相应阈值上限值,判断驾驶员是饮酒驾车或醉酒驾车,此时报警器报警、报警灯闪烁,并发出语音提示“请勿酒后驾车”,液晶显示屏显示酒精浓度的具体数值。总体方案流程见图1。

图1 整体方案流程图

2 硬件设计

2.1 关键硬件选型

1)单片机 采用Arduino单片机,了解各端口的功能和C语言的基础知识编写相应程序。Arduino 是开源平台,在相关网站、论坛、博客等可搜索到需要的资料,提高作品创作的效率。相对于飞思卡尔等单片机,Arduino学习和创作成本低。

2)酒精传感器 采用乙醇传感器MQ-3,相比电化学型和其他半导体型酒精传感器,MQ-3对酒精有较高的灵敏度,能承受汽油、烟雾和水汽的干扰,具有寿命长、成本低、驱动电路简单等特点。[4]

3)液晶显示器 考虑功能特点及性价比,选择LCD 1602 液晶显示器。系统启动后,LCD1602模块显示“Alcohol Detector Circuit Digest”,表示系统正在初始化。LCD1602 实时显示空气中的酒精浓度,Br小于0.009 09 mg·L-1时显示“Normal”,同时蓝色LED 警示灯亮,表示驾驶员处于正常状态;Br小于0.036 36 mg·L-1但不小于0.009 09 mg·L-1时显示“Drunk”,同时黄色LED 警示灯亮,表示驾驶员处于酒驾状态;Br不小于0.036 36 mg·L-1时显示“Dangerous”,同时红色警示灯亮,表示驾驶员处于醉驾状态。

2.2 电路设计

1)液晶显示模块 1602LCD 有16 个引脚,可用4 位接线法和8 位接线法。系统采用Arduino UNO R3 的引脚数较少,因此选用4 位接线法[5]。1602 LCD与Arduino连接电路见图2a,1602 LCD的VO接入1个电位器,控制液晶显示屏的显示亮度。

2)酒精浓度采集模块 酒精传感器检测电路由MQ-3、A/D转换器和电压比较电路组成,用于判断酒精浓度是否超过阈值。VCC 端提供5 V 工作电压;采用LM393 作为电压比较器,当AO 电压高于引脚2 电压时,引脚1 输出高电平,DO 输出低电平,LED灯亮;当AO电压低于引脚电压2时,引脚1输出低电平,DO输出高电平,LED不亮。酒精传感器电路如图2b所示。

3)语音报警模块 当酒精传感器检测到Br超过阈值时,语音模块发出“为了您的出行安全,请勿酒后驾驶”的提醒;反之语音模块处于待机状态。系统采用的语音模块为ISD 1820,具有录放电路的基本特点,取样率和录放时间可外部调节,单段录放音操作简单,可重复录音1万次,能耗低,可自动进入节电模式,[6]突发断电时保存信息时间长,电路如图2c 所示。除语音报警和液晶显示外,检测到Br正常时,蓝色LED 灯亮;检测到Br在酒后驾驶范围内时,黄色LED 灯亮;检测到Br属于醉酒驾驶范围内,红色LED灯亮。LED接线如图2d所示。

4)复位电路 当驾驶员需要重复进行酒精浓度检测时,按下复位键,此时系统会将酒精检测装置测量的数据调整到0刻度线,同时LCD液晶显示屏显示“0 mg·L-1”,20 s 后重新开始检测。复位电路如图2e所示。

3 软件设计

系统采用Arduino IDE 进行模块化编程设计。Arduino 集成开发环境即Arduino IDE,可将程序烧录到所连接的开发板上,与开发板进行信息通讯。Arduino IDE编写的代码以“.ino”格式保存,程序运行出现错误时,消息区将显示提示信息。软件界面右下角会显示当前选择的开发板和串口信息。Arduino IDE的主要特点是开源电路图设计,支持ISP在线烧录,支持多种交互程序,可方便与各种电子元件如传感器连接。

MQ-3 初始化完成后开始采集空气中酒精浓度数据,将采集到的信号传输到Arduino 中进行处理,计算得出酒精浓度并显示在LCD1602 显示屏上。酒精浓度采集流程如图3所示,主程序如下:

图3 酒精浓度采集流程图

4 功能测试及结果分析

车辆防酒驾系统实物如图4所示。测试时,使用USB端口给Arduino单片机供电,通电后等待20 s,待传感器的输出电压稳定后进行浓度测试。测试得到清洁空气中酒精含量为0.004 mg·L-1,对应串口监视器的输出电压为0.74 V。因此在设定阈值时应加上洁净空气中的酒精浓度,对采集的酒精浓度数据进行校准。根据已知数据进行计算,校准后阈值为0.013 09 mg·L-1和0.040 36 mg·L-1。

图4 车辆防酒驾系统实物图

5 结论

文中完成了基于Arduino的车辆防酒驾系统的软硬件设计及功能测试,结果表明系统能完成酒精浓度信息的实时采集、语音报警、液晶显示、LED指示灯报警等,测试性能稳定,准确性高。

猜你喜欢

酒精阈值驾驶员
基于高速公路的驾驶员换道意图识别
基于眼动的驾驶员危险认知
驾驶员安全带识别方法综述
土石坝坝体失稳破坏降水阈值的确定方法
75%医用酒精
采用红细胞沉降率和C-反应蛋白作为假体周围感染的阈值
75%医用酒精
如何提高汽车驾驶员预防事故的能力
跟踪导练(一)(2)
酒精脾气等