基于STM32智能厨房控制系统设计

发布时间:2025-01-13 11:47

利用智能家居设备,如智能灯控和温控系统 #生活技巧# #家居装饰建议# #书房设计灵感#

目录

1、设计要求

2、系统功能

3、演示视频和实物

4、系统设计框图

5、软件设计流程图

6、原理图

7、主程序

8、总结

 

大家好,这里是5132单片机毕设设计项目分享,今天给大家分享的是基于STM32智能厨房控制系统设计。

设备的详细功能见网盘中的文章《3、基于STM32智能厨房控制系统设计》:

链接:https://pan.baidu.com/s/1uWSZX2zbZwy9sYwwnvyktQ?pwd=5132 
提取码:5132

 随着时间的推移,科技的发展,人们更加注重日常生活的安全性,特别是厨房的安全性。在如今这个厨房安全事件多发的时代,厨房安全是一个很重要的环节。这一点,就是该系统设计目标的出发点。

1、设计要求

本课题设计系统由STM32F103C8T6单片机最小系统模块、温湿度传感器模块、LCD1604显示模块、烟雾传感器模块电路、功率测量模块及电源电路组成。其中单片机最小系统模块以单片机为核心,以烟雾传感器MQ-2测量测量烟雾浓度和温湿度传感器DS18B20来检测厨房温度和湿度,功率测量模块测量厨房总功率大小,并通过显示屏显示。若有异常,蜂鸣器报警,LED灯亮,同时启动排风扇。

扩展:本系统远程控制采用的蓝牙 HC-5,还可以采用ESP8266-01S,设计详细见网盘链接。

2、系统功能

设计采用STM32F103C8T6作为主控芯片,用来接收数据,处理数据,控制输出设备。

(1)OLED显示屏:显示功能选择菜单以及各种操做流程。

(2)按键模块:用来启动设备或者模式选择

(3)蜂鸣器模块用来报警。

(4)DHT11检测厨房的温湿度。

(5)MQ-2烟雾传感器监测厨房烟雾浓度,用来判断是否着火。

(6)功率测量模块测量厨房总功率大小,防止厨房着火。

(7)排风扇用来排风排烟,把厨房产生的油烟排到室外。

(8)HC-05蓝牙模块可以远程调控各个传感器的触发阈值。远程接收传感器信息。

3、演示视频和实物

详细系统:

实物: 

4、系统设计框图

5、软件设计流程图

6、原理图

7、主程序

✨下面介绍的主程序,主要是系统逻辑控制的程序编写。 

#include "stm32f10x.h" // 有问题和需求的,可以联系VX:lwfw123456789

#include <stdio.h>

#include <string.h>

#include "sys.h"

#include "delay.h"

#include "OLED.h"

#include "Key.h"

#include "OLED.h"

#include "Serial.h"

#include "LED.h"

#include "Buzzer.h"

#include "AD.h"

#include "Buzzer.h"

#include "JiDianQi.h"

#include "MyRTC.h"

#include "dht11.h"

uint16_t RTC_Time1[] = {7, 0, 0}; //两个定时时间

uint16_t RTC_Time2[] = {19, 0, 0};

uint8_t RxData; //蓝牙接收到的数据

uint32_t bufe[3];

uint16_t AD0, AD1, AD2, AD3; //存储ADC的值

uint8_t KeyNum; //存储按键值

float shi; //存储AD模拟值转换为电压的值

u8 state = 1; //设备开关

u8 state1 = 1; //模式选择

u8 state2 = 1; //手动模式控制水泵

u8 t = 0;

//按键控制的三个阈值

u16 wenfazhi = 30;

u8 yanfazhi = 50;

u8 gongfazhi = 100;

u8 temp,humi;

int main(void) //主函数

