功能介绍:采用51单片机作为主控CPU,采用DHT11传感器采集温湿度,采用继电器驱动风扇进行散热和排湿,采用继电器驱动功率电阻加热进行升温,采用继电器驱动雾化模块进行加湿,当温湿度数据超过或者低于设置值,蜂鸣器会进行报警,并且会启动对应的继电器措施,LCD1602显示相关数据,并且可以通过蓝牙HC-06模块将数据进行上传到手机APP,程序有中文注释,新手容易看懂,文末有资料分享;
下面是实物演示视频和相关实物图片
69-基于51单片机温湿度自动调节自动恒温恒湿系统蓝牙上传APP(程序+原理图+元器件清单全套资料)
下面是程序部分展示(程序有中文注释,新手容易看懂)
部分程序展示:
void main()
{
unsigned int temperature;
unsigned int humidity;
SCON = 0x50; //8位数据,可变波特率
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xFD; //设定定时初值
TH1 = 0xFD; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
TI=1;
ES = 1;
EA = 1;
lcd1602_init();
delay_ms(1000);
jiashi=jiare=san=1; delay_ms(1000);
while(1)
{
L1602_string(1,1,"WD:");
L1602_string(1,8,"SD:");
L1602_string(1,6,"C");
L1602_string(1,13,"%");
DHT11_Read_Date(&temperature,&humidity); //读取温湿度
delay_ms(50);
DHT11_Read_Date(&temperature,&humidity); //读取温湿度
delay_ms(50);
DHT11_Read_Date(&temperature,&humidity); //读取温湿度
delay_ms(50);
L1602_int(1,4,temperature);
L1602_int(1,11,humidity);
L1602_int(2,1,15); L1602_string(2,3,"-");L1602_int(2,4,30);L1602_string(2,6,"C");//显示温度预设值
L1602_int(2,9,50); L1602_string(2,11,"-");L1602_int(2,12,80);L1602_string(2,14,"%");//显示湿度预设值
if(temperature<15)//温度低于下限开始加热
{
jiare=0;
}
else jiare=1;
if(temperature>30||humidity>80) san=0;//温度大于上限 或者 湿度大于上限 开风扇
else san=1;
if(humidity<50) jiashi=0; //湿度小于下限 开加湿
else jiashi=1;
if(temperature<15||temperature>30||humidity<50||humidity>80)//异常蜂鸣器报警
beep=0;
else beep=1;
printf("WD:%d C\r\n",temperature%100);//蓝牙发送温度
delay_ms(200);
printf("SD:%d \r\n",humidity%100);//蓝牙发送湿度
delay_ms(200);
}
}
程序打开办法:特别注意:下载资料包以后一定要先解压!!!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。
原理图采用【AD】altium designer打开,文件中有安装包
下面是资料包文件展示