《基于单片机和无线传感器网络的智能节水灌溉系统设计》11000字(论文)_第1页
《基于单片机和无线传感器网络的智能节水灌溉系统设计》11000字(论文)_第2页
《基于单片机和无线传感器网络的智能节水灌溉系统设计》11000字(论文)_第3页
《基于单片机和无线传感器网络的智能节水灌溉系统设计》11000字(论文)_第4页
《基于单片机和无线传感器网络的智能节水灌溉系统设计》11000字(论文)_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机和无线传感器网络的智能节水灌溉系统设计【摘要】基于无线传感器网络的智能节水灌溉系统可实现用水自动化、定量化、远程监测管控。这有利于根据实际情况实行精准灌溉,提升灌溉质量和效益,实现水资源合理利用。本课题介绍了一种基于无线传感器网络、STC12C5A60S2单片机的智能节水灌溉系统的底层设计,实现环境参数的实时数据采集、分析,并且通过Zigbee通信模块与控制中心进行信息交互,最后控制中心通过数据分析,做出决策指令。通过STC12C5A60S2的快速、灵活控制,PC机的强大监测与管理能力,使得该方案具有稳定性好、数据传送可靠、使用灵活等特点。同时,针对农田灌区数据量大、实时传输困难等问题,采用无线传感器网络技术,解决了配线不便、灵活性差等问题,实现了田间地情连续监控和自动控制,提升了灌溉用水量的利用率。【关键字】智能节水灌溉系统;Zigbee;无线传感器网络;STC12C5A60S2单片机目录TOC\o"1-3"\h\u1引言 11.1研究背景 11.2国内外研究现状 11.3研究目标及意义 11.4本文结构安排 12需求分析 22.1功能需求分析 22.2开发工具及环境介绍 33系统总体方案设计 43.1系统方案设计 43.2系统工作原理 53.2.1Zigbee通信节点 53.2.2土壤湿度节点 53.2.3温湿度节点 63.2.4光照强度节点 63.2.5显示电路节点 73.2.6驱动电路节点 73.2.7按键节点 74系统硬件设计 84.1Zigbee通信节点设计 84.2土壤湿度节点设计 84.3温湿度节点设计 94.4光照强度节点设计 94.5显示电路节点设计 104.6驱动电路节点设计 104.7按键节点设计 115系统软件设计 115.1Zigbee通信节点设计 115.2土壤湿度节点设计 125.3温湿度节点设计 135.4光照强度节点设计 145.5显示电路节点设计 155.6驱动电路节点设计 155.7按键节点设计 166系统功能测试 177总结 231引言1.1研究背景我国是一个以农业为主的国家,全国范围内,农业用水占到了65%左右,其中灌溉用水占了很大比重。更值得一提,我国是一个水资源短缺、农业用水利用率低的国家。在我国,实行精准灌溉,提高灌溉质量和效益,实现水资源合理利用显得相当重要。由此可见,农业节水具有巨大潜力,发展节水型农业是解决水资源短缺、推进农业可持续发展的关键REF_Ref19796\r\h[1]。在这一背景下,以无线传感器网络为核心的智能节水灌溉系统应运而生,以节水为主要目标,采用了先进的土壤湿度、温湿度和光照强度传感器,实现实时监测土壤的综合状况和作物需水量,并以无线传感器网络为中介,向控制系统传输数据信息。只需要有一个人或者根本不需要有人介入,就能使农作物得到实时的灌溉。此外通过进一步设置自动灌水阈值,可以有效地解决传统的灌溉用水的不确定因素,可以更加精确地控制每一次的灌水量,避免浪费。1.2国内外研究现状由于国外应用比较早,国外的智能化节水灌溉技术已逐渐成熟,并广泛推广应用,比如以色列的温室滴灌技术。利用智能节水技术,对农田的水分、气温进行实时监控,利用以上的智能信息,对当日的灌溉标准进行再计划和编制,确保了各个区域的灌溉品质得到及时的记录和监控。当前,一些国家采用了较为先进的智能节水灌溉系统,以较好的改造和转变了现代化的非充分灌溉方式,并且继续向全自动化灌溉的方向发展REF_Ref27739\r\h[2]。然而,在我国,智能节水灌溉技术起步较晚,至今还没有建立起一套完整的系统与技术体系。相比较于国外,我国在智能灌溉技术方面的研究稍逊一筹。目前,国内的智能节水灌溉系统以进口为主,同时也自主研发一些智能节水灌溉技术。我国的温室设施农业中,智能化节水灌溉的应用较为广泛,而大田农业却鲜有涉猎。而无线传感器网络这一技术正扮演着我国智能节水灌溉方面的一颗冉冉升起的新星。这种智能节水灌溉技术充分利用了远程通信的优点,既可以缩短线路布局,又可以降低设备费用,节约投资,从而达到事半功倍的目的。1.3研究目标及意义智能节水灌溉系统是借助无线传感器网络技术获取土壤信息实现分析、管理、灌溉。智能节水灌溉系统通过在灌区设置若干个无线传感器节点,实现对农田情况的实时监测,有效地提升了灌溉用水的利用率REF_Ref17248\r\h[3]。本课题是使用Zigbee无线通信技术来实现的,ZigBee技术作为无线传感器网络中的一种协议标准,因为其性能良好,所以广泛应用于无线通信领域。相比于其他智能节水灌溉系统的底层设计,本设计的无线传感器网络技术使得智能节水灌溉系统的应用更加准确、便捷,并且大大降低成本,使智能节水灌溉系统更为简便化、灵活化。1.4本文结构安排本文主要介绍在“基于无线传感器网络的智能节水灌溉系统设计”课题中所做的工作,本文对基于无线传感器网络的智能节水灌溉系统的底层设计原则和方案设计、硬件原理与设计、系统软件设计展开了详尽探讨。内容安排如下:第一章引言:简要介绍基于无线传感器网络的智能节水灌溉系统底层设计的现实意义。第二章需求分析:分析人们对智能节水灌溉的功能需求和其开发工具及环境的介绍。第三章系统总体方案设计:按照系统所需要的功能,将系统按节点分块,按照各个模块的设计思路,介绍整个系统的工作原理并且介绍各个模块的主要技术。第四章系统硬件设计:完成各个节点功能的硬件电路设计,详细分析了系统的硬件结构设计中的主要内容。第五章系统软件设计:完成各个节点功能的软件编写设计,详细分析了系统的软件编写设计中的主要内容。第六章系统功能测试:对基于无线传感器网络的智能节水灌溉系统底层设计进行完整的功能测试。第七章总结:总结本课题所完成的工作以及后期优化。2需求分析智能节水灌溉系统的研究已经变成热门话题,本设计从精准化、便捷化的思想出发,旨在提供一种基于无线传感器网络的智能节水灌溉系统的设计思路,实现对土壤信息的获取、分析、监测、控制灌溉等功能,切合智能节水灌溉系统的设计理念及无线传感器网络的终极目标。2.1功能需求分析通过查阅资料可知,基于无线传感器网络的智能节水灌溉系统的主要功能要求是:环境监测、显示、控制等功能和与PC机进行连接通信功能。环境监测功能:这部分包括利用各个传感器便捷感受环境信息,同时系统根据当前信息,自动进行水泵的灌溉、报警器的响应。显示功能:这部分主要是利用LCD6102显示屏,将当前土壤湿度、环境温度、环境湿度、光照强度、当前灌溉状况、缺水状况、当前环境阈值等信息进行显示。控制功能:这部分主要包括按键的控制功能,设置阈值、手动打开水泵的功能。通信功能:Zigbee无线模块实现远程遥控功能,通过串口发送命令执行相应的功能。本文主要为基于无线传感器网络的智能节水灌溉系统底层设计提供一种思路,根据需求以扩展思想来设计节点,因此设计了Zigbee通信节点、土壤湿度节点、环境温湿度节点、光照强度节点、显示电路节点、驱动电路节点、按键节点。按照主要功能可分成三个模块,如图2-1所示:图2-1智能节水灌溉系统总体功能模块系统图数据采集模块数据采集模块实现的是环境信息的采集,如图2-2,利用各个传感器监测、采集、读取当前的环境信息。图2-2数据采集模块框图(2)数据处理模块数据处理模块实现了由传感器所采集数据的处理,如图2-3,用AD模拟-数字变换将土壤湿度数据传送至单片机内,环境温湿度数据经由单根总线传送至单片机内,然后使用IIC协议将光照强度数据传输到单片机内,最后将数据信息通过单片机传送到显示、驱动电路节点。显示电路通过LCD显示器显示当前读取的环境信息、当前灌溉状态、当前缺水状态。驱动电路通过对水泵、蜂鸣器进行控制,判断是否开始灌溉。图2-3数据处理模块框图射频模块如图2-4所示,单片机将数据从串口传输出去,Zigbee无线传输模块经过射频电路、功放电路、天线,传送到PC端的Zigbee无线通信模块,PC机通过与Zigbee无线通信模块进行串口通信接收到来自单片机传送的数据,根据菜单提示,PC机发送执行对应功能的命令。图2-4射频模块框图2.2开发工具及环境的介绍 无线传感器网络是一种由微纳机电系统(MEMS/NEMS)、片上系统(SystemonChip,SoC)、无线通信和低功率嵌入技术组成的一种分布式感知网络REF_Ref27250\r\h[4]。它的终端是能够感知和探测外界环境的多个传感器,通过多跳无线方式和自组织无线方式组成无线网络,以协同感知、获取、处理和传送网络覆盖区域范围中被感知目标的信息,最后通过有线/无线方式向网络拥有者输送所获得的信息。本设计以STC12C5A60S2为核心,以温湿度传感器DHT11、光照传感器BH1750、土壤湿度传感器YL-69为监测单元,LCD1602显示屏为显示监控部分,并通过继电器对水泵进行控制、启动灌溉,通过Zigbee无线通信模块进行远程控制,由keil软件进行程序编写和串口通信软件进行通信。本系统使用的是以8051为核心的STC12C5A60S2单片机,是具有低电压、高性能的8比特CMOS微控制器。如图2-5所示,该产品具有32个可编程输入/输出管脚,2个16位定时/计数,6个中断电源,8路10位高速A/D(250K/S)变换,完全兼容8051指令和插脚,并具有60K的FLASHROM,该技术的内存可以通过电力瞬间删除和改写。相比于其他种类的单片机,STC12C5A60S2单片机可以满足本设计对于可编程串行通信、串口程序烧写、模数转换等要求。图2-5STC12C5A60S2单片机该方案所使用的Zigbee无线模块为DL-20,如图2-6所示,它是一个2.4G的串行接口,能够实现两个或多个串口的无线通信REF_Ref17989\r\h[5]。发送设备通过串口将数据发入Zigbee模块,发入Zigbee模块的数据会被Zigbee模块使用无线发出,Zigbee模块接收另一个Zigbee模块传送的无线数据,之后把得到的数据使用串口传入到接收设备,实现串口通信。通过一个简单的键来设定模块的频道、波特率。支持串口的连续传输、同步传输。Zigbee技术本身具很多优点,比如:低功率(但仅限于终端节点)、灵活的组网(在网络中设备多的情况下有优势)、低成本(与蓝牙、WiFi相比)。图2-6DL-20无线模块3系统总体方案设计3.1系统方案设计基于无线传感器网络的智能节水灌溉系统设计,分为两个部分组成,分别为Zigbee通信节点和基于单片机STC12C5A60S2的7个节点,包括3个传感器节点:土壤湿度、环境温湿度和光照强度节点,1个显示电路节点,和2个控制节点:驱动电路节点、按键电路节点。如图3-1所示。Zigbee无线通信是整个系统中最重要的部分,主要负责协调上位机与节点间的通信,实现对智能节水灌溉系统的控制、监督:一方面,Zigbee接收来自单片机STC12C5A60S2从3个传感器节点接收并加以处理的环境数据,这些处理后的数据,通过Zigbee的射频天线,传输给上位机端的Zigbee模块,上位机就可以通过Zigbee通信模块接收到环境数据并加以处理。另一个方面,上位机端的Zigbee通信模块通过串口获得上位机发出的命令,通过Zigbee的射频天线,将相应的命令发送给下位机的Zigbee模块,下位机的Zigbee模块接收命令并把命令传送给单片机STC12C5A60S2进行处理,执行相应功能。图3-1基于无线传感器网络的智能节水灌溉系统设计总框图3.2系统工作原理3.2.1Zigbee通信节点STC12C5A60S2单片机与上位机之间的串口通信是通过Zigbee模块实现的,因为本设计采用的是DL-20模块,使用时只需接通5V电源,然后将其2、3脚与单片机的端口TXD和RXD相连接即可。该方案使用了两个Zigbee模块,其中两个Zigbee模块在进行串口通信前要进行配置(主要是波特率、频道、模式设置)。(1)Zigbee发送数据发送设备通过串口将数据发入Zigbee模块,发入Zigbee模块的数据会被Zigbee模块使用无线发出。(2)Zigbee接收数据Zigbee模块接收另一个Zigbee模块传送的无线数据,之后把得到的数据使用串口传入到接收设备。3.2.2土壤湿度节点土壤湿度传感器模块,Zigbee通信模块,单片机STC12C5A60S2组成土壤湿度节点。土壤湿度节点通过STC12C5A60S2单片机串口向Zigbee模块发送数据,利用Zigbee串口通信模块与PC机进行通信。土壤湿度节点要对土壤湿度进行采集,YL-69模块通过两种方法来获取数据,一种是D0管脚,当土壤湿度超过一定的临界值,D0口就会输出“0”,反之则输出“1”。此方法主要应用在湿度调节器上。另一种方法是从A0管脚的感应器:获得模拟值。它主要是用来表示实时的湿度。本方案使用的是后一种更准确的算法。YL-69土壤湿度传感器内具有湿敏电容,湿敏电容的电容值的变化与湿度成比例。传感转换电路把湿敏电容值变化转变成为电压值变化,传感器输出的电压是从0v到1v做线性变换,其对应着0-100%的RH值,所以可以用在电极间计算得到的电压值表达土壤湿度。在进行单片机的处理时,需要先用A/D变换器把传感器采集的模拟电压信号变换为能够被处理的数字信号,这些都应在测量电压之前REF_Ref26616\r\h[6]。该传感器可以连接到A/D变换器和串行接口,因此采用STC12C5A60S2单片机的AD转换,实现模拟-数字转换,提取土壤湿度数据。本设计采用的是P1.1口作为A/D转换,AD转换得到的模拟量和目前的输入模拟值进行一个比较,在逐级比较器中存储结果,最后利用逐次比较寄存器输出变换结果。如图3-2所示,在A/D变换完成之后,

