资源描述
青岛农业大学毕 业 论 文(设计)题 目: 基于Zigbee农业灌溉系统设计 姓 名: 学 院: 机电工程学院 专 业: 电气工程及其自动化 班 级: 2010.03 学 号: 20102522 指导教师: 白皓然 2014年 6月16日目 录摘 要IAbstractII1绪论11.1选题背景及研究意义11.2国内外发展概况11.3研究内容及目标22系统总体设计32.1Zigbee技术42.2ASP.NET远程网站控制42.3后台服务程序设计52.4产品销售架构的实现53 硬件电路的设计及实现63.1 CC2530Zigbee无线传输网络63.1.1 CC2530及协议栈简介63.1.2组网及传感器连接63.2模型网络-青岛农业大学校园网络介绍103.3 IIS(Internet Information Services)服务器原理123.3.1 IIS及Framework简介123.3.2网络服务器配置123.3.3ASP网站发布与访问133.4温室模型的设计143.4.1各等级电压设计153.4.2继电器电路设计153.4.3温室大棚模型结构及接线箱154系统软件设计与实现184.1 登录设计184.2后台程序主界面204.3综合管理界面214.3.1 串口通信方式214.3.2远程访问方式224.3.3手动模式指令控制254.4附加功能264.5数据库建立及操作274.5.1数据库创建及表格设计284.5.2 GridView和SqlDataSource控件连接数据294.5.3 数据更新304.6网站母板页设计314.7网站后台设计325 系统组装调试345.1各集成开发环境(IDE)介绍345.2网站操作355.3接线及后台服务程序设置37参考文献38致谢40附录I:Zigbee应用层部分程序41附录II:后台服务程序部分47附录III:网站部分511网站管理界面代码512关于系统界面设计53附录IV:网站截图54基于Zigbee农业灌溉系统设计摘 要我国地大物博,但人均资源相对匮乏,农业是国家的基础产业,水资源作为农业发展的重要制约因素。十八届三中全会以来提出的农业现代化的发展理念逐步深入,更好的发展农业实现智能控制的现代化农业模式成为必然。本设计下位机以CC2530处理器为核心,构建了农业温室信息Zigbee无线采集网络系统。上位机通过ASP.NET语言,在IDE中与数据库结合构建一个网站服务器。服务器后台程序定时检测终端节点的实时农业温室信息,并发送控制指令。通过手机和网络客户端可以实时操控灌溉水泵、通风泵及补光系统。实物模型验证了本系统的可靠性。关键词:农业物联网;远程控制;Zigbee;ASP网站The design of agricultural irrigation system based on ZigbeeAbstractThe land of china is vast, but the per capita resources are relatively scarce, agriculture is the basic industries of China, and water resources is an important factor restricting the development of agriculture. Agricultural modernization development concept was put forward since the Third Plenary Session of eighteen gradual deepening. So the development of modern agriculture intelligent control agricultural model becomes inevitable.The lower machine was designed by CC2530 as processor core, and the greenhouse agriculture information wireless network acquisition system was built based on Zigbee. By ASP.NET language the PC and a database in the IDE build a web server. Agricultural greenhouses real-time information was collected by the server through timing detection, and send control commands. The irrigation pumps, ventilation, fan systems can be controlled real-timely through mobile phones and network clients. Physical model hacve verify the reliability of this system.Keywords: things agriculture; remote control; Zigbee; ASP Website 50青岛农业大学机电工程学院本科毕业设计(论文)1绪论1.1选题背景及研究意义近年来,农业现代化概念逐步深入推广,尤其是十八届三中全会关于全面深化改革的推动,在农业土地流转制度下新型农民需要种植大量的田地,而关于如何更精确更高效的完成作物日常管理是当前急需解决的问题。智能灌溉是一个理念,现在国外温室环境控制技术正朝着高科技方向发展,网络技术、遥感技术已逐渐应用到温室大棚智能控制系统中让农业管理可以快捷的实现1。同时这也是一种趋势,因为多元化的生活方式要求我们身处不同的地域,而网络则是连接这一切的通道。农业的应用是一个极佳的物联网应用开发方向,一方面作为我国的一种基础产业,农业的重要地位不言而喻;另一方面,在我国悠久农业种植历史中,人力劳作的状况持续了几千年,如何更好的实现农业现代化是困扰人们的问题。科技应是为人类的解放服务,为人力资源的充分利用做贡献的,所以在农业的物联网应用中,本系统的设计只是很小的一部分,也是一个开端。随着全球气候变化,自然灾害的日益增多,旱涝状况频发,就我国基本情来讲,水资源总量居第六位,但人均是121位,水资源时空分布不均衡年降水量集中于6-8月,很多城市出现水资源短缺,更为重要的是,水资源的污染,导致大量的淡水无法正常使用2。所以如何有效合理的解决水资源瓶颈,提高利用率是一项刻不容缓的任务。农民以前是靠天吃饭,到人工灌溉,而智能灌溉则可以更加合理有效的解放劳动力,管理多个温室棚区的环境问题。对于无线通信网络的开发,现阶段有着广阔的市场前景。Zigbee技术是在短距离无线通信方面具有绝对优势的一种方式,其多个节点的连接,自动分配网络地址的方式以及信号的稳定性等优点是进行区域化种植的一个良好选择。1.2国内外发展概况自古以来,沿河而栖,河水是孕育文明的地方,就是由于采水和灌溉技术限制。农业的灌溉就是一个持续需要解决的农业问题。最早期的农民靠天吃饭过程中,农业生产水平十分落后;之后的水车灌溉,人们利用河水和井水进行灌溉作业,但是所有的劳作长期以来都是依靠人力或者畜力进行的;随着我国科技的进步,农业生产技术水平的提高,灌溉等农业作业的完成更加全面的依托机械电力的帮助完成。国内现阶段对于该问题的研究多实在农林类高等院校及部分科研机构,基于长期的研究取得了一定水平的成绩,但是应用尚不广泛。蔬菜之都寿光的现代化农业已经具备了一定的雏形,农民日常所说的“高温棚”在温度和采光方面借助前期的施工已经形成了一定的模式,但是灌溉设备的建设还是有待提高。而在我国的“花卉之都”广州市其花卉产业规模较大,而浙江大学有研究基于Zigbee和GPRS的远程灌溉控制,也取得了不错的成果3。对于灌溉的研究一般性的研究方向还是存在一些弊端:首先是在研究上一般都会选择一个切入点,相比较而言在综合利用方面存在一些问题;其次是在应用与推广方面力度不足,并且在推广的方式上存在问题,有些技术或是设备已经可以走向农业或者是工业化应用,但在实际操作的过程中没有实现。在国外,例如美国和以色列其节水灌溉设备及技术处于世界领先的水平。美国雨鸟公司的节水灌溉设备居于世界领先的地位,其产品广泛的应用于高尔夫球场,公园及各种高新农业基地;世界上很多水资源匮乏的地区在农业智能灌溉以及节水灌溉方面有着突出的表现,以中东地区的以色列为例,该国的农业技术处于世界领先水平,有效的利用了水资源。现代农业是在国家高度提出的,可以更好的维护国家的粮食安全,更加有效的解放农村劳动力提高农业产值。在农业应用中一些受到自然环境限制的地区,灌溉技术的研究往往会得到相对较多的重视,所以在资金投入等方面有着很多的优势。而国外的网络技术以及物联网的应用也是发生着日新月异的变化,在工业机器人,自动驾驶汽车等人工智能领域都有着绝对的领先技术。1.3研究内容及目标研究内容:人均水资源不足,利用率低,水资源污染严重的问题督促我们警醒,同时也要开发出更加先进的设备。设计实现农业智能灌溉系统,主要是实现互联网远程控制,能够更加精确的实现温湿度测量,对于区域化种植更加方便的实现一个控制中心操作若干个节点。1、ASP网站的建设,与数据库连接加入销售环节。2、服务器后台程序设计,后台服务程序是作为一个连接下位机或是Zigbee协调器的枢纽,对这个系统连接起着关键作用。3、Zigbee无线通信网络的实现,本系统以模型为主,实现一个协调器两个终端节点的组网通信及数据采集。2系统总体设计本系统是一个统一的整体,在实现上主要分为网站,后台程序,Zigbee无线网络以及农业温室模型等几个方面。2.1Zigbee技术Zigbee无线通信技术是新一代低功耗无线网络通信方式,由于其本身具有51内核,所以在处理上可以实现引脚扩展操作。本系统采用TI(德州仪器)开发的Zstack协议栈架构为基础,主要在APP层接入传感器的温湿度采集模块,借助其无线功能实现多点无线通信。对于灌溉系统,我们主要使用DHT11传感器测量温湿度数据,转化为所需要的数字量,之后由终端节点传送至协调器节点。Zigbee网络实现的是系统自动组网,协调器会自动的分配给终端节点一个网络地址。为了实现多点的同步操作,在指令发送时采用广播模式,所有终端均可接收来自协调器的网络指令并进行处理,外接继电器实现对外围电路的驱动。2.2ASP.NET远程网站控制智能灌溉系统网站系统功能简介产品销售温室模型控制后台管理程序环境值获取用户管理菜单产品管理菜单文件管理菜单发送控制命令下位机通信图2-1 网站架构图本系统初步的设计构想是以服务器接收控制信号,以及信息处理的中心,完成互联网的TCP/IP协议通信,同时通过串口(UART)方式实现与Zigbee协调器节点通信,使网站具有更好的实现产品推广的能力。主题是分为四大模块区分功能,分别是功能简介,产品销售,温室模型环境控制以及后台管理。该系统的各节点具体功能在后续文章中还会继续介绍,从基本原理到代码实现方法。网站结构的流程如上图2-1所示。当服务器与访问终端处于一个网络内部,通过网页访问修改数据库中的数据4,在另一部分的服务器后台服务程序利用Timer(定时器)控件检查数并发送指令。网站的整体风格采用母板页确定。为了实现产品更好的推广,在网站加入了产品销售模块。对于网站的管理,产品的添加以及修改,均是通过后台管理界面操作。在后台管理中,可以实现用户管理,包括增删用户,密码修改等功能;另外是产品管理,包括产品名称,图片和基本参数的描述;还有一部分是上传下载功能的实现,为了方便用户的自主学习与操作,可以下载相关文档,驱动程序及IDE软件。2.3后台服务程序设计后台服务程序即Winform窗体结构应用程序,本设计的开发应用Visual Studio 2010中的C#语言。改程序在系统中起着纽带作用,一方面可以连接数据库,实现数据状态扫描,另一方面可以实现对下位机的连接,发送指令实现串口通信。主要的功能在于手动操作模式和远程控制模式的实现上,后台程序需要兼备多方面的功能,登录界面控制着安全权限的设置;主界面完成对各个子程序的连接;附加一些功能性程序实现对日常一些常规管理的操作。2.4产品销售架构的实现快捷的购买与支付是产品销售的购买体验,本系统借助网络连接,在淘宝开设店铺。当用户需要购买相关产品时可以跳转页面至淘宝店铺,通过支付宝付款,之后的步骤是我们日常网购相同的。3 硬件电路的设计及实现3.1 CC2530Zigbee无线传输网络3.1.1 CC2530及协议栈简介在农业现代化、智能家居和工业等领域Zigbee无线通信技术得到了广泛的应用,它基于IEEE802.15.4协议。由于程序是开源的,很多的开发者会选择这种通信方式,一方面免除了开发的技术难度,另外也是符合共享的精神。协议栈简而言之就是一系列的通信标准,是工程项目开发人员与无线数据传输之间的一个接口,各个层都是通过Zigbee协议栈作为一个连接桥梁实现相互之间的连接。对于协议栈的大部分内容大都是模块化进行的,我们的日常应用一般集中的应用层的修改便可以达到常规功能要求。对于其网络层的结构组成可以参见下图,其中的各层通过协议栈构成一个完整的整体,用户可以通过其中以函数调用等方式,实现代码编写及其他各种操作。协议栈在物理层,硬件层,网络层以及应用层等方面有着固定的连接。各个层之间的连接都有着其链路,通过底层程序进行数据传输。作为一款优秀的片上系统解决方案,其信号的稳定性,良好的扩展性为多区域连接操作奠定了坚实的基础。3.1.2组网及传感器连接图3-1 Zigbee无线网络拓扑结构组网时由协调器发起,然后终端节点接收协调器所发来的信号,其中发起模式是检测终端的节点的数量后分配网络地址以确保其连接。其详细组网流程图可以参见下图。一般而言星形网络适用于简单网络结构;网状结构一般较为稳定;对于树状网络由于其良好的扩展性一般应用于比较大型的Zigbee网络中。设备的组网是一个相互建立的过程,在组网的过程中一般需要首先设置网络的协调器节点,在确认协调器节点的存在后,其余各终端设备分别以协调器为父节点,加入该网络。该网络结构采用的是广播模式,各个终端设备都可以接收到协调器的指令。首先设置参数,其代码如下:SampleApp_Periodic_DstAddr.addrMode = (afAddrMode_t)AddrBroadcast; SampleApp_Periodic_DstAddr.endPoint = SAMPLEAPP_ENDPOINT; SampleApp_Periodic_DstAddr.addr.shortAddr = 0xFFFF;设置周期性广播代码如下:void SampleApp_SendPeriodicMessage( void )T_H0=wendu_shi+48;T_H1=wendu_ge%10+48;T_H2=shidu_shi+48;T_H3=shidu_ge%10+48;if ( AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc,SAMPLEAPP_PERIODIC_CLUSTERID,4,T_H,&SampleApp_TransID,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS ) = afStatus_SUCCESS )由于无线网络中发起模式是检测终端的节点的数量后分配网络地址以确保其连接,对于本系统的传感器连接在采用的是DHT11温湿度传感器,其主程序编写是在解决方案的APP层中附加的一个C程序文件,本系统采用的是温湿度传感器实现,对于其他类型的传感器方法类似如DS18B20或者是烟雾及光照或者二氧化碳传感器5。系统初始化选父设备发入网请求存在协调器?收到后响应?设为协调器选信道,分地址设备加入成功等待数据传输启动,接收入网分配短地址发送响应入网成功?任务轮询图3-2 Zigbee设备组建无线区域网络流程图示基于51内核的CC2530可以很容易的实现,其关键是通信代码的编写,因为需要通过串口发回采集到的数据6。uchar temp2=0,0; uchar temp15=temp=;uchar humidity2=0,0;uchar humidity19=humidity=;/*/延时函数*/void Delay_us(void) /1 us延时 MicroWait(1); 之后是数据传感器启动后,将其测得的值转化为数字量,待写入完成后重新配置IO口P0DIR &= 0x40;其余过程可见程序内的具体过程,之后是对数字量分别转化为十位和个位的数值。传感器测得数值只是数据通信的第一步,接下来是让Zigbee终端节点将数据发送给协调器7-8。由于无线网络开始已经组建完毕,所以根据其网内固定的独有网络地址便可以将数据传送到协调器,当然这都是以之前提到的协议栈为基础框架进行。在协调器与电脑之间的通信上采用的是串口方式,由于计算机本身是没有单独引出的串口作为通信的部件,所以采用一个USB转串口的方式进行(计算机需要安装驱动程序)。协调器的串口输出程序如下:switch ( pkt-clusterId ) case SAMPLEAPP_PERIODIC_CLUSTERID: /*温度打印*/ HalUARTWrite(0,T:,2); /提示接收到数据,T表示温度值 HalUARTWrite(0,&pkt-cmd.Data0,2); /读取在协议栈内一个程序的地址 HalUARTWrite(0,n,1); / 回车换行 /*湿度打印* HalUARTWrite(0,&pkt-cmd.Data2,2); /湿度 HalUARTWrite(0,n,1); / 回车换行 break; 对于温湿度的值,其循环发送的设置是一个设置参数的方式,在开发环境中可以找到函数: (SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT + (osal_rand() & 0x00FF) );需要跳转至括号的函数定义,在下面的一个函数:#define SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT 5500/参数设定在协议栈内部的个程序之间都是通过固定的模式连接在一起,函数之间很多都是通过跳转的方式实现,无论是对与温室环境的检测,还是其他的方面9。3.2模型网络-青岛农业大学校园网络介绍青岛农业大学校园网是为了满足广大师生教学,科研,学习等目的而构建的一个功能复杂而全面的网络。2005年校园网进行了大规模的改扩建之后,成为连接学校内各区域,海都校区以及翰林院家属区的一个重要信息枢纽。其核心是采用我国通信设备制造商华为生产的S8512做双机备份,之后应用多台S6503做汇聚,之后树状展开更多的交换机,最后连接电脑终端。由于校址由烟台迁移到青岛,其接入教育网的方式也由原来的通过烟台大学改为通过中国海洋大学进行教育网络接入。而这个网络也是一个局域内网形式,相对封闭,但是内部网络连接好。网站主题架构编写完成后,需要进一步解决远程登录方面的问题。本系统所设置的后台登录系统与数据库直接进行对接,在设置方面产品的各项参数也是存储在SQL2008数据库,所有的数据读取都是依托网站与数据库之间的数据交换进行连接实现。在没有申请域名及空间之前,如果将网站发布在IIS上则只能通过局域网络进行访问,局域网络是一个相对的概念,在本设计的测试中,校园网就可以被当作一个可靠的局域网络进行系统测试。校园网的设施基础为本系统的设计和测试提供了良好的环境。教育网,经海大校园网学校各区域翰林院家属区海都学院图3-3 青岛农业大学校园网络分布本系统的测试选取的地址分别是实验室内部,教学楼以及宿舍区。在实验室内部可以实现在服务器以路由器发出的无线路由器为接入点,其他的网络终端分别接入该无线路由网络内进行网站的访问。这是因路由器为自动的分配一个IP地址给予服务器,其他的终端也是一个类似的IP地址类型,一般是192.168.*.*这种方式是一种内部的无线登录形式;但是在校区其他位置访问时服务器接入互联网的方式必须是一个IP固定的IP地址,这样才可以实现远程登录形式。在不同的网络内测试的基础是所有的网络都已物理连接,本设计在宿舍上网采用我校的赛尔网:该网络是一种全国各高校应用比较普遍的一种网络,其基本特点是需要固定的IP地址,并且需要开通登录帐号才可以使用。而校园网其余区域才需要设置自动获取IP地址的方式,通过CMD命令提示操作对话框进行IP地址查询后得知。IP地址是服务器在网络中的属性,终端设备发送访问请求后,查询地址,之后由服务器做出响应。图3-4 IP地址设置对话框3.3 IIS(Internet Information Services)服务器原理3.3.1 IIS及Framework简介IIS服务器是发布网站所必须的一个工具,在没有购买域名和托管服务器的前提下,如果想发布网站则需要在Internet Information Services即互联网信息服务发布网站,可以实现局域网的访问。常规情况下只有安装配置了IIS才可以实现网站的发布,一些功能的实现例如FTP服务就是依托这一基础8。同样起着关键作用的是Framework4.0网络框架,做一个形象的比喻:如果我们日常网上浏览的信息是车的话,那么Framework便是路,它提供给每一个信息传输与交互的工具。由于Framework版本逐步升级换代所实现的信息交互服务也是日益提升。正如我们的道路系统有普通公路,省道,国道和高速公路一样,信息的通道也是在逐步改善。Framework是信息交互的基础,在互联网中的应用都是依据不同的框架进行的,不同的版本代表着不同的时代微软公司的Framework框架是现今一种流行的开发设计基础,得到了广泛的应用。3.3.2网络服务器配置想要发布网站,配置服务器是必须的一个步骤。在安装IIS7.0之后,在控制面板/管理工具打开Internet信息服务(IIS)管理器,如图3-5所示:图3-5 IIS配置界面对于编辑好的网站文件,生成后存档,发布在本地计算机。如果想通过别的终端进行访问,首先要指明默认文档所在位置。因为互联网访问途径为先通过IP地址在网络中选出服务器,然后再通过IIS设置的默认文档路径进入网站文件。网站发布后其运行是独立的,但是功能的实现要依托服务器响应进行。同时需要服务器开设一个端口允许其它终端的进入,我们配置服务器时通常会选择开放计算机的80或8080端口让外部终端访问。在服务器配置过程中由于文件属性,计算机设置等方面的原因经常会遇到一些问题。例如其他终端访问时出现500.19内部服务器错误,在访问页面上显示无法打开目标文件,物理路径错误,错误代码:0x80070005;或者是数据库访问出错等问题。运行调试就是一个一个的发现并解决问题的过程,因为小型网站的配置与发布等服务在现在的技术层面已经相当成熟,所以网上有大量教程供学习参考,解决遇到的问题。上面所说的问题就是设置文件属性,在其访问及管理权限上需要设置Everyone用户,另外就是IIS与Framework的配合上,解决其安全和权限的问题。图3-6 默认文档设置3.3.3ASP网站发布与访问对于网站的发布,是在编辑好文档后选择将其发布在IIS上即可实现,这里应当注意其路径。基于校园网的网站测试,在开通网络服务的网口进行连接后,服务器会有一个IP地址,其他终端在浏览器输入即可进行访问,在局域网的与之前所说的也是类似。在系统设计的测试过程中,终端设备在浏览器框中输入服务器的IP(须在查询已知的情况下进行)3.4温室模型的设计该灌溉系统的起点是传感器检测农业温室的温湿度值或是加上传感器检测其他条件,之后依靠Zigbee无线网络传送到协调器,之后传送至服务器,服务器通过后台服务程序简称作“中间件”做三方面的工作:一是将数据显示到窗体结构的界面上;二将数据实时更新至数据库内,并通过Data Gridview控件绑定数据显示在网站的界面上供用户读取,并根据情况判断是否发出相关指令;三是循环执行扫描数据库内部操作表的指令数据。环境值值设备驱动电路后台程序远程用户ASP网站传感器终端节点协调器传感器数据库终端节点驱动电路设备环境值值 图3-7 系统结构框图第一个环节结束后后台服务程序实时发送控制命令至协调器,协调器以广播的方式将控制命令发送至终端节点,终端节点的将命令字符处理后会发出控制信号,而控制信号接通农业温室灌溉系统模型上面框架结构所示,每一个终端用户访问网站时可以实时的查看环境值。3.4.1各等级电压设计表3-1 模型温室系统电压统计表供电电压等级统计情况设备名称所需电压等级供电方式Zigbee(协调器及终端)5V干电池及USB灌溉设备(水泵)12V开关电源照明灯220V照明电接入总电源220V照明电接入在模型搭建与制作过程中,很多的演示操作需要不同的电压等级如220V,12V或者是5V,在所做的设备模型中,我们采用照明电接入设备,逐级分别变压,下面分别介绍一下各电路之间的连接及构造。协调器是一个信息节点,和后台服务程序一起发挥着承上启下的关键作用。由于采用低电压供电方式,所以安放在计算机服务器附近,一方面是供电方便,另外一方面是可以实现USB转串口的连接以实现通信。对于终端设备可以使用干电池供电方法,优点是可以实现任意的移动和安置,当然缺点是需要定期更换相对麻烦一些。3.4.2继电器电路设计由于终端节点接收到的只是一个控制命令,在进行相关处理后的动作设置是某一个引脚的电平进行高低变化,所以采用继电器驱动的方式控制电路的通断,从而实现对设备的开关控制。继电器是应用广泛的一种电气设备,通常会当作一种开关设备接入电路。它是将芯片的控制转化开关电气设备的关键。本实验采用的是三路独立继电器模块。在Zigbee终端节点各引脚分别输出高低电平信号。继电器接入常开或者是常闭触点。3.4.3温室大棚模型结构及接线箱温室大棚模型为了方便观看其内部场景及实验测试方便,该系统采用了通体玻璃结构,用玻璃胶固定连接,其内部分别布置了相关的电路及设备。对于接线盒采用我们日常见的多媒体接线漆包盒。图3-8 温室模型图3-9 终端节点接线图对于所采用的玻璃结构是为了便于查看情况,在模仿温室框架的同时,有利于很好的参观,另外在材料的质地上比较坚硬且具有防水功能。为了有效的完成接线盒的固定工作,本设计采用的是玻璃胶进行粘合,在风干后其连接稳定性及其好。另外在线路的布设方面,采用实心铜线,确保良好的导电性,在接线柱上同时保证了优良的绝缘性能。4系统软件设计与实现在本系统中,后台服务程序起着承上启下的作用。一方面接收协调器传送的信息数据,实现数据收取处理,通过Text控件显示在操作界面上;另一方面它与数据库进行数据连接,循环更新数据,在这里调用的是Update数据控件10。本设计的后台服务程序主要体现一下几个方面:一是对所有的用户权限进行相应的管理,利用数据库对用户和密码存储比对;二利用一个常规界面实现对Zigbee数据的实时显示,即一个串口界面;三是附加的一些其他功能如锁定程序,修改密码,以及一些附件的调用等。4.1 登录设计用户登录及管理的设计,对于整个系统的管理而言不可能每个人都具备权限,所以设置登录界面。在上位机程序中,与数据库的连接可以实现软件与后台数据的连通11,利用连接字符串:SqlConnection(server=(local);database=Design;Integrated Security=true);这里的sever指的是服务器名称,在安装数据库时会有设计,实验所用笔记本电脑的服务器名称为(local);database指数据库名,为在数据库软件SQL2008中所创建;最后一句是安全认证方式。当用户打开该应用程序时会弹出一个登录对话框,在该系统中已经预设了一个用户admin输入对用密码电机登录即可进入管理主界面。在点击登录的时候有一个用户名和密码与数据库中所存储的数据匹配的一个过程,它的实现方式是定义数据库命令在数据库表中选择一个用户名为所输入的用户名密码为输入的密码,然后进行匹配。int i = Convert.ToInt32(cmd.ExecuteScalar(); /定义一个i为转换的检测值if (i 0) /对检测结果进行判断cmd = new SqlCommand(select * from GH_User where UserName= + txtName.Text + , conn); /进行赋值操作SqlDataReader sdr = cmd.ExecuteReader(); /检测的与读取值匹配sdr.Read();conn.Close(); /关闭数据库连接frmMain main = new frmMain(); /打开主界面对话框图4-1 后台应用程序登录界面运行程序输入信息单击取消单击登录N退出程序登录错误?N确认?YY退出程序主程序图4-2 登录验证流程图上面的登录流程图可以一目了然的表示整个过程:这种认证的方式就像是我们要进入一个旅游观光景点类似,是一种查证或者是验证的操作,之后进入主界面。这样的认证方式也是我们经常用到的,当然在网站后台登录中也是运用了这种方法,给予一个用户超级管理员权限进入后台,可以添加或删除用户及产品,编辑产品的详细信息同时对网站的相关文件上传等12。4.2后台程序主界面主界面的菜单栏位于对话框的最上方,是以下拉菜单的方式呈现。在该操作界面中从左至右分别为综合管理里面包括Daily和Sample选项实现复杂操作和日常的简单操作;系统设置选项主要是有锁定和口令操作;用户管理主要提供用户密码修改,用户注册以及删除等操作;辅助功能主要提供一些简单的程序调用,有记事本,日历和计算机均为系统程序的调用操作;另外两个为单选按钮,介绍版本以及退出;在下方是一些信息提示语言,分别为登录名称权限和时间。图4-3 后台程序主界面主界面是连接各个子程序的重要接入点,在程序编写过程中主要是运用子程序界面叠加弹出方式即打开子程序的同时并不关闭主界面程序的方法。在该界面的上面设有特定的退出登录,下方显示的是登录进入系统的用户相关信息,并且在旁边显示出登录时间,这是通过调用系统函数的形式加入一个控件实现的。4.3综合管理界面综合管理的的实现是一个重点内容,主要涉及以下几个方面:一是串口的实现,它是进行通信的基础;二是开设一个远程访问端口,一个按键管理整个系统的远程技术这是利用一种循环扫描算法实现的操作;三是一些简单的按键操作主要实现对温室模型各终端硬件的手动控制。图4-4 日常综合管理界面4.3.1 串口通信方式我们日常所说的串口通信方式是一种按位进行通信的方法,该方式与人们熟知的并口在比较中差异是速度相对较慢,但是它比较简单。常见的串口通信方式分为RS232,RS422和RS485三种,在本系统中采用的是RS232方式,只需要三根线(TX,RX,地线)对应连接即可在串口程序的编写过程中。主要是设定COM口的编号,通信过程中所使用的波特率另外就是校验的加入。串口数据帧通常情况下由五个数据模块组成,为了详细的说明数据格式的通信方式,特别用表进行了说明表4-1 数据帧格式数据块12345定义帧 头类型长度数据校验数据长度211N2说明十六进制0x96,0x690:主动发送1:回复响应数据块4和5的数据长度 要发送的数据块 CRC校验在选用的RS232通信方式中,数据连接的双方设定同样的波特率、数据位、停止位和奇偶校验位。波特率是是通信速度的一种表示参数。它以秒为单位确定一秒钟时间内传输的bit的个数。一般比特率设定的值会比较大,可以加快数据传输速度,但是波特率和距离成反比,所以在选取时要结合自身需要。数据位和停止位是指的数据包的形式发送的具体内容,数据位一般不足八位通常会有5位7位或是8为例如在标准ASCII码的数据位设计时选择7位,这个主要看情况需要进行具体的选择处理。停止位标准指示的是数据停止,其位置在包的最后一位。通信过程中的奇偶校验是相对简单的一中数据检验错误的方法,主要是检测传输和接受的数据是否同步,可以预测是否受到了噪声干扰等情况。在现行的标准中有四种检验方式:偶、奇、高和低。一般的小型通信系统没有校验位也是可以的,一些小的问题可以忽略。4.3.2远程访问方式在该控制界面设置了一个Button按键,作为一个复用开关,在外观表示上表现为开启和关闭状态的切换。对于循环扫描数据库内表格数据的算法设计是一个重点也是一个难点,因为不论通过数据库直接修改还是通过网页绑定的Gridview控件进行修改,操作所改变的只是数据库表格内的一项数据内容并没有发送指令13。所以就一般意义上而言,它并没有起到实质性的作用。而扫描算法是一种连接方式,将数据的修改转化为一条条字符指令通过串口通信方式传送到Zigbee协调器,直至作用到终端设备。后台服务程序的关键之处是开启一个可以进行远程访问的服务。其次是实现单机控制,在软件界面中设置一些开关按钮,分别对应终端设备的不同状态。其实现的流程图如下图所示:开启与数据库进行连接循环检测数据库Zigbee协调器数据库内容改动Zigbee终端节点 图4-5 远程访问方式的实现流程对于状态切换指令的实现,可以参见以下代码,这里会涉及到一个Timer(定时器)控件,在其属性中设定一个动作周期,每经过一个周期的时间都会把定时器中的代码执行一次。首先是切换状态显示方法的实现:private void button15_Click_1(object sender, EventArgs e) /Button按键if (button15.Text = 服务器端口已开启) /检测按键的初始状态button15.Text = 服务器端口已关闭; /之前开启则转化为关闭toolStripStatusLabel1.Text = 手动模式开启远程访问关闭;/下方状态栏显示timer3.Enabled = false; /定时器控件关闭 elsebutton15.Text = 服务器口已开启; /如果之前已是关闭状态,转为开启toolStripStatusLabel1.Text = 自动模式开启远程访问开启;timer3.Enabled = true; /让定时器使能开始进行扫描工作timer3.Start();在定时器开始工作之后,就需要进行一系列的动作,在数据库连接状态完好的情况下,可以用以下代码实现扫描数据库内数据发送操作指令的设计14。由于这里的代码控制的终端设备相对较多,但是都是以类似的方法实现,所以仅以灌溉控制和温度调节对算法的实现进行说明:string 灌溉控制,温度调节1; /定义字符串,数据库表中列名称为依据private void timer3_Tick(object sender, EventArgs e) /定时器操作if (sdr.Read()灌溉控制=sdr灌溉控制.ToString().Trim(); 温度调节1= sdr温度调节1.ToString().Trim(); /进行数据匹配sdr.Close();conn.Close(); /关闭数据读取和连接功能bytezd = new byte1;if (SerialPort1.IsOpen = true) /检测串口是否开启 if (灌溉控制=on) /检测读取的数据zd0 = (byte)A; /定义一个数组SerialPort1.Write(zd, 0, 1); /串口写出数据else if (灌溉控制=off) /如检测到另外一种状态zd0 = (byte)B;SerialPort1.Write(zd,0,1); /串口对用写出另外的命令System.Threading.Thread.Sleep(300); /程序暂停给串口传送时间if (温度调节1= on) /读取另外一列的数据值zd0 = (byte)C;SerialPort1.Write(zd,0,1);else if (温度调节1 =off) zd0 = (byte)D;SerialPort1.Write(zd, 0, 1); /分别对应不同的读取值发送不同指令4.3.3手动模式指令控制在服务器电脑上可以通过后天软件进行系统的手动控制,主要实现方式是在串口通信方式下通过按键进行指令发送。在控制界面中对于所需要控制的终端设备分别有不同的划分,左边是操作设备终端的名称,之后对应着“ON”“OFF”选项,与之对应的是设备的开关状态。手动模式的开启需要以服务器、串口以及按键操作为基础,通过按键串口发送指令到下位机即Zigbee的协调器节点,并且会显示动作。下面以一个终端的操作代码实现为例讲解手动模式的实现过程。界面按键显示状态传送命令手动模式串口工作服务器图4-6 手动模式控制及工作流程private void button11_Click(object sender, EventArgs e) /图示的一个ON按键byte data = new byte1; /定义一个数组替代之后的字符if (SerialPort1.IsOpen = true) /检测串口类是否开启data0 = (byte)A; /把命令字符赋值给数组SerialPort1.Write(data, 0, 1); /串口类写出数据命令private void button7_Click(object sender, EventArgs e) /对应的另一个排列按键byte data = new byte1; if (SerialPort1.IsOpen = true)data0 = (byte)B;SerialPort1.Write(data, 0, 1); /利用类似的方式写出不同的命令字符4.4附加功能在该系统中除了实现主题操作必备的一些功能外,一方面通过管理用户信息和系统管理增加一部分管理功能,另外一方面通过附加一些计算机操作系统自带功能丰富软件界面从而达到美观并且实用的效果。主要有用户注册,密码修改,日历和记事本等功能。下面是一些截图:对于上面的两个界面都是需要设计的,因为涉及到数据记录内容的修改。就是一种数图4-7 用户管理及注册界面据的覆盖方式。而注册则是在数据库表格内增加一条另外的记录,之后登录查询数据时便可以轻松的实现。数据库一般的简单作用也就是我们所说的“增删改查”,对于信息的管理它提供了大量方便的图形化操作界面,大大加强了软件的易用性。对另一部分的子程序,则是根据计算机系统调用方法,直接运行其DLL系统文件。图4-8 附加日历界面4.5数据库建立及操作数据库是系统的一个后台工具,它可以大量的存储数据,可以实现数据的更新,也可以与网站和后天程序进行连接。本系统是采用SQL2008软件构建数据框架,数据库的操作流程主要分为以下几个方面:一是创建及表格设计,构建一个单独的数据库与其他项目所存储的内容进行区分,表格设计中需要主要表的列名称设计;二是创建与网站和后台程序的连接方法;三是完成数据存储与更新操作15。4.5.1数据库创建及表格设计在微软公司开发的数据库SQL2008打开时需要有一个用户服务器认证的步骤,主要完成数据库服务器选择以及用户登录身份确认。图4-9 数据库登录认证界面进入之后首先是创建一个项目数据库,之后新建表格,设计所需内容的列名称。尤其要注意的是列名称的设计,一般会有一个主键设置,接下来分别是根据下拉选项选择数据类型,以及数据是否可以为空。下图左所示为对象资源管理器,在蓝底区域点击右键即可创建数据库。后新建一个表格,这里需要注意到右侧图示,一般的数据库直接在库内的软件修改分为设计和编辑两种方式,所谓设计是对表格框架的整体设计修改,而对于编辑方式进行的修改是指对确定的某行某列进行修改。图4-10 数据库及表格设计4.5.2 GridView和SqlDataSource控件连接数据该控件使用方法简单,一般都是采用图形化操作,选择属性或者进行属性更改。选择绑定位置及控件属性设置后: /显示绑定的数据列在使用时一般需要选择添加一个SqlDataSource控件,之后选择数据源,添加GridView控件。数据源选择过程就是通过引导位置找出自己需要的数据源进行数据绑定的过程,从数据库服务器逐层开始,直到找到需要的表格列。图4-11 数据库控件绑定操作图形化操作过程中,在完成之后需要对控件的属性进行设置,点击右上角的设置选项,可以弹出对话框,添加编辑选项,就会在代码页自动生成实现任务所使用的代码。图4-12 启用数据编辑这也是VS2010的强大之处,在启用编辑之后会在表格前方显示一个编辑按键,在访问网页的过程中改变网页中绑定的Gridview控件所指向的数据就可以对数据库内容进行编辑。从而让循环扫描过程变的有意义(可以检测到数据的变化)。4.5.3 数据更新一般的数据更新方式有两种,一种是以手动编辑的方式,实现对数据库的“增删改查”操作,这种方式可以是代码实现也可以是图形化操作的方法;另外一种是自动进行的,以一种事件的触发为开始,自动的存储数据或者覆盖数据。对于第一种可以在SQL2008软件内进行或者是绑定的页面操作这里不再详细叙述,着重讲本系统采用的数据自动更新覆盖方式,显示到网页。传感器接入在Zigbee网络的终端上,待传感信号转换为数据后发送至协调器然
展开阅读全文