远程墒情气象采集系统设计_第1页
远程墒情气象采集系统设计_第2页
远程墒情气象采集系统设计_第3页
远程墒情气象采集系统设计_第4页
远程墒情气象采集系统设计_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

远程墒情气象采集系统设计摘要:本文描述了如何设计一个远程墒情气象采集系统。通过Internet和GPRS网络,远程实时监测气象的数据,嵌入式Linux终端接收ZIGBEE网络各节点的气象数据,将大量的数据存入到数据库中,同时可以发送给远程监控中心。远程监控中心将接收到的数据存入数据库,并且进行数据分析,实现远程控制。本文首先介绍了远程墒情气象采集系统的整体方案设计。其次介绍了各个模块的硬件设计及模块界面,阐述了软件设计和数据库设计以及软件调试,最后说明了整体的调试情况。实践应用表明,本设计是嵌入式技术、GPRS技术、Internet技术以及ZIGBEE网络技术在远程环境参数监测的研究中的一次基础性探索,具有一定的实践意义。关键词:气象采集;Linux;嵌入式;数据库;ZIGBEE;RemotemoistureMeteorologicalAcquisitionSystemAbstract:Thisarticledescribeshowtodesignaremotemeteorologicalmoisturecollectionsystem.ThroughtheInternetandGPRSnetwork,remotereal-timemonitoringofmeteorologicaldata,embeddedLinuxterminalreceiveseachnodeZIGBEEnetworkofmeteorologicaldata,willbedepositedlargeamountsofdatatothedatabase,andcanbesenttoaremotemonitoringcenter.Remotemonitoringcenterwillreceivethedatastoredinthedatabaseanddataanalysis,remotecontrol.Thispaperdescribestheoveralldesignofmeteorologicalremotemoisturecollectionsystem.Secondly,itintroducesthehardwaredesignofeachmoduleandthemoduleinterface,elaboratedsoftwaredesignanddatabasedesignandsoftwaredebugging,debuggingfinallyexplaintheoverallsituation.Practicalapplicationshowsthatthisdesignisembeddedtechnology,GPRStechnology,Internettechnology,andZIGBEEnetworktechnologyinabasicresearchtoexploretheremotemonitoringofenvironmentalparameters,hassomepracticalsignificance.Keywords:Meteorologicalcollection,Linux,Embedded,Database,ZIGBEE;TOC\o"1-3"\h\u55881绪论 绪论1.1课题研究背景与意义在国际合作的大环境下,我国随着近期的工业化进程的快速推进,城镇化脚步得到加速发展,同时人们对生活质量的要求不断提升,作为人类农业生产活动基础的土地资源,被现代化建设大量占用,以及环境污染造成的水土流失、荒漠化和盐碱化等现象,致使耕地面积锐减,土地质量严重下降,土地资源的矛盾日益加剧。为确保在有限耕作面积下,农作物产出不减,土地质量状况起到了重要作用。土地质量状况取决于诸多因素,而土壤墒情在一定层面上正反映了土地质量水平,因此,监测土壤墒情在保护土地资源中起着重要的作用[1]。另一方面,作为一个农业大国,农业在我国的产业结构中占有举足轻重的作用。从古至今,气候因素对农业的影响非常重要,近几十年来,频繁出现的极端天气给人类生命财产安全、粮食安全等带来了巨大的负面影响,已成为全球广泛关注的焦点。据统计数据和研究发现,温室气体的大量增加导致的全球气候变暖是极端天气出现的主要原因。面临严峻的全球气候变化形势,从《京都议定书》到哥本哈根会议,世界各国政府都积极参与如何应对气候变化的国际合作。可见,对于气象的及时观测从古至今都是人们所关注的热点。早在清朝的时候,我国就已经建立一套相对完善的气象观测制度,命令有关部门逐日观测阴晴雨雪等天气现象,并将观测的结果编纂成《晴雨录》,每月呈报给皇帝。在很长一段时间内,气象观测均是以人工观测为主,但是不可避免地,人工观测存在时间与地域的限制,并且结果的估测会存在比较大的误差[2]。不过随着科学技术的发展,尤其是电子计算机的广泛应用,人们对于气象的观测越来越精确化,也为气象观测自动化提供了强有力的技术支持。综上所述,土壤墒情和气象的变化势必影响着未来人们的生活,对于它们的研究分析已经刻不容缓。本文将墒情和气象结合起来,设计出一种可以远程监控墒情数据和气象数据的采集系统。该系统可以采集多点的现场墒情数据,如土壤的湿度、土壤的温度等,还可以采集现场的气象数据,如CO2浓度、温湿度、风速、风向等,并且通过无线网络的方式发送给远程监控中心,远程监控中心可以根据接收到得实时数据,进行存储并分析,提供报表打印功能,供相关人员研究分析墒情和气象数据,提供决策依据。1.2国内外研究现状国外的气象采集系统在七、八十年代已经投入使用,九十年代更是发展迅速。芬兰Vailasa公司、美国Handar公司、CampbellScientific公司、澳大利亚DataElectronics公司出厂的数据采集系统性能都十分优异:系统灵活性非常好;系统多采用串行总线技术,有很多输出的接口;系统还具有配套的软件,使系统的实时性大大提高;系统能存储大量的数据;系统还具有自校验等功能[3]。从上世纪四十年代中期至今,伴随着计算机、电子信息技术的迅速发展,许多国家已经实现了在气象领域的现代化改造。以美国和加拿大为例,从70年代末、80年代初开始建立非联邦自动气象站(AWS)和自动气象站网以来,其数量发展迅速(已拥有831个固定站和150多个非固定站),资料应用广泛(农业、公众服务等)。在气象数据的采集方面,也已实现了气象数据的实时化和网络化传输,为国民经济的发展提供了强有力的帮助[4]。由于受地理位置和复杂多样的地形的影响,就国内目前情况来看,自动气象站的建设还刚刚起步,到2005年底,建成基站143个,一般站1763个。除国家或省级气象局外,大多数基层气象站的观测仪器设备还比较陈旧,而且更新换代周期长。尤其是经济和科技相对落后的西北地区,很多站点还依靠人工记录和汇总,工作量大,容易出错。显然,这种状况与时代发展是很不相称的[5]。窦以文,屈玉贵等人研究并提出了一种自动气象站实时数据质量控制方法,最后应用在北京奥运会的气象服务系统中起了很大的作用[6]。国内目前的墒情监测预测系统已有一定的发展。Mathmood,Hubbard,Martinez等人采用模拟长期分析的方法,根据对比北部大平原的水文气候条件,研究了土壤水分数据的三种土地墒情情况,同时研究了近地表和根区土壤水分时空分布情况[7-8]。隋东、张涛、崔劲松利用VFP610数据库管理系统,对沈阳地区土壤墒情监测与预测系统进行了开发研制。所建立的系统能够实现土壤墒情信息的统计、检索、列表显示、图形分析显示和预测等功能,并且可对土壤墒情变化规律进行实时监测[9]。2系统方案设计2.1远程墒情气象采集系统实现功能根据课题的要求,本设计运用嵌入式技术、单片机技术、传感器技术、数据库技术,主要实现以下功能:土壤墒情数据采集土壤温湿度数据采集;气象参数数据采集CO2、风速、风向、大气温湿度等数据采集;RTU无线组网功能;现场RTU的大型数据存储功能,实现数据备份;远程数据通信功能;触摸式人机交互功能;基于嵌入式的多任务调度功能;基于Internet网和GPRS的远程监控功能;墒情及气象数据库系统。2.2远程墒情气象采集系统整体设计本系统由一个墒情数据采集模块,气象数据采集模块,以及远程监控中心应用软件组成。气象数据采集模块通过Internet和远程监控中心应用软件通信,墒情数据采集模块和气象数据采集模块通信。系统总体构架如下图2-1所示:图2-1远程墒情气象采集系统总体架构图2.3墒情数据采集模块设计墒情数据采集模块主要负责采集土壤温度、土壤湿度等墒情信息,通过无线的方式将墒情数据发送给气象采集模块。2.3.1无线模块Zigbee是近几年兴起的一种低功耗、低成本、短距离、组网灵活的无线通信技术[10]。适用于传输数据量小,多网络节点的通信场合。本系统要求功能的扩展性好,设备节点可增减,所以ZIGBEE完全符合要求。本系统选择了TI公司的CC2530模块,该芯片内置增强版的C8051,并且具有丰富的外设资源,TI公司还为其开发了Z-Stack协议栈,相当于一个小型的操作系统。该解决方案为广大用户实现了协议栈的底层和网络层,将复杂的部分屏蔽,提供给用户API接口,用户只要实现硬件和应用层的开发即可,不需要关心底层和网络的实现[11-12]。这为以后的二次开发提供了方便,节约了开发的时间和成本,同时可扩展性良好。2.3.2大气温湿度本系统采用DHT11模块来采集大气的温度和湿度。该传感器是数字量输出,输出信号稳定,而且处理方便,不需要经过外接的AD处理,可以直接读取使用。DHT11响应速度快,性价比高,抗干扰能力强,故符合本系统的要求。2.3.3土壤湿度本系统采用RH—T传感器来采集土壤的湿度。该传感器是模拟量输出,输出稳定、精确,价格便宜,符合本系统的要求。2.3.4土壤温度本系统采用LM35D传感器来采集土壤的温度。LM35D是由测温传感器和放大器组成,一种输出信号为模拟信号的温度传感器,测温范围为0~100℃,工作电压范围4~30℃,精度为正负1℃,符合本系统的要求。2.4气象数据采集模块设计气象数据采集模块主要负责采集风速、风向、CO2浓度等气象信息,同时接收从墒情数据采集模块发送来的其他气象信息,并且存入数据库中,最后通过Internet网络和GPRS网络同远程监控中心通信。2.4.1嵌入式硬件平台由于本系统的功能要求比较复杂,需要有良好的扩展性,同时也需要有良好的人机交互,故选择了三星公司的S5PV210这款CPU,S5PV210的主频高达1G,支持1G的DDR2、1G的nandflash,完全符合要求。由于嵌入式硬件平台的设计较为复杂,对硬件能力要求很高,同时也由于时间的限制,所以直接购买了天嵌公司出品的TQ210开发板,该开发板具有丰富的外设资源,满足本系统设计的要求。2.4.2嵌入式软件平台Linux系统是开源的类unix系统,具有多用户、多任务的特点,而且可移植性非常好,适用于ARM平台[13]。所以本系统采用了linux-,通过交叉编译器来开发驱动,应用程序等[14]。在嵌入式设备终端上要求运行操作界面,故而选取QT开发环境来开发界面。QT是奇趣公司开发的跨平台界面开发工具,能够支持X86平台,ARM平台,Windows平台等。本身是开源的开发工具,而且封装了很多的类,比如控件类,线程类,链表类,字符串类等很多实用的类,便于开发。2.4.3CO2浓度传感器本系统采用B530CO2传感器采集CO2的浓度,B530是韩国进口的CO2传感器,具有体积小,质量轻,精度高,测量范围广,抗干扰能力强等优点,采用232串口通信,数据稳定,完全符合本系统的要求。2.4.4风向传感器本系统采用FR-WD风向传感器,内部采用高精度磁敏感应芯片,并选用低惯性轻金属风向标响应风向,动态特性好。该成品具有量程大、线性好、抗雷击能力强、观测方便、稳定可靠等优点,可广泛用于气象、海洋、机场、港口、实验室、工农业及交通等领域。该传感器输出0-5V,线性对应0-360度。2.4.5风速传感器本系统采用FR-WS风速传感器采用传统三风杯风速传感器结构,风杯选用碳纤维材料,强度高,启动好;杯体内置信号处理单元能根据用户需求输出响应风速信号,可广泛用于气象、海洋、环境、机场、港口、实验室、工农业及交通等领域。输出信号为脉冲信号,风速的计算公式为W=0.1+0.0875*脉冲信号频率。2.4.6GPRS模块GTM-900是华为的GPRS模块,相比于SIM300和TC35,GTM-900的性价比更高,而且返修率很低,TC35没有自带TCP/IP协议,不符合系统的设计要求。SIM300价格较贵。GTM-900支持AT指令,方便使用和控制,同时支持232串口通信,方便开发[15]。2.5远程监控中心应用软件设计2.5.1远程监控中心应用软件功能需求分析远程监控中心应用软件需要一个美观的可视化界面。该软件可以进行注册新账号、登陆、通过Internet网络接收气象采集模块发送来的气象数据、并数据库存储等功能。QTCreater可以开发美观的界面,并且自带的TCP和Socket类可以实现网络通信,数据库类可以实现数据库的操作,可以实现以下几项主要功能:账号注册。账号登陆。远程监控。实时显示。数据库存储。数据库查询、分析。2.5.2远程监控中心应用软件功能结构根据上面远程监控中心的需求分析,具体分析了远程监控中心模块的功能,如图2-2所示:图2-2远程监控中心应用软件功能结构2.6远程墒情气象采集系统整体框图综上所诉,最终确定方案的系统整体结构体如图2-3所示:图2-3远程墒情气象采集系统整体框图3硬件设计和各个模块介绍3.1墒情数据采集模块该模块负责采集地面及地下的土壤墒情的数据,通过zigbee组网,zigbee各节点将墒情传感器的数据发送给zigbee网络协调器,由协调器统一打包,最终发送给气象数据采集模块。3.1.1主控芯片——(CC2530)墒情数据采集模块采用CC2530作为主控芯片,通过自带的AD接口P0_0来采集土壤湿度传感器和P0_1来采集土壤温度传感器的数据,通过P0_6和DHT11通信,采集大气的温湿度。核心板的原理图如图3-1所示:图3-1CC2530核心板原理图3.1.2zigbee节点——土壤湿度传感器(RH-T)RH-T土壤湿度传感器输出为模拟信号,CC2530通过AD接口P0_0和RH-T通信。二者的接口图如图3-2所示:图3-2土壤湿度传感器实物及接口图3.1.3zigbee节点——土壤温度传感器(LM35D)LM35D土壤温度传感器输出为模拟信号,CC2530通过AD接口P0_1和LM35D通信。二者的接口图如图3-3所示:图3-3土壤温度传感器实物及接口图3.1.4Zigbee协调器——温湿度传感器(DHT11)DHT11数字温湿度传感器是一款温湿度复合传感器,输出信号已校准。传感器包括一个电阻式感湿原件和一个NTC测温原件,可以和IO口直接相连接。因此该产品具有抗干扰能力强,响应超快,性价比高。采用单总线数字信号,湿度测量范围20-90%RH,温度范围0~50℃。与CC2530的接线图如图3-4所示:图3-4DHT11传感器实物及接口图3.2气象数据采集模块气象数据采集模块主要包括主控芯片三星的S5PV210、CO2浓度传感器用于采集CO2浓度、ZIGBEE协调器用于采集节点数据、DS18B20传感器用于采集周围温度、蜂鸣器用于板子温度过高时报警、AT24C02用于存储信息。3.2.1主控芯片——(S5PV210)气象采集模块采用S5PV210作为主控芯片。S5PV210是三星推出的一款基于Cortex-A8构架的芯片,适用于智能手机和平板。S5PV210主频可达1GHZ,具有丰富的外设功能,能移植多种操作系统。本系统采用天嵌公司的TQ210开发板,具有1G的nandflsh、1G的DDR2内存,同时具有丰富的外设,如USB接口、DB9串口接口、音频接口、摄像头接口等。由于S5PV210引脚过多,所以下面只给出部分引脚原理图,如图3-5所示:图3-5S5PV210部分引脚接口图3.2.2CO2浓度传感器——(B530)B530通过232串口和气象采集模块通信,由于S5PV210串口有限,可利用USB1口转串口来代替串口。FE1.1S是用于USB2.0HUB的主控IC,支持热插拔,并且提供四个USB口,具有低功耗、底成本、高性能等特点。CO2传感器的电路如图3-6所示:图3-6B530实物及接口图3.2.3Zigbee协调器——(CC2530)Linux系统中已有PL2303的驱动程序,故可以使用USB3转串口来和ZIGBEE模块进行串口通信。电路原理图如图3-7所示图3-7ZIGBEE协调器实物及接口图3.2.4风向传感器——(FR-WD)FR-WD风向传感器输出信号为0-5V,故可以利用S5PV210自带的ADC控制器来采集风速数据。FR-WD和S5PV210的接口图如图3-8所示:图3-8FR-WD传感器实物及接口图3.2.5风速传感器——(FR-WS)FR-WS风速传感器输出信号为脉冲信号,可以通过脉冲的个数来采集风速数据。S5PV210通过外部中断引脚和FR-WS相连,接口图如下3-9所示:图3-9FR-WS实物及接口图3.2.6GPRS模块——(GTM-900)嵌入式设备终端通过串口1和电脑通信,串口1主要用来查看操作系统的运行情况。嵌入式设备终端通过串口2和GTM-900模块通信,负责接收和发送数据。串口1和串口2都通过SP3232电平转换芯片,可以直接通过DB9接口线直接连接,电路原理图3-10所示:图3-10GTM-900实物及接口图3.2.7温度传感器——(DS18B20)DS18B20是单总线协议的温度传感器,S5PV210通过一个普通IO来和DS18B20通信,接口图如图3-11所示:图3-11DS18B20实物及接口图3.2.8存储芯片——(AT24C02)AT24C02是一个E2PROM存储芯片,掉电不丢失,故可以用来保存一些数据,存储大小为2K。该器件通过I2C接口进行通信。芯片的A0,A1,A2为器件地址的选择位,加上厂家出厂时提供的芯片固定的地址,组成I2C从设备的地址。电路的接线图如图3-12所示图3-12AT24C02实物及接口图3.2.9报警电路——(蜂鸣器)蜂鸣器通过一个普通IO口和S5PV210通信,当环境温度高于设定的阈值温度上限时,蜂鸣器就会报警,蜂鸣器硬件驱动电路和接口电路如图3-13所示:图3-13蜂鸣器实物及接口图4系统软件设计4.1软件开发环境4.1.1IAR开发环境IAR8.10是IARsystems推出的集成开发环境。并且有配套的仿真工具,方便测试和调试程序。并且可以直接使用TI公司提供的协议栈z-Stack进行开发,缩短了开发的时间。开发界面如图4-1所示:图4-1IAR开发界4.1.2VIM以及GNU编译器Vim是一个强大的编程工具,虽然不是图形化界面,但是它具有很多强大的功能。Vim分为三种编辑模式,编辑模式,底行模式,命令行模式。熟练掌握vim的操作后,编写程序的效率会大大提高。开发界面如图4-2所示:图4-2VIM开发界面4.1.3QTCreatorQTCreate是一个跨平台,完整的Qt集成开发环境。其中封装了各种通用的类,可以通过集成QT的各种类,来更简单地实现要想实现的界面[16]。并且集成了QTdesigner,使界面的设计和编程变得更加轻松,省去了繁琐的计算,QT开发界面如图4-3所示:图4-3QTCreater开发界4.2墒情数据采集模块软件设计4.2.1墒情数据采集模块——主流程图墒情数据采集模块分为两个设备类型,一个为网络协调器,一个是网络设备节点。网络协调器负责接收网络设备节点发送来的数据,统一打包发送给气象数据采集模块。网络设备节点执行发送任务,网络协调器执行接收任务[18]。故两个任务的流程图如图4-4所示:图4-4墒情数据采集模块任务流程图4.2.2墒情数据采集模块——发送任务流程图墒情数据采集模块的网络节点设备执行的流程主要是进入操作系统后,定时执行发送任务:读取响应传感器的电压信号,转换后打包发送协调器,流程图如图4-5所示:4.2.3墒情数据采集模块——接收任务流程图墒情数据采集模块的网络协调器执行的流程主要是进入操作系统后,收到数据后执行接收任务:采集大气温湿度,保存接收到得数据,打包后通过串口发送给气象采集模块,流程图如图4-6所示:图4-5墒情数据采集模块发送任务流程图图4-6墒情数据采集模块接收任务流程图4.3气象数据采集模块操作系统平台搭建由于气象采集模块需要运行linux操作系统,所以之前要移植一个linux系统到S5PV210的板子上。主要移植的步骤包括:移植bootloader,这里移植u-boot,移植完成后烧写u-boot到S5PV210的0地址位置;移植内核,移植完成后烧写kernel到5-10M地址位置;通过busybox制作文件系统,添加各种库文件和应用程序后,转换成yaffs格式,烧写到10M-500M地址位置。最后设置u-boot命令参数,设置为nandflash启动,重启系统[19]。移植步骤框图如图4-7所示:图4-7气象数据采集模块操作系统搭建平台步骤图4.4气象数据采集模块驱动程序设计4.4.1AT24C02——(I2C驱动程序)Linux系统的驱动分为字符设备驱动,块设备驱动和网络设备驱动[17]。本系统设计的AT24C02的驱动就是I2C从设备驱动。内核已经实现了I2C的总线设备驱动,只需要编写从设备驱动即可。编写从设备驱动,需要操作总线上维护的两个链表:dev链表和drv链表。dev链表中的每一个节点对应的数据结构i2c_client,存放硬件信息,drv链表中的每一个节点对应的数据结构i2c_driver,纯软件信息[20]。首先修改mach-tq210.c加入i2c_board_info结构体I2C_BOARD_INFO("at24c02",0x50);分配初始化,最终会赋值给i2c_和i2c_cient.addrstaticvoid__initsmdkc110_machine_init(void){i2c_register_board_info(0,at24c02,ARRAY_SIZE(at24c02));}inti2c_register_board_info(intbusnum,structi2c_board_infoconst*info, unsignedn);busnum:总线编号info:待注册i2c设备信息n:i2c设备个数注册好之后,便可编程实现I2C的从设备驱动。程序如下所示#include<linux/init.h>#include<linux/module.h>#include<linux/i2c.h>#include<linux/uaccess.h>#include<linux/device.h>#include<linux/fs.h>#include<linux/delay.h>staticconststructi2c_device_idat24c02_id[]={{"at24c02",0}//"at24c02"一定要和i2c_board_一样};staticintmajor;//主设备号staticstructclass*cls;//设备类staticstructi2c_client*g_client;//记录从设备信息staticssize_tat24c02_read(structfile*file,char__user*buf,size_tcount,loff_t*ppos){unsignedcharbuffer[100];unsignedcharaddr;//地址unsignedchardata;//数据inti;//1.获取用户要操作访问的地址if(copy_from_user(&addr,&buf[0],1)){return-EFAULT;}for(i=0;i<count;i++){//2.采用SMBUS将地址发送给总线驱动buffer[i]=i2c_smbus_read_byte_data(g_client,addr);if(buffer[i]<0){return-EIO;}addr++;}//3.将数据信息上报给用户空间if(copy_to_user(buf,buffer,count)){return-EFAULT;}returncount;}staticssize_tat24c02_write(structfile*file,char__user*buf,size_tcount,loff_t*ppos){unsignedcharbuffer[100];unsignedcharaddr;unsignedchardata;inti;intret;//1.获取用户要操作的地址和数据信息if(copy_from_user(buffer,buf,count+1)){return-EFAULT;}addr=buffer[0];for(i=1;i<=count;i++){data=buffer[i];//udelay(1000);//2.利用SMBUS接口将client.addr设备地址和addr.data发送//i2c总线驱动来完成数据的交互//打开SMBUS文档内核源码Documentation/i2c/smbus-protocol//同时打开芯片手册找到对应的写时序//在文件中找到对应的时序的函数//调用函数将设备地址访问的内部的地址和写的数据丢给总线驱动ret=i2c_smbus_write_byte_data(g_client,addr,data);addr++;}returncount;}staticstructfile_operationsat24c02_fops={.owner=THIS_MODULE,.read=at24c02_read,.write=at24c02_write};staticintat24c02_probe(structi2c_client*client,conststructi2c_device_id*id){//1.注册一个字符设备major=register_chrdev(major,"at24c02",&at24c02_fops);cls=class_create(THIS_MODULE,"at24c02");//2.自动创建设备节点device_create(cls,NULL,MKDEV(major,0),NULL,"xxb_at24c02");//在dev下面生成xxb_at24c02g_client=client;return0;}staticintat24c02_remove(structi2c_client*client){//1.删除设备节点device_destroy(cls,MKDEV(major,0));class_destroy(cls);//2.卸载字符设备unregister_chrdev(major,"at24c02");return0;}staticstructi2c_driverat24c02_drv={.driver={.name="xuxb"},.probe=at24c02_probe,//匹配成功调用.remove=at24c02_remove,//卸载调用.id_table=at24c02_id//存储at24c02的名字};//入口函数staticintxxb_at24c02_init(void){//注册从设备i2c_add_driver(&at24c02_drv);return0;}//出口函数staticvoidxxb_at24c02_exit(void){//卸载从设备i2c_del_driver(&at24c02_drv);}4.5气象数据采集模块应用程序设计4.5.1气象数据采集模块应用程序功能需求分析气象数据采集模块应用程序主要任务就是提供可视化界面,方便操作人员操作。接收zigbee网络发送来的环境参数数据,实时显示并存入数据库。因此具备以下几项主要功能:通讯设置。实时参数显示。数据库存储。数据分析绘图。温度报警。4.5.2气象数据采集模块应用程序功能结构根据上面的需求分析,具体分析了气象数据采集模块的功能,最终得到如图4-8所示:图4-8气象数据采集模块应用程序功能结构图4.5.3气象采集模块——主流程图气象采集模块的操作系统启动后,初始化各种硬件设备,操作人员可以点击初始化GPRS按钮,开始初始化GPRS,初始化成功后,开启ZIGBEE采集子线程、B530采集线程以及开始定时器任务,与远程监控中心通信。主流程图如图4-9所示:图4-9气象采集模块主流程图4.5.4GPRS初始化程序流程图GPRS初始化的流程为:读取界面上的IP和端口,初始化GPRS串口,发送“AT”指令,等待GPRS返回“OK”;成功接收后发送“AT%ETCPIP”命令,使能TCP通信,等待返回“OK”;成功后发送要连接的“IP和端口号”,等待返回“CONNECT”,表示已连接上。程序流程图4-10所示:图4-10气象采集模块GPRS初始化流程图4.5.5气象采集模块——Zigbee子线程Zigbee子线程主要实现初始化ZIGBEE的串口,循环等待ZIGBEE发送来的数据,接收成功后保存数据,准备存入数据库。程序流程图如图4-11所示:4.5.6气象数据采集模块——B530子线程B530子线程主要实现初始化B530的串口,循环等待B530发送来的数据,接收成功后保存数据,准备存入数据库。程序流程图如图4-12所示:图4-11气象采集模块Zigbee子线程流程图图4-12气象采集模块B530子线程流程图4.5.7气象数据采集模块——定时任务气象数据采集模块的定时任务主要完成打包采集到的各个传感器的数据,存入SQLITE数据库中,同时刷新显示屏的数据,程序流程图如图4-13所示:图4-13气象采集模块定时任务流程图4.5.8气象数据采集模块——数据库设计气象数据采集模块的数据库主要存储各个传感器的数据,主要存储的数据有:CO2浓度、大气温湿度、风速、风向、土壤湿度、土壤温度等数据,数据库库的表和字段的设计如图4-14所示:图4-14气象数据采集模块数据库字段图4.5.9气象数据采集模块——界面设计气象数据采集模块的最终界面主要分为主控面板、GPRS面板、ZIGBEE面板、TQ210面板,最终的效果图如图4-15所示:图4-15气象数据采集模块界面图4.6远程监控中心应用程序设计4.6.1远程监控中心——登陆界面设计该界面由账号输入框、密码输入框、登陆按钮,注册按钮组成。点击注册按钮,可以进入注册界面,可以注册新账号。在账号输入框输入已申请的账号,在密码框输入正确的密码,验证成功后即可进入主界面,进行一系列的操作。最后的登陆界面如图4-16所示。图4-16远程监控中心登陆界面图4.6.2远程监控中心——注册界面设计该界面由个人信息输入框组成,都是个人的信息。只要正确地输入所有的信息,系统会自动帮用户注册一个新的账号,注册成功后,可以在登陆界面中进行登陆。最终的界面如图4-17所示。图4-17远程监控中心注册界面4.6.3远程监控中心——主界面设计该界面由账号信息面板,环境数据显示模块,在线客户端个数显示,同时还有打开服务器、开始采集、停止采集、分析数据、打开数据库等按钮,还有IP地址和端口的输入框组成。主界面操作步骤如下所示:首先确定你的账号,点击录入账号输入IP和端口后,点击打开服务器点击开始采集,便可以通知客户端开始发送数据点击数据分析,便可以进入数据分析点击打开数据库,便可查看数据库里面的数据情况最后的界面如图4-18所示:图4-18远程监控中心主界面图4.6.4远程监控中心——数据分析界面该界面由数据库查询按钮,输出图像按钮,日期选择的单选按钮,选择参数的单选按钮组成。点击查看数据按钮,便可选择输出图像的起始时间,选择输出图像的时间起始,选择图像的时间段,选择图像的参数类型,点击输出按钮,便可显示指定的时间段数据信息,界面如图4-19所示:图4-19远程监控中心数据分析界面图4.6.5远程监控中心——数据库设计远程监控中心的数据库主要存储各个传感器的数据,主要存储的数据有:CO2浓度、大气温湿度、风速、风向、土壤湿度、土壤温度等数据,数据库的表和字段的设计如图4-20所示:图4-20远程监控中心数据库字段图5系统测试与调试5.1整体实物图整体实物图如图5-1所示:图5-1系统整体实物效果图5.2测试流程5.2.1ZIGBEE组网调试本系统的ZIGBEE网络由一个ZIGBEE协调器和多个设备节点组成。ZIGBEE通信前,需要进行ZIGBEE组网。所以首先,打开ZIGBEE的协调器,等待设备节点的网络接入。接着打开ZIGBEE设备节点,若组网灯(黄灯)亮起后,表示该设备节点已经组网成功,设备节点可以从土壤湿度传感器和土壤温度传感器读取数据,发送给协调器,实物及调试图如图5-2所示:图5-2ZIGBEE组网效果图5.2.2操作系统调试由于本系统的现场终端运行的是linux操作系统,所以先要运行linux系统。测试linux的步骤:运行u-boot,u-boot引导启动内核,接着挂载操作系统,最后运行应用程序。效果图如图5-3和图5-4所示:图5-3linux操作系统运行效果图图5-4linux应用程序效果图5.2.3GPRS调试GPRS初始化的步骤包括设置通信的IP和端口、点击连接开始初始化GPRS,等待进度条,完成后显示初始化成功。效果图如图5-5所示:图5-5GPRS初始化效果图5.2.4数据通信调试点击开始按钮,开始接收从ZIGEEE网络发送来的墒情气象数据,并且通过GPRS发送给网络的上位机应用程序。效果图如图5-6所示:图5-6数据接收效果图墒情数据的显示情况如图5-7所示:图5-7墒情数据采集效果图气象数据的显示情况如图5-8如图所示:图5-8气象数据显示效果图6总结本文通过搭建基于Cortex-A8处理器的linux嵌入式操作系统,针对GTM900-C和CC2530无线模块的应用,利用Qt编写了人机交互友好的界面,研究了一套远程墒情气象采集系统。具体完成和实现了以下几方面的设计:在移植了嵌入式linux操作系统的Cortex-A8平

温馨提示

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

评论

0/150

提交评论