功能介绍:采用stm32单片机作为主控CPU,采用MQ3传感器采集酒精浓度,采用红外接触传感器感应驾驶员上车时间,OLED显示酒精浓度和驾驶时间,当酒精浓度超过阈值(程序可调),蜂鸣器报警,当驾驶时间大于设置值(程序可调),蜂鸣器进行提醒,用来提醒疲劳驾驶,程序中文注释,新手容易看懂,文末有分享链接;
下面是实物演示视频和相关实物图片
79-基于stm32单片机酒精浓度测量疲劳驾驶检测系统(程序+原理图+元件清单全套资料)


下面是程序部分展示(程序有中文注释,新手容易看懂)
程序部分展示:(有中文注释,新手容易看懂)void GPIOB_init(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//GPIO B 时钟打开//==PB5 输出GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;//指定管脚GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;// 做PWM//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//做led控制GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOBGPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;//指定管脚LED背光GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;// 做输出GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化GPIOB}int main(){TIMER2_init(999,71);SysTick_Init(72);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中断优先级分组 分2组USART1_Init(9600);LED_Init();OLED_Init();OLED_ColorTurn(0);//0正常显示,1 反色显示OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示OLED_Clear();DHT11_Init ();KEY_Init();beep1=1;Adc_Init();while(1){OLED_Refresh();adcx=Get_Adc_Average(ADC_Channel_0,10);//读取酒精值temp=(float)adcx/4096*3.3;temp=temp*100-100;if(temp<0) temp=0;temp1=temp;OLED_ShowString(1,20,"MQ3:",8,1);//显示酒精值OLED_ShowNum(35,20,temp,3,8,1);OLED_ShowString(60,20,"mg/L",8,1);if(DHT11_Data .temp_int>29||DHT11_Data .humi_int>90||temp>20||num>60) beep1=0;//超过阈值蜂鸣器报警else beep1=1;if(K1==0) num++;//检测驾驶时间OLED_ShowString(0,40,"TIME:",8,1);//显示时间OLED_ShowNum(35,40,num,4,8,1);}}
程序打开办法:特别注意:下载资料包以后一定要先解压!!!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。

原理图采用【AD】altium designer打开,文件中有安装包



下面是资料包里面包含的相关文件展示

7088

被折叠的 条评论
为什么被折叠?



