毕业设计(论文)ZIGBEE灌溉自动控制系统.doc

上传人:文库蛋蛋多 文档编号:3977284 上传时间:2023-03-30 格式:DOC 页数:33 大小:489.50KB
返回 下载 相关 举报
毕业设计(论文)ZIGBEE灌溉自动控制系统.doc_第1页
第1页 / 共33页
毕业设计(论文)ZIGBEE灌溉自动控制系统.doc_第2页
第2页 / 共33页
毕业设计(论文)ZIGBEE灌溉自动控制系统.doc_第3页
第3页 / 共33页
毕业设计(论文)ZIGBEE灌溉自动控制系统.doc_第4页
第4页 / 共33页
毕业设计(论文)ZIGBEE灌溉自动控制系统.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《毕业设计(论文)ZIGBEE灌溉自动控制系统.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)ZIGBEE灌溉自动控制系统.doc(33页珍藏版)》请在三一办公上搜索。

1、 编 号: 审定成绩: 重庆邮电大学毕业设计(论文)设计(论文)题目:ZIGBEE灌溉自动控制系统学 院 名 称 :软件学院学 生 姓 名 :专 业 :软件工程班 级 :1310701学 号 :指 导 教 师 :答辩组 负责人 :填表时间: 2011 年 5 月重庆邮电大学教务处制摘 要我国农业灌溉缺水是一个重要的问题,因此发展高效自动化的农业灌溉是最可行的出路。针对节水灌溉受多种因素影响难以建立精确控制模型的特点, 为了实现作物的自动、适时与适量灌溉, 设计了基于ZigBee 和模糊控制决策的全自动灌溉系统。该系统通过ZigBee 无线传感器网络采集土壤水势与环境气 象信息, 由农田蒸散量和

2、土壤水势作为输入, 以作物需水量为输出, 采用模糊推理规则, 使用分段模糊控制策略获得 了作物的需水量,构成智能灌溉系统;采用ARM9 微处理器, 基于嵌入式Linux 开发了网关节点,现了数据的汇聚 和GPRS 通信方式的远程数据及命令转发。试验结果表明: 该系统能快速准确地计算出作物的需水量, 经济实用,有效地实现了全自动节水灌溉, 特别适用于中小型灌溉区域的精细灌溉。【关键词】ZigBee; 自动灌溉; 控制系统;前 言农业是最基本也是最古老的行业,也是从古至今人类各行各业发展的基础。从农业的长远发展来看,灌溉系统是一个很关键的问题。由传统农业向现代化农业转变,必须要求农业科技有一个大的

3、发展,进行一次新的农业技术革命。要发展农业技术,首先就要从灌溉系统入手。灌溉系统自动化水平较低是制约我国高效农业发展的主要原因。传统的灌溉模式自动化程度极低,基本上属粗放的人工操作,即便对于给定的量,在操作中也无法进行有效的控制,为了提高灌溉效率,缩短劳动时间和节约水资源,必须发展自动灌溉控制系统。ZIGBEE无线传感器是作为灌溉系统控制和管理的有效工具,它便于操作,又可以提高操作的精确性,并且只要实现了自动控制系统,对操作员也不需要过高的要求。使用ZIGBEE灌溉自动控制系统不仅能够极大地减少农业灌溉所需的劳动力,并且还能进行比传统农业灌溉更为精确,更有效率的工作,从而达到提高农业产量和质量

4、,节约农业灌溉所需资源的目的。自动灌溉控制系统在我国的使用并不算普及,与欧美发达国家相比还有很大的差距,我国的农业基本上还没有实现农业自动化的普及。即使部分地方有自动灌溉控制系统,但是并没有实现高效节能的自动化,只是根据经验来按时定量地进行灌溉,这样并不能实现向高效化为目标发展的农业现代化。我国的自动灌溉控制系统的研制和使用尚处于起步阶段,因此,作为一个农业大国,中国研究开发自己的先进的低成本、使用维护方便、系统功能强且扩展容易的国产化自动灌溉器是一项极有意义的工作。随着计算机技术和传感器技术的迅猛发展,计算机和传感器的价格日益降低,可靠性日益提高,以信息技术发展农业已经成为了必然的趋势。用高

