STM32项目分享:基于STM32单片机驾驶安全监测系统设计

“我们不做一锤子买卖,只做技术成长的长期伙伴!”

目录

一、视频展示

二、项目简介

三、原理图设计

四、PCB硬件设计

五、程序设计

六、资料分享


一、视频展示

基于stm32单片机驾驶行为监测系统设计 -视频分享

二、项目简介

题目:基于stm32单片机驾驶行为监测系统设计
主控:STM32
显示: OLED 显示屏
MPU6050
超声波传感器
K210验证人脸解锁开车
MQ3酒精浓度传感器
继电器模拟车锁是打开还是关闭
蜂鸣器声光报警
功能:
1、屏幕实时显示超声波模块探测模块与驾驶员的距离,酒精浓度数值,车子状态。
2、可按建设置超声波距离,酒精浓度阈值。
3、当发生距离过近或当酒精浓度超标,蜂鸣器声光报警,提醒司机不要疲劳驾驶或酒驾。
4、当MPU6050检测到侧翻或者歪倒的情况时,则蜂鸣器报警。
5、第一个条件必须车子被人脸解锁了才可以,否则将无法启动后续程序。当人脸解锁成功,继电器打开,才会正常进行上面的判断条件和程序

三、原理图设计

四、PCB硬件设计

五、程序设计

#include "stm32f10x.h"                  // Device header
#include "delay.h"
#include "lcd.h"
#include "dht11.h"
#include "IOput.h"
#include "usart.h"
#include "timer.h"
#include "adc.h"
#include "wave.h"
#include "mpu6050.h"
#include "inv_mpu.h"
#include "inv_mpu_dmp_motion_driver.h" 
#include "myiic.h"
#include "algorithm.h"
extern u16 res;
extern u8 flag_rl;u8 light,tushi,count;
u8 show_flag =11,show1_flag,max_wd=5,max_sd=70,max_hy=60,max_yw=65;
u8 fire = 0,yanwu = 0;
float distance = 0.0; 
float pitch,roll,yaw; 		//欧拉角
short aacx,aacy,aacz;		//加速度传感器原始数据
short gyrox,gyroy,gyroz;	//陀螺仪原始数据
u8 front = 0,left = 0,right = 0,paral = 0;
u8 num=22;int main (void)
{delay_init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);DHT11_Init();OLED_Init();delay_ms(1);OLED_Clear();output_init();input_init();Adc_Init();Usart1_Init(115200);CH_SR04_Init();MPU_Init();  	//初始化Usart3_Init(115200);
//	while(num!=0)   //开始运行自主调试
//	{
//		num=mpu_dmp_init();
//		OLED_ShowCH(0,0,"mpu6050 error:");
//		OLED_ShowNum(64,2,num,2,16);
//		delay_ms(2000); 
//	}OLED_Clear();while(1){
//		wifi();
//		count++;
//		distance = Senor_Using();
//		fire=Get_Adc_Average(1,10)*100/4096;
//		DHT11_Read_Data(&temp,&humi);
//		while(mpu_dmp_get_data(&pitch,&roll,&yaw)!=0) 
//		{
//			delay_ms(2000);
//		}
//		key_scan(1,0,0);
//		if(set_flag==1 && show_flag!=1 && show_flag != 11)
//		{
//			show1_flag=0;
//			set_flag=0;
//			show_flag++;
//			if(show_flag>=2)
//			{
//				show_flag=0;
//			}
//		}
//		if(show_flag == 11)
//		{OLED_ShowCH(0,0,"    请扫脸");if(flag_rl == 1){OLED_ShowCH(0,2,"    识别中...");delay_ms(1000);delay_ms(1000);delay_ms(1000);delay_ms(1000);show_flag = 0;OLED_Clear();jdq3 = 0;}
//		}
//		if(show_flag==0)
//		{
//			OLED_ShowCH(0,0,"驾驶行为监测");
//			OLED_ShowCH(0,2,"车况:");
//			if(flag_rl == 1)
//			{
//				OLED_ShowCH(40,2,"已启动");
//			}else
//			{
//				OLED_ShowCH(40,2,"未启动");
//			}
//			OLED_ShowCH(0,4,"酒精浓度:");
//			OLED_ShowNum(72,4,fire,2,16);
//			OLED_ShowCH(0,6,"距离:");
//			OLED_ShowNum(40,6,distance,2,16);
//		}
//		if(show_flag==1)
//		{
//				OLED_ShowCH(0,0,"最短距离:");
//				OLED_ShowCH(0,2,"最大浓度:");
//				OLED_ShowNum(72,0,max_wd,2,16);
//				OLED_ShowNum(72,2,max_sd,2,16);
//			if(set_flag==1&&show_flag==1)
//			{
//				set_flag=0;
//				show1_flag++;
//				if(show1_flag>=2)
//				{
//					show_flag=0;	
//					OLED_Clear();
//				}
//			}
//			if(show1_flag==0)
//			{
//				OLED_ShowCH(112,0,"←");
//				if(add_flag==1)
//				{
//					add_flag=0;
//					max_wd++;
//				}
//				if(dec_flag==1)
//				{
//					dec_flag=0;
//					max_wd--;
//				}
//				if(max_wd>=100 || max_wd<=0){max_wd=0;}
//			}
//			if(show1_flag==1)
//			{
//				OLED_ShowCH(112,2,"←");
//				if(add_flag==1)
//				{
//					add_flag=0;
//					max_sd++;
//				}
//				if(dec_flag==1)
//				{
//					dec_flag=0;
//					max_sd--;
//				}
//				if(max_sd>=100 || max_sd<=0){max_sd=0;}
//			}
//		}
//		
//		if(distance<=max_wd || fire>=max_sd || roll >= 90)
//		{
//			BEEP = 0;
//		}
//		else
//		{
//			BEEP = 1;
//		}
//		
//		if(count>=50)
//		{
//			count=0;
//		}}
}

