基于嵌入式组件技术的精准农业农田信息采集系统的设计与实现孟志军.docx

上传人:b****6 文档编号:9281727 上传时间:2023-02-04 格式:DOCX 页数:21 大小:29.33KB
下载 相关 举报
基于嵌入式组件技术的精准农业农田信息采集系统的设计与实现孟志军.docx_第1页
第1页 / 共21页
基于嵌入式组件技术的精准农业农田信息采集系统的设计与实现孟志军.docx_第2页
第2页 / 共21页
基于嵌入式组件技术的精准农业农田信息采集系统的设计与实现孟志军.docx_第3页
第3页 / 共21页
基于嵌入式组件技术的精准农业农田信息采集系统的设计与实现孟志军.docx_第4页
第4页 / 共21页
基于嵌入式组件技术的精准农业农田信息采集系统的设计与实现孟志军.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于嵌入式组件技术的精准农业农田信息采集系统的设计与实现孟志军.docx

《基于嵌入式组件技术的精准农业农田信息采集系统的设计与实现孟志军.docx》由会员分享,可在线阅读,更多相关《基于嵌入式组件技术的精准农业农田信息采集系统的设计与实现孟志军.docx(21页珍藏版)》请在冰豆网上搜索。

基于嵌入式组件技术的精准农业农田信息采集系统的设计与实现孟志军.docx

基于嵌入式组件技术的精准农业农田信息采集系统的设计与实现孟志军

基于嵌入式组件技术的精准农业农田信息采集系统的设计与实现

孟志军1,2,王 秀1,赵春江1,薛绪掌1

(1.国家农业信息化工程技术研究中心,北京100089; 2.中国农业大学精细农业研究中心,北京100083)

该模块负责GPS通讯和数据处理任务。

系统通过

RS-232标准串口连接手持型GPS、差分GPS或直接在

掌上电脑上插接CF卡式GPS与GPS设备进行通讯,

解析通讯端口传来的NMEA-0183协议格式数据,提取

经纬度位置信息、高程、卫星分布、信号、速度等方面信

息。

2)基于嵌入式操作系统WinCE的GIS基本功能

模块

该模块的主要功能有:

地图操作功能,包括地图显

示、放大、缩小、漫游、自由放缩、点选、全图等;地图管理

功能包括对地图的旋转角度、容限进行设置、图层控制

功能等;查询功能包括图形和属性双向互查功能、支持

SQL查询;分析计算功能主要有距离、面积量算、最短/

最佳路径分析等功能。

3)农田信息采集功能模块

根据田间信息采集作业的不同,要求系统能进行田

间地物分布、杂草分布、病虫害发生情况等多种基于精

确空间位置的实时信息。

系统要求支持基于GPS位置

的农田地物分布空间和属性信息的采集记录;支持基于

GPS位置的作物长情长势、病虫草害分布空间及属性

信息的采集记录。

嵌入式农田信息采集系统软件结构框图如图1所

示。

图1 系统功能模块结构框图

Fig.1 Structureofsystemfunctionmodules

1.2 系统开发环境

在基于掌上电脑的农田信息采集系统中,使用的硬

件系统主要有GPS设备和掌上电脑。

根据所采集信息

对空间位置精度的要求不同,可选用非差分的便携式

GPS设备或差分GPS(DGPS)设备,目前常用的便携式

GPS的水平定位精度可达到10m左右。

如果信息采集

精度较高,则需要采用DGPS设备。

系统在开发过程中

选用的DGPS设备是TrimbleAgGPS132,其中一台为

基准站,一台作为田间工作的流动站,在差分状态工作

时水平定位精度为亚米级。

便携式GPS采用

NAVMANforCompaqiPAQ,这是一个专门为

CompaqiPAQ系列掌上电脑设计的背夹式GPS接收

机,水平定位精度为5m左右。

考虑到农田信息采集系

统的野外工作环境,选择了CompaqiPAQ3870型