5、新技术改造农业产业,实施节水灌溉已成为我国农业乃至国民经济持续发展带战略性的根本大事。现在我需要设计的就是通过ZIGBEE无线传感器建立的自动灌溉控制系统,它能控制灌溉系统对作物进行适时、适量的灌水,起到高效灌溉,节水、节能的作用。日本,以色列以及欧美等农业发达国家都已实现了农业的自动化,而他们发展自动化的一个重要途径就是灌溉系统的自动化控制。他们采用先进的节水灌溉制度,由传统的充分灌溉向非充分灌溉发展,对灌区用水进行监测预报,实行动态管理,采用遥感技术,监测土壤墒情和作物生长,开发和制造了一系列用途广泛,功能强大的数字式灌溉控制器,并得到了广泛的应用。地处干早缺水地带的以色列,它是世界上微灌

6、技术发展最具有代表性的国家,目前全国农业土地基本上实现了灌溉管理自动化,并且普遍推行自动控制系统,按时、按量将水、肥直接送入作物根部,水资源利用率和单方水的粮食产量都相当高。北美、澳大利亚韩国等国家和地区都已有发展成熟并形成系列的灌溉控制器产品,微灌方式普遍采用计算机控制,埋在地下的湿度传感器可以传回有关土壤水分的信息,还有的传感器系统能通过检测植物的茎和果实的直径变化来决定对植物的灌水间隔。计算机化操作运行精密、可靠、节省人力,对灌溉过程的控制可达到相当的精度,在以色列,已经出现了在家里利用电脑对灌溉过程进行全部控制(无线、有线)的农场主。我国是一个水资源严重缺乏和水旱灾害频繁发生的国家,农

7、业用水量大且农业灌溉用水率普遍十分低下,这对于我国农业发展是一个极大的制约。因此,在这样的背景下,解决农业自动灌溉的问题是十分重要的。为灌溉系统合理地发展自动化控制,不仅可以提高资源利用率,缓解水资源日趋紧张的矛盾,还可以增加农作物的产量,降低农产品的成本。通过ZIGBEE无线传感器测量农田的周边环境信息来实现农业灌溉的自动化控制。ZIGBEE作为一种新兴的近距离、低复杂度、低功耗、低数据速率、低成本的无线网络技术,它依据802.15.4标准,在数千个微小的传感器之间相互协调实现通信。这种传感器耗能极低,通过无线传输将数据从一个传感器传至另一个传感器,因此ZIGBEE通信效率非常高。ZIGBE

8、E灌溉控制系统通过将传感器和芯片以网状埋设于农田各地,在通过无线传输将农田信息传递至控制系统,然后再由控制系统分析数据,从而实现自动灌溉。第一章 ZIGBEE概述第一节 ZIGBEE技术的发展历史及趋势Zigbee是IEEE 802.15.4协议的代名词。与蓝牙相似 ,根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。这个名称最初是源于蜜蜂的舞蹈,由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。它的特点是低复杂度、近距离、自组织、低数据速率、低功耗、低成本。主要适合用于自动控制和远程控制领

9、域,可以嵌入各种设备。早在上世纪末,就已经有人在考虑发展一种新的通信技术,用于传感控制应用,这个想法后来在IEEE802.15工作组当中提出来,于是就成立了TG4工作组,并且制定了规范IEEE802.15.4。但是IEEE802的规范只专注于底层,要达到产品的互操作和兼容,还需要定义高层的规范,于是2002年ZigBeeAlliance成立,正式有了“ZigBee”这个名词。两年之后,ZigBee的第一个规范ZigBeeV1.0诞生,但这个规范推出的比较仓促,存在一些错误,并不实用。此后ZigBeeAlliance又经过两年的努力,推出了新的规范ZigBee2006,这是一个比较完善的规范。据

10、联盟最新的消息,今年年底将会发布更新版本的规范ZigBee2007,这个版本增加了一些新的特性。从ZigBee的发展历史可以看到,它和IEEE802.15.4有着密切的关系,事实上ZigBee的底层技术就是基于IEEE802.15.4的,因此有一种说法认为ZigBee和IEEE802.15.4是同一个东西,或者说“ZigBee”只是IEEE802.15.4的名字而已,其实这是一种误解。实际上ZigBee和IEEE802.15.4的关系,有点类似于WiMAX和IEEE802.16,Wi-Fi和IEEE802.11,Bluetooth和IEEE802.15.1。“ZigBee”可以看作是一个商标,

11、也可以看作是一种技术,当把它看作一种技术的时候,它表示一种高层的技术,而物理层和MAC层直接引用IEEE802.15.4。事物是不断的发展变化的,尤其是通信技术,可以想象将来的ZigBee可能不会使用IEEE802.15.4定义的底层,就跟蓝牙(Bluetooth)宣布下一代底层采用UWB技术一样,但是“ZigBee”这个商标以及高层的技术还会继续保留。第二节 ZIGBEE技术的分析一、 ZIGBEE基于几种无线通信的比较我们无法预料将来ZigBee会基于怎样的底层技术,只好从它现在的底层IEEE802.15.4开始了解,IEEE802.15.4包括物理层和MAC层两部分。ZigBee工作在三

