“我们不做一锤子买卖,只做技术成长的长期伙伴!”
目录
一、视频展示
二、项目简介
三、原理图设计
四、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;
// }}
}
六、资料分享
点击即可查看当前资料分享。