基于鸿蒙操作系统的智能安全驾驶监测系统

  :随着汽车的快速地发展与大众化,驾驶员群体规模慢慢的变庞大。在此基础上人们对汽车安全的关注度也慢慢变得高,怎样有效地减少交通事故,保护人们的生命财产安全就显得很重要。针对这一现象设计了一款智能驾驶安全检测系统,对司机的酒后驾驶与疲劳驾驶行为进行监测和报警,检测驾驶员健康数据。智能驾驶安全检测系统的出现,可以大幅度减少交通事故,保护驾驶员安全,同时实现万物互联。

  近几年来我国的交通事业发展迅速,与此同时也带来了安全风险隐患,每年发生交通事故几十万起,并且有着明显的上涨的趋势,这对人民的生命财产构成了巨大威胁。在这些交通事故中,由于酒后驾车引发的交通事故数量占50%,酒驾成为交通事故的第一大“杀手”。此外,驾驶员的疲劳驾驶也是威胁到交通安全的一个主要的因素,对于驾驶员来说迫切地需要一个智能安全驾驶系统来检测并提醒驾驶员、发出预警警告,有实际效果的减少此类原因引发的交通事故。

  同时我们迎来了一个万物互联的时代,物联网也慢慢变得受到大家的青睐。万物互联将人、流程、数据和事物结合在一起,使得网络连接变得更相关、更有价值,把信息转化为行动,给企业、个人和国家创造新的发展机遇,并带来更为丰富的体验。本项目希望借助鸿蒙操作系统连接各种智能终端设备,做到实时监测驾驶员行为和健康数据,切实保护驾驶员安全。

  本项目采用功能强大的单片机STM32来驱动各类传感器,在检测到数值偏离阈值时,使用GSM芯片进行报警和自动拨号,系统成本较低且实用性广泛。在驾驶员行为监测方面,使用了OpenCV开源计算机视觉库,作为最流行的计算机视觉库,它拥有400多个图像处理函数,涉及范围面广,执行速度有可观的表现,可以更好地处理行驶过程中的动态行为。智能驾驶监测系统整体架构如图1 所示。

  (1)通过在车内安装酒精传感器,实现对司机是不是真的存在酒驾行为进行判断,如若存在酒驾行为,发出警告并自动拨号联系家属。

  (2)通过车内加装摄像头,判断驾驶员的实时行为状态,如闭眼、打哈欠、瞌睡点头等,并发出语音警告。

  (4)将以上监测到的驾驶员健康指标数据汇总并生成健康报表,如若发生异常,则自动拨号联系家属并上传实时位置。

  ①视觉疲劳检测:基于dlib 人脸识别68 特征点检测,通过openCV 做灰度化处理,检测人眼位置信息,检测眼睛长/ 宽是否大于阈值,判断其是不是真的存在疲劳驾驶。

  ②打哈欠疲劳检测:获取人嘴的位置信息,通过坐标点的距离来判断是否张嘴及张嘴时间,从而确定人是不是真的存在打哈欠。

  ③点头疲劳检测:获取实时头部姿态的旋转角度判断驾驶员是否处于打瞌睡状态。

  基于vue框架,通过软件java script编写的一个小程序,接收采集到的数据和司机的实时定位信息。

  系统所需硬件资源:用来控制各个模块的STM32F103单片机、采集数据的各种传感器、实现物联网的ESP8266芯片、SIM900A拨号模块、采集人脸数据的树莓派以及智能终端等部分。系统所需具体硬件结构及其关系如图6 所示。

  通过STM32单片机控制MQ-3 酒精乙醇传感器,检测驾驶员是不是真的存在酒驾行为。MQ-3 酒精乙醇传感器对酒精的灵敏度较高,可以抵抗汽油、烟雾、水蒸气的干扰,可检测多种浓度酒精气氛,是一款适合多种应用的低成本传感器。

  在驾驶员车内安装酒精传感器,准确地测量驾驶人是不是真的存在酒驾行为,若存在则联系驾驶员亲属,避免危险的发生。

  树莓派可以像一台运行Linux 系统的台式计算机或者便携式计算机那样,使用openCV 库进行图像处理。

  通过MAX30102 实现对心率值和血氧饱和度的采集,并在智能穿戴设备上显示,当检测的数据超过设定阈值时发出警告并通过SIM900 拨号,由ESP8266 将数据通过Wi-Fi 传输到服务器。

  MAX30102 内部集成了一整套完整信号采集电路,用户只需通过单片机的IIC 接口,对MAX30102 内部的寄存器进行读写操作,就能够获得转换后的光强度数值。最后通过相应的处理算法,计算出心率值和血氧饱和度。ESP8266 是一个完整且自成体系的Wi-Fi 网络解决方案, 能够独立运行,也可当作slave 搭载于其他Host运行。ESP8266强大的片上处理和存储能力,使其可通过GPIO 集成传感器及其他应用的特定设备, 实现了最低的前期开发和运行中最少占用系统资源。

  第六步:发送AT+CWJAP=“无线网络名”,“无线网络密码”加入Wi-Fi。

  基于c 语言、java script、Python 等编程语言,结合使用多种软件实现系统功能。其中主要使用keil5 提供清晰直观的操作界面,用起来十分的轻松便捷,并具备编译器、编译器、安装包和调试跟踪。

  代码的设计思路:通过MQ-3气体传感器模块检测酒精浓度并发送模拟电压, 这样做才能够利用STM32的ADC模块采样收集数据,将模拟量转化为数字量,计算酒精浓度。

  代码设计思路:首先初始化脸部位置和脸部特征位置的检测器,打开摄像头,从视频流读取图片,进行灰度化处理;将获取脸部特征位置的信息并转换为array数组的格式,使用矩形框标注人脸;检测人眼位置信息;检测眼睛长/ 宽是否大与阈值;获取人嘴的位置信息;通过坐标点的距离来判断是否张嘴及张嘴时间;获取实时头部姿态的旋转角度Yaw,Pitch 和Roll。通过这一系列动作检测驾驶员状态,并设定阈值,超出则发出语音警告。

  代码设计思路:通过MAX30102 模块获取心率和血氧的数据,将测得的数据通过I2C 传送至MCU 并通过一系列的算法计算,将计算后的多个方面数据显示在OLED 屏幕上。之后通过MQTT 将数据上传至公共服务器,生成健康报表发至用户APP,同时通过SIM900A 模块的短信及拨号功能联系用户手机。

  驱动MAX30102 模块重要的是寄存器函数和读寄存器数据的函数,并初始化模块进行数据采集,最后计算。MAX30102 传感器上具有红光(660 nm) 和红外光(880 nm) 两个LED, 人体氧合血氧蛋白和非氧合血氧蛋白对这两个不同波长的光吸收率的差异较为显著,可以据此得出血氧饱和度。

  将收集到的数据发送给ESP8266,再通过ESP8266将数据传给服务器,服务器将其发送给订阅的用户和小程序,实现数据传输,用户都能够实时查看各项数据指标。

  基于鸿蒙的智能安全驾驶监测系统除了能实现操作的流畅性,最重要的是可以把搭载了鸿蒙操作系统的智能设备全部连接起来。驾驶员的亲人能够实时监测驾驶员的行驶过程、健康情况等信息,能将有关驾驶员的安全信息做到共享,并及时为驾驶员提供预警服务,由此减少因酒驾和疲劳驾驶造成的交通事故,保障驾驶员的生命财产安全。同时,本智能安全驾驶监测系统安装简单,成本较低,有很好的实用性。

  [1] 郭德财,彭石林.基于海思芯片与鸿蒙操作系统的智慧灌溉系统设计[J].单片机与嵌入式系统应用,2022,22(03):11-15.

百度统计