基于51单片机的大棚温湿度检测系统的设计与实现 - 图文 下载本文

又相互关联的、高级模块可以调用低级模块。

首先进行系统的初始化,把液晶显示屏显示的内容初始化,接下来启动温湿度传感器进行数据采集,把数据存储到缓冲区中,缓冲区对数据进行保存,单片机对数据进行分析,在 LCD1602液晶显示屏把数据显示出来,采集的数据如果没有在预先设置的范围,使系统的指示灯亮起,系统对温湿度和光照度进行自动调节,继电器驱动使风扇或者加湿器打开。系统总体流程图如图15所示。

控制系统初始化及数据采集定时查询采样中断采样数据缓冲区数据保存温度、湿度、光照度分析及处理否 是否超限指示灯打开不做任何处理是继电器控制决策及做出相应处理温湿度控制 光照度提示 图15 系统总体流程图

4.2.2温湿度控制流程图

温湿度控制流程图如图16所示。

27

开始DHT11采集温湿度数据是温湿度是否在设定适宜范围否温度是否高于设定适宜范围否喷雾设备继电器打开是湿度是否低于设定适宜范围值内设备继电器打开是喷雾设备继电器开始工作,进行加湿结束排气扇开始工作

图16 温湿度控制流程图

温湿度传感器DHT11监测棚内的温湿度,并对数据进行分析汇总,把监测的温度和预先设置的温度做比较,如果温度测量值高于预先设置的值,驱动继电器打开棚内的排气扇,对大棚进行降温,如果低的话,再把监测的湿度和预先设置的湿度做比较,如果比预先设置的湿度低,单片机驱动相应的继电器打开棚内的加湿器,使棚内的湿度增大。 4.2.3光照度控制流程图

光照度控制流程图如图17所示。

28

开始光照度数据采集、监测是光照度是否在设定适宜范围否光照度是否低于设定适宜范围值内否 不处理是光照度是否高于设定适宜范围值内光照指示灯打开是不处理提醒人们光照不足结束

图17 光照度控制流程图

光照程度的控制主要是根据LED灯显示,光照传感器对系统的光照实现监测,数据值在LCD1602液晶显示屏上显示出来,预先在系统中对光照度进行设置,若是测量的值低于预先设置的值,系统中指示灯发亮,提醒农民棚内的光线不足,农民根据具体情况选择是否需要增加棚内的光度。然而,农作物光合作用有一定的昼夜规律,一般不进行处理。 4.3系统模块的代码实现 4.3.1按键模块

本系统有3个按键,从左到右依次是设置,加,减键,该模块的核心代码如下:

29

void key() //按键程序 选择菜单模式 { if(!K1) //按键被按下

{ delay_1ms(80); //延时,防抖动

if(!K1) //按键被按下

{ while(!K1);

yemian++; //跳到下一个界面

if(yemian>=4) { yemian=0; } }}}

void shezhi() //对里面的数值进行修改 { if(!K2) //按下加按键 { delay_1ms(80); //延时,防抖动 if(!K2) { //光线

if(yemian==1) //光线设置界面

{ Nlight+=1; //按下一次,光照度数值加1

if(Nlight>=250) {Nlight=250;}

write_eeprom(); //保存数据,写数据到单片机内部的eeprom中

Light=Nlight*100;

set_light(); } //调用光线设置函数

//温度

if(yemian==2) //温度设置界面

{ Ntemp+=1; //按下一次,温度数值加1

if( Ntemp>=250) { Ntemp=250;}

write_eeprom(); //保存数据,写数据到单片机内部的eeprom中

S_Temp=Ntemp;

set_temp();} //调用温度设置函数

//湿度

if(yemian==3) //湿度设置界面

30