PocketPC,该型号掌上电脑电源工作时间长,显示屏抗

强光性能较好。

掌上电脑的操作系统为中文MicrosoftPocketPC

2002,系统软件开发过程中,选择MicrosofteMbedded

VisualC++3.0作为应用软件开发工具。

为了实现基

于掌上电脑的GIS功能,选择eSuperMap1.0作为系

统开发中间件。

eSuperMap是北京超图公司开发的嵌

入式地理信息系统开发工具,以类库的方式进行分发。

该开发工具针对嵌入式设备资源紧缺的特点,设计了紧

凑的数据结构,对资源的消耗较低,功能比较完善。

嵌入

式农田信息采集系统的结构框架如图2所示。

图2 嵌入式农田信息采集系统结构图

Fig.2 Structureofembeddedfield

informationcollectionsystem

2 嵌入农田信息采集系统软件开发

2.1 GPS设备通讯与数据处理模块

GPS和田间信息获取设备为系统提供信息源,其

中GPS设备提供空间位置信息。

根据地物特征和信息

采集作业类型,系统可以将GPS设备采集的散点数据

形成为点、线或面状的矢量数据。

田间信息获取设备负

责为这些矢量提供匹配的实时动态属性数据,系统通过

将动态实时的属性数据与矢量的匹配,从而达到田间信

息采集的目的。

eSuperMap提供了GPS相关的类进行

GPS通讯和数据处理,通过调用这些类的相应函数接

口很容易实现与GPS设备的通讯和位置数据的提取。

如通过传入一个能够描述GPS硬件设备接口信息的结

构GPSDEVICEINFO的对象实例,调用CSeGPS类的

成员函数Open()就能实现通过串口与GPS设备连接,

如果连接成功再调用该类的成员函数GetData()可以

返回一个GPSDATA类型的结构体对象,该结构体中

包括有以经纬度表示的位置、高程、可见卫星数等信息。

实际应用系统开发中,仅使用eSuperMap1.0提供

的类库进行GPS数据分析处理往往不够,因为其处理

解析的NMEA语句有限,提供的信息有时不能满足一

92农业工程学报2005年 

经纬坐标和转换为平面坐标,进而形成相应的数据

文件。

2.2.3 地图数据的显示操作

地图显示操作子模块能够将以PMF格式表示的

地理空间数据打开显示并进行放缩、平移、漫游等操作。

eSuperMap中对PMF文件的管理是通过类CSePMF

实现的,该类提供Open方法用以打开指定路径和名称

的PMF文件,GetMaps方法用以获取PMF文件中的

地图,GetDataSource方法可以获取指定名称的数据

源,Close()方法用于关闭PMF文件。

PMF文件的显示

由CSeMapWnd类实现,CSeMapWnd类是eSuperMap

负责地图显示和操作的核心类之一,它是eSuperMap

类库的外在体现,大多数与地图显示相关的操作基本上

都要通过它来实现。

地理空间数据在地图窗口中显示出来以后,就可以

进行放缩、平移和全图等地图操作动作。

这些地图操作

的实现是通过调用CseMapWnd类的成员函数

SetAction()实现,不同的操作动作可以通过设置该函

数的参数加以区别。

CSeMapWnd类提供了添加图层函

数AddLayer(),可以添加由指定数据源中的某一数据

集或者一个定义好的图层对象,它提供的

RemoveLayerAt()函数和ReMoveLayer()函数分别可

以用来删除当前地图集中指定索引顺序的图层和指定

名称的图层。

同时,通过调用相应方法可将指定索引顺

序位置的图层在当前地图集中进行上下移动和以移至

图层集最上端和最下端。

此外,嵌入式农田信息采集系

统根据应用需要,还实现了地图旋转功能。

该功能的实

现是通过CSeDrawParameters绘图参数类,该类用以

保存绘图过程所需要的参数。

图4所示为嵌入式农田信

