随着社会经济的不断发展,现代农业生产离不开环境控制。本文在对国内外大棚智能控制进行深入分析的基础上,针对大棚智能化控制存在的诸多因子,将智能传感器监测和单片机控制相结合,提出了基于单片机的温度和湿度、光敏电阻,Co2检测控制系统设计方案。
本系统采用层次化、模块化设计,整个系统由数据采集系统、单片机控制系统、键盘设置系统、显示系统组成。系统以单片机为核心,以温度、湿度传感器、光敏电阻,Co2作为测量元件,通过单片机与智能传感器相连,采集存储智能传感器的测量数据。在单片机系统中,还要实现程序的扩展存储、数据的实时显示、超限蜂鸣器报警和数据辅助存储功能。
本设计采用51单片机+按键+12864液晶显示+DHT11温湿度传感器,CO2传感器,光敏电阻等设计而成。
1.本设计基于STC89C52(STC89C51与AT89S52、AT89C52通用)单片机;
2.LCD12864液晶显示屏实时显示温湿度、光照强度和C02当前的值;
3.采用按键来设置温湿度、光照强度加C02的上下限值,也就是报警值;
4.设计有ESP8266 无线WIFI模块,手机APP监控温湿度、光照强度加C02的的参数
void main ()
{
unsigned int t_cut=0;
set_w_num_H = ISP_READ(0x2c00)*256+ISP_READ(0x2c01);
set_w_num_L = ISP_READ(0x2c02)*256+ISP_READ(0x2c03);
set_s_num_H = ISP_READ(0x2c04)*256+ISP_READ(0x2c05);
set_s_num_L = ISP_READ(0x2c06)*256+ISP_READ(0x2c07);
set_g_num_H = ISP_READ(0x2c08)*256+ISP_READ(0x2c09);
set_g_num_L = ISP_READ(0x2c0a)*256+ISP_READ(0x2c0b);
set_T_Shidu_num_L = ISP_READ(0x2c10)*256+ISP_READ(0x2c11);
set_T_Shidu_num_H = ISP_READ(0x2c12)*256+ISP_READ(0x2c13);
Uart_Init(); //波特率发生器
Delay(500);
ESP8266_Set("AT+CWMODE=2"); //设置路由器模式1 station,模式2 AP,模式3 station+AP混合模式 设置前wifi的波特率设置成9600
Delay(500);
ESP8266_Set("AT+RST"); //重新启动wifi模块
Delay(500);
ESP8266_Set("AT+CWSAP=\"wifi\",\"12345678\",11,4"); //AT+CWSAP="wifi_yuan","12345678",11,4 设置模块SSID:WIFI, PWD:密码 及安全类型加密模式(WPA2-PSK)
Delay(500);
ESP8266_Set("AT+CIPMUX=1"); //开启多连接模式,允许多个各客户端接入
Delay(500);
ESP8266_Set("AT+CIPSERVER=1,5000"); //启动TCP/IP 实现基于网络//控制 ESP8266_Set("AT+CIPSERVER=1,5000");
Delay(500);
ESP8266_Set("AT+CIPSTO=0"); //永远不超时
Delay(500);
LCDInit(); //lcd12864初始化
//Lcd_ShowSring(1,1,"温室大棚监控");
Lcd_ShowSring(1,0,"环境温度:");
Lcd_ShowSring(2,0,"环境湿度:");
Lcd_ShowSring(3,0,"二氧化碳:");
Lcd_ShowSring(4,0,"光照监测:");
while(1){
scant(); //按键扫描
if(Set_mode==0){ //模式
RH();
Lcd_Display2data(2,5,U8RH_data_H); //显示湿度
Lcd_WriteDate('%');
Lcd_Display2data(1,5,U8T_data_H); //显示温度
Lcd_WriteDate('C');
// Delay(2000);
//-----------------------------------------------------------------------------------------------
//采集光度
t_cut++;
if(t_cut==1){
humidty= ADC0832(0);
humidty=255-humidty;
humidty=humidty/2.55; //转换成100
Lcd_Display3data(3,5,light); //显示光度
}
if(t_cut==2){
t_cut=0;
light=ADC0832(1);
light=light/2.55;
}
Lcd_Display3data(4,5,humidty); //显示光度
campare_wendu(); //比较 报警
ctrl(); //控制继电器
}
//-----------------------------------------------------------------------------------------
xm0=U8RH_data_H/10;//存放十位数据 湿度
xm1=U8RH_data_H%10; //存放个位数据
table[24]=ta[xm0];
table[25]=ta[xm1];
table[26]=' ';
// table[24]='A';
// table[25]='G';
xm0=U8T_data_H/10;//存放十位数据
xm1=U8T_data_H%10; //存放个位数据
table[9]=ta[xm0];
table[10]=ta[xm1];
需要完整的资料可以加入我的纷传圈子。
纷传 点击用微信打开即可,过程有点繁琐请见谅。