12、种频带上,分别是用于欧洲的868MHz频带,用于美国的915MHz频带,以及全球通用的2.4GHz频带,但这三个频带的物理层并不相同,它们各自的信道带宽分别是0.6MHz,2MHz和5MHz,分别有1个,10个和16个信道。不同频带的扩频和调制方式也有所区别,虽然都使用了直接序列扩频(DSSS)的方式,但从比特到码片的变换方式有比较大的差别;调制方面都使用了调相技术,但868MHz和915MHz频段采用的是BPSK,而2.4GHz频段采用的是OQPSK。物理层部分非常简单,而IEEE802.15.4芯片的低价格正是得益于底层的简单性。可能我们会担心它的性能,但我们可以再看看它和Bluetoot

13、h/IEEE802.15.1以及WiFi/IEEE802.11的性能比较,在同样比特信噪比的情况下,IEEE802.15.4要优于其他两者。直接序列扩频技术具有一定的抗干扰效果,同时在其他条件相同情况下传输距离要大于跳频技术。在发射功率为0dBm的情况下,Bluetooth通常能有10m作用范围,而基于IEEE802.15.4的ZigBee在室内通常能达到3050m作用距离,在室外如果障碍物较少,甚至可以达到100m作用距离;同时调相技术的误码性能要优于调频和调幅技术。因此综合起来,IEEE802.15.4具有性能比较好的物理层。另一方面,我们可以看到IEEE802.15.4的数据速率并不高,

14、对于2.4GHz频段只有250kb/s,而868MHz频段只有20kb/s,915MHz频段只有40kb/s。因此我们完全可以把它归为低速率的短距离无线通信技术。图1.1 几种无线技术通信性能比较二、 ZIGBEE协议栈概述物理层的上面是MAC层,它的核心是信道接入技术,包括时分复用GTS技术和随机接入信道技术CSMA/CA。不过ZigBee实际上并没有对时分复用GTS技术进行相关的支持,因此我们可以暂不考虑它,而专注于CSMA/CA。ZigBee/IEEE802.15.4的网络所有节点都工作在同一个信道上,因此如果邻近的节点同时发送数据就有可能发生冲突。为此MAC层采用了CSMA/CA的技术

15、,简单来说,就是节点在发送数据之前先监听信道,如果信道空闲则可以发送数据,否则就要进行随机的退避,即延迟一段随机时间,然后再进行监听,这个退避的时间是指数增长的,但有一个最大值,即如果上一次退避之后再次监听信道忙,则退避时间要增倍,这样做的原因是如果多次监听信道都忙,有可能表明信道上的数据量大,因此让节点等待更多的时间,避免繁忙的监听。通过这种信道接入技术,所有节点竞争共享同一个信道。在MAC层当中还规定了两种信道接入模式,一种是信标(beacon)模式,另一种是非信标模式。信标模式当中规定了一种“超帧”的格式,在超帧的开始发送信标帧,里面含有一些时序以及网络的信息,紧接着是竞争接入时期,在这

16、段时间内各节点以竞争方式接入信道,再后面是非竞争接入时期,节点采用时分复用的方式接入信道,然后是非活跃时期,节点进入休眠状态,等待下一个超帧周期的开始又发送信标帧。而非信标模式则比较灵活,节点均以竞争方式接入信道,不需要周期性的发送信标帧。显然,在信标模式当中由于有了周期性的信标,整个网络的所有节点都能进行同步,但这种同步网络的规模不会很大。实际上,在ZigBee当中用得更多的可能是非信标模式。MAC层往上就属于ZigBee真正定义的部分了,我们可以参看一下ZigBee的协议栈。底层技术,包括物理层和MAC层由IEEE802.15.4制定,而高层的网络层、应用支持子层(APS)、应用框架(AF

17、)、ZigBee设备对象(ZDO)和安全组件(SSP),均由ZigBeeAlliance所制定。图1.2 ZigBee协议栈这些部分当中最下面的是网络层。和其他技术一样,ZigBee网络层的主要功能是路由,路由算法是它的核心。目前ZigBee网络层主要支持两种路由算法树路由和网状网路由。树路由采用一种特殊的算法,具体可以参考ZigBee的协议栈规范。它把整个网络看作是以协调器为根的一棵树,因为整个网络是由协调器所建立的,而协调器的子节点可以是路由器或者是末端节点,路由器的子节点也可以是路由器或者末端节点,而末端节点没有子节点,相当于树的叶子。这种结构又好像蜂群的结构,协调器相当于蜂后,是唯一的

