基于CW32的车载安全系统

2023-11-27 17:20
文章标签 系统 安全 车载 cw32

本文主要是介绍基于CW32的车载安全系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0 前言

       基于 CW32,设计一款车载安全系统,能实现防酒驾、防车内儿童滞留、防 “开门杀”同时防盗功能。防酒驾方面,采用压力传感器判断主驾驶是否有人, 使用气体压力传感器判断是否进行吹气,MQ3 酒精模块判断酒精浓度是否超过阈 值;防车内儿童滞留方面,当压力传感器检测到主驾驶无人时,使用雷达检测是否有滞留儿童,当检测到有儿童滞留时,通过移远 4G 模块 EC600N 拨打联系人电话进行提醒;防“开门杀”与防盗面,使用摄像头对驾驶人进行人脸识别,当车内人员下车时,进行语音提醒,注意后方车辆,同时摄像头会检测驾驶人是否回 头查看后方车辆,检测成功,才会打开车门锁。通过以上车载系统来避免安全事故的发生。

1 系统方案

1.1 系统功能

基于 CW32,设计一款车载安全系统,能实现防酒驾、防车内儿童滞留、防 “开门杀”同时防盗功能。防酒驾方面,采用压力传感器判断主驾驶是否有人, 使用气体压力传感器判断是否进行吹气,MQ3 酒精模块判断酒精浓度是否超过阈值;防车内儿童滞留方面,当压力传感器检测到主驾驶无人时,使用雷达检测是否有滞留儿童,当检测到有儿童滞留时,通过移远 4G 模块 EC600N 拨打联系人电话进行提醒;防“开门杀”与防盗面,使用摄像头对驾驶人进行人脸识别,当车内人员下车时,进行语音提醒,注意后方车辆,同时摄像头会检测驾驶人是否回头查看后方车辆,检测成功,才会打开车门锁。通过以上车载系统来避免安全事故的发生。

1.2 系统设计方案

将压力传感器安装在车座位下面,当检测到驾驶座上有人时,提醒其吹气, 使用气体压力传感器判断驾驶人是否进行吹气检测,同时摄像头也会进行人脸识别,只有当酒精浓度与人脸识别均成功,才会开锁;如果人脸识别失败,会进行相应的短信通知,起到防盗作用。 我们注意到,每次下车前,车内人员都需要打开车门锁,才能下车,所以我们用按键模拟开车门键,当检测到按键按下,会进行语音播报,提醒其注意后方车辆,同时摄像头会判断其有无回头查看车辆行为,若无,则不会开车门锁。 当压力传感器检测到驾驶座上没人时,一段时间后,雷达会检测车内是否有其它人,如果有则会拨打联系人电话,提醒其车内有儿童。 同时,为了防止车内其它人员喝酒导致防酒驾系统误触发时,我们会发送一段随机码给系统录入的其它成员,也就是驾驶人的家属一段随机码,驾驶人可以询问其家人随机码,通过输入随机码方式开锁开车。 我们为改该系统设计了一个可行的安装方案,如图 1 所示,

图 1 车内安装布局示意图

1.3 模块选择

1.3.1 主控MCU选择

CW32F030C8 单片机作为系统的控制器。CW32F030C8 是一款基于 ARM Cortex_M0 内核的低功耗微控制器,具有高性能、低功耗、多功能性、存储容量 大、安全性强、易于开发等优势。

1.3.2 酒精浓度检测

选择 MQ3。MQ3原理是当传感器所处环境中存在酒精蒸汽时,传感器的电导率随空气中酒精气体浓度的增加而增大。使用简单的电路即可将电导率的变化转 换为与该气体浓度相对应的输出信号。MQ3 对酒精的灵敏度高,可以抵抗汽油、烟雾、水蒸气的干扰。这种传感器可检测多种浓度酒精气氛,是一款适合多种应用的低成本传感器。

1.3.3 人体检测

压力传感器。将压力传感器置于车座下,人坐在车座上时,可以清晰的检测到压力的变化,用于判断人是否在车上。

1.3.4 吹气检测

HX711 气体压力传感器。当检测到吹气时,输出会有明显变化,通过检测变化判断是否吹气。

1.3.5 4G 通信模块

选择 EC600N_CN。EC600N-CN 是移远通信专为 M2M 和 IoT 领域而设计的 LTE Cat 1 无线通信模块。我们使用了发送短信和拨打电话功能,该模块还可将实时 数据上传阿里云、ONENET 等物联网开放平台,实现手机电脑与单片机的数据交换。

1.3.6 语音播报模块

使用 EC600N TTS 功能。

1.3.7 雷达模块

使用 LD2410C,支持手机调参,可选择检测到人时输出高电平还是低电平。

2 电路图与程序设计

2.1 系统总方案

图 2 系统方案设计图

2.2 程序流程

系统上电后,要等待 2 分钟以上,等待酒精传感器稳定。程序流程如下:

图 3 程序设计流程图

2.3 引脚功能定义表

PA00ADC0(电池)
PA1压力传感器
PA2气体压力传感器(TX)
PA3气体压力传感器(RX)
PA4TFT(DC)
PA5TFT(SCL)
PA6TFT(RES)
PA7TFT(SDA)
PA8UART1(TX)
PA9UART1(RX)
PA10按键1
PA11LED1
PA12按键2
PA154G模块
PB02ADC10(电位器)
PB0UART2(RX)
PB1UART2(TX)
PB2雷达(高电平有人)
PB3电源控制(5V)
PB4LED3
PB5按键3
PB6LED2
PB7按键4
PB10ADC11(酒精)
PB13背光
PB15

电源控制(3.3V)

PF0无线电控制
PF1车锁

表 1 引脚功能定义表

2.4 实物照片

图 4 实物图

2.5 摄像头识别原理

2.5.1 K210

K210 是一款国产 64 位 RISC-V CPU,其中包含了一个神经网络硬件加速器 KPU,可以高性能地进行卷积神经网络运算。使用 k210 搭载人脸识别模块和转头 检测模块,利用其 ai 加速的特性,可以对人脸识别和转头检测进行高效的处理。

2.5.2 人脸检测和识别模型

人脸识别使用 YOLOlite 模型检测出人脸所在位置。检测到人脸后,会将检 测到的人脸裁剪出来并送入“人脸 5 点检测模型”。“人脸 5 点检测模型”会标 出 2 个嘴角、1 个鼻尖、2 个眼睛共 5 点,这 5 点将与标准人脸的 5 点进行对比, 根据对比结果,对裁剪出来的人脸进行矫正,使其转变为正脸。将矫正后的人脸 输入至特征提取网络,得到 128 纬的特征向量。使用特征向量进行对比实现已保 存人脸的识别。

2.5.3 转头检测模型

使用卷积网络对驾驶员的转头看后视镜行为进行检测。采集共 374 张“转头” 和“非转头”的图像对卷积识别网络进行训练,训练结果如下图:

图 5 转头检测模型训练结果

可见训练集和验证集的准确率均达到了 99%左右,模型收敛,可以较好的完成转头检测任务。

3 系统测试

3.1 测试功能表

功能 1压力传感器检测到有人时唤醒系统
功能 2检测到驾驶座有人时提醒吹气,并进行人脸识别
功能 3人脸识别失败,发送短信告知车主
功能 4酒精浓度超过阈值短信通知其家属,并发送随机码
功能 5人脸识别成功并且酒精浓度低于设定阈值开锁
功能 6输入随机码开锁
功能 7检测到人按开车门键播报:注意后方车辆,并进行回头检测
功能 8回头检测成功,则开车门,否则持续播报请转头
功能 9三次播报请转头后,打开车门锁
功能10检测到主驾驶座上无人,一段时间后,雷达检测车内是否有人

功能

11

雷达检测车内有人,电话通知家属,连续两次不成功,则拨打 110 功能
功能12雷达检测无人进入深度睡眠模式
功能13长时间不使用系统时,给系统断电

表 2 系统功能表

3.2 测试方法与测试结果

用无线电模块模仿车锁和车门锁的开与关,按键模仿开车门锁。无线电接受模块与气体压力传感器以及酒驾模块组合的防酒驾模块如下图所示:

图 6 无线电接受模块

图 7 气体压力传感器与酒精模块

经检验,所有功能均正常。

4 总结展望

4.1 优点与创新之处

很显然,我们的系统功能丰富,能降低安全事故的发生,具有很强的实用性, 同时,结合实际,在防酒驾误触发时给予解决方法,加入 PMOS,实现不使用时, 系统断电,降低功耗。

4.2 总结与展望

从初期硬件、软件理论知识的学习,到后面主题的选择,作品的设计与不断地改进创新,我们见证了自己的提升,也收获了作品完成时的喜悦。在此期间, 我们也遇到过各种各样的困难,例如防酒驾模块中,怎样设计能防止司机“作弊” 逃避检查;防儿童滞留模块中选用何种方式检测车内儿童,又采用哪种模块向外呼救;选择核心板设计还是自己打板设计等等,这些问题带领我们不断地思考、选择、设计和实践,最终完成了我们的作品。虽然我们的作品可能还不够完美,但瑕不掩瑜,我们的作品还是具有一定的可行性与实用性的,相信未来,我们定能不断完善该作品。

后记

感谢 武汉芯源半导体 提供的技术支持和赞助 ❤,近期官方推出了 CW32开发者扶持计划,感兴趣的小伙伴可以关注 官方公众号 CW32生态社区 & 官方QQ群 482146847。

开源链接:https://pan.baidu.com/s/1_DcIFUhiF6EbnXGJEnITUg?pwd=z6jc

提取码:z6jc

这篇关于基于CW32的车载安全系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/428187

相关文章

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)