六、资料分享

点击即可查看当前资料分享。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/94093.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/94093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GaussDB】使用gdb定位GaussDB编译package报错

【GaussDB】使用gdb定位GaussDB编译package报错 背景 在某次迁移Oracle到GaussDB时&#xff0c;应用开发人员将改好的package在GaussDB里进行创建&#xff0c;没有ERROR也没有WARNING&#xff0c;但是编译无效对象的时候报错了。虽然已经找到了是哪个包编译报错&#xff0c;但…

One Commander:强大的Windows文件管理器

在日常使用电脑的过程中&#xff0c;文件管理和浏览是必不可少的任务。One Commander作为一款功能强大的Windows文件管理器&#xff0c;提供了丰富的功能和便捷的操作方式&#xff0c;帮助用户更高效地管理和浏览文件。它不仅支持多种文件操作&#xff0c;还提供了丰富的自定义…

SPUpDate Application 程序卸载

我安装了 EzvizStudioSetups.exe 软件&#xff0c;卸载后会在电脑遗留 SPUpDate Application 程序&#xff1b;在某一时刻会占用 CPU 资源&#xff1b;应用卸载方法一&#xff1a;在任务管理器搜索 SPUpDate Application&#xff1b;定位到文件位置&#xff1b;我的路径如下C:\…

算法题(187):程序自动分析

审题&#xff1a; 本题需要我们判断是否可以同时满足题目给定的若干等式或不等式&#xff0c;判断出后根据结果输出YES或NO 思路&#xff1a; 方法一&#xff1a;离散化并查集 使用并查集&#xff1a;其实题目中只存在两者相等或不等两种情况&#xff0c;而等于具有传递性&…

strcasecmp函数详解

strcasecmp 是 C 语言中用于不区分大小写比较两个字符串的函数&#xff0c;主要用于忽略字符大小写差异的场景&#xff08;如用户输入验证、不区分大小写的字符串匹配等&#xff09;。它属于 POSIX 标准库&#xff0c;定义在 <string.h> 头文件中。 一、函数原型与参数 函…

Voronoi图

本文将详细解释 Voronoi 图&#xff0c;它在空间分析和插值中非常常用。1. 概念 Voronoi 图是一种空间划分方法&#xff0c;它把平面&#xff08;或空间&#xff09;划分成若干个区域&#xff0c;使得每个区域内的任意一点都比该区域外的任何一点更靠近该区域的“生成点”&…

BioScientist Agent:用于药物重定位和作用机制解析的知识图谱增强型 LLM 生物医学代理技术报告

BioScientist Agent:用于药物重定位和作用机制解析的知识图谱增强型 LLM 生物医学代理技术报告 一、项目概述 药物研发是一个周期长、成本高的过程,平均需要超过 10 年时间和 20 亿美元才能将一种新药推向市场,且 90% 以上的候选药物最终失败(1)。这种低成功率主要归因于对…

5G视频终端详解 无人机图传 无线图传 便携式5G单兵图传

前言单兵图传设备&#xff0c;是一种集视频采集、编码压缩、无线传输等多种功能于一体的便携式通信终端。它以嵌入式系统为基础&#xff0c;搭载高性能 H.265 编解码处理器&#xff0c;能够将现场的音视频信息进行高效处理后&#xff0c;通过无线网络快速稳定地传输至后端指挥中…

【苹果软件】Prism Mac 9.4苹果系统免费安装包英文版 Graphpad Prism for Mac 9.4软件免费下载与详细图文教程!!