将最后变换得到的结果存储在ADC转换结果寄存器ADC_RES以及ADC_RESL内。图3-2AD转换结果存储图REF_Ref26616\r\h[6]最后土壤湿度的值为,如公式3-1所示:(3-1)其中,Vin是模拟输入信道的输入电压,Vcc是单片机的实际工作电压,作为模拟基准。3.2.3温湿度节点温湿度传感器DHT11,Zigbee通信模块,单片机STC12C5A60S2组成环境温湿度节点。环境温湿度节点通过STC12C5A60S2单片机串口向Zigbee模块发送数据,利用Zigbee串口通信模块与PC机进行通信。DHT11采集环境中的温度和湿度数据,STC12C5A60S2从DHT11上采集到的数据,经过处理后产生一个新的数据包,然后用Zigbee通信模块把其传输,传输的是温度和湿度的数值。DHT11与单片机的通信与同步采用单总线方式,DATA接口被用来实现STC12C5A60S2与DHT11的通信与同步。一次数据传送是40比特,高位优先输出,最后数据传送如表3-1所示REF_Ref26325\r\h[7]。DHT11发送的数据位“0”、“1”格式信号如图3-3所示。表3-1DHT11温湿度数据格式图3-3DHT11数据位“0”和DHT11数据位“1”REF_Ref26325\r\h[7]3.2.4光照强度节点BH1750FVI获取光照强度数据,STC12C5A60S2使用IIC协议读取BH1750FVI的测量结果。BH1750FVI光照强度传感器,Zigbee通信模块,STC12C5A60S2单片机构成光照强度节点。光照强度节点通过STC12C5A60S2单片机串口向Zigbee模块发送数据,利用Zigbee串口通信模块与PC机进行通信。如图3-4所示,BH1750FVI的PD二极管利用光生伏特法把输入的光信号转化为电信号,经过运算放大电路进行放大,电压被ADC接收,并经逻辑电路变换为16位二进制数字,并将其储存于该内部的寄存器。BH1750引出了时钟线和数据线,时钟线路是从主机输出的,从设备输入的。也就是说,单片机的IO输出端要将方波脉冲输出到BH1750的SCL管脚。而数据线路上的数据传输是双向的。本课题利用I2C协议,单片机可以和BH1750模块进行通信,可以选择BH1750的模式进行操作,也可以从BH1750中提取出光照度数据。I2C协议是一条双线型的串行总线,它将微处理器与周边装置相连接,I2C总线包括时钟线SCL和数据线SDA,并能实现两种工作模式:多主模式和主从模式。该设计的I2C总线的工作模式是主从式,其中单片机作为主器件,BH1750芯片作为从器件REF_Ref26227\r\h[8]。具体步骤为:单片机通过I2C总线将启动信号传送到传感器,再给传感器传送将发送设备的地址和写入信号,在此完成后,主机等待传感器的回复,之后主机将内部的寄存器地址发给从机,主机等候传感器的回复,主机暂停发送信息到从机。图3-4BH1750的内部结构图3.2.5显示电路节点显示电路节点是由STC12C5A60S2、LCD1602显示屏模块组成,1602液晶又称1602字符型LCD,是一种点阵型的液晶显示模块,用于显示字母、数字、符号等。LCD1602使用HD44780等其他相容性芯片作为主要控制芯片,它的显示容量为16×2个字符。在该控制器中,具有80×8比特(80字节)RAM缓冲区REF_Ref26081\r\h[9],其对应关系见图3-5所示。图3-5LCD1602显示器RAM缓冲区结构图REF_Ref26081\r\h[9]3.2.6驱动电路节点驱动电路节点是由单片机STC12C5A60S2、水泵驱动电路和蜂鸣器报警电路组成。该水泵的驱动电路包括一个限流电阻器R5,一个三极管Q2,一个继电器JK1。通过单片机发出浇水信号,P20端口输出低电平,三极管接通,继电器接通,抽水泵转动,给盆栽浇水。二极管D1是续流二极管,用来保护继电器的触点不被反电势烧损,电容C5起到减少干扰的作用。报警驱动电路是限流电阻R4、三极管Q1和蜂鸣器BP1构成,当P17端口输出了低电平,三极管接通,蜂鸣器得电鸣叫。3.2.7按键节点普通的以软件延迟的方法来消除颤动、判断是否按下按键的按键输入软件接口程序在一些简单的系统中可以使用,但在对系统实时性要求高的情况下,该方案的CPU使用率很低,会导致资源的浪费。此外,由于按键的功能在不同的产品体系中的定义和应用也是千变万化的,再加上单片机在进行测试、按键操作等工作时,又要同时进行显示、计算、计时等工作,所以编写键盘、按键接口的处理程序必须具有高效的分析方法。本设计使用状态机法,这是比较好的方案。例如,一个按键指令分析程序,可当作是一个状态机:在触发一个按钮时,原本处于A状态,转到B状态。再次按下另一个按键之后,转换为C状态,或者回到A的状态REF_Ref25989\r\h[10]。4系统硬件设计系统硬件设计主要为各个节点的硬件电路设计。各个节点中STC12C5A60S2与PC机之间通过Zigbee进行串口通信,STC12C5A60S2的串口RXD和TXD与Zigbee模块的3、2脚相连接。STC12C5A60S2主控电路图如图4-1所示:图4-1STC12C5A60S2主控电路图4.1Zigbee通信节点设计Zigbee通信节点的硬件电路设计:Zigbee通信节点由两个DL-20模块实现通信的。其中一个Zigbee的3、2脚和STC12C5A60S2的串口RXD和TXD相互连接;另一个Zigbee模块与PC机COM4串口相接。图4-2为Zigbee通信节点逻辑框图、图4-3为Zigbee通信节点原理图。图4-2Zigbee通信节点逻辑框图图4-3Zigbee通信节点原理图4.2土壤湿度节点设计土壤湿度节点的硬件电路设计:采用YL-69模块作为土壤湿度传感器模块,它的模拟量输出端AO和STC12C5A60S2中的P11进行AD变换,它的入口连接有一个土壤湿度探测器。图4-4为土壤湿度节点的逻辑框图、图4-5为土壤湿度节点原理图。图4-4土壤湿度节点逻辑框图图4-5土壤湿度节点原理图4.3温湿度节点设计温湿度节点的硬件电路设计:DHT11数字温度和湿度传感器由一个单线接口传送或接收