18、,而路由器相当于雄蜂,数目不多,末端节点则相当于数量最多的工蜂。其实有很多地方仔细一想,就可以发现ZigBee和蜂群的许多暗合之处。树路由利用了一种特殊的地址分配算法,使用四个参数深度、最大深度、最大子节点数和最大子路由器数来计算新节点的地址,于是寻址的时候根据地址就能计算出路径,而路由只有两个方向向子节点发送或者向父节点发送。树状路由不需要路由表,节省存储资源,但缺点是很不灵活,浪费了大量的地址空间,并且路由效率低,因此常常作为最后的路由方法,或者干脆不用。ZigBee当中还有一种路由方法是网状网路由,这种方法实际上是AODV路由算法的一个简化版本,非常适合于低成本的无线自组织网络的路由。它

19、可以用于较大规模的网络,需要节点维护一个路由表,耗费一定的存储资源,但往往能达到最优的路由效率,而且使用灵活。除了这两种路由方法,ZigBee当中还可以进行邻居表路由,其实邻居表可以看作是特殊的路由表,只不过只需要一跳就可以发送到目的节点。网络层的上面是应用层,包括了APS、AF和ZDO几部分,主要规定了一些和应用相关的功能,包括端点(endpoint)的规定,还有绑定(binding)、服务发现和设备发现等等。其中端点是应用对象存在的地方,ZigBee允许多个应用同时位于一个节点上,例如一个节点具有控制灯光的功能,又具有感应温度的功能,又具有收发文本消息的功能,这种设计有利于复杂ZigBee

20、设备的出现。而绑定是用于把两个“互补的”应用联系在一起,如开关应用和灯的应用。更通俗的理解,“绑定”可以说是通信的一方了解另一方的通信信息的方法,比如开关需要控制“灯”,但它一开始并不知道“灯”这个应用所在的设备地址,也不知道其端点号,于是它可以广播一个消息,当“灯”接收到之后给出响应,于是开关就可以记录下“灯”的通信信息,以后就可以根据记录的通信信息去直接发送控制信息了。服务发现和设备发现是应用层需要提供的,ZigBee定义了几种描述符,对设备以及提供的服务可以进行描述,于是可以通过这些描述符来寻找合适的服务或者设备。ZigBee还提供了安全组件,采用了AES128的算法对网络层和应用层的数

21、据进行加密保护,另外还规定了信任中心的角色全网有一个信任中心,用于管理密钥和管理设备,可以执行设置的安全策略。三、 ZIGBEE性能分析上面对ZigBee协议栈作了一些介绍,要知道ZigBee能胜任什么工作,还需要作进一步的分析,主要有几个方面:数据速率、可靠性、时延、能耗特性、组网和路由。ZigBee的数据速率比较低,在2.4GHz的频段也只有250kb/s,而且这只是链路上的速率,除掉帧头开销、信道竞争、应答和重传,真正能被应用所利用的速率可能不足100kb/s,并且这余下的速率也可能要被邻近多个节点和同一个节点的多个应用所瓜分。所以我们不能奢望ZigBee去做一些如传输视频之类的高难度的

22、事情,起码目前是这样,而应该聚焦于一些低速率的应用,比如人们早就给它找好的一个应用领域传感和控制。至于可靠性,ZigBee有很多方面进行保证,首先是物理层采用了扩频技术,能够在一定程度上抵抗干扰,而MAC层和应用层(APS部分)有应答重传功能,另外MAC层的CSMA机制使节点发送之前先监听信道,也可以起到避开干扰的作用,网络层采用了网状网的组网方式,从源节点到达目的节点可以有多条路径,路径的冗余加强了网络的健壮性,如果原先的路径出现了问题,比如受到干扰,或者其中一个中间节点出现故障,ZigBee可以进行路由修复,另选一条合适的路径来保持通信。据了解,在最新的ZigBee2007协议栈规范当中,

23、将会引入一个新的特性频率捷变(frequencyagility),这也是ZigBee加强其可靠性的一个重要特性。这个特性大致的意思是当ZigBee网络受到外界干扰,比如Wi-Fi的干扰,无法正常工作时,整个网络可以动态的切换到另一个工作信道上。图2.1ZigBee可靠的网状网组网方式图2.2ZigBee网络受到外部干扰图2.3通过更换路径避开干扰时延也是一个重要的考察因素。由于ZigBee采用随机接入MAC层,并且不支持时分复用的信道接入方式,因此对于一些实时的业务并不能很好支持。而且由于发送冲突和多跳,使得时延变成一个不易确定的因素。能耗特性是ZigBee的一个技术优势。通常情况下,ZigB

