“我們不做一錘子買賣,只做技術成長的長期伙伴!”
目錄
一、視頻展示
二、項目簡介
三、原理圖設計
四、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;
// }}
}
六、資料分享
點擊即可查看當前資料分享。