息采集系统对PMF格式地图数据的管理,地图数据为

“国家精准农业示范基地”(北京昌平小汤山)农田基础

地理信息数据。

图4 PMF格式地图数据

Fig.4 DisplayofPMFformatmapfile

2.3 农田信息采集功能模块

2.3.1 基于ADOCE的数据库应用的实现

在基于掌上电脑的农田信息采集过程中,对各种不

同类型的农田信息进行有效的管理是嵌入式农田信息

采集系统需要解决的关键问题,而数据库恰恰是对各种

数据进行高效管理和访问的有效工具。

WindowsCE设

备(包括PocketPC、PocketPC2002及HandheldPC

等)提供了PocketAccess数据库,使得PDA具有基本

的数据库处理功能,但这些功能需要用户自己编程自应

用软件中实现[5]。

Microsoft公司WindowsCE开发工

具eMbeddedVisualTools中提供了一组数据库对象

(ADOCE,MicrosoftActiveXDataObjectsfor

WindowsCE)可以用来操作数据库。

ADOCE中包括

Connection对象、Recordset对象、Field对象及Error

对象,通过使用这些对象可以实现对数据库的操作。

5所示为WindowsCE环境下使用ADOCE对数据库

访问的结构。

图5 ADOCE结构图

Fig.5 StructureoftheADOCE

在C++环境下,建立数据连接需要首先初始化

COM对象,然后调用CoCreateInstance()函数建立连

接,再调用_Connection对象的Open()函数指定数据

源。

在这里需要说明的是,在调用Open()函数时有两种

情况,当应用程序需要访问某一现成的CDB文件时,

Open()函数的第一个参数需要指明该cdb文件的路

径;当应用程序不需要访问现有的cdb文件时,该参数

指定为空即可。

具体代码如下:

….

CoInitializeEx(NULL,COINIT_

MULTITHREADED);//初始化COM_Connection*

m_Conn;//声明_Connection对象

hr=CoCreateInstance(g_ClsID,NULL,CLSCTX_

INPROC_SERVER,IID__Connection,

(LPVOID*)&m_Conn);//建立连接

//打开指定路径的数据库文件

