项目介绍
设计一个自动湿度控制加湿器。系统由温湿度传感器、单片机、液晶显示屏、声光报警等组成。温湿度传感器并将采集的温度传送至单片机。单片机对数据加以处理并结合室内湿度要求参数控制加湿器的开启和闭合。可以检测水位,单片机根据水位高低控制声光报警装置,在极限水位时可以停止加湿,保护加湿器。
功能介绍
1)具有自动湿度控制功能;
2)具有定时功能,可以显示定时时间和湿度设置;
3)具有声光缺水保护功能,缺水状态下报警并停止工作。
所用模块
系统原理图
实物图
部分代码
#include “sys.h”
#include “delay.h”
#include “key.h”
#include “LCD1602.h”
#include “dht11.h”
#include “usart.h”
#include “stdbool.h”
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
unsigned char U8RH_data_H;
unsigned char U8T_data_H;
unsigned char HumiMin = 15;//湿度下限
unsigned char setn = 0;//设置标志
unsigned char temperature;
unsigned char humidity;
u8 mode = 0;//模式:0是自动模式,1是手动模式
bool sendFlag = 0;
void KeyScan(void)
{
u8 key = 0;
key = KEY_Scan(0);
if(key == 1)
{
beep = 1;
delay_ms(100);
beep = 0;
mode = !mode;
if(mode==0)LCD_Write_String(8,0," “);
else LCD_Write_String(8,0,”");
}
if(key == 2)
{
beep = 1;
delay_ms(100);
beep = 0;
if(mode==0)//在自动模式下是加键
{
if(HumiMin < 99)HumiMin++;
LCD_Write_Char(10,1,HumiMin/10+0x30);
LCD_Write_Char(11,1,HumiMin%10+0x30);
}
else//在手动模式下是手动开启键
{
RELAY = 1;//继电器开启
}
}
if(key == 3)
{
beep = 1;
delay_ms(100);
beep = 0;
if(mode==0)//在自动模式下是减键
{
if(HumiMin > 0)HumiMin--;
LCD_Write_Char(10,1,HumiMin/10+0x30);
LCD_Write_Char(11,1,HumiMin%10+0x30);
}
else//在手动模式下是手动关闭键
{
RELAY = 0;//继电器关闭
}
}
}
int main(void)
{
unsigned int count;
bool shanshuo=0;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
KEY_Init();
DHT11_Init();
DHT11_Read_Data(&U8T_data_H,&U8RH_data_H);
delay_ms(300);
LCD_Init();
LCD_Write_String(0,0," loading... ");
Usart1_Init(9600);
LCD_Write_String(0,0,"00 C 00% <Auto> ");
LCD_Write_String(0,1," Minimum:00% ");
LCD_Write_Char(2,0,0xdf);
LCD_Write_Char(10,1,HumiMin/10+0x30);
LCD_Write_Char(11,1,HumiMin%10+0x30);
资料下载链接
「实物制作资料.rar」,来自夸克网盘分享。
夸克网盘无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
/a0ef3461vM😕
链接:https://pan.quark.cn/s/75ec9d817bf9
提取码:CtuL