STM32项目分享:智能厨房安全检测系统

server/2025/1/24 14:08:43/

目录

一、前言

二、项目简介

1.功能详解

2.主要器件

三、原理图设计

四、PCB硬件设计

PCB图 

五、程序设计 

六、实验效果 

七、资料内容

项目分享


一、前言

项目成品图片:

哔哩哔哩视频链接:

STM32智能厨房安全检测系统

(资料分享见文末) 

二、项目简介

1.功能详解

STM32智能厨房安全检测系统

功能如下:

  1. 单片机STM32F103C8T6核心板
  2. OLED显示当前烟雾浓度,当前环境温湿度
  3. 火焰传感器检测当前厨房是否发生火灾
  4. 按键可用于调节报警阈值
  5. 火灾、燃气泄漏、温度过高触发蜂鸣器报警
  6. 报警下触发执行动作:浇水灭火、打开窗、排风等
  7. 手机APP检测环境信息以及报警显示
  8. 手机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);}
}

六、实验效果 

七、资料内容

项目分享


http://www.ppmy.cn/server/161035.html

相关文章

Qt 5.14.2 学习记录 —— 십사 多元素控件

文章目录 1、QListWidget2、QTableWidget3、QTreeWidget 多元素控件主要分为3个部分,QList,QTable,QTree。 每个部分都有View和Widget,W基于V封装而来。软件开发中MVC架构三个字母分别代表model数据,view视图&#xf…

CentOS 7.9(linux) 设置 MySQL 8.0.30 开机启动详解

文章目录 一、运行级别简介二、MySQL 服务安装与运行验证三、通过 chkconfig 配置开机启动四、验证开机启动配置五、总结 一、运行级别简介 运行级别(Runlevel)定义了系统的运行模式,常见的运行级别如下: 运行级别描述0关机模式…

体育实时数据是怎么获取的

体育实时数据的获取通常依赖于技术、数据提供商以及基础设施的综合应用。以下是主要的获取方式和技术手段: 1. 官方渠道数据接口 体育联赛与赛事方的API:一些官方机构(如FIFA、NBA、MLB等)提供实时数据接口,这些接口…

vscode下poetry管理项目的debug配置

点击debug选项的设置按钮,vscode会让我们编辑launch.json文件 {"version": "0.2.0","configurations": [{"name": "Python 调试程序: 当前文件","type": "debugpy","request": &…

数据结构与算法再探(六)动态规划

目录 动态规划 (Dynamic Programming, DP) 动态规划的基本思想 动态规划的核心概念 动态规划的实现步骤 动态规划实例 1、爬楼梯 c 递归(超时)需要使用记忆化递归 循环 2、打家劫舍 3、最小路径和 4、完全平方数 5、最长公共子序列 6、0-1背…

Linux内核中的InfiniBand核心驱动:verbs.c分析

InfiniBand(IB)是一种高性能、低延迟的网络互连技术,广泛应用于高性能计算(HPC)、数据中心和云计算等领域。Linux内核中的InfiniBand子系统通过提供一组核心API(称为Verbs API)来支持InfiniBand设备的操作。drivers/infiniband/core/verbs.c是InfiniBand核心驱动的重要组…

WebSocket异步导出

WebSocket异步导出 1、安装sockjs-client和stompjs2、连接后台3、vite.config.ts 配置反向代理4、导出并实时通信5、 封装WebSocket 文件注册登录(城通网盘) 1、安装sockjs-client和stompjs import SockJS from sockjs-client/dist/sockjs.min.js import Stomp from stompjs2、…

【PyCharm】连接Jupyter Notebook

【PyCharm】相关链接 【PyCharm】连接 Git【PyCharm】连接Jupyter Notebook【PyCharm】快捷键使用【PyCharm】远程连接Linux服务器【PyCharm】设置为中文界面 【PyCharm】连接Jupyter Notebook PyCharm连接Jupyter Notebook的过程可以根据不同的需求分为 本地连接 和 远程连…