24、ee节点所承载的应用数据速率都比较低,在不需要通信的时候,节点可以进入很低功耗的休眠状态,此时能耗可能只有正常工作状态的千分之一。由于一般情况下休眠的时间占总运行时间的大部分,有时可能正常工作的时间还不到1%,因此达到很高的节能效果。在这种情况下,ZigBee的网络有可能依靠普通的电池连续运转一两年。当然,ZigBee节点能够方便的在休眠状态和正常运行状态之间灵活的切换,和它底层的特性是分不开的。ZigBee从休眠状态转换到活跃状态一般只需要十几毫秒,而且由于使用直接扩频而不是跳频技术,重新接入信道的时间也很快。最后是组网和路由特性,它们属于网络层的特性,ZigBee在这方面做得相当出色。首先

25、是大规模的组网能力ZigBee可以支持每个网络多达六万多个节点,相比之下,Bluetooth只支持每个网络8个节点。这是因为ZigBee的底层采用了直扩技术,如果采用非信标模式,网络可以扩展得很大,因为不需要同步。而且节点加入网络和重新加入网络的过程也很快,一般可以做到一秒以内甚至更快,而Bluetooth通常需要3s时间。在路由方面,ZigBee支持可靠性很高的网状网的路由,因此可以布设范围很广的网络,并且支持多播和广播的特性,能够给丰富的应用带来有力的支撑。四、 ZIGBEE应用分析作为一种低速率的短距离无线通信技术,ZigBee有其自身的特点,因此应该有为它量身定做的应用,尽管在某些应用

26、方面可能和其他技术重叠。我国是一个水资源缺乏和水旱灾害频繁发生的国家。我国农业用水量约占总用水量的80%左右,由于农业灌溉用水的利用率普遍低下,就全国范围而言,水的利用率仅为45%,而水资源利用率高的国家已达70%80%,因而,解决农业灌溉用水的问题,对于缓解水资源的紧缺是非常重要的。灌溉系统通过ZigBee传输信号与internet互联,及时采集各个区域的土壤湿度及环境信息,从而有效控制灌溉区域的用水,合理判断灌溉时间,达到高效节水灌溉的目的,提高灌溉效率。采用无线数字通信模块实现对农田灌溉进行无线监测与控制,以提高水资源利用率,促进农业良性循环。以期实现农田灌溉的节水自动化、无线远程监测、

27、智能化控制,并且提供低成本、低能耗、易操作解决方案,促进农业现代化的发展。第二章 自动灌溉系统的设计第一节 背景介绍我国自近代以来,随着农业资本化、企业化经营方式的发展,纯粹农业劳动者的人数越来越少,大批农村人口转化为城市工业人口,促使农业生产技术、劳动力结构等发生一系列的深刻变化,最终形成了现代大农业替代传统农业的一场农业生产力革命。就世界范围而言,全球总人口不断增加,而同期的世界粮食总产量增加速度却远远超过人口的增长速度,因而世界人均占有粮食量也提高了一半以上。总之,世界农业现代化是与工业化、城市化相伴而生的,其实质和核心是化“农”,就是农民比重大幅减少、农业比重大幅下降、城市化水平大幅提

28、高的历史演进过程。世界农业现代化发展的历史经验表明,资本参与利润平均化的规律与国家支持保护农业的政策是并行不悖的。坚持走中国特色农业现代化道路,必须顺应当今世界农业发展的基本趋势和规律。目前我国与西方发达国家相比,发展现代农业既面临着“人口多、耕地少”的资源性约束,又面临着工农、城乡发展失衡的二元结构和体制性制约。特别是经过了30年的农村改革,我国户均拥有0.5公顷耕地的超小型家庭经营格局基本没有得到改变,这样就造成了发展现代农业与小农经济之间的矛盾、发展现代农业投入大与农业比较效益低之间的矛盾。这是制约我国现代农业发展的两大根本原因。要解决这样的矛盾就要从农业现代化发展的高效率,低成本,低能

29、耗发展起来。自动控制节水灌溉技术的高低代表着农业现代化的发展状况,灌溉系统自动化水平较低是制约我国高效农业发展的主要原因,因此,要解决我国农业长久以来的矛盾就需要从灌溉系统的自动化做起,自动灌溉系统可以有效低节约水资源,从而降低农业成本,提高效率,以达到提高农业收益的目的,这对于我国农业自动化的发展是十分有利的。第二节 需求分析一、 功能需求 ZIGBEE灌溉自动控制系统是要以控制系统为核心来实现整个灌溉系统的运行和操作。而系统需要设计出几个模块,让用户针对自己的需要来进行操作。灌溉模块,需要实现的功能有:1.程序所控制的灌溉阀门或阀门组2.自动灌溉的日期范围3.灌溉周期的间隔天数和自动灌溉的

