基于STM32的智能抽油烟机系统
提示:记录2022年4月做的毕设
文章目录
- 前言
- 一、功能要求:
- 二、代码思路
- 三、硬件说明
- 四、沟通交流
- 五、代码
- 六、框图等资料
- 喜欢请点赞哦!
前言
基于STM32的智能抽油烟机系统,主控使用STM32F103C8T6核心板
一、功能要求:
- 基于单片机系统设计智能抽油烟机,实现智能抽油烟。
- 通过烟雾传感器实现对当前油烟浓度的检测。
- 实现根据油烟浓度调整风扇转速。
- 通过相关传感器实现火灾和一氧化碳预防报警,温度过高或者一氧化碳浓度过高及时报警,并在液晶显示,测量误差<=5%。
- 可通过APP控制风扇转速,设置温度、烟雾和一氧化碳浓度报警阈值。APP显示温度、气体浓度等相关信息。
二、代码思路
打开定时器2,作为系统运行时间;
esp8266每2.5S刷新一次;
dht11每1s刷新一次;
OLED每2s刷新一次;
三、硬件说明
系统启动后,会有“MyPro”这个WiFi,用手机网络助手连接上,
ip地址:192.168.1.1 ,端口8080
引脚连接:
ESP8266: EN B0RST B1RX B10 TX B11 OLED: D0 PA5(SCL1)D1 PA7(SDA1)RES PB7DC PA4CS PA6 火灾: 接 pcf8591PCF8591: SCL2 A0SDA2 A1烟雾: 接在PCF8591上CO: 接在PCF8591上DHT11: 从“S”端开始往右分别PB9/3.3V/GND;
- @attention 1、提供给ESP8266的电压(3-4v)或者电流不够时,连接wifi会失败
2、电机必须单独提供电源 - 实验平台:STM32C8T6核心板
*/
- @attention 1、提供给ESP8266的电压(3-4v)或者电流不够时,连接wifi会失败
四、沟通交流
可以承接stm32单片机、STC系列单片机设计、嵌入式、深度学习、多模态、语音、NLP。zixun问题lianxi:2424644692(扣扣)
我们在某宝有店铺噢~,搜:“晖亿科创”
五、代码
int main(void)
{while(1){ /*****************************************************///以下是读取MQ-2、MQ-7数据/*****************************************************/co=ADC_IN1(); //in0delay_ms(10);yanwu=ADC_IN2(); //in1delay_ms(10);Light=ADC_IN3(); //in2/*****************************************************///以下是读取dht11数据/*****************************************************/ if(dht_flag==1){BEEP=~BEEP;dht_flag=0;DHT11_ReadData(&shidu,&wendu); //如果DHT11读取到数据了,那么就显示printf("%d\r\n",wendu);//sprintf(send_str1,"当前湿度:%d%%,当前温度:%d℃\r\n",shidu,wendu);}/*****************************************************///以下是温度或者一氧化碳超标报警,LED亮则说明报警/*****************************************************/if(wendu>=set_wendu||co/co_handle>=set_CO)LED=0;else LED=1;/*****************************************************///以下是火灾报警以及显示/*****************************************************/if(Light<10){fire='Y';}else fire='N';/*****************************************************///以下是调节pwm占空比/*****************************************************/ if(yanwu<40) led0pwmval=160;else if(yanwu>=40&&yanwu<80) led0pwmval=180;else if(yanwu>=80&&yanwu<120) led0pwmval=200;else if(yanwu>=120&&yanwu<160) led0pwmval=220;else if(yanwu>=160) led0pwmval=240;TIM_SetCompare2(TIM3,led0pwmval);if(led0pwmval>240)led0pwmval=240;if(led0pwmval<160)led0pwmval=160;/*****************************************************///以下是向esp8266发送数据/*****************************************************/ if(send_flag==1){send_flag=0;//esp8266通过wifi向网络助手发送send_strsprintf(send_str1, "温度:%d℃ 湿度:%d%% 烟雾:%d%% 一氧化碳:%d%% 火灾:%c\r\n",wendu,shidu,yanwu,co,fire);ESP8266_SendString ( DISABLE, send_str1, strlen ( send_str1 ), ( ENUM_ID_NO_TypeDef ) 0 );}/*****************************************************///以下是从esp8266接收/处理数据/*****************************************************/// 从缓存中直接读取,注意while循环一次才读取一次缓存strEsp8266_Fram_Record .Data_RX_BUF [ strEsp8266_Fram_Record .InfBit .FramLength ] = '\0';revStr=strEsp8266_Fram_Record .Data_RX_BUF;if(strstr(revStr, ":c"))continue; strtok(revStr, ":");revStr=strtok(NULL, ":");// 判断缓存内if(revStr!=NULL){if(*revStr=='A')set_wendu++;else if(*revStr=='B')set_wendu--;else if(*revStr=='C')set_yanwu++;else if(*revStr=='D')set_yanwu--;else if(*revStr=='E')set_CO++;else if(*revStr=='F')set_CO--;//else if(*revStr=='M')led0pwmval+=20;//else if(*revStr=='N')led0pwmval-=20;}/*****************************************************///以下是OLED显示/*****************************************************/if(oled_turn==1){OLED_Clear(); show_chinese();show_threshold();OLED_ShowNum(26,3,wendu,3,16);//显示温度值OLED_ShowNum(90,3,yanwu/yanwu_handle,3,16);//显示烟雾值OLED_ShowNum(26,6,Light,3,16);//显示火光//这里,如果需要显示火灾模式为 数字 ,注释掉 OLED_ShowChar 函数//若想显示为Y或者N ,注释掉 OLED_ShowNum 函数//OLED_ShowChar(42,6,fire); //显示火灾(Y/N)OLED_ShowNum(90,6,co/co_handle,3,16); //显示CO浓度OLED_ShowNum(14,0,set_wendu,3,16); //2,显示OLED_ShowNum(58,0,set_yanwu,3,16); //46,显示OLED_ShowNum(100,0,set_CO,3,16); //88,显示 } else if(oled_turn==0){OLED_Clear();OLED_ShowCHinese(0,3,14);OLED_ShowCHinese(14,3,15); OLED_ShowNum(30,3,led0pwmval,3,16);//显示电机速度}}
}void show_caption()
{//智能抽油烟机系统OLED_ShowCHinese(2,0,0);OLED_ShowCHinese(17,0,1);OLED_ShowCHinese(32,0,2);OLED_ShowCHinese(47,0,3);OLED_ShowCHinese(62,0,4);OLED_ShowCHinese(77,0,5);OLED_ShowCHinese(92,0,6);OLED_ShowCHinese(107,0,7);
}void show_chinese()
{//温度,烟雾,火灾,COOLED_ShowCHinese(0,3,8);OLED_ShowCHinese(14,3,9);OLED_ShowCHinese(0,6,10);OLED_ShowCHinese(14,6,11);OLED_ShowCHinese(64,3,12);OLED_ShowCHinese(78,3,13);OLED_ShowString(64,6,"CO:");
}void show_threshold()
{OLED_ShowString(2,0,"A:");//温度阈值OLED_ShowString(46,0,"B:");//烟雾阈值OLED_ShowString(88,0,"C:");//co阈值
}
六、框图等资料
链接: https://download.csdn.net/download/qq_43625266/85566512
喜欢请点赞哦!
基于STM32的智能抽油烟机系统相关推荐
- 基于STM32的智能抽油烟机系统与设计
基于STM32的智能抽油烟机系统与设计 功能实现: 本课题是基于STM32的抽油烟机自动监控系统设计,通过STM32单片机实现对家用抽油烟机的检测与控制.完成有毒气体检测,并能自动发出报警信息,根据烟 ...
- 基于STM32的智能风扇系统
目录 1.概述 2.硬件组成 3.PWM调速原理 4.L298N电机驱动控制原理 5.红外线遥控编码原理 6.软件设计 7.实物测试 1.概述 该智能风扇以STM32单片机为核心,结合红外遥控.人体感 ...
- 基于STM32的智能手环系统的设计
STM32系列 基于STM32的智能手环系统的设计 STM32系列 前言 一.系统方案的设计 1.1系统功能分析 1.2系统总体结构 二.硬件电路的搭建 2.1STM32最小系统组成部分 2.2S硬件 ...
- 基于STM32的智能垃圾车系统
基于STM32的智能导盲系统 闲来无事,用手头STM32做个项目. 成品功能: 1.垃圾车可以可以按照规定的路线自动行驶,当红外传感器检测到有人靠近后可以自动停车,电机驱动打开垃圾桶盖: 2.垃圾桶内 ...
- 基于STM32的智能车灯系统
项目介绍: 本项目应用光敏电阻传感器模块实现了小车前大灯在环境光线不足的条件下自动亮灯的功能,另外自行设计了小车尾灯,模拟了实际汽车在转向及倒车时的灯光状态. 效果展示: 智能车灯系统_哔哩哔哩_bi ...
- 毕业设计——基于STM32的智能窗户系统(物联网、智能家居、APP控制、APP显示温湿度等信息、自动工作模式)
本工程包括一下功能:1.远程控制工作功能:手机端app远程控制窗户开关(手机app自主开发) 2.自动监测工作功能:自动监测天气,并控制窗户开关 3.远程监测数据功能:温度.可燃气体浓度及各种状态在手 ...
- 基于STM32的智能泊车系统
一.前言 想起第一次参加的电子设计校赛好像在昨天一样(虽然确实在昨天),但是为了纪念这一段时间的劳动,并且记录一下遇到的问题,所以写了这篇文章. 二.实现思路 通过手机向停车场发送停车请求,然后停车场 ...
- 【毕业设计】基于stm32的智能电子秤系统 - 物联网 嵌入式 单片机
文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 设计原理 4.1 STM32F103C8T6 4.2 HX711压力传感器 5 部分核心代码 6 最后 0 前言
- 物联网毕业设计 基于stm32的智能婴儿车系统(源码+硬件+论文)
文章目录 0 前言 1 设计思路 2 硬件设计(原理图) 3 核心软件设计 4 实现效果 5 最后 0 前言
- 物联网毕设(基于stm32的智能家居系统)
第二节 硬件端实现 文章目录 目录 第二节 硬件端实现 文章目录 前言 一.配置ESP8266 1.ESP8266.c 2.ESP8266.h 3.如何使用 (1)初始化 (2) 进入主程序 二.如 ...
最新文章
- PCIE 硬件接口那点屁事
- (0079)iOS开发之安全策略之HTTPS(2)
- 在linux 下配置firewalld
- codeforce训练2总结
- onpagefinished等了很久才执行_其实,无所事事的日子才过得最累
- 图解 CSS (8): 浮动、显示、隐藏
- python h5s文件 压缩_如何用python解压zip压缩文件
- ResNet卷积神经网络
- c#:无限极树形结构
- python logging 不输出控制台_Python中使用logging模块代替print(logging简明指南)
- 青春,让人想念,却再也闻不到了
- i5 1240p和锐龙r5 5600u选哪个好?区别对比评测
- JavaScript学习第十九天
- 【毕业设计】 大数据二手房数据爬取与分析可视化 -python 数据分析 可视化
- PHP 亿级 pv 网站架构实战之性能压榨
- ER_WRONG_VALUE_COUNT_ON_ROW: Column count doesn‘t match value count at row 1
- JAVA初学(七):银行账户演示程序
- 骰子算法 php,算法题--骰子游戏
- 毕业论文答辩PPT制作技巧_01
- 基本求导公式 与 基本积分