软件下载与系统要求 软件&#xff1a;Prism9.4 语言&#xff1a;英文 大小&#xff1a;103.41M 安装环境&#xff1a;MacOS12.0&#xff08;或更高&#xff0c;支持IntelM芯片&#xff09; MacOS苹果系统GraphPad Prism&#xff08;科学数据分析与图形绘制&#xff09;&am…

Redis 奇葩问题

先贴错误码Unexpected exception while processing command这个奇葩的问题查了很久&#xff0c;后面突然顿悟&#xff0c;应该是Redis记住了第一次的数据类型&#xff0c;后面即使换了数据类型也不会改变之前的数据类型。跟代码发现是codec变成了默认的了后续public RedissonBa…

C ++代码学习笔记(一)

1、GetStringUTFChars用于将 Java 字符串&#xff08;jstring&#xff09;转换为 UTF-8 编码的 C 风格字符串&#xff08;const char*&#xff09;。必须在使用完后调用 ReleaseStringUTFChars 释放内存&#xff0c;否则可能导致内存泄漏。std::string data_converter::convert…

【学习嵌入式day-29-网络】

进程和线程的区别&#xff1a;都是系统执行的任务进程是资源分配的基本单位线程是调度执行的最小单位进程的创建和切换的开销大&#xff0c;速度慢&#xff0c;效率低空间独立、----- 安全&#xff0c;稳定进程间通信不方便线程创建和切换的开销小&#xff0c;速度快&#xff0…

Eino 框架组件协作指南 - 以“智能图书馆建设手册”方式理解

Eino 框架组件关系 - 形象比喻指南 &#x1f3d7;️ 项目概览&#xff1a;构建一个智能图书馆 想象一下&#xff0c;你要建设一个现代化的智能图书馆&#xff0c;能够帮助用户快速找到所需信息并提供智能问答服务。Eino 框架就像是这个智能图书馆的建设工具包&#xff0c;每个组…

网络打印机自动化部署脚本

下面是一个全面的、交互式的PowerShell脚本&#xff0c;用于自动化网络打印机部署过程。这个脚本提供了图形化界面&#xff0c;让用户可以轻松地搜索、选择和安装网络打印机。 备注&#xff1a;这个脚本未在生产环境测试过&#xff0c;请大家测试一下&#xff0c;有问题或优化&…

探索工业自动化核心:ZMC 系列 EtherCAT 主站控制器

ZLG致远电子的ZMC系列EtherCAT主站控制器&#xff0c;凭借多元内核、丰富接口、卓越通信能力及开放开发环境&#xff0c;为工业自动化提供全方位解决方案&#xff0c;助力企业智能化升级。 前言在工业自动化领域不断演进的今天&#xff0c;可靠且高效的控制解决方案成为企业提…

rt-thread使用sfud挂载qspi flash的trace分析

说明 trace log先贴在这里&#xff0c;待分析完成后&#xff0c;完善文章。 [0m[D/drv.sdram] sdram init success, mapped at 0xC0000000, size is 33554432 bytes, data width is 16[0m\ | / - RT - Thread Operating System/ | \ 5.2.0 build Aug 21 2025 14:44:332…

服务发现与负载均衡:Kubernetes Service核心机制深度解析

目录 专栏介绍 作者与平台 您将学到什么&#xff1f; 学习特色 一、 服务发现与负载均衡&#xff1a;云原生应用的核心支柱 1.1 Kubernetes Service的设计哲学 1.2 服务发现的核心组件 二、 Service核心类型深度解析&#xff1a;从ClusterIP到LoadBalancer 2.1 ClusterI…

【基础排序】CF - 赌场游戏Playing in a Casino

题目描述 在整个太阳系都很有名的赌场 Galaxy Luck 推出了一种新的纸牌游戏。 在这个游戏中&#xff0c;有一副由 nnn 张牌组成的牌堆。每张牌上写有 mmm 个整数。nnn 位玩家各自从牌堆中获得一张牌。 然后所有玩家两两对局&#xff0c;每一对玩家恰好对局一次。 例如&#…

Jenkins启动端口修改失败查找日志

# 查看Jenkins服务启动时的环境变量sudo systemctl show jenkins | grep -i port从systemd服务信息可以看到&#xff0c;Jenkins的环境变量中 JENKINS_PORT8080&#xff0c;这说明systemd服务配置覆盖了 /etc/default/jenkins 文件中的设置1. 查找Jenkins的systemd服务文件# 查…

Rancher部署的K8S集群服务节点上执行 kubectl 命令

文章目录1、Rancher UI 和执行 kubectl 命令之间的关系1.1、Rancher 的架构和 kubectl1.2、Rancher 内置 kubectl 的位置1.3、执行权限和安全2、Rancher UI 的使用操作2.1、UI 界面内置的 Kubectl 命令工具2.2、在服务节点执行 kubectl 命令的方法2.3、创建一个集群上下文文件 …