30、次数4.灌溉序列的设计5.设定灌溉的水量和每一次灌溉的灌溉时间警报模块,需要实现的功能有:1.灌溉流量过高或过低即报警2.灌溉压力监控报警程序3.阀门等控制设备异常报警程序4.程序异常报警程序此外,用户还可以通过手动操作停止正在运行的自动控制程序转换成手工操作模式,并且自动灌溉的每一个功能都能够在自动控制和手动控制之间转换,并且不会影响其他的功能运行。该系统还需要能够采集数据信息,当系统正在运行时,显示当前系统的运行状况,显示已灌水量,工作时间,剩余时间和出错信息。显示上一次的总灌溉水量和累计的灌溉水量。显示下一次的灌溉时间和已执行的灌溉的确认信息。并且按时间记录过去的所有控制器的执行信息和出

31、错信息。二、 灌溉控制系统需求说明2.1用例图图3.1 灌溉控制模块用例图2.2 需求说明可用性需求详细要求1界面美观简洁2保证界面易懂且便于操作3为操作员随便采集数据信息可靠性需求详细要求1保证系统24小时运行2支持数据的导入与导出,便于发生事故后恢复3当自动灌溉故障时,能随时切换至手动操作性能需求详细要求1确保数据的时效性和准确性2保证足够的数据吞吐量3保证系统能在24小时内恢复可支持性需求详细要求1预留数据导出和导入的接口表1 灌溉控制系统需求说明三、 灌溉控制系统需求说明在对ZIGBEE灌溉自动控制系统作出了全面细致的需求分析后,明确了该系统应具有的功能、性能与界面,在更加清楚用户需求

32、后,我们将在此基础上更进一步做出设计和开发工作。在这个系统中,用户输入数据后,如图3.2数据传输到协调器,协调器分析处理数据后将数据传输至ZIGBEE无线传感器,再由传感器控制水泵灌溉,之后传感器收集环境信息和灌溉数据反馈给协调器,再由协调器分析数据,如果异常则弹出警告,正常则传输至数据库,最后由数据库将采集的信息显示到操作员界面。为了更好地体现出用户的要求以及用户与数据间的关系,我特意用ER图表示出来,操作员控制自动灌溉的数据以及切换成手动或者自动,传感器将各种信息收集起来最终反馈至操作员,如图3.3。操作员ZIGBEE灌溉自动控制系统协调器登录设定自动控制参数ZIGBEE无线传感器灌溉水泵

33、分析处理数据采集灌溉数据数据出现异常否弹出警告界面是数据库 图3.2 ZIGBEE灌溉自动控制系统数据流图操作员灌溉阀门灌溉日期范围灌溉次数及周期手动/自动控制灌溉水量及时间灌溉序列采集数据信息N1已灌水量工作时间剩余时间出错信息湿度累计灌水量土壤信息图3.3 ZIGBEE灌溉自动控制系统数据E-R图第三节 总体设计3.1 总体设计的目的 总体设计又称为基本概要设计,它的基本目的就是概括地给出系统实现的方案。在这里我将ZIGBEE灌溉自动控制系统的总体设计分为两个阶段:结构设计和软件设计。总体设计是系统设计的一个重要阶段,它将一个比较笼统的项目逐步细化成为具体的工作,最终把这些工作综合成一个高

34、技术、低成本、高效率、能协调运转的实际系统3.2系统功能结构设计系统结构设计定义系统和各个模块之间的关系,根据系统需求分析中的功能分析便得到了系统功能结构图(图3.2)用户进入ZIGBEE灌溉自动控制系统,登录后跳转至操作员界面,进入操作员界面后会显示采集的数据,如:灌溉水量,灌溉信息及系统信息等。自动/手动转换:在操作员界面可以把自动灌溉系统在自动和手动之间切换。灌溉控制:由操作员界面进入灌溉功能模块,进入灌溉功能后则可以控制各种灌溉功能,并且每一种功能都可以在自动和手动间单独切换且不影响其它功能的模式。警报功能:当满足警报条件,如:灌溉流量过高或过低、阀门等设备异常、程序异常等情况,就会在

