一.硬件方案
使用51单片机运用编程与LCD液晶显示屏实现,利用温度、湿度传感器及相应的显示、驱动执行机构、报警装置等实现温室作物生长环境控制器的设计。
主要由51单片机+最小系统+lcd1602显示屏+蜂鸣器报警模块+设置按键+微型水泵+adc0832模数转换模块+YL-69土壤湿度传感器+DHT11温湿度传感器+LED指示灯+wifi模块esp8266;如图:
二.设计功能
(1)液晶显示检测到的土壤湿度值和环境温湿度值,有手动和自动两种控制模式;
(2)通过按键设置报警值,温度大于上限值,则声光报警滴滴响;
(3)当检测到的土壤湿湿度值低于报警值说明干燥启动水泵浇花。
(4)s1,s2,s3,s4按键分别是设置键,加键,减键,手动自动切换键。
(5)按下s1键进入报警值设置界面且光标闪烁,按下s2报警值+1,按s3报警值-1;
(6)可通过wifi,手机控制水泵的开和关;
所有资料:
三.设计原理图
(1)原理图主要采用AD软件进行设计,如图:
(2)Protues仿真图如下:
四.软件设计
主程序源码
/****************************************************************************/
//主函数
//TH,TL,RH,RL分别代表温湿度的整数和小数部分
/****************************************************************************/
void main()
{
init1602();
Com_Init();//串口初始化
// tr=byte_read(0x2000);
// shr=byte_read(0x2200);
// stemp=byte_read(0x2400);
Delay_1ms(2000); //延时几秒时间等模块启动
beep=0;
wifi_init();
//串口发送指令AT+CIPSTO=0,设置服务超时时间,0即永远不超时
while(1)
{
pt="AT+CIPSTO=0\r\n";
while(*pt)
{
SBUF=*(pt++);
while(TI==0);
TI=0;
}
Delay_1ms(900);
if(Buffer=='\n')
{
Buffer='a';
break;
}
}
//串口发送指令AT+CIPAP="192.168.1.110",设置8266 AP地址
while(1)
{
pa="AT+CIPAP=\"192.168.1.110\"\r\n";
while(*pa)
{
SBUF=*(pa++);
while(TI==0);
TI=0;
}
Delay_1ms(900);
if(Buffer=='\n')
{
Buffer='a';
break;
}
}
beep=1;
while(1)
{
keyscan();
if(kai==0)
{
EA=0;//开总中断
ES=0;//开串口中断
write_com(0x80+12);
write_date(' ');write_date('Z'); write_date('D');write_date(' ');
if(yyp==1)
{
display(255-adc0832(0X00));
keyscan();
if(yyp==1)GET_TRH();
baojing();
}
}
else
{
write_com(0x80+12);
write_date('w'); write_date('i');write_date('f'); write_date('i');
}
if(kai==1)
{
EA=1;//开总中断
ES=1;//开串口中断
if(Buffer=='o') //
{
Buffer='o';
jdq=0;
delay(50);\
di();
}
if(Buffer=='c') //
{
Buffer='s';
jdq=1;
delay(50);\
di();
}
}
}
}