智能灌溉系统上位机软件的设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

托普物联网开创智慧农业新时代!智能灌溉系统上位机软件的设计引言在水资源紧缺的条件下,要实现灌溉农业的可持续发展,就需要灌溉更加精确智能。在不影响农作物生长发育的前提下,按照农作物需水要求准确及时地预报,并实现水量的自动控制,精确施予。目前,主要采用先进的物联网技术与传统农业生产相结合的办法,通过研发先进的传感器、灌溉控制设备、功能强大的计算机灌溉管理软件等来实现科学灌溉,提高农业效益。由于全球气候的恶化和水污染等原因,水资源短缺已经成为全球性的问题。在各大园林、农业及高尔夫灌溉项目中,越来越多的人认识到了节水灌溉的重要性。为了保证人工植被和农作物的正常生长,节水灌溉系统起到了至关重要的作用。托普物联网专注于农业物联网的研发和建设,在这几年里,积极响应国家农业物联网推广的号召,组建专业的研发团队和推广团队,同时也取得了一定的成就。主要研发的有温室大棚控制系统、灌溉系统、喷灌系统、花卉栽培控制系统、设施园艺自动控制系统、滴灌智能控制系统、设施农业滴灌施肥智能化控制系统。并在多地有已经建成的项目。1系统主要功能我们设计并制作出具有监视、控制、环境数据的不间断采集、整理、统计、绘图功能的智能灌溉系统,以实现优化科学灌溉。该系统适用于庭院、园林、农田等灌溉场所。主要包括以下功能:⑴根据CO2浓度自动控制电磁阀的开关,与CO2发生器配套使用;⑵根据土壤的干湿度自动控制电磁阀的开关,与喷灌、微灌、滴灌等管道系统配套使用;⑶根据空气的干湿度自动控制电磁阀的开关,与加/降温、加/除湿等设备配套使用。托普物联网开创智慧农业新时代!2总体结构设计Zigbee是基于IEEE802.15.4标准的低功耗局域网协议。据这个协议规定的技术是一种短距离、低功耗的无线通信技术。其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。无线网关实现了ZigBee、GPRS、以太网、串口的网络互联和协议转换,集成了符合ZigBee协议标准的JN5121系列通讯模块,GPRS模块,以太网接口,RS232接口。并具有通讯距离远、抗干扰能力强、组网灵活等优点和特性;可实现一点对多点、多点对多点的串口设备间的数据透明传输,也可以根据用户的需要定制软件;可按照星形网络、网状网络以及树状网络组网。兼容FCCPart15,ETSIETS300-328和日本的ARIBSTD-T16标准。主要应用领域:煤矿/油田设备远程监控、电力/水利设备远程监控、远程智能抄表/线缆取代、工业、农业自动化控制、楼宇、路灯智能控制。本系统设计由三个部分组成:监控中心、无线网关、无线路由节点。其中,监控中心主体是服务器和上位机;无线网关集成了符合ZigBee协议标准JN5121系列通讯模块,GPRS模块,以太网接口,RS232接口,负责将各节点的数据发送给上位机处理,或接收上位机发送的指令并传送给各节点;无线路由节点可以有多个,集成了CO2浓度传感模块、土壤的干湿度传感模块、空气的干湿度传感模块和ARM模块。系统组成框图如图1所示。托普物联网开创智慧农业新时代!图1系统组成框图3硬件原理本系统的传感节点硬件采用CC2530,如图2所示。CC2530是用于2.4-GHzIEEE802.15.4、ZigBee和RF4CE应用的一个真正的片上系统(SoC)解决方案。它能够以非常低的总材料成本建立强大的网络节点。CC2530结合了领先的RF收发器的优良性能,业界标准的增强型8051CPU,系统内可编程闪存,8-KBRAM和许多其他强大的功能。CC2530有四种不同的闪存版本:CC2530F32/64/128/256,分别具有32/64/128/256KB的闪存。CC2530具有不同的运行模式,使得它特别适应超低功耗要求的系统。运行模式之间的转换时间短,进一步确保了低能源消耗。托普物联网开创智慧农业新时代!图2传感节点硬件框图4上位机的设计4.1功能需求以太网通信方式是物联网智能灌溉系统与计算机最主要的通信方式,采用UDP通信协议层,多线程方式进行数据交互。上位机需要单独具备以太网通信界面,除了实现物联网智能灌溉系统以太网通信命令中列出的各项命令之外,还需要以下几个重要功能。⑴网络拓扑,显示物联网智能灌溉系统所有已经注册的设备节点物理区域视图,主要用于直观地反映设备节点的分布概况,用于设备故障定位。在视图上,双击设备节点图标能够自动显示该节点的实时数据信息;如果设备有故障或告警,节点图标应该改变自身颜色警示操作人员。⑵数据查询,实时记录物联网智能灌溉系统的当前和历史数据,提供用户对数据按日期和设备标识查询的功能。根据数据容量和数据访问并发性的要求,建议数据库采用专用的数据库管理软件,例如SQLServer2005。⑶数据分析,根据数据库内查询的数据绘制图表(折线图或饼图等),显示数据的分布和趋势,提供用户环境参数的历史数据和做出灌溉决策的参考信息。⑷分布式软件,可以在多个计算机上同时打开上位机软件,软件之间相互协调,每个上位机作出的参数修改都能在其他上位机软件上显示出操作记录,参数设置具有并发性,多个上位机软件进行同一参数的设置不会冲突,参数设置完成后,其他上位机界面会同步更新。4.2上位机架构本系统采用.Net三层架构。三层架构(3-tierapplication)通常意义上的三层架构就是将整个业务应用逻辑上划分为:表示层(USL)、业务逻辑层(BLL)、数据访问层(DAL)。三层架构是一个支持可抽取、可替换的“抽屉”式架构,符合“高内聚,低耦合”的思想,所以这些层可以单独开发,单独测试。具体的三层架构的分层结构图,如图3所示。托普物联网开创智慧农业新时代!图3三层架构的分层结构图4.3开发工具的选择.NET是一个开发平台,它定义了一种公用语言子集(CommonLanguageSubset,CLS)。.NET统一了编程类库,提供了对下一代网络通信标准,可扩展标记语言(XML)的完全支持,使软件的开发变得容易。.NET与Windows平台紧密集成,是一种面向网络、支持各种用户终端的开发平台环境。SQLSERVER2005对SQLServer2000中已经存在的特性进行了加强。加强了T-SQL(事务处理SQL),整合了符合.NET规范的语言(可以在数据库管理系统中执行.NET代码以充分利用.NET功能),使自身带有支持对用户自定义数据库中存储的数据进行加密的功能,生成多活动结果集(允许从单个的客户端到数据库保持一条持久的连接,以便在每个连接上拥有超过一个的活动请求)等。基于上述原因,我们选择.NET架构C#语言开发,作为系统开发的工具。开发人员必须掌握的预备知识和工具有:①UDP通讯编程(UDP包测试工具的使用);②多线程;③Chart控件的使用;④调试工具的使用。5数据库表结构数据库名称:ZigDB。主要包括设备状态信息表(如表1所示)、设备信息表(如表2所示)、设备类别表(如表3所示)、系统设置表、权限表、用户表等。表1EqStatusInfo托普物联网开创智慧农业新时代!表2EquipmentInfo表3EquipmentType6系统功能模块系统上位机模块包括四个主要功能模块:实时监测模块、数据查询分析模块、权限管理模块和系统管理模块。每一个模块中设计了若干子模块。系统上位机功能模块图,如图4所示。托普物联网开创智慧农业新时代!图4系统上位机功能模块图7上下位机通信的方式本系统主要采用两种与上位机通信的方式。⑴本地调试端口,采用RS232串口通信方式,用于和计算机直连后进行数据通信,同时,对智能灌溉系统进行设备注册和网络参数配置也使用该通信方式。⑵远程通信端口,采用以太网通信方式,用于和远端计算机进行数据通信,主要功能是上报智能灌溉系统各传感器的数据,以及获取修改相关参数的上下限阈值。8主要窗口与关键技术8.1主要窗口上位机软件主要包括以下几个窗口。⑴主窗口(FormMain):主要包括监听线程Run()方法,用于实现轮询,先采样放入缓冲区然后入库。⑵网络拓扑窗口(FormNetworkTop):显示AP结点拓扑位置,主要包括AP结点图标的类型和位置,鼠标MouseDown()、MouseUp()、MouseMove()事件处理等。⑶设备状态窗口(FormOneEq):主要包括发送信息给传感器sendThreshold()、跨线程访问控件UpdateUI()、设置最大阈值和最小阈值。⑷设备序列号的设置窗口(FormEqpSN):主要包括一些按钮事件处理托普物联网开创智慧农业新时代!btnSave_Click()、btnDel_Click()、btnUpdate_Click(),实现对设备序列号的增删改查的操作。⑸数据查询窗口(FormBrowseHisData):主要包括根据查询条件显示查询结果和CHART图表。涉及btnBrow_Click()、dgvBrowResult_DataBindingComplete()等事件处理。8.2关键技术8.2.1轮询监听主程序(FormMain)中监听线程Run()方法代码,主要根据通讯协议的要求,通过轮询方式,主要采用基于System.Net,System.Net.Sockets空间的UdpClient类实现UDP通信,向设备发送命令,从而获取传感器数据信息,然后解析数据(包括进制转换),并记录到数据库表中。部分代码如下:privatevoidRun(){byte[]buffer=newbyte[9];while(true){Try{strEqSn=StaticCommon.EqSn[ii];buffer[0]=buffer[1]=0xef;//发送标识符buffer[2]=0x06;//发送长度//序列号组的规则为拆封设备序列号为3个字节buffer[3]=Convert.ToByte(strEqSn.Substring(0,2));buffer[4]=Convert.ToByte(strEqSn.Substring(2,2));buffer[5]=Convert.ToByte(strEqSn.Substring(4,2));buffer[6]=0x10;//命令字为单字节表示//命令选项为命令字的辅助标记部分,区分同一类型命令的不同功能//命令参数的长度不定,在设置类命令中为需要设置的具体参数数值buffer[7]=0x00;//校验和为从应答标识符到应答参数包含的字节内数值累加和托普物联网开创智慧农业新时代!bytex=0;for(inti=0;i8;i++)x+=buffer[i];buffer[8]=x;StaticCommon.lstbuffer[ii]=buffer;//送到临时缓冲区udp.Send(buffer,buffer.Length,ipp);//UDP方式发送Thread.Sleep(200);StaticCommon.lstrev[ii]=udp.Receive(refipp);//间隔0.2秒接受数据AddData(StaticCommon.lstrev[ii]);//记录到数据库表Thread.Sleep((int)StaticCommon.ssi.SpanTime);//间隔用户指定时间ii++;if(ii=StaticCommon.EqSn.Count)ii=0;//在指定的设备数中循环}catch(Exceptionex)//异常处理{……}}}以上各传感器数据信息参数的计算公式如下:二氧化碳浓度:CO2数据=CO2数据1×256+CO2数据2土壤湿度:SOIL数据=SOIL数据日照度:SUN数据=SUN数据1×256×256×256+SUN数据2×256×256+SUN数据3×256+SUN数据4空气温度:TEMP数据=TEMP数据-40空气湿度:HUMI数据=HUMI数据8.2.2跨线程访问控件在多线程编程中,经常要在工作线程中去更新界面显示,而在多线程中直接托普物联网开创智慧农业新时代!调用界面控件的方法是错误的做法,一般采用Invoke和B

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功