35、操作员界面弹出警报,提示操作员出现的异常。数据信息采集:显示在操作员界面上的数据,比如:上次总灌溉量和累计灌溉量、已执行的灌溉信息等,操作员可通过这些信息分析灌溉农田的情况。ZIGBEE自动灌溉控制系统操作员界面灌溉控制灌溉阀门控制灌溉日期范围控制灌溉次数及周期控制灌溉水量及时间设定灌溉序列设定警报功能自动/手动转换数据信息采集图3.2 系统功能结构图3.3系统整体架构设计用户进入ZIGBEE灌溉自动控制系统后,系统将信号发送至协调器,协调器分析数据,最后与ZIGBEE无线传感器融合控制水泵灌溉,然后协调器通过传感器对水泵进行数据监测,传感器再将数据发送至协调器,协调器将数据保存进数据库,数据

36、库再将数据显示到控制系统界面。ZIGBEE自动灌溉控制系统ZIGBEE无线传感器灌溉水泵数据库协调器图3.3 ZIGBEE灌溉自动控制系统整体架构图第三章 ZIGBEE自动灌溉系统的实现第一节 CC2430芯片的应用一、 CC2430芯片简述CC2430是由Chipcon公司推出的芯片,它是专门用来实现嵌入式ZIGBEE应用的片上系统。它支持2.4GHZ IEEE 802.15.4/zigbee协议。CC2430芯片采用0.18 m CMOS工艺生产,工作时的电流损耗为27 mA;在接收和发射模式下,电流损耗分别低于 27 mA或25 mA。由于CC2430拥有休眠模式和转换到主动模式的时间超

37、短的特性,十分适合那些对于电池寿命要求较长的应用。 图4.1 CC2430内部结构示意图二、 CC2430芯片特点CC2430/CC2431芯片的主要特点如下: 高性能和低功耗的8051微控制器核。 集成符合IEEE802.15.4标准的2.4 GHz的RF无线电收发机。 优良的无线接收灵敏度和强大的抗干扰性。 在休眠模式时仅0.9a的流耗,外部的中断或RTC能唤醒系统,在待机模式时少于0.6a的流耗,外部的中断能唤醒系统。 硬件支持CSMA/CA功能。 较宽的电压范围(2.03.6V)。 数字化的RSSI/LQI支持和强大的DMA功能。 具有电池监测和温度感测功能。 集成了14位模数转换的A

38、DC。 集成AES安全协处理器。 带有2个强大的支持几组协议的USART,以及1个符合IEEE 802.15.4规范的MAC计时器,1个常规的16位计时器和2个8位计时器。 ZIGBEE/802.15.4全兼容的硬件层,物理层。 集成1个高精度定位跟踪引擎。 较少外围电路。 强大和灵活的开发工具。第二节 系统软件的实现实现无线网络组网是系统软件实现的主要人物,传感器工作的控制以及数据的无线收发。本系统所用的开发环境是IAR Embedded Work-bench7.20,采用的协议栈为TI的Z-STACK5。系统将协调器通过串口RS232和上位机(PC)相连,通过人机交互的方式可以对局部监测区

39、域的传感器进行数据采集监测,也可对整个监测区域做数据融合后,对整个监测区域有宏观把握。由于对监测区域要有宏观的把握。为实现这一功能,必须知道每个传感器节点的网络地址,这就需要每个传感器设备在加入网络后把网络地址发送给协调器,协调器收到传感器网络地址后建立地址表存储起来,以便用户要求采集数据时依据地址表来采集每个传感器的数据。系统的软件由C 语言编写, 主要包括数据采集和数据传递的程序。其包括初始化程序、网络的建立、数据采集、数据传送等。IAR生成的目标代码分为调试版本(Debug)和发行版本(Release)两种,其中Debug目标代码的地址定义在SRAM中,将被下载到SRAM中执行; Rel

40、ease目标代码的地址定义在Flash中,最终大部分在Flash中执行。程序编译以后没有错误和警告就可以下载到CC2430芯片中。一、 协调器节点软件设计当协调器收到信息时,根据数据的第1个标识字符来判断是传感器的网络地址还是传感器采集的数据。若是传感器的网络地址,则把该网络地址存储在地址表里,然后把网络地址通过串口发给上位机,由上位机做进一步处理;若是传感器采集的数据信息,则需通过标识符进一步判断;如果用户是局部监测区域数据采集请求,则把该数据显示给用户,否则就是用户采集整个监测区域的融合后的数据。这时,需要把该数据存到临时数组里,依据地址表采集下一个传感器的数据信息,待把整个监测区域的传感

