本文主要是介绍71-基于stm32单片机厨房安全监控系统源程序、原理图、元器件清单实物制作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
功能介绍:采用stm32单片机作为主控CPU,采用MQ4传感器检测天然气浓度,采用MQ2采集烟雾浓度,采用红外接触传感器采集当前是否有人,采用ds18b20采集厨房温度,采用步进电机来模拟燃气灶的打开和关闭,采用OLED显示相关数据,通过独立按键设置天然气浓度和烟雾浓度和温度的上限值,当厨房有人状态,检测天然气和烟雾浓度异常,OLED显示提醒,如果是无人状态,指标超标后,OLED显示和蜂鸣器同时报警,并且自动关闭燃气灶,程序有中文注释,新手容易看懂,文末有资料分享链接:
下面是实物演示视频和相关实物图片
71-基于stm32单片机厨房安全监控系统(程序+原理图+元器件清单全套资料)
下面是程序部分展示(程序有中文注释,新手容易看懂)
程序部分展示:
//硬件初始化
void Hardware_Init(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
delay_init(); //延时函数初始化
Usart1_Init(9600); //串口1初始化为115200
// Usart2_Init(115200); //串口2,驱动ESP8266用
LED_Init(); //LED初始化
}
// 电机模块与单片机连接引脚
//IN4: PB15 d
//IN3: PB14 c
//IN2: PB13 b
//IN1: PB12 a
void Moto_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_12 | GPIO_Pin_13 |GPIO_Pin_14 |GPIO_Pin_15 ;//引脚按着INT1顺序接就行了
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_ResetBits(GPIOB,GPIO_Pin_12 | GPIO_Pin_13 |GPIO_Pin_14 |GPIO_Pin_15 );
}
void MotoRcw(void) //反转
{
int i;
for(i=0;i<4;i++)
{
GPIO_Write(GPIOB,phasecw[i]);
delay_ms(3);
}
}
void MotoRccw(void) //正转
{
int i;
for(i=0;i<4;i++)
{
GPIO_Write(GPIOB,phaseccw[i]);
delay_ms(3);
}
}
void MotorStop(void) //停止
{
GPIO_Write(GPIOB,0x0000);
}
//控制电机正转还是反转某个角度
//direction方向,1为正转,0为反转
//angle角度,可为0-360具有实际意义
void Motor_Ctrl_Direction_Angle(int direction, int angle)
{
u16 j;
if(direction == 1)
{
for(j=0;j<64*angle/45;j++)
{
MotoRccw();//正转
}
MotorStop();//停止
}
else
{
for(j=0;j<64*angle/45;j++)
{
MotoRcw();//反转
}
MotorStop();//停止
}
}
程序打开办法:特别注意:下载资料包以后一定要先解压!!!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。
原理图采用【AD】altium designer打开,文件中有安装包
下面是资料包文件展示
百度云盘资料下载链接
这篇关于71-基于stm32单片机厨房安全监控系统源程序、原理图、元器件清单实物制作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!