hr=m_Conn->Open(TEXT("\MyDocuments\

soilsample.cdb"),TEXT(""),TEXT(""),

adOpenUnspecified);

建立Recordset对象的过程与普通COM对象创建

过程类似,这里不再赘述。

基于ADOCE的数据连接及

与该数据连接相关联的纪录集对象建立完成之后,就可

以根据需要在应用程序中使用SQL语句对数据库中的

数据进行相应的操作。

这里仅以几个典型的SQL语句

说明基于ADOCE实现对PocketAccess数据库的操

作。

94农业工程学报2005年 

殊的需要,为此,开发了自己的GPS通讯和数据处

理功能模块。

在嵌入式农田信息采集系统中,GPS设备

主要以标准的RS-232硬件接口和串行通讯协议与

PocketPC进行通讯。

根据串行通讯和掌上机的特点,在

系统串口通讯模块的开发实现过程中,将串口对象抽象

为一个类CSerialPort。

该类封装了串口监视函数、初始

化串口函数InitPort()及串口读写函数等。

其中串口监

视函数完成串口通讯操作,用来监视和管理串口通信的

输入、输出及通讯错误处理;在程序中可以调用

CSerialPort类的其它成员函数完成串口通讯资源的打

开、参数配置以及关闭等工作。

通过接收掌上机串口传

来的数据,可以实时形成根据NMEA-0183格式的

GPS通讯数据,这些数据信息包括多条以逗号分割的

ASCII码文本语句,每一条语句包含特定的信息。

每条

语句由语句头标识、字段、校验和结尾标识符组成。

语句

头用来标识该条语句的类型,输出信息分布在各个字段

中,句尾的校验和用来检查该条NMEA语句的有效

性。

为了得到用户需要的信息,首先需要确定提供该信

息的语句,然后找到该类型信息在语句中的字段位置,

通过分解字符串可以得到该位置的GPS信息。

2.2 嵌入式GIS基本功能模块

该模块的主要功能有:

地图操作功能,包括地图显

示、放大、缩小、漫游、自由放缩、点选、全图等;地图管理

功能包括对地图的旋转角度、容限进行设置、图层控制

功能等;查询功能包括图形和属性双向互查功能、支持

SQL查询;分析计算功能主要有距离、面积量算、最短/

最佳路径分析等功能。

2.2.1 数据源的准备

嵌入式农田信息采集系统操作的矢量数据除了在

田间作业实时采集的数据之外,主要包括田间信息采集

作业区的基础地理信息数据。

作业区的基础地理信息首

先必须制作成PMF(PortableMapFile)文件才能为系

统读取并进行操作。

PMF文件是eSuperMap存储和管

理空间数据的文件格式,每个PMF文件种包含了数据

源、地图和资源三部分内容。

这种数据文件是根据嵌入

式设备的特点而设计的。

PMF文件的制作方法一般有两种,根据生成PMF

文件的数据源不同,可以选择不同的方式。

方法之一就

是利用eSuperMap提供的工具Toolkit转换,这个工具

可以将超图格式的空间数据文件(SDB文件)转换为

PMF文件。

该工具提供了数据导入(导入SDB文件)和

资源导入接口,根据导入的数据和资源可以生成相应的

PMF文件。

同时还可在生成之后进行数据的追加、删除

和紧缩操作。

但这种方法的前提是用户自己的数据源必

须是SDB格式,否则需要使用超图桌面软件将其他格

式的数据源转换为SDB格式,再使用ToolKit进行转

换。

另外一种方法是用户自己通过编写程序将自己拥有

的数据源读出,再直接使用eSuperMap类库,将读出的

数据写为PMF文件,eSuperMap提供的类库中提供了

PMF文件的读写接口。

嵌入式农田信息采集系统使用

的数据源是使用了第一种方法生成的,即首先将SHP

格式的数据源在SuperMap桌面平台上转换为SDB格

式的文件,再生成PMF文件的。

2.2.2 坐标转换

嵌入式农田信息采集系统中的基础地理信息都是

以地理坐标系表示的,包括普通平面直角坐标系、球面

经纬度坐标系和投影坐标系等。

如同普通Windows应

用一样,系统的地图显示窗口还存在一个客户区坐标

系,进行地图操作的窗口事件产生点的坐标都是依赖于

它的。

如图3所示,XsOsYs表示的为Windows客户区

坐标系(Os为屏幕原点),XgOgYg表示地理坐标系。

实际的应用中,无论使用那种地理坐标系,都需要和客

户区坐标系之间进行换算,eSuperMap提供了的支持

这种换算的接口方法。

对窗口中的任意一点,从客户区

坐标系到地理坐标系的转换使用如下方法:

BOOLSeDrawParameters:

ClientToMap(CPoint

*pPoints,intnCount);

从地理坐标系到客户区坐标系的转换使用BOOL

SeDrawParameters:

:

MapToClient(CPoint*

pPoints,intnCount)方法。

同时这两种方法还支持对

CRect和CSize类型数据转换的功能重载。

图3 坐标转换

Fig.3 Coordinateconversion

嵌入式农田信息采集系统实时接收GPS设备获取

的位置坐标是WGS-84经纬度坐标,通过高斯-克吕

格投影,可以转换为平面坐标。

大地坐标转换为平面直

角坐标的高斯投影正算公式[4]为:

x=X+12Ntcos2Bl2+124Nt(5-t2+9Z2+

4Z4)cos4Bl4+1720Nt(61-58t2+t4+270Z2

-330Z2t2)cos6Bl6

y=NcosBl+16N(1-t2+Z2)cos3Bl3+

1

120N(5-18t2+t4+14Z2-58Z2t2)cos5Bl5

式中 N——椭球的卯酉圈曲率半径,N=aW W=

(1-e2sin2B)1/2,e2=a2-b2a2,e为椭球的第一偏心率。

f

=a-ba,f为椭球扁率,a为椭球长半径,b为椭球短半

径。

B为投影点的大地纬度。

l=L-L0,L为投影点的

大地经度,L0为轴子午线的大地经度。

t=tgB,Z=

e′cosB,e′2=a2-b2b2,e′是椭球的第二偏心率。

根据上述坐标转换公式,可以将GPS设备获取的

93 第4期孟志军等:

基于嵌入式组件技术的精准农业农田信息采集系统的设计与实现

摘 要:

基于精确地理位置的农田信息采集是实施精准农业的基础工作。

介绍了一种基于掌上电脑和DGPS/背夹式GPS

设备的农田信息采集系统的开发过程。

该系统在MicrosofteMbeddedVisualC++3.0集成开发环境下,采用嵌入式GIS

开发组件,实现了掌上电脑环境下GPS、GIS功能的集成。

系统由GPS实时通讯和数据处理模块、基于WinCE的基本GIS

功能模块和农田信息采集功能模块等组成模块,能够实现与DGPS设备或背夹式GPS设备的实时通讯和定位数据的解

析,实现了矢量农田地理信息的显示、操作、查询等基本GIS功能,同时,系统能够采集农田地物分布和多种影响作物生长

的环境差异性信息。

该文还介绍了使用Microsoft数据库访问组件对象ADOCE对PocketAccess数据库的操作方法,实现

了对嵌入式农田信息采集系统中农田信息的有效管理。

关键词:

精准农业;田间信息采集系统;嵌入式组件;全球定位系统(GPS);地理信息系统(GIS);掌上电脑

中图分类号:

TP274.12;TP368.33    文献标识码:

A    文章编号:

1002-6819(2005)04-0091-06

孟志军,王 秀,赵春江,等.基于嵌入式组件技术的精准农业农田信息采集系统的设计与实现[J].农业工程学报,2005,21

(4):

91-96.

MengZhijun,WangXiu,ZhaoChunjiang,etal.Developmentoffieldinformationcollectionsystembasedonembedded

COM-GISandpocketPCforprecisionagriculture[J].TransactionsoftheCSAE,2005,21(4):

91-96.(inChinesewith

Englishabstract)

收稿日期:

2004-01-14 修订日期:

2005-01-10

基金项目:

国家863计划“数字农业机电一体化田间作业系统研究”

(2005AA245010);国家863计划“城郊型集约化数字农业技术应用

研究与开发”(2003AA209080)

作者简介:

孟志军(1975-),男,博士生,助理研究员,主要从事GPS

与GIS集成应用、嵌入式系统及农机变量控制技术研究与开发。

京市海淀区板井2449信箱26分箱 国家农业信息化工程技术研究

中心,100089。

Email:

mengzj@nercita.org.cn

0 引 言

精准农业是一种基于信息和知识管理的现代农业

生产系统。

近年来,国内越来越多的研究人员开始精准

农业相关的科研试验和实践工作。

农田空间差异性信息

的采集是实施精准农业的首要任务,这些信息数据是农

田GIS和农业专家系统分析、决策并制定农田变量作

业处方的主要数据源和参数[1,2]。

随着精准农业科研和

应用示范不断增加的应用需求,开发方便快捷的农田信

息采集软硬件系统的需求也更加迫切。

开发能运行于掌

上电脑等移动计算环境下的嵌入式农田信息采集软件

是基于GPS的农田信息采集作业系统真正实用化的重

要步骤。

国外开展精准农业研究较早,一些大学等研究

机构和公司陆续开发了农田信息采集终端和相应的软

件,如美国StarPal公司生产的HGIS(Handheld

GeographicInformationSystemsTM)系统,该系统运

行在基于WinCE操作系统的PocketPC设备,能进行

GPS位置、田间地物分布和土壤采样等矢量和属性信

息的采集记录。

美国ESRI公司也推出了野外信息采集

软件ArcPad,Trimble公司也开发了可用于农田作业

信息采集的AgGPS160、EZ-map等便携式软硬件设

备。

国内从事这方面的研究刚刚起步,方彗等(2004)[7]

研究开发了一种基于掌上电脑的农田信息快速采集与

处理系统,该系统采用从底层开发专用小型GIS系统

的方式实现农田信息采集管理系统。

文献未就嵌入式环

境下农田属性数据库管理和GPS定位坐标转换等精准

农业农田信息采集系统关键技术进行阐述。

此外,不依

赖于任何GIS工具软件,从底层实现嵌入式环境下GIS

软件功能不但费时费力,功能和稳定性也不一定能达到

专业GIS组件的效果。

本文介绍了一种利用嵌入式COM-GIS组件技术

和MicrosoftADOCE3.0嵌入式数据访问组件技术开

发的,面向精准农业应用的便携式农田信息采集系统。

系统研究与开发的目的就是以PocketPC为硬件平台,

通过集成DGPS/便携式GPS设备,开发能进行田间地

物分布信息采集、作物生长环境时空变化信息监测等精

准农业信息采集作业功能相对完善的嵌入式农田信息

采集软件系统。

文中给出了基于嵌入式组件GIS技术

实现农田地理矢量信息采集管理的方法,同时介绍了基

于ADOCE实现农田属性数据采集存储的具体技术方

案和实现过程。

1 系统设计

1.1 系统功能需求及模块划分

基于掌上电脑的农田信息采集系统以农田基础地

理要素和影响作物生长和产量的主要动态要素(作物长

情长势、杂草及病虫害分布等)为探测和采集对象,通过

系统软件实现与GPS硬件实时通讯并记录上述农田信

息采集对象的空间分布位置信息和相关的属性信息,满

足多源信息的采集、存储和管理功能。

根据系统功能需

求,可以划分如下功能模块:

1)DGPS/GPS实时通讯和通讯数据处理功能模

