基于嵌入式组件技术的精准农业农田信息采集系统的设计与实现-孟志军
- 格式:doc
- 大小:59.50 KB
- 文档页数:40
基于嵌入式组件技术的精准农业农田信息采集系统的设计与实现-孟志军 基于嵌入式组件技术的精准农业农田信息采集系统的设计与实现
孟志军1, 2,王 秀1,赵春江1,薛绪掌1 (1.国家农业信息化工程技术研究中心,北京100089; 2.中国农业大学精细农业研究中心,北京100083)
该模块负责GPS通讯和数据处理任务。系统通过 RS-232标准串口连接手持型GPS、差分GPS或直接在 掌上电脑上插接CF卡式GPS与GPS设备进行通讯, 解析通讯端口传来的NMEA-0183协议格式数据,提取 经纬度位置信息、高程、卫星分布、信号、速度等方面信 息。 2)基于嵌入式操作系统W inCE的GIS基本功能 模块 该模块的主要功能有:地图操作功能,包括地图显 示、放大、缩小、漫游、自由放缩、点选、全图等;地图管理 功能包括对地图的旋转角度、容限进行设置、图层控制 功能等;查询功能包括图形和属性双向互查功能、支持 SQL查询;分析计算功能主要有距离、面积量算、最短/ 最佳路径分析等功能。 3)农田信息采集功能模块 根据田间信息采集作业的不同,要求系统能进行田 间地物分布、杂草分布、病虫害发生情况等多种基于精 确空间位置的实时信息。系统要求支持基于GPS位置 的农田地物分布空间和属性信息的采集记录;支持基于 GPS位置的作物长情长势、病虫草害分布空间及属性 信息的采集记录。 嵌入式农田信息采集系统软件结构框图如图1所 示。 图1 系统功能模块结构框图 Fig. 1 Structure of system functionmodules 1.2 系统开发环境 在基于掌上电脑的农田信息采集系统中,使用的硬 件系统主要有GPS设备和掌上电脑。根据所采集信息 对空间位置精度的要求不同,可选用非差分的便携式 GPS设备或差分GPS(DGPS)设备,目前常用的便携式 GPS的水平定位精度可达到10m左右。如果信息采集 精度较高,则需要采用DGPS设备。系统在开发过程中 选用的DGPS设备是TrimbleAgGPS132,其中一台为 基准站,一台作为田间工作的流动站,在差分状态工作 时水平定位精度为亚米级。便携式GPS采用 NAVMAN for Compaq iPAQ,这是一个专门为 Compaq iPAQ系列掌上电脑设计的背夹式GPS接收 机,水平定位精度为5m左右。考虑到农田信息采集系 统的野外工作环境,选择了Compaq iPAQ 3870型 PocketPC,该型号掌上电脑电源工作时间长,显示屏抗 强光性能较好。 掌上电脑的操作系统为中文M icrosoftPocketPC 2002,系统软件开发过程中,选择M icrosoft eMbedded V isualC++ 3. 0作为应用软件开发工具。为了实现基 于掌上电脑的GIS功能,选择eSuperM ap 1. 0作为系 统开发中间件。eSuperM ap是北京超图公司开发的嵌 入式地理信息系统开发工具,以类库的方式进行 分发。 该开发工具针对嵌入式设备资源紧缺的特点,设计了紧 凑的数据结构,对资源的消耗较低,功能比较完善。嵌入 式农田信息采集系统的结构框架如图2所示。 图2 嵌入式农田信息采集系统结构图 Fig. 2 Structure of embedded field information collection system 2 嵌入农田信息采集系统软件开发 2.1 GPS设备通讯与数据处理模块 GPS和田间信息获取设备为系统提供信息源,其 中GPS设备提供空间位置信息。根据地物特征和信息 采集作业类型,系统可以将GPS设备采集的散点数据 形成为点、线或面状的矢量数据。田间信息获取设备负 责为这些矢量提供匹配的实时动态属性数据,系统通过 将动态实时的属性数据与矢量的匹配,从而达到田间信 息采集的目的。eSuperM ap提供了GPS相关的类进行 GPS通讯和数据处理,通过调用这些类的相应函数接 口很容易实现与GPS设备的通讯和位置数据的提取。 如通过传入一个能够描述GPS硬件设备接口信息的结 构GPSDEVICEINFO的对象实例,调用CSeGPS类的 成员函数Open()就能实现通过串口与GPS设备连接, 如果连接成功再调用该类的成员函数GetData()可以 返回一个GPSDATA类型的结构体对象,该结构体中 包括有以经纬度表示的位置、高程、可见卫星数等信息。 实际应用系统开发中,仅使用eSuperM ap1. 0提供 的类库进行GPS数据分析处理往往不够,因为其处理 解析的NMEA语句有限,提供的信息有时不能满足一 92农业工程学报2005年 经纬坐标和转换为平面坐标,进而形成相应的数据 文件。 2. 2. 3 地图数据的显示操作 地图显示操作子模块能够将以PMF格式表示的 地理空间数据打开显示并进行放缩、平移、漫游等操作。 eSuperM ap中对PMF文件的管理是通过类CSePMF 实现的,该类提供Open方法用以打开指定路径和名称 的PMF文件,GetM aps方法用以获取PMF文件中的 地图,GetDataSource方法可以获取指定名称的数据 源,Close()方法用于关闭PMF文件。PMF文件的显示 由CSeM apWnd类实现,CSeM apWnd类是eSuperM ap 负责地图显示和操作的核心类之一,它是eSuperM ap 类库的外在体现,大多数与地图显示相关的操作基本上 都要通过它来实现。 地理空间数据在地图窗口中显示出来以后,就可以 进行放缩、平移和全图等地图操作动作。这些地图操作 的实现是通过调用CseM apWnd类的成员函数 SetAction()实现,不同的操作动作可以通过设置该函 数的参数加以区别。CSeM apWnd类提供了添加图层函 数AddLayer(),可以添加由指定数据源中的某一数据 集或者一个定义好的图层对象,它提供的 RemoveLayerA t()函数和ReMoveLayer()函数分别可 以用来删除当前地图集中指定索引顺序的图层和指定 名称的图层。同时,通过调用相应方法可将指定 索引顺 序位置的图层在当前地图集中进行上下移动和以移至 图层集最上端和最下端。此外,嵌入式农田信息采集系 统根据应用需要,还实现了地图旋转功能。该功能的实 现是通过CSeDrawParameters绘图参数类,该类用以 保存绘图过程所需要的参数。图4所示为嵌入式农田信 息采集系统对PMF格式地图数据的管理,地图数据为 “国家精准农业示范基地”(北京昌平小汤山)农田基础 地理信息数据。 图4 PMF格式地图数据 Fig. 4 Display of PMF formatmap file 2.3 农田信息采集功能模块 2. 3. 1 基于ADOCE的数据库应用的实现 在基于掌上电脑的农田信息采集过程中,对各种不 同类型的农田信息进行有效的管理是嵌入式农田信息 采集系统需要解决的关键问题,而数据库恰恰是对各种 数据进行高效管理和访问的有效工具。W indowsCE设 备(包括Pocket PC、Pocket PC 2002及Handheld PC 等)提供了PocketAccess数据库,使得PDA具有基本 的数据库处理功能,但这些功能需要用户自己编程自应 用软件中实现[5]。M icrosoft公司W indowsCE开发工 具eMbedded V isual Tools中提供了一组数据库对象 (ADOCE, M icrosoft ActiveX Data Objects for W indows CE)可以用来操作数据库。ADOCE中包括 Connection对象、Recordset对象、Field对象及Error 对象,通过使用这些对象可以实现对数据库的操 作。图 5所示为W indows CE环境下使用ADOCE对数据库 访问的结构。 图5 ADOCE结构图 Fig. 5 Structure of theADOCE 在C++环境下,建立数据连接需要首先初始化 COM对象,然后调用CoCreateInstance()函数建立连 接,再调用_ Connection对象的Open()函数指定数据 源。在这里需要说明的是,在调用Open()函数时有两种 情况,当应用程序需要访问某一现成的CDB文件时, Open()函数的第一个参数需要指明该cdb文件的路 径;当应用程序不需要访问现有的cdb文件时,该参数 指定为空即可。具体代码如下: …. CoInitializeEx ( NULL, COINIT_