目录
一、前言
二、项目简介
1.功能详解
2.主要器件
三、原理图设计
四、PCB硬件设计
PCB图
五、程序设计
六、实验效果
七、资料内容
项目分享
一、前言
项目成品图片:
哔哩哔哩视频链接:
STM32智能厨房安全检测系统
(资料分享见文末)
二、项目简介
1.功能详解
STM32智能厨房安全检测系统
功能如下:
- 单片机STM32F103C8T6核心板
- OLED显示当前烟雾浓度,当前环境温湿度
- 火焰传感器检测当前厨房是否发生火灾
- 按键可用于调节报警阈值
- 火灾、燃气泄漏、温度过高触发蜂鸣器报警
- 报警下触发执行动作:浇水灭火、打开窗、排风等
- 手机APP检测环境信息以及报警显示
- 手机APP可远程设置阈值大小
2.主要器件
- STM32F103C8T6最小系统板
- DS18B20温度传感器
- OLED 屏幕
- 火焰传感器
- MQ-7一氧化碳传感器
- ESP8266-01S模块(WIFI)
- 继电器
- 风扇模块
- 水泵模块
- 舵机
三、原理图设计
四、PCB硬件设计
PCB图
五、程序设计
int main(void)
{delay_init(); //延时函数初始化 NVIC_Configuration(); //中断优先级配置I2C_Configuration(); //IIC初始化KEY_GPIO_Init(); //按键引脚初始化delay_ms(200); OLED_Init(); //OLED液晶初始化OLED_CLS(); //清屏OLED_ShowStr(0, 2, " loading... ", 2,0);//显示加载中ESP8266_Init(); //ESP8266初始化Adc_Init(); //adc初始化MOTOR_GPIO_Init(); //舵机初始化DS18B20_GPIO_Init(); //温度初始化DS18B20_Init(); //初始化显示delay_ms(1000);delay_ms(1000);OLED_CLS(); //清屏displayInitInterface(); //显示初始界面TIM3_Init(99,71); //定时器初始化,定时100usGet_Temperature(); //获取温度delay_ms(100);Get_Temperature(); //获取温度delay_ms(1000);//Tout = ((arr+1)*(psc+1))/Tclk ; //Tclk:定时器输入频率(单位MHZ)//Tout:定时器溢出时间(单位us)while(1){ keyscan(); //按键扫描if(setn == 0){if(shuaxin == 1) //大概300ms刷新一次数据{Get_Temperature(); //获取温度Get_Smoke(); //获取烟雾shuaxin = 0;}if(FLAME == 0) //检测到火焰{delay_ms(10);if(FLAME == 0){if(flameFlag == 0){OLED_DrawBMP(88,4,120,8,(unsigned char *)BMP); //显示火焰图片}flameFlag = 1;RELAY = 1; //检测到有火,开启水泵}}else{if(flameFlag == 1){OLED_ShowStr(88, 4, " ", 2,0);OLED_ShowStr(88, 6, " ", 2,0);}flameFlag = 0;RELAY = 0; //关闭水泵}if(temperature>=setTempValue || smoke>=setSmokeValue || flameFlag)BEEP=1;else BEEP=0; //检测到温度烟雾超标火焰蜂鸣器报警if(temperature>=setTempValue || smoke>=setSmokeValue)FAN=1;else FAN=0; //烟雾温度超标都开启风扇if(smoke>=setSmokeValue || flameFlag)PWM=15;else PWM=5; //烟雾超标或者是检测到火焰,舵机动作,模拟关闭阀门}UsartSendReceiveData();delay_ms(10);}
}
六、实验效果
七、资料内容