哈尔滨师范大学物联网感知综合课程设计报告题目:温室大棚控制系统年级: 2013级专业:物联网工程姓名:高英亮袁昊慈指导教师:李世明杜军温室大棚控制系统高英亮、袁昊慈摘要中国农业的发展必须走现代化农业这条道路,随着国民经济的迅速增长,农业的研究和应用技术越来越受到重视,特别是温室大棚已经成为高效农业的一个重要组成部分。
现代化农业生产中的重要一环就是对农业生产环境的一些重要参数进行检测和控制。
利用物联网的传感器技术实时采集温室环境的空气温湿度、土壤水分和光照度等因素,单片机将数据进行分析处理做出合理的控制决策,控制执行器进行自动喷灌,实现了计算机自动控制,按需、按期和按量喷灌。
系统主要由温室环境信息采集模块、单片机模块和控制模块组成,采集模块包括光照度传感器和空气温湿度传感器。
该系统采用传感器技术和单片机相结合,由上位机和下位机( 都用单片机实现) 构成,采用接口进行通讯,实现温室大棚自动化控制。
本系统环保节能、节水、省力,具有很好的实用性和推广性。
1 引言中国农业的发展必须走现代化农业这条道路,随着国民经济的迅速增长,农业的研究和应用技术越来越受到重视,特别是温室大棚已经成为高效农业的一个重要组成部分。
现代化农业生产中的重要一环就是对农业生产环境的一些重要参数进行检测和控制。
例如:空气的温度、湿度、二氧化碳含量、土壤的含水量等。
在农业种植问题中,温室环境与生物的生长、发育、能量交换密切相关,进行环境测控是实现温室生产管理自动化、科学化的基本保证,通过对监测数据的分析,结合作物生长发育规律,控制环境条件,使作物达到优质、高产、高效的栽培目的。
以蔬菜大棚为代表的现代农业设施在现代化农业生产中发挥着巨大的作用。
大棚内的温度、湿度与二氧化碳含量等参数,直接关系到蔬菜和水果的生长。
国外的温室设施己经发展到比较完备的程度,并形成了一定的标准,但是价格非常昂贵,缺乏与我国气候特点相适应的测控软件。
而当今大多数对大棚温度、湿度、二氧化碳含量的检测与控制都采用人工管理,这样不可避免的有测控精度低、劳动强度大及由于测控不及时等弊端,容易造成不可弥补的损失,结果不但大大增加了成本,浪费了人力资源,而且很难达到预期的效果。
因此,为了实现高效农业生产的科学化并提高农业研究的准确性,推动我国农业的发展,必须大力发展农业设施与相应的农业工程,科学合理地调节大棚内温度、湿度以及二氧化碳的含量,使大棚内形成有利于蔬菜、水果生长的环境,是大棚蔬菜和水果早熟、优质、高效益的重要环节。
目前,随着蔬菜大棚的迅速增多,人们对其性能要求也越来越高,特别是为了提高生产效率,对大棚的自动化程度要求也越来越高。
由于单片机及各种电子器件性价比的迅速提高,使得这种要求变为可能。
2 温室自动喷灌系统整体设计该系统主要由温室大棚环境信息采集模块、单片机AT89c52模块和控制模块组成。
采集模块包括光照度传感器2Du6硅光电池、土壤水分传感器TDR一3和空气温湿度传感器LTM一8901。
光照度传感器采用硅光电池2Du6作为光电传感器器件,土壤水分传感器采用锦州阳光科技发展有限公司设计开发的TDR一3。
这两类传感器输出都是模拟量,所以需要经信号调理电路及A/D转换等预处理后传输给单片机。
温室环境空气温度与湿度的采集采用温湿度一体数字式传感器SHT71,直接输出数字量给单片机。
控制模块主要由光电耦合器、继电器和执行器组成,总体结构如图1所示。
图1 自动喷灌系统整体构架框图3 信号采集系统3.1 光照采集模块在温室环境中,光照度是植物健康生长的重要能源因素,直接影响植物的生长、发育过程、产量和果实品质。
另外,光照度也影响地表与大气的物质与能量交换,即与土壤水分含量有着密切关系,在节水灌溉中是一个重要的数据信息。
所以,在设施农业中光照度的检测和监测工作越来越得到重视。
系统采用硅光电池2Du6作为光电传感器件,将该器件的短路电流信号对此进行放大到0~5V,经模数转换模块送给单片机AT89C52。
由于硅光电池的短路特性随光照强度是线性变化的,光电池在不同照度下的内阻也不同,因而应选取适当的外接负载近似地满足“短路”条件。
A/D转换器只能够接受电压信号,因此在硅光电池2Du6和单片机AT89c52之间需要一个电流电压转换电路。
这个电流转换电压模块使用的是放大器0P777。
3.2 温湿度采集模块温室内空气温湿度的检测仅仅靠单点测量是不能准确代表整个温室环境的状况的,尤其是对于大面积的温室大棚而言,单点检测对节水灌溉控制的精确度和节水效果有很大的影响。
针对这个问题,本系统选用了数字式输出和多点网络检测的易扩展式传感器LTM一89。
该传感器和单片机的接口有两种方式:一是单线接口方式;二是双线接口方式。
当在小面积温室环境下,数据传输距离比较短时,采用单线接口方式;当温室面积比较大、检测点比较多及传输距离比较长的时候,采用双线接口方式。
4 控制系统传感器采集到温室环境中土壤湿度、光照度以及空气温湿度各参数值,经过单片机处理分析后,给出最优化喷灌策略,发出控制信号使执行机构动作,进而实现按时、按需和按量的节水自动喷灌。
本系统选用TLP521—4光电耦合器驱动继电器输出,其目的是为了在驱动执行设备时提高控制接口的抗干扰能力。
图6为该接口的电路原理图。
在系统初始化时,将AT89C52的I/0口输出电平置成高电平,光耦TLP521—4不导通,防止在AT89c52复位、上电时继电器出现误动作。
图2 控制系统接口电路图5 界面设计通过C#程序编写窗口并将串口传输过来的数据实时显示在C#编写的窗口上的,不过能力有限所以增添了手动输入弥补,并可以从数据库中调用对应数据对其进行判定,以实现智能感应窗状态的改变。
首先用visual studio 2013建立窗口界面编辑环境。
通过工具箱向窗口上拖拽需要的控件完成窗口的大致规划,然后将label和button控件的名称修改成对应的变量的名称和选项名称。
5.1 主界面textBox程序private void TMP_label_KeyPress(object sender, KeyPressEventArgs e) {if (!Char.IsNumber(e.KeyChar) && e.KeyChar != (char)8)//判定是否是数字与是否为删除键(ASCII码值中删除键对应数字8){e.Handled = true;//当if判定为true时,e.Handled也为true所以不会对文本框进行赋值}}图3 Form1主界面5.2 选择界面label控件程序public partial class Form2 : Form{public Form2(){InitializeComponent();}private string string1;public string String1{set{string1 = value;}}public void SetValue(){bel1.Text = string1;}//主窗口和选择界面通过InitializeComponent()函数连接,然后在选择界面窗口中定义一个public string String1然后运行程序时,主界面会对String1进行赋值,然后选择界面窗口可以对其进行调用,用其对label进行赋值。
6 软件设计6.1设计原理(1)明确任务,弄清软件所承担的任务细节。
(2)软件结构设计,合理的软件结构是设计出一个性能优良的单片机应用系统软件的基础。
(3)模块化程序设计,是单片机应用中最常用的程序设计技术。
将一个完整的程序分解成若干个功能相对独立的较小的程序模块,对各个程序模块分别进行设计、编制和调试,最后将各个调试好的程序模块进行联调。
(4)编写程序。
根据系统功能和操作过程,列出程序的功能流程图。
在完成流程图的设计之后,便可编写程序了。
6.2 温度传输软件此模块的软件设计主要是要确保接收到正确的温度数据,所以在程序中要加一些数据头进行校验。
1)发送温度程序:while(1){……//温度转换,获得温度SBUF=0xaa; //为了防止无线接收模块受到干扰,数据不对while(!TI); //所以加上两个数据头,只有在正确接收TI=0; 到它俩后,才开始接收我们需要的数据SBUF=0x55;while(!TI);TI=0;SBUF=table3[a]; //将测得的温度值的各位及小数点逐位的发送出去while(!TI); //百位TI=0;……//依次发送其他各位}2)接收温度程序void receive(){while(!RI);RI=0;i=SBUF;if(i==0xaa) //判断是否接收到0xaa,接收到的话再执行下去{while(!RI);RI=0;i=SBUF;if(i==0x55) //再继续判断是否接收到0x55,接收到的话就可以继续接收正write_com(0x80); 确的数据while(!RI);RI=0;a=SBUF; //接收百位write_data(a); //液晶显示百位SBUF=a; //再把百位发送给电脑while(!TI);TI=0;delay(100); //延时……//个位、十位小数点依次发送}}6.3 上位机软件设计本设计使用的方法,利用TComm控件实现串口通信。
TComm控件可以实现DTR/DSR、RTS/CTS硬件流控制,是比较完善的串口控件。
TComm控件的串口通信参数设置与MSComm类似默认情况下。
TComm控件接收和发送数据支持字符串和字节两种传输模式。
在接收和发送数据前需要初始化串口,用SetPortOpen()方法打开串口,退出程序时用CloseComm()方法关闭串口。
//打开串口、接收和发送数据的语句Comm1->PortOpen=true; //打开串口mReceive->Text = Comm1->Input;//接收数据mTransmit->Text= Comm1->Output;//发送数据// 接收下位机温度及将获得的数据绘制成曲线的程序C++Builder提供了一个功能强大的可视化控件TChart,非常便于数据的图形化显示。
通过设置组件属性,可以生成点图、线图、饼图、柱状图、区域图,能够显示一维序列或二维序列,可以自由设定刻度线和坐标。
给序列添加一个数据只需调用AddX、AddY、AddXY方法,非常方便。
因为需要得到温度的实时曲线图,所以在定时器timer的OnTimer事件中编写程序,关键的语句如下:if (Comm1->PortOpen) //判断串口是否打开{mReceive->Text = Comm1->Input //把接收到的温度放到一个memo里Buf = Trim(Comm1->Input); //删除string首部和尾部空格的字符串ReceiveStr = ReceiveStr + Buf;do{Dot= ReceiveStr.Pos(' ');if (Dot==0)break;ReceiveData[i] = StrToFloat( ReceiveStr.SubString(1,Dot-1)); //数据放进数组ReceiveStr =ReceiveStr.Delete(1,Dot); //留下未处理的数据Chart1->Series[0]->AddXY(i,ReceiveData[i],i,clRed); //把接收到的温度绘成曲线i=i+1; //接收下一个数据}While (1); //直到找不到空格ReceiveStr = "";}//存储接收到的数据和对应的时间关键的语句如下:FILE *fp;fp=fopen(".\\data.txt","a"); //把数据存放到data.txt的文件里fprintf(fp,"%s%s\n",mReceive->Text, TimeToStr(Time()));fclose(fp);7 总结温室大棚自动控制系统是近年来逐步发展起来的一种资源节约型高效农业发展技术,它是在普通日光温室的基础上,结合现代化计算机自控技术、智能传感技术等高科技手段发展起来的,因此我们组选择了以温室大棚控制系统作为课题进行课程设计。