1. 引言
如今,汽车已成为现代人生活中不可缺少的交通工具,随着汽车的增多,酒后驾驶造成交通事故的事件也越来越频繁,据世界卫生组织的事故调查数据显示,酒后驾车是导致交通事故发生的主要原因之一 [1] 。据统计,2021年起诉刑事犯罪共174万余人,其中35万余人起诉为危险驾驶罪,占总体刑事犯罪的20%,排名第一 [2] 。我国对酒驾采取严厉的惩罚措施,将血液中酒精含量达到20 mg/100mL定义为饮酒驾驶,且规定这属于违法行为。
为了减少因酒后驾驶引起的交通事故,国内外采取了多种防酒驾技术。比如国外的“酒精锁”、“酒精探测仪”、“防酒驾手机”、“激光探测”等。国内常见的就是“醉酒止停”与交警的测酒驾仪。“醉酒止停”系统,能从根本上杜绝酒驾,防患于未然,但依旧存在着许多弊端,如在无法判别乘客喝酒还是司机酒驾的情况下盲目制停、司机喝酒找人代测而汽车正常启动却没有补救措施、司机喝酒意识模糊破坏制停装置而没有补救措施;“酒精探测仪”能在一定程度上减少酒驾,虽然交警对酒驾检查很严格,但仍然避免不了一些违法者酒后驾驶的现象,只靠单纯的人力来控制酒驾显然并不能排除所有可能酒驾的情况,这就需要采用智能手段来监控该行为,以杜绝酒驾现象的发生 [3] 。国内很多汽车生产商和相关企业都开始考虑从源头来解决这个问题。对于预防酒驾,目前市面上也有一种类似的“酒精锁”的仪器,车辆安装这个仪器后,在启动前,对驾驶者呼出的气体进行检测,根据检测结果控制车辆的启动与否。但这个仪器只能在汽车启动前后有限的一段时间里保证启动者不是酒驾,在行驶的过程中驾驶员是否是启动者仍不能确定 [4] 。
国内外防酒驾现状表明酒驾行为检测方法有三种 [5] :最常见的是由交警等相关人员使用便携式吹气酒精检测仪对驾驶人员进行酒精检测,这种方法准确性较高,但耗时耗力;第二种是抽血检查,检测驾驶员血液中的酒精浓度,这种方法耗时较长;第三种是采用车载酒精检测仪 [6] ,通过驾驶员呼出的气体浓度来检测驾驶员血液中的酒精浓度,这种方法检测方便且准确度较高,将是今后较为主流的检测方法。
综上所述,本研究针对汽车酒驾检测提高准确性和可靠性展开研究,设计基于STM32单片机设计一款车载智能酒精锁,通过高灵敏度的呼气式酒精传感器检测司机的酒精摄入量,当司机体内酒精浓度超标时,控制系统会自动切断汽车启动系统,使汽车无法正常启动,同时通知预设联系人,尽量减少交通事故的发生。该系统将酒精检测、数据处理、语音提示、位置定位、通信通知等多个功能集成在一个设备中,提高了系统的便捷性和实用性;利用STM32单片机的强大处理能力,实现了对酒精传感器数据的实时处理和逻辑判断,提高了系统的响应速度和准确性;系统不仅通过显示屏显示酒精浓度,还通过语音播报模块提醒驾驶员,增加了警示的直观性和有效性;当检测到酒精浓度超标时,系统能够自动发送车辆位置和驾驶员状态信息到预设联系人,这一功能在紧急情况下尤其有用,可以及时得到援助,从而更好地保障交通秩序和人们的出行安全,构建和谐的交通环境。
2. 系统设计原理
车载智能酒精锁的主要组成部分如图1所示,主要由STM32单片机、酒精传感器、语音播报模块、串口显示屏、GPS定位模块、ESP8266WIFI模块、GSM模块、继电器等构成。本系统的工作原理是通过酒精传感器模块来检测司机呼出气体的酒精含量,经过酒精传感器模块自带的MCU处理后通过串口输出数据,经STM32单片机解析数据后,判断是否存在酒驾现象并对酒驾程度进行分级处理。一旦检测酒精超标,将在串口显示屏上显示相关信息,通过语音播报模块对驾驶人员进行提醒,同时将车辆所在位置信息等发送至预设联系人手机上,同时控制继电器切断汽车电源致使汽车熄火,进而达到防酒驾的目的。
当驾驶员用点火钥匙接通汽车点火开关,汽车电源向系统供电,系统开始启动,由于系统在电路上装了一个常闭状态的继电器,驾驶员不可能绕过系统而直接起动发动机。当驾驶员向系统的呼气,酒精传感器才开始采集气体酒精浓度并将检测到的驾驶员呼出气体的酒精浓度处理后输出,输入单片机处理系统程序。待单片机解析完数据后,将浓度值由液晶屏显示出来。只有当测得的酒精浓度未超标时,该系统才会发出信号给继电器模块汽车电源供电线路,使发动机成功起动。否则继电器仍处于断开状态,发动机无法起动,同时语言报警模块会提醒驾驶员酒精浓度已超标,而且短信通知模块会发送短信到指定手机上,告知他人驾驶员已经酒精浓度超标,应尽快替换驾驶员或者派人接送,尽量不耽误乘客行程。
3. 硬件系统组成
3.1. STM32单片机
本系统采用选用ST (意法半导体)推出的STM32F407系列芯片。它是ST公司推出的以基于ARM Cortex™-M4为内核的高性能微控制器,其采用了90纳米的NVM工艺和ART。提供了工作频率为168 MHz的Cortex™-M4内核(具有浮点单元)的性能,DSP指令和浮点单元扩大了产品的应用范围。
3.2. 酒精浓度传感器
本系统采用ZK00702酒精传感器,ZK00702是一款燃料电池型电化学传感器,如图2所示,工作电极和对电极上发生还原反应并释放电荷形成电流,产生的电流大小与酒精的浓度成正比并遵循法拉第定律,通过测试电流的大小即可判定酒精浓度的高低。采用高稳定性气体传感器、高性能微处理器,可支持UART输出或模拟信号输出,方便使用。模组采用精确的自动化标定、检测设备,减少了人为因素干扰,在大规模量产的同时保证了数据的精确、一致性的良好。本款酒精传感器非常适合便携式产品应用,设计精小,方便集成,适合用于本系统的设计。

