一.硬件方案
硬件电路主要由单片机电路、温湿度采集电路、液晶显示电路、继电器电路、wifi模块电路组成。本设计采用STC89C51单片机完成整个系统的控制流程。手机端软件设置操作界面登陆账号,wifi模块连入网络,实现系统设计。
主要由51单片机+最小系统+LCD1602液晶显示模块+温湿度采集模块+继电器驱动模块+风扇模块+LED指示灯模块+按键模块+AT24C02存储模块+蜂鸣器报警模块;如图:
二.设计功能
(1)AT24c02芯片掉电存储设置的上下限。
(2)四个按键为设置、加、减、确定,实现了阀值的调节。
(3)LCD1602液晶显示,上面行显示当前的温度和湿度,下面行显示相应的冷、热、干、湿。
(4)配用全数字型温湿度传感器DHT11,温度测量范围0℃–50℃,湿度测量范围20%RH—90%RH,可以满足一般需要。
(5)当超过阀值的时候,有蜂鸣器闪烁报警提示。并有开关可以关闭或打开报警.
(6)当温度或湿度超限后,报警信号灯点亮同时相应的继电器吸合.
三.设计原理图
(1)原理图主要采用AD软件进行设计,如图:
(2)Protues仿真图如下:
(3)PCB图
四.软件设计
主程序源码
void main()
{
char *str2="AT+CIPSEND=14\r\n";
unsigned char i;
memset(&RsBuf[1],' ',18);
Uart_init();
lcd_init();
wifi_init();
while(1)
{
if(FlagStart==1)
{
TR0=0;
RH();
FlagStart = 0;
write_1602com(0x83); //指定第一行第三个位置
write_1602dat(temperature%100/10+0x30); //显示温度的十位
write_1602dat(temperature%100%10+0x30); //显示温度个位
write_1602com(0x8d); //选中第一行第十三个位置
write_1602dat(humidity%100/10+0x30); //显示湿度十位
write_1602dat(humidity%100%10+0x30); //显示湿度个位
SendString("{\"UN\":\"yhdifiot024@163.com\",\"VER\":\"A1.1\",\"ID\":\"234103\",\"MAC\":\"18fe35f1cd4a\",\"TP\":\"");
//784551388@qq.com是账号 234100是ID
SendASC(temperature%100/10+0x30); //1
SendASC(temperature%10+0x30); //1
SendString("\",\"HM\":\""); // 8
SendASC(humidity%100/10+0x30); //1
SendASC(humidity%10+0x30); //1
SendString("\",\"SOC\":\"99\",\"RET\":\"1\"}\r\n");
TR0=1;
Timer0_count=0;
Timer0_miao=0;
}
write_1602com(0xc7); //选中第二行第七个位置
if(LED1) //如果LED1等于1
write_1602dat('0'); //显示0
else //LED1不等于1
write_1602dat('1'); //显示1
if(LED2)
write_1602dat('0');
else
write_1602dat('2');
if(LED3)
write_1602dat('0');
else
write_1602dat('3');
if(LED4)
write_1602dat('0');
else
write_1602dat('4');
delay(100);
}
}
如需资料请关注公众号“单片机实例设计”,首页回复“智能开关”获取资料;