41、器数据采集完毕后,根据临时数组里的数据做融合,并把最终结果显示给用户。当用户通过上位机监测系统发送局部监测区域数据请求时,该区域传感器的网络地址会通过串口发给协调器,协调器会根据该网络地址进行数据采集;当用户发送整个监测区域加权平均的数据请求时,协调器会根据地址表中的网络地址,依次采集传感器的数据后做数据融合。协调器节点软件设计的流程如图4.2所示。图4.2 协调器节点软件流程图本设计采用的是星状网络拓扑,它包括一个数据中心(Access Point),数据中心主要负责网络管理。数据中心为终端节点(End Devices)提供数据存储、转发等,并管理网络内设备成员权限、连接权限以及安全等。数据

42、中心还可以支持终端设备的功能扩展,如在网络中它可以自动实例化终端设备的传感器。 一个网络地址由两个部分构成:一个物理地址(由程序设置)和一个应用层地址即PORT。物理地址是在程序编译的时候就已经设定,网络中每一个设备必需要分配网络中唯一的硬件物理地址。物理地址的长度限制在四个无符号字节以内。而且 CC2430 第一个地址字节不能是 0x00 或者 0xff。在这两个射频芯片工作时帧格式已经定了第一个字节 0X00 和 0xff会被认为是广播帧。 应用程序接口地址(PORT)是在设备加入网络,网络连接的过程序中分配,是不受用户干涉的。 下面介绍协调器建立网络时用到的关键程序函数。nwk_join

43、.c:程序块。 sLinkToken = 0xDEADBEEF:连接标志。 static void smpl_send_join_reply(mrfiPacket_t *frame):加入应答。 void saveAddress(mrfiPacket_t *frame):AP 存放加入进来的终端设备地址。 uint8_t isJoined(mrfiPacket_t *frame):判断设备是不是重复加入网络。 smplStatus_t nwk_join(void):网络加入函数。 nwk_globals.c:程序块。 void nwk_globalsInit(void) :初始化该设备网络中的

44、四字节地址,将存放于 ROM 中的地址调入 RAM 中方便以后调用。 addrt const *nwk_getMyAddress(void):取出本机地址 返回指向地址的指针。 void nwk_setMyAddress(addr_t *addr):用户程序手动设置该设备在网络中的地址。 void nwk_setAPAddress(addr_t *addr):设置加入到的网络的地加入过程中读回的AP的地址。 addr_t const *nwk_getAPAddress(void):取回设备网络的地址,即设备所在 AP 的地址。 MRFI_SetRxAddrFilter(uint8_t *)nw

45、k_getMyAddress():设置接收匹配地址。 MRFI_EnableRxAddrFilter():打开接收地址匹配。 二、 传感器节点软件设计传感器节点上电后,首先进行系统的初始化,然后选择信道并加入现有的ZigBee无线网络,休眠等待接收信号,当接收到网关节点发出的查询信号后,进行数据的采集并发送回协调器节点。设备上电后将扫描信道,加入合适的网络,加入网络后将把16位网络地址发给协调器。设备工作时将周期地轮询路由器,看是否有采集数据的命令信息。若有,则采集数据并把数据发给协调器,否则继续侦听信道。传感器节点软件设计的流程如图4.3所示。图4.3 传感器程序流程图三、 数据传输ZigB

46、ee技术的数据传输模式分为3种数据传输类型:第1种是从设备向主协调器送数据;第2种是主协调器发送数据,从设备接收数据;第3种是在两个从设备之间传输数据。对于星型拓扑结果的网络来说,由于该网络结构只允许在主协调器和从设备之间交换数据,因此,只有两种数据传输类型。下面分别介绍数据发送和接收程序中用的主要函数:应用程序通过调用aplSendMSG()函数发送消息包。此函数的定义如下:aplSendMSG()BYTE dstMode,/目标地址的地址模式LADDR_UNION * dstADDR, /目的地址的指针BYTE dstEP, /目标端点(直接消息方式不用)BYTE cluster, /簇号(仅用于直接消息)BYTE scrEP, /消息源端点BYTE* pload, /用户数据缓冲区指针BYTE plen, /缓冲区字节数BYTE tsn, /消息的事务队列数BYTE reqack /如果非0则要求确认)消息从源节点的源端点发送到目标节点的目标端点。消息分直接消息(指定了目标地址)和非直接消息(仅定义了源节点、源端点和簇,没有指定目标地址)。端点号从1到255由应用程序设置(端点0由栈保留使用)。消息发送以,协议栈会向父节点路由此消息。如果收到APS的ack确认,协议栈就会将消息发送给目标端点。协议栈使用以下AP

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号