●在数据库中创建一个新表

使用SQL语句在数据库中创建一个名为Position

的数据表,用于实时存储GPS采集的位置信息,该表包

含四个字段:

点标识号ID,纬度值Longitude,经度值

Latitude和备注字段Note。

实现代码如下:

VARIANTvarTable;

VariantInit(&varTable);

varTable.vt=VT_BSTR;

CStringstr=CString(_T("CREATETABLE

 Position(IDINTEGER,Longitude

 DECIMAL(9,6),Latitude

 DECIMAL(9,6),Note

 VARCHAR(40))"));

varTable.bstrVal=SysAllocString(str);

hr=m_pRs->Open(varTable,vt,

adOpenDynamic,adLockOptimistic,

adCmdUnknown);

●在数据表中插入记录:

CStringstr=CString(_T("INSERTINTO

 Position(ID,Longitude,Latitude,Note)

 VALUES(3,116.3987,40.2465,起点)"));

varTable.bstrVal=SysAllocString(str);

hr=m_pRs->Open(varTable,vt,

adOpenDynamic,adLockOptimistic,

adCmdUnknown);

2.3.2 农田信息采集功能的实现

调查农田基础地理信息,建立农田基础信息数据

库,可以为农田生产管理人员及科研试验人员进行农田

资源状况分析、生产目标确定、制定生产规划和年度计

划提供科学依据。

另外,影响作物生长的农田空间差异

性信息具有明显的空间位置属性,及时准确地采集这些

数据可以满足对农田信息进行时间序列分析的需要,为

农田变量作业决策方案的制定提供充分的数据支持。

基于掌上电脑的农田信息采集系统采集的农田信

息包括农田地物分布信息(如地块分布、农田基础设

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

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1