以数字量形式反映的环境的温湿度值,所以只需把单片机中的P24端口和DHT11的DATA口连接在一起,就能够实现把获得温湿度值传输至单片机。图4-6为温湿度节点的逻辑框图、图4-7为温湿度节点原理图。图4-6温湿度节点逻辑框图图4-7温湿度节点原理图4.4光照强度节点设计光照强度节点的硬件电路设计:本课题以BH1750FVI模块为光照强度传感器。BH1750FVI采用双线式串行总线,引出时钟线和数据线,单片机STC12C5A60S2通过IIC协议可以与BH1750模块通讯(SCL与P33、SDA与P34相连)可以将光照强度数据从BH1750寄存器中提取出来。图4-8是光照强度节点逻辑框图、图4-9是光照强度节点原理图。图4-8光照强度节点逻辑框图图4-9光照强度节点原理图4.5显示电路节点设计显示电路节点的硬件电路设计:该方案以LCD1602显示屏为显示单元,LCD1602模块与STC12C5A60S2单片机之间的通信可以通过8位并行传输方式实现。本方案以STC12C5A60S2的P0端口为数据线实现数据传输,并利用STC12C5A60S2的P2.5、P2.6、P2.7与LCD1602组件的EN、R/W、RS相连。图4-10为显示电路节点逻辑框图、图4-11为温湿度节点原理图。图4-10显示电路节点逻辑框图图4-11显示电路节点原理图4.6驱动电路节点设计驱动电路节点硬件电路设计:水泵驱动电路由限流电阻R5、三极管Q2和继电器JK1组成,当单片机STC12C5A60S2发出浇水信号时,P20口变成低电平,三极管接通,继电器接通,抽水泵得电旋转浇水;该报警驱动电路包括电流限制电阻R4,三极管Q1,蜂鸣器BP1,在单片机STC12C5A60S2发送缺水信号时,P17端口变成低电平,三极管接通,蜂鸣器接电产生鸣声REF_Ref17472\r\h[11]。图4-12为驱动电路节点逻辑框图、图4-13为驱动电路节点原理图。图4-12驱动电路节点逻辑框图图4-13驱动电路节点原理图4.7按键节点设计按键节点硬件电路设计:如图4-20所示,浇水的阈值设定和数值的加减由3个按键K1/K2/K3组成,并与P35/P36/P37接口分别进行了连接。图4-14为按键节点逻辑框图、图4-15为按键节点原理图。图4-14按键节点逻辑框图图4-15按键节点原理图5系统软件设计系统软件设计主要为各个节点的软件程序设计。5.1Zigbee通信节点设计Zigbee通信节点的软件程序设计:Zigbee通信的程序是基于两方面编写的,一方面是基于PC机通过Zigbee模块给单片机发送命令编写的,另一方面,是由单片机经过Zigbee模块给PC机发送环境数据所决定的。主要程序包括串口中断初始化函数、发送数据函数发送数字函数voidUart1Send(uint8c)、发送字符函数voidUart1Sends(char*at)、串行通信中断服务子程序、以及数据传输主程序。具体逻辑图如图5-1所示。图5-1Zigbee串口通信逻辑图5.2土壤湿度节点设计土壤湿度节点的软件程序设计:土壤湿度节点主要是土壤数据采集的模数转换(AD转换)和土壤湿度读取、判断程序。土壤湿度数据获得的模数转换(AD转换)方法思路:uint16ad(uint8j)函数为进行AD转换的驱动函数,P1.1口是通道号,输出的结果是AD转换值。首先,应该先给ADC上电和选择转换速度:ADC_CONTR=0xC0。通过ADC控制寄存器ADC_CONTR中的CHS2-CHS0来决定模拟信道的选取:ADC_CONTR|=0x09。在完成A/D变换之后,将最后变换结果存储在ADC变换结果寄存器ADC_RES与ADC_RESL里,土壤湿度值的计算见公式5-1。最后,设置ADC控制寄存器ADC_CONTR中的A/D变换终止标志位ADC_FLAG,用于程序查询或请求中断:ADC_CONTR&=0xE7REF_Ref25525\r\h[12]。(5-1)土壤湿度温度读取:土壤湿度值为smo=1024-ad(1)。土壤湿度判断:如果土壤湿度值低于阈值smo<set_smo,开水泵out_jsb=0;反之,关闭水泵out_jsb=1;如果土壤湿度值smo<(set_smo-100),提示缺水flag_qs=1;反之,flag_qs=0。土壤湿度的判断逻辑图如图5-2所示:图5-2土壤湿度的判断逻辑图5.3温湿度节点设计温湿度节点的软件程序设计:温湿度节点的逻辑图如图5-3所示,温湿度节点的程序最主要的部分是数据的获得,包含判定DHT11所传送的数据位为“1”或“0”,发送开始信号,和温湿度阈值判断程序。GetDate(void)为DHT11读数据函数,用数组dat_r[5]来存储DHT11发送给STC12C5A60S2的5个8bit的数据。判断DHT11发送的数据位是“1”还是“0”的程序代码中:#defineJUDGE30t=0;while(DATA&&++t);dat8<<=1;if(t>JUDGE) dat8+=1;elsedat8+=0;ReadTemperature()是用来读取温湿度值。温湿度阈值判断:如果环境温度值wendu>set_t,计时5分钟,如果仍然是wendu>set_t,开水泵out_jsb=0,持续30秒;反之,关闭水泵out_jsb=1;如果环境湿度值wendu>(set_t-2),提示缺水flag_qs=1;反之,flag_qs=0;如果环境湿度值shidu<set_shidu,计时5分钟,如果仍然是shidu<set_shidu,开水泵out_jsb=0,持续30秒;反之,关闭水泵out_jsb=1;如果环境湿度值shidu<(set_shidu-10%)提示缺水flag_qs=1;反之,flag_qs=0。图5-3温湿度节点的逻辑图5.4光照强度节点设计光照强度节点的软件程序设计:光照强度节点的程序可分为三个部分:一是IIC通信的基础协议,二是对光强数据的读取和写入,最后是与命令控制有关的功能编程。光照强度节点的逻辑图如图5-4:IIC通信中最基础的函数有:开始信号函数、终止信号函数、发送应答(或不应答)函数、传送1字节数据函数、接收1字节数据函数。光照强度的读写过程:我们对BH1750发送命令的时候,首先,BH1750器件地址被传送,最后一个位添加为写操作,接着发送器件的固定命令0x10,将BH1750设定为高分辨率检测数据模式,再发送器件地址,最后一个位添加为写操作,获取2个字节的信息后完成通信REF_Ref23468\r\h[13]。光照强度的计算公式如公式5-2所示:(5-2)同时读取光照值函数代码如下:uint16Readlight(void){ uint16l=0; floatll=0;Single_Write_BH1750(0x01);Single_Write_BH1750(0x10); DelaymS(180); Multiple_read_BH1750();l=BUF[0];l=(l<<8)+BUF[1]; ll=l/1.2; l=ll; if(l>9999){l=9999;} return(l);}光照强度阈值判断:如果光照强度高于阈值lx>set_lx,计时5分钟,如果仍然是lx>set_lx,开水泵out_jsb=0,持续30秒;反之,关闭水泵out_jsb=1;如果光照强度值lx>set_lx+10,提示缺水flag_qs=1;反之,flag_qs=0。图5-4光照强度节点的逻辑图5.5显示电路节点设计显示电路节点的软件编写设计:显示电路节点的程序分成三个部分。第一部分就是LCD1602的驱动模块,第二部分就是显示数据的输出程序,第三部分是指令控制相关的函数程序。软件逻辑图如图5-5所示。LCD1602的驱动模块主要是包括LCD接口的定义、指令集的定义、和底层协议的编写。LCD1602一共有16根引脚,其中RS、RW、EN三个引脚,编程主要是从这三个引脚开始初始化,编写指令,编写数据。LCD1602有四种基本的工作方式:当输入RS为0,RW为1,E为高脉冲,输出的结果是D0到D7为状态字时,这是读取状态的工作方式。当输入RS为1,RW为1,E为高脉冲,输出的结果是D0到D7为数据时,这是读取数据的工作方式。当输入RS为0,RW为0,E为高脉冲,没有输出时,这是编写命令的工作方式。当输入RS为1,RW为0,E为高脉冲时,没有输出时,这是编写数据的工作方式REF_Ref16714\r\h[14]。LCM1602的显示数据的输出程序主要包括:print()将48个字符以内的ASIIC字符串传送到LCD,print2()将48个字符以内的数字串传送到LCD。LCM1602的指令控制相关的函数程序主要包括:数据的显示、缺水、自动标志和四个阈值菜单的显示。图5-5显示电路节点逻辑图5.6驱动电路节点设计驱动电路节点软件编写设计:如图5-6,继电器节点程序为蜂鸣器、水泵的驱动程序。蜂鸣器的驱动程序主要是判断sbitout_beep=P1^7;是否置1。水泵的驱动主要是判断sbitout_jsb=P2^0;是否置1。图5-6继电器节点软件逻辑图5.7按键节点设计按键节点软件编写设计:如图5-7,按键节点主要采用的是基于状态机的按键设计方法,该节点的主要程序是按键处理程序和相应的按键菜单切换和数值加减程序。由状态机的按键设计方案,可把按键抽象成4种状态:①没有按下,假设S0;②如果按下键,假设S1;③键稳定,则假设S2;④键松开状态,假设为S3REF_Ref17687\r\h[15]。如图5-8所示。按键菜单切换和数值加减程序是通过按键切换相应的阈值设定菜单,数值的加减是通过K2/K3键实现。图5-7按键节点软件逻辑图图5-8按键的状态转移图REF_Ref17687\r\h[15]6系统功能测试该章对基于无线传感器网络的智能节水灌溉系统的数据采集、数据处理、射频模块功能展开了测试。以下是测试流程和实物图,总的分为四个部分来描述:Zigbee串口通信功能测试、数据获得与显示监测功能测试、自动功能测试、阈值设置以及手动功能测试。图6-1为系统的实物图,测试过程中,各个设备运作正常,可以成功实现第2章所描述的所有功能。图6-1基于无线传感器网络的智能节水灌溉系统的实物图①Zigbee串口通信功能测试Zigbee无线模块实现远程监控、命令等功能,通过串口发送命令执行相应的功能。其主要的命令菜单如图6-2所示:图6-2Zigbee串口通信主要的命令菜单A1:Turnontheirrigationswitch强制打开水泵。测试过程如图6-3所示:图6-3Zigbee串口通信A1强制打开水泵命令A2:Turnofftheirrigationswitch强制关闭水泵。测试过程如图6-4所示:图6-4Zigbee串口通信A2强制关闭水泵命令A3:Readcurrentdata读取当前状态。测试过程如图6-5所示:图6-5Zigbee串口通信A3读取当前状态命令Bxxxxxxxxxx:Setfourenvironmentalparameterthresholds。测试过程如图6-6所示,输入B3334070060,分别设置土壤湿度阈值为33.3%,温度阈值为40C,光照强度阈值为0700lx,湿度阈值为60%。图6-6Zigbee串口通信Bxxxxxxxxxx设置四个阈值命令Cxxx:setsoilmoisturethreshold。测试过程如图6-7所示,输入C400,设置土壤湿度阈值为40%。图6-7Zigbee串口通信Cxxx设置土壤湿度阈值命令Dxx:Settheambienttemperaturethreshold。测试过程如图6-8所示,输入D40,设置温度阈值为40C。图6-8Zigbee串口通信Dxx设置温度阈值命令Exxx:Setthelightintensitythreshold。测试过程如图6-9所示,输入E700,设置光照强度阈值为0700lx。图6-9Zigbee串口通信Exxx设置光照强度阈值命令Fxx:Settheambienthumiditythreshold。测试过程如图6-10所示,输入F60,设置湿度阈值为60%。图6-10Zigbee串口通信Fxx设置湿度阈值命令②数据获得与显示监测功能测试如图6-11所示,利用各个传感器获得土壤湿度、环境温湿度、光照强度等环境数据。利用LCD显示器显示当前读取的环境数据、当前缺水和灌溉状态。缺水时显示“!”,自动灌溉显示“A”,手动灌溉显示“S”。图6-11数据获得与显示监测功能测试③自动功能测试如果系统的土壤湿度<(阈值-10%),系统开始报警,当土壤湿度小于一定临界值时,系统会自动进行灌溉,当土壤湿度超过一定临界值时,停止灌溉。如果系统环境温度>(阈值-2。),系统开始报警,当温度高于一定临界值时,计时五分钟,如果仍处于高温,开始浇水30秒,环境温度低于设定值(阈值)后停止泵水。如果系统的环境湿度<(阈值-10%),系统开始报警,当湿度低于一定临界值时,计时五分钟,如果仍处于这个状态,开始浇水30秒,环境湿度高于设定值(阈值)后停止泵水。如果系统的光照强度>(阈值+10lx),系统开始报警,当光照强度高于一定临界值时,计时五分钟,如果仍处于这个状态,开始浇水30秒,光照强度低于设定值(阈值)后停止泵水。这里主要是对土壤湿度、光照强度这两个好控制的变量进行测试:设定土壤湿度的临界值40%,光照强度临界值0070lx。刚开始土壤湿度为(5.9%)低于设定临界值,开始浇水,等土壤湿度超过临界值停止浇水。刚开始光照强度为(0029lx)低于设定阈值,等到光照强度为(0138lx)高于阈值开始灌溉,计时五分钟,如果仍

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论