{

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 设置中断优先级分组为组2:2位抢占优先级,2位响应优先级

delay_init(); //延时函数初始化

SystemInit();

Key_Init(); //按键初始化

LED_Init();

AD_Init();

OLED_Init();

Buzzer_Init();

DHT11_Init();

MyRTC_Init();

// OLED_ShowString(1, 4, "XXXX-XX-XX");

OLED_ShowString(1, 5, "XX:XX:XX");

OLED_ShowChinese(3, 1, 63); //土壤湿度

OLED_ShowChinese(3, 2, 64);

OLED_ShowChinese(3, 3, 65);

OLED_ShowChinese(3, 4, 66);

OLED_ShowString(3, 9, ":");

OLED_ShowChinese(4, 1, 2);

OLED_ShowChinese(4, 2, 4);

OLED_ShowString(4, 5, ":");

OLED_ShowChinese(2, 1, 69);

OLED_ShowChinese(2, 2, 70);

OLED_ShowString(2, 5, ":");

OLED_ShowString(2, 10, "W");

Serial_Init(); //串口1初始化

JIDIANQI1_OFF();

while (1)

{

MyRTC_ReadTime();

// OLED_ShowNum(1, 4, MyRTC_Time[0], 4);

// OLED_ShowNum(1, 9, MyRTC_Time[1], 2);

// OLED_ShowNum(1, 12, MyRTC_Time[2], 2);

OLED_ShowNum(1, 5, MyRTC_Time[3], 2);

OLED_ShowNum(1, 8, MyRTC_Time[4], 2);

OLED_ShowNum(1, 11, MyRTC_Time[5], 2);

AD3 = AD_GetValue(ADC_Channel_1); //

if (AD3 > 4000)AD3 = 4000;

shi = (u8)(100 - (AD3 / 40))-80;

bufe[0] = shi;

OLED_ShowNum(3, 10, shi, 2); //oled显示光照强度

OLED_ShowString(3, 12, "%");

AD2 = AD_GetValue(ADC_Channel_0); //功率检测

bufe[0] = (250 * AD2) / 4096; //功率计算,计算得到的是功率在5v的电压情况下,放大1000倍的功率。

OLED_ShowNum(2, 6, bufe[0], 4); //oled显示光照强度

if(t%10==0)

{

DHT11_Read_Data(&temp,&humi); //读取温湿度并显示在OLED上

bufe[1]=temp;

printf("yanwu=%d\r\n", bufe[0]);

printf("wendu=%d\r\n", bufe[1]);

OLED_ShowNum(4,6,bufe[1],2); //温度

OLED_ShowString(4,8,"%");

}

t++;

if (shi >= yanfazhi || bufe[1] >= wenfazhi ||bufe[0] >gongfazhi)

{

Buzzer_Turn();

LED1_Turn();

}

else

{

Buzzer_OFF();

LED1_OFF();

}

if (shi >= yanfazhi || bufe[1] >= wenfazhi )

{

LED2_ON();

}

else

{

LED2_OFF();

}

KeyNum = Key_GetNum(); //按键检查

if (KeyNum ==3) gongfazhi++;

if (KeyNum == 4) gongfazhi--;

if (KeyNum ==2) yanfazhi++;

if (KeyNum == 1) yanfazhi--;

if (KeyNum ==5) wenfazhi++;

if (KeyNum == 6) wenfazhi--;

OLED_ShowNum(2, 13, gongfazhi, 3);

OLED_ShowNum(3, 14, yanfazhi, 2);

OLED_ShowNum(4, 14, wenfazhi, 2);

if (Serial_GetRxFlag() == 1)

{

RxData = Serial_GetRxData(); //蓝牙接收

switch (RxData)

{

case 1:

gongfazhi++;

break;

case 2:

gongfazhi--;

break;

case 3:

yanfazhi ++;

break;

case 4:

yanfazhi --;

break;

case 5:

wenfazhi ++;

break;

case 6:

wenfazhi --;

break;

default:

break;

}

}

}

}

8、总结

测试结果表明,MQ-2传感器可以对厨房烟雾浓度、DHT11传感器能够对温湿度进行采集,对厨房环境进行实时监测,从而保证厨房的安全。

网址:基于STM32智能厨房控制系统设计 https://www.yuejiaxmz.com/news/view/705799

相关内容

基于stm32的智能照明控制系统设计
基于STM32智能照明控制系统设计
基于STM32的智能家用节能控制系统设计
基于STM32的智能饮水机控制系统设计
基于STM32智能家电无线控制系统设计
基于STM32的智能书房系统的设计
基于STM32的远程厨房安全系统设计
基于STM32的智能家居灯光控制系统设计
基于STM32的智能家居控制系统设计与实现
基于STM32技术的校园智能照明控制系统设计

随便看看