Figure 2. Alcohol concentration sensor circuit
图2. 酒精浓度传感器电路
3.3. 串口显示屏
车载智能酒精锁所用串口屏是一款基于淘晶驰串口屏的硬件设备,旨在提高驾驶安全,防止酒后驾驶的发生。淘晶驰串口屏具有较高的可靠性和稳定性,同时提供了丰富的功能和灵活的操作方式,适合本系统的应用场景。串口屏能够与主控板通过串口通信,并通过其触摸屏和显示屏实现用户的交互操作。通过串口通信,能实现了主控板与串口屏之间的数据传输与交互。主控板通过串口发送酒精浓度检测结果和控制命令给串口屏,串口屏则将这些信息显示在触摸屏上,同时将用户的操作反馈给主控板。这种有效的通信方式确保了系统的稳定性和即时性。
3.4. GPS定位模块

Figure 3. GPS positioning module circuit
图3. GPS定位模块电路
本系统的定位功能是使用GPS模块实现,如图3所示,GPS模块是基于ATGM336H-5N的高性能 BDS/GNSS定位导航模块。模块支持多种卫星导航系统,包括中国的北斗二号和北斗三号全部卫星,美国的GPS,俄罗斯的GLONASS,日本的QZSS,可以同时接收以上卫星导航系统的卫星信号,并且实现联合定位、导航与授时。凭借其广阔的覆盖范围不仅满足城市内的高精度定位需求,还可以实现对偏僻地域的精确定位。
3.5. ESP8266 WIFI模块
本系统采用ESP8266WIFI模块,ESP8266是一种强大的WIFI模块,如图4所示,它由ESPRESSIF SYSTEMS公司开发,可以实现与网络通信的功能。ESP8266在物联网中被广泛使用,可以通过串行通信接口连接到微控制器,例如Arduino,以实现智能家居、智能灯光、智能车辆等应用场景。
3.6. 语音播报模块
本系统采用SYN6288模块,SYN6288是一款中文语音合成模块,如图5所示,它具备高度自然的语音合成能力,可以将文本转化为对应的语音信号,并通过模块输出声音。SYN6288的原理是将预设的文本通过模块发送,并经过内部的算法和声音库进行处理,生成对应的声音信号。模块内部包含了多个合成声音片段和音节,通过按照文本中的拼音或汉字信息进行组合,合成对应的声音和语调,最终输出成语音。

