一种基于智能手机的小麦生产风险信息采集系统和方法

文档序号:352872阅读:291来源:国知局

专利名称::一种基于智能手机的小麦生产风险信息采集系统和方法
技术领域
:本发明涉及农业信息
技术领域
,尤其涉及一种基于智能手机的小麦生产风险信息采集系统和方法。
背景技术
:随着第三代移动通讯(3G)技术的迅猛发展,基于智能化移动终端的应用和服务获得了很大的发展空间,正在成为移动应用的研究热点之一。3G技术为移动终端用户带来了更快的数据传输速率和更好的网络体验,也为电信网络与计算机网络的融合提供了支持。同时,以智能手机为代表的移动终端也不再仅仅是通讯网络的终端,除支持3G以外,还集成了语音、摄像、WIFI、BLUETOOTH、GPS、键盘等多种设备,有的甚至还内置了温度、光感、重力等多种传感器。因此,智能手机正在向集通话、多媒体、上网、邮件等多功能于一体的掌上电脑方向发展,成为了典型的互联网终端。在这一背景下,针对3G网络和移动终端的特点,面向具体行业需求,提出特定的行业移动应用解决方案具有重要的现实意义。
发明内容本发明所要解决的技术问题是针对现有技术的不足,提供一种基于智能手机的小麦生产风险信息采集系统和方法本发明采用以下技术方案一种基于智能手机的小麦生产风险信息采集系统,包括客户端和服务器端,所述客户端采用智能手机,在所述客户端设置灾害信息采集模块、农田信息采集模块和一般信息采集模块,所述各个信息采集模块均与信息上传模块连接,通过所述信息上传模块将采集到的信息上传到所述服务器端,所述各个信息采集模块同时均与本地存储模块连接,所述本地存储模块用于将各个信息采集模块采集到的信息存储在本地,所述本地存储模块还与所述信息上传模块连接,用于通过所述信息上传模块将存储在本地的信息上传到所述服务器端。所述的小麦生产风险信息采集系统,所述灾害信息采集模块包括文字信息采集模块和灾害视频信息采集模块。所述的小麦生产风险信息采集系统,所述农田信息采集模块包括农田文字信息采集模块和图像数据采集模块。所述的小麦生产风险信息采集系统,还包括系统设置模块,用于设置信息采集人员信息和信息存储模式。一种基于智能手机的小麦生产风险信息采集方法,包括信息采集和信息上传步骤所述信息采集步骤包括:A1启动系统;A2选择信息采集种类,若选择采集灾害信息则进行步骤A3;若选择进行农田信息采集,则进行步骤A4;若选择进行一般信息采集,则进行步骤A5;A3灾害信息采集步骤;A4农田信息采集步骤;A5—般信息采集步骤;所述步骤A3、A4、A5不区分先后顺序;所述信息上传步骤包括检测判断系统设置的存储模式,若为本地存储,则将采集到的信息存储在本地客户端;若为在线存储模式,则将采集到的信息上传到所述服务器端。所述的小麦生产风险信息采集方法,还包括系统设置步骤,用于设置信息采集人员信息和信息存储模式。所述的小麦生产风险信息采集方法,所述灾害信息采集步骤包括文字信息采集步骤和灾害视频信息采集步骤。所述的小麦生产风险信息采集方法,所述农田信息采集步骤包括农田文字信息采集步骤和图像数据采集步骤。本发明重点围绕小麦生产风险信息采集这一应用需求,提出一套基于移动终端的系统解决方案,其目的是通过即时采集、汇交各网点的小麦生产风险信息,为小麦生产风险预警模型和预警系统提供实时的数据支持。在传统模式下,信息采集过程中存在着信息滞后、采集效率低、采集成本高等突出问题。而基于智能手机的信息采集系统,则可以随身携带,突破了时间和空间的限制,能够随时随地采集信息、上报信息,并且,在信息采集过程中还能够同时采集空间信息(如经纬度)和多媒体信息(如照片、视频)等。因此,利用智能手机进行信息采集具有其独特优势。此外,本发明中采用了Android智能手机操作系统。当然本系统亦可采用其他手机操作系统实现。与其他手机操作系统(如WindowsMobile、Symbian、iPhoneOS、PalmOS等)相比,Android具有无可比拟的开放性和灵活性等特点。Android是Google公司推出的基于Linux系统的移动开发开源平台。从软件分层的角度而言,Android平台由Linux内核、Android运行时库、应用程序框架、应用程序共四部分组成①Linux内核用来提供系统的底层服务。Android系统基于Linux2.6内核来提供系统的核心服务,例如安全机制、内存管理、进程管理、网络堆栈和驱动模块等。②Android运行时库和其他库=Android运行时库包含一组核心库(提供了Java语言核心库内的大部分功能)和Dalvik虚拟机。同时Android提供了丰富的类库支持且大部分为开源代码。③应用程序框架这一层提供了经过封装后的API,是进行Android系统开发的基础,开发人员大部分情况下是基于应用程序框架进行开发。④应用程序包括内置程序和用户程序。Android平台默认内置了一系列的核心应用程序,包括电子邮件、短信、日历、地图、浏览器等。Android应用程序是一种APK(AndroidPackge)格式文件,运行于Dalvik虚拟机之上。从上述架构可以看出,Android是一个真正意义上的开放性移动开发平台,它同时包含了底层操作系统和上层应用所需的全部软件,并且所有的Android应用程序之间是完全平等的,都运行在同一个核心引擎上面,这样便大大拓宽了应用程序开发的范围。Android系统最大的特点即是其开源性质,允许开发人员自由获取、修改源代码,因此显著降低了Android手机的开发成本。自Google公司2007年11月正式发布以来,Android便立即成为众多手机厂商竞相追逐的对象。在全世界范围内,T-Mobile、Motorola、SonyEricsson、HTC、Samsung、Lenovo、中国移动等众多公司都已经推出Android手机产品,而且有越来越多加速上升的趋势。目前,Android系统版本已由最初的1.1U.5/1.6发展到了2.1/2.2以及即将发布的3.0,手机功能越来越强的同时价格越来越低,极大地推动了Android系统的推广和普及图1所示为本发明的系统总体架构图。图2所示为本发明的客户端功能框架图。图3所示为本发明的服务器端功能框架图。图4所示为本发明的用户操作流程图。具体实施例方式以下结合附图,以Android智能手机操作系统的具体实现方案为例,对本发明进行详细说明。实施例1系统总体设计参考图1、图2和图3,本系统总体上设计为客户机/服务器的架构。客户机(即智能手机)负责前台界面显示和信息采集,服务器负责数据接收和存储。为完成系统各功能模块的开发,建立了AndroidSDK+JavaJDK6+Eclipse3.5的开发环境,基于Android1.6版本(APILEVEL4)开发。本系统测试环境为服务器DELLPowerEdge2950,操作系统WindowsServer2008,数据库系统MSSQLServer。客户端智能手机采用联想LePhone(Android1.6系统,硬件配置为SnapdragonQSD8250IGHzCPU,512MBROM,512MBRAM,3.7英寸AMOLED电容屏)。测试用的3G通道为中国联通的WCDMA网络。客户端功能框架在设计系统的功能框架时,主要分为一般信息采集、农田信息采集和灾害信息采集三个模块。其中,一般信息采集主要是处理一些小麦生产统计信息或一般文本信息的采集录入,主要包括小麦面积数据(如播种面积、收获面积、灌溉面积等)、小麦产量数据(如总产、单产等)、当地气象数据(如日照时数、有效积温、温湿度等)、小麦种植方式以及小麦生产管理等;农田信息采集主要是处理农田空间信息(如海拔、经纬度等)、土壤类型、养分含量等信息的采集录入;灾害信息采集主要是处理灾害类型、发生时间、发生地点、受灾面积、发生频率等信息的采集录入。之所以分为上述三个信息处理模块,是因为一般信息采集只是普通的录入信息并上报,而农田信息采集还需另外启动手机定位设备,灾害信息采集还需另外启动手机视频设备。客户端功能框图如图2所示。用户通过系统设置功能,可以指定当前采集数据的存储模式和当前采集人员的信息。数据存储模式分为在线存储和离线存储两种在线存储模式是在采集地点3G信号状态良好的情况下,通过3G通道将采集的数据即时传输并存储于服务器端;离线存储模式是在采集地点无3G信号或3G通道中断的情况下,将采集的数据临时存储于智能手机的本地数据库中,待客户端3G信号恢复、重新建立3G通道后,再将临时存储的数据上传到服务器端。为此,在系统功能框架中专门设计了一个“上传离线数据”的功能。若用户将当前的存储模式设置为在线存储模式时,则还需指定HTTP服务器、SOCKET服务器及相应端口。HTTP服务器用于接收文本和图像数据,SOCKET服务器用于接收视频数据,两者可以是同一台物理服务器。实施例2服务器端设计参考图3,根据接收数据类型的不同,服务器端采用了两套接收程序设计。HTTP服务器用于接收文本和图像数据,其实现过程是建立一个.ASPX动态服务器页面,获得来自客户端的POST请求后将POST的数据通过ADO接口保存至SQL数据库。SOCKET服务器用于接收实时传输的视频流数据,服务器程序启动后打开并监听相应的SOCKET端口,一旦监听到有网络连接请求便立即响应,即时处理数据传输,并将接收到的数据保存为视频文件。待客户端视频数据发送完毕后,再将当前视频文件的文件名(包含路径信息)写入数据库中相应的记录。实施例3一般统计信息的采集参考图4,小麦生产风险一般统计信息主要包括小麦作物种植面积统计表、小麦产量统计表、气象信息统计表、小麦亩生产投入表、农户固定资产调查表、农用资金项目表、生产效益调查表、小麦生产价格分类指数表、小麦种植方式统计表、小麦种子施肥及灌溉统计表、小麦常见病虫草害管理情况统计表、农产品出口统计表、农技服务统计表、农民家庭人口劳力及文化程度统计表等14个信息类别。由于一般统计信息的采集主要是以文本数据为主,因此一般信息的录入和提交采用了表单的格式。根据信息类别的不同,分别设计了不同的表单。用户进入本模块之后,首先在系统菜单中选择要采集的信息类别,然后系统根据用户的选择调出相应的表单界面。实施例4数据的提交方法当采集的各项数据填录完毕之后,点击“提交”按钮保存数据。若在“系统设置”中的“存储模式”设置为“在线存储”,此时采集的数据将通过无线网络直接提交至服务器端。其具体的实现过程是基于一种“请求-应答”模式。首先利用DefaultHttpClient获得Android默认的HTTP客户端httpclient,同时由HttpPost生成一个HTTPPOST的对象,然后利用ArrayList放入POST内容的键值对,最后通过httpclient的execute()方法发出实际的HTTPPOST请求,实现数据的远程提交并取得返回结果。以下为数据提交部分关键代码的示例publicStringPostDataO{HttpClienthttpclient=newDefaultHttpClientO;HttpPosthttppost=newHttpPost(“http://www.abc.com/postdata.aspx〃);try{List<NameValuePair>mydata=newArrayList<NameValuePair>(2);mydata,add(newBasicNameValuePair(“播种面积〃,“35000〃));mydata,add(newBasicNameValuePair("^/feM",“5800"));httppost.setEntity(newUrlEncodedFormEntity(mydata));HttpResponseresponse=httpclient.execute(httppost);HttpEntityentity=response.getEntiry();InputStreamis=entity.getContent();returnconvertStreamToString(is);}......}实施例5本地数据的存储和上传在无线网络不可用的情况下,信息采集人员可将采集的数据暂时存储在手机内建的数据库中,待网络连通后再将这些数据上传至服务器端。在本系统中使用SQLite数据库来实现采集数据的本地存储和管理。SQLite是一种开源嵌入式数据库引擎,是一种完全独立的、轻量级的关系型数据库系统,支持多数SQL92标准,可以在所有主流操作系统上运行。Android平台提供了与SQLite数据库相关的API来实现对数据库操作的支持。在Android中通过SQLiteDatabase这个类的对象操作数据库,而在实际应用中,一般需要编写一个继承自SQLiteOpenHelper的数据库辅助类来创建和管理数据库。SQLiteDatabase除了提供execSQLO和rawQueryO等直接解析SQL语句的方法以外,还针对insert、update、delete和select等操作专门定义了相关的方法,本实施例中对采集数据的各种操作即是利用这些方法来实现。以下是向手机SQLite数据库插入数据的代码示例publicvoidInsertData(){MyHelperhelper=newMyHelper(this,DB_NAME,null,VERSION);SQLiteDatabasedb=helper.getffritableDatabase();ContentValuesvalues=newContentValues();values,put(“播种面积〃,‘‘35000〃);values,put(“总产量〃,“5800〃);db.insert(“小麦面积统计表〃,“id",values);......}上述代码中,DB_NAME为数据库名称,VERSION为数据库版本,在这里构造了一个ContentValues对象,然后用insert方法将采集的数据插入SQLite数据库。当需要将数据上传至服务器时,首先读取暂存在手机中的数据记录,并通过上面的HTTPPOST方法来提交数据。以下是循环读取“小麦面积统计表”中相关数据的代码示例publicvoidGetDataQ{Cursorc;......c=db.query(“小麦面积统计表〃,null,null,null,null,null,null);finalintareaindex=c.getColumnlndexOrThrow(“播禾中面禾只〃);finalintamtindex=c.getColumnlndexOrThrow(“总产量〃);for(c.moveToFirst();!(c.isAfterLast());c.moveToNext()){Stringareas=c.getString(areaindex);Stringamounts=c.getString(amtindex);......}}在将SQLite数据库的数据逐条读取并上传至服务器后,系统将把本地暂存的所有数据全部清空,以避免造成数据重复。实施例6农田空间及土壤信息的采集在本系统中利用智能手机的GPS功能,在农田信息采集过程中自动获取当前农田地块的海拔高度和经纬度等空间信息,然后与其他相关信息一起采集并提交至服务器端。农田空间及土壤信息采集的主要内容见表一。表一农田空间信息及土壤调查表权利要求一种基于智能手机的小麦生产风险信息采集系统,其特征在于,包括客户端和服务器端,所述客户端采用智能手机,在所述客户端设置灾害信息采集模块、农田信息采集模块和一般信息采集模块,所述各个信息采集模块均与信息上传模块连接,通过所述信息上传模块将采集到的信息上传到所述服务器端,所述各个信息采集模块同时均与本地存储模块连接,所述本地存储模块用于将各个信息采集模块采集到的信息存储在本地,所述本地存储模块还与所述信息上传模块连接,用于通过所述信息上传模块将存储在本地的信息上传到所述服务器端。2.根据权利要求1所述的小麦生产风险信息采集系统,其特征在于,所述灾害信息采集模块包括文字信息采集模块和灾害视频信息采集模块。3.根据权利要求1所述的小麦生产风险信息采集系统,其特征在于,所述农田信息采集模块包括农田文字信息采集模块和图像数据采集模块。4.根据权利要求1所述的小麦生产风险信息采集系统,其特征在于,还包括系统设置模块,用于设置信息采集人员信息和信息存储模式。5.一种基于智能手机的小麦生产风险信息采集方法,其特征在于,包括信息采集和信息上传步骤所述信息采集步骤包括:A1启动系统;A2选择信息采集种类,若选择采集灾害信息则进行步骤A3;若选择进行农田信息采集,则进行步骤A4;若选择进行一般信息采集,则进行步骤A5;A3灾害信息采集步骤;A4农田信息采集步骤;A5—般信息采集步骤;所述步骤A3、A4、A5不区分先后顺序;所述信息上传步骤包括检测判断系统设置的存储模式,若为本地存储,则将采集到的信息存储在本地客户端;若为在线存储模式,则将采集到的信息上传到所述服务器端。6.根据权利要求5所述的小麦生产风险信息采集方法,其特征在于,还包括系统设置步骤,用于设置信息采集人员信息和信息存储模式。7.根据权利要求5所述的小麦生产风险信息采集方法,其特征在于,所述灾害信息采集步骤包括文字信息采集步骤和灾害视频信息采集步骤。8.根据权利要求5所述的小麦生产风险信息采集方法,其特征在于,所述农田信息采集步骤包括农田文字信息采集步骤和图像数据采集步骤。全文摘要本发明公开了一种基于智能手机的小麦生产风险信息采集系统,包括客户端和服务器端,所述客户端采用智能手机,在所述客户端设置灾害信息采集模块、农田信息采集模块和一般信息采集模块,所述各个信息采集模块均与信息上传模块连接,通过所述信息上传模块将采集到的信息上传到所述服务器端,所述各个信息采集模块同时均与本地存储模块连接,所述本地存储模块用于将各个信息采集模块采集到的信息存储在本地,所述本地存储模块还与所述信息上传模块连接,用于通过所述信息上传模块将存储在本地的信息上传到所述服务器端;还公开了一种基于智能手机的小麦生产风险信息采集方法。文档编号A01G1/00GK101969455SQ201010279129公开日2011年2月9日申请日期2010年9月13日优先权日2010年9月13日发明者尚明华,张晓艳,朱建华,王风云,秦磊磊申请人:山东省农业科学院科技信息工程技术研究中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1