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;
//		}
		
	}
}

六、资料分享

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

本文章已经生成可运行项目
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值