基于STM32的智能加湿器设计
创作时间:
作者:
@小白创作中心
基于STM32的智能加湿器设计
引用
CSDN
1.
https://blog.csdn.net/qq_44987481/article/details/140547415
**随着经济技术的不断进步,人们对生活品质的追求也越来越高。在寒冷干燥的冬季,尤其是中国北部地区,人们频繁地使用暖气和空调,会导致皮肤干燥,从而引起感冒和其他一些疾病。在夏天,因为经常开空调,所以也会有这种现象,此时需要使用加湿器来改善人体的舒适度。本文将详细介绍基于STM32的智能加湿器设计项目,包括硬件选择、系统功能、软件实现等。
1、设计要求
设计采用了一种基于单片机的智能加湿器系统,其以STM32F103C8T6和温湿度传感器DHT11为核心,通过湿度传感器对湿度信号进行采集和转换,然后通过单片机对数据进行分析处理,实现智能切换加湿功能。另外,通过继电器对加湿器进行控制,可以达到对加湿器的准确控制。
2、系统功能
- 往蓄水容器中加入适量的水。
- 按下开关按钮后,设备开始工作。
- 由于单片机上自带电复位电路、手动复位电路 (复位按键) 、晶振电路(给单片机提供时钟周期)。在OLCD屏上可以显示当前时间。
- 开始工作后,当传感器测出来的湿度小于设定的湿度下限值时,继电器工作控制加湿器工作加湿,当大于湿度上限值时继电器关闭加湿器停止加湿。LCD液晶,第一行显示环境湿度值,第二行,显示湿度的上下限值。
- 同时当湿度小于设置的湿度下限值时蜂鸣器和指示灯产生声光报警提示,当大于下限值时会自动取消报警,当产生报警时可以手动取消报警,但不会影响加湿器的工作。
- 可通过单片机上按键设置湿度的上下限报警值并具有掉电保存功能,保存在单片机内部,上电无需重新设置参数。
3、演示视频和实物
4、系统设计框图
5、软件设计流程图
6、原理图
7、主程序
#include "stm32f10x.h"
#include <stdio.h>
#include <string.h>
#include "sys.h"
#include "delay.h"
#include "OLED.h"
#include "dht11.h" //温湿度传感器
#include "Key.h"
#include "jidianqi.h"
#include "Serial.h"
#include "LED.h"
#include "Buzzer.h"
#include "Store.h"
uint8_t KeyNum; //存储按键值
u8 state,state1,flag=1;
int main(void)
{
u8 t = 0;
uint32_t bufe[3];
u8 temp,humi;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 设置中断优先级分组为组2:2位抢占优先级,2位子优先级
delay_init(); //延时函数初始化
SystemInit();
Key_Init(); //按键初始化
LED_Init();
JIDIANQI_Init();
OLED_Init();
DHT11_Init();
Buzzer_Init();
Store_Init();
OLED_ShowChinese(1,1,3); //湿度
OLED_ShowChinese(1,2,4);
OLED_ShowString(1,5,":");
OLED_ShowChinese(2,1,0); //湿度上限
OLED_ShowChinese(2,2,1);
OLED_ShowChinese(2,3,14);
OLED_ShowChinese(2,4,16);
OLED_ShowString(2,9,":");
OLED_ShowChinese(3,1,0); //湿度下限
OLED_ShowChinese(3,2,1);
OLED_ShowChinese(3,3,15);
OLED_ShowChinese(3,4,16);
OLED_ShowString(3,9,":");
OLED_ShowChinese(4,1,17);
OLED_ShowChinese(4,2,18);
OLED_ShowString(4,5,":");
while (1)
{
if(t%10==0)
{
DHT11_Read_Data(&temp,&humi); //读取温湿度数据并在OLED上显示
bufe[0]=temp;
bufe[1]=humi;
OLED_ShowNum(1,6,bufe[1],2); //湿度
OLED_ShowString(1,8,"%");
}
t++;
KeyNum = Key_GetNum();
if (KeyNum == 1)
{
delay_ms(20);
if (KeyNum == 1)
{
state++;
if(state>1)
{
state=0;
}
}
}
if(state==0)
{
OLED_ShowChinese(4,4,13); // 关
LED1_OFF();
}
if(state==1)
{
OLED_ShowChinese(4,4,12); // 开
LED1_ON();
if (KeyNum == 2) Store_Data[1]++; //6个按键设置湿度值
if (KeyNum == 3) Store_Data[1]--;
if( Store_Data[1]>100) Store_Data[1]=0;
OLED_ShowNum(2, 10, Store_Data[1], 2);
OLED_ShowString(2, 12, "%");
if (KeyNum == 4)Store_Data[2]++; //6个按键设置湿度值
if (KeyNum == 5)Store_Data[2]--;
if(Store_Data[2]>100)Store_Data[2]=0;
OLED_ShowNum(3, 10, Store_Data[2], 2);
OLED_ShowString(3, 12, "%");
Store_Save();
if (KeyNum == 6)
{
delay_ms(20);
if (KeyNum == 6)
{
state1++;
if(state1>1)
{
state1=0;
}
}
}
if(state1==0)
{
Buzzer_OFF();
LED2_OFF();
}
if(state1==1)
{
Buzzer_ON();
LED2_ON();
}
if(bufe[1]<=Store_Data[1])
{
JIDIANQI2_OFF();
if(flag==1)
{
state1=1;
flag=0;
}
}
if(bufe[1]>Store_Data[1])
{
state1=0;
flag=1;
}
if(bufe[1]>=Store_Data[2])
{
JIDIANQI2_ON();
Buzzer_OFF();
}
}
}
}
8、总结
本系统电路结构简单,易于理解,检测精度高,工作稳定,具有一定的应用价值。
热门推荐
醋酸奥曲肽:用药指南与创新应用探讨
外贸业务全套流程:从市场调研到风险控制
地暖系统构成(地暖和暖气片哪个实用)
如何选择合适的轮胎规格?这些规格对驾驶安全有何影响?
意大利渐变蓝色鸡尾酒吧,设计简约又富有吸引力
芝麻的营养价值 这5大营养价值不可错过
告别耳鸣脑鸣:三种营养药膳的辅助治疗作用
午时三刻是几点钟?古时行刑为何要选在午时三刻?有什么特殊意义
车载SoC芯片构成和标准介绍
颈椎疼痛适合服用哪种止痛片?医生专业解答
建议收藏 | 8大气体灭火系统常见问题及接线示意图
如何计算家庭支出?这种支出计算方法对家庭理财有什么帮助?
独角兽企业如何定义?这些企业的发展模式有哪些特点?
以案释法:上道路行驶的拖拉机需要投保交强险吗?
十省份实现“市市通高铁” 高铁弱省如何翻盘?
ETF投资的优势与风险是什么?
宇宙奥秘:磁场“发电机”如何屏蔽宇宙射线
跨文化视角下的《风流一代》:从贾樟柯到《新世纪浪漫主义》
婴儿满月后可以外出吗?这些注意事项请收好
钢化膜气泡消除小妙招
app是什么?深入解析移动应用的核心概念与功能
办遗产公证需要哪些材料
武溪小学:多举措弘扬雷锋精神,培育新时代好少年
领克02空调滤芯怎么换,领克02空调滤芯多久换
普陀区申请老旧房屋检测平台
前杠拆除需要哪些工具?这些工具如何正确使用?
掌握AI口播文案制作全攻略:从灵感生成到视频输出的全方位指南
C语言大数运算详解:从基础到优化
美联储GDP预测突然“爆雷”!全因黄金进口飙升?
美国近几年GDP会有哪些变化?趋势与影响分析