Figure 5. SYN6288 module and schematic diagram
图5. SYN6288模块及原理图
4. 系统软件设计
主程序如图6所示,主要包括传感器输入、数据采集、数据处理、语音提示驱动、获取位置信息、发送短信等子程序。其中,单片机控制器主要功能是驱动继电器动作从而控制电机的启动;数据采集程序主要将接收到的数据进行解析,以便后续使用;然后根据测量酒精浓度数据在串口屏上显示相关信息,另外一部分与设定值进行比较当其超过标定值时,语音报警器提示驾驶员开车危险,使其提高警惕性,停止起动。
若驾驶员仍在起动汽车,系统将使继电器断开,切除汽车的动力系统。系统接收到命令后,启动汽车闭锁控制使汽车无法启动,GPS模块工作以确定汽车当前的位置。然后系统编译包括酒精浓度、酒醉情况和汽车位置信息内容,通过GSM模块发送到系统预设的联系人手机上。
5. 测试与分析
实际使用过程中,从驾驶员上车到发动汽车,前后就一分钟左右。在如此短的时间内很难使驾驶员呼出的气体均匀分布于车内,即车厢内空气的酒精浓度远远低于驾驶员呼出气体的酒精浓度。由此会导致非接触性、开放式的酒精测试仪反应迟钝,并且使测得的酒精浓度远远低于驾驶员呼出气体的真实值 [7] 。本系统使驾驶员呼出的气流尽可能全部流过酒精传感器,因此反应迅速、准确。为验证系统的准确性,对五位测试者进行测试,测试结果如表1所示。

Table 1. Driver drinking judgment
表1. 驾驶员饮酒判断
测试结果表明,在常温、常压、无风的环境下,在驾驶员饮酒后,系统能正确判断并进行动作。这个测试环境反映了实际驾驶的一些基本条件,为系统的性能评估提供了具有代表性的参考意义。系统在这一测试环境下展现出对不同剂量饮酒后的高敏感性和有效性,能够在多种情况下迅速、准确地响应驾驶员饮酒的行为。其对不同剂量的饮酒进行敏感判定,有助于有效防范驾驶员因酒精影响而导致的事故,对于提高道路安全性具有积极意义。
考虑到实际驾驶过程中,可能出现副驾驶饮酒的情况,通过模拟副驾驶人员饮酒后对系统进行测试,测试结果如表2所示。

Table 2. Judging driver’s non-alcohol consumption and passenger’s alcohol consumption in the front seat
表2. 驾驶员未饮酒,副驾驶人员饮酒判断
实验结果表明,在主驾驶员血液酒精浓度较低的情况下,系统表现出较好的稳定性和准确性,没有误判驾驶员饮酒的情况。然而,当副驾驶员的血液酒精浓度较高时,系统在某一次实验中出现了误判,锁闭了汽车启动电路。
经过测试,酒精传感器检测酒精浓度效果符合实际情况,当副驾驶人员饮酒量过大时,可能会导致测试结果误判。这是因为当副驾驶人员血液酒精浓度过高时,较高浓度的酒精蒸汽扩散速度非常快 [8] ,无法避免地影响采集结果。但整体而言,系统地检测结果仍具有一定的可靠性。
6. 总结
针对国内酒后驾驶屡禁不止、防酒驾技术效率低等的社会热点问题,本文研究了一种采用STM32单片机为核心,设计了一套方便携带、低功耗、低成本、高准确率的防酒后驾驶系统,具有准确率高、可靠性强、动作准确、低功耗等优点,对预防酒后驾驶具有显著效果,具备广泛的应用价值。基于STM32单片机的车载智能酒精锁在研究过程中得到如下结论:
1) 通过STM32单片机对车载酒精锁进行智能化控制,能够在干扰性较小的状态下接收传感器的信号,并进行处理和逻辑判断控制执行器继电器的动作。当检测到驾驶员体内酒精浓度超过20 mg/100mL时,控制汽车闭锁装置使汽车无法发动,同时立刻把汽车位置和酒醉情况通过移动通信网络发送给系统预设的联系人,确保驾驶员远离酒后驾车,保障生命安全。
2) 系统将酒精检测、数据处理、用户交互、远程通知等多个功能集成在一个智能平台上,通过STM32单片机实现高效协调和控制。首先使用高灵敏度酒精传感器实时采集驾驶员呼出的气体样本,并利用STM32单片机进行快速数据处理,确保检测结果的及时性和准确性;然后系统不仅通过显示屏提供视觉反馈,还通过语音播报模块提供听觉反馈,增强了警示效果,确保驾驶员能够及时注意到酒精检测结果;最后系统具备GPS定位功能和WIFI/GSM通信模块,能够在检测到酒精浓度超标时,自动发送车辆位置和驾驶员状态信息到预设联系人,提高了应急响应能力。
3) 系统设计了相应的误判处理机制防止误判。如要求驾驶员进行额外的身份验证步骤,以确保只有驾驶员的酒精状态被用于决定车辆的启动。未来将进一步研究该系统基于CAN技术集成到汽车电子系统,继续提高数据传输的安全性,有效保障驾驶员驾车的安全,具有广泛的应用价值。
基金项目
西南石油大学大学生课外开放实验项目(2022KSZ07024)。
NOTES
*通讯作者。