基于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

相关文章

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Python从零打造高安全密码管理器

《Python从零打造高安全密码管理器》在数字化时代,每人平均需要管理近百个账号密码,本文将带大家深入剖析一个基于Python的高安全性密码管理器实现方案,感兴趣的小伙伴可以参考一下... 目录一、前言:为什么我们需要专属密码管理器二、系统架构设计2.1 安全加密体系2.2 密码强度策略三、核心功能实现详解

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi