APP下载

基于Android智能手机的户用沼气池管理系统

2014-08-12叶小岭赵二摆朱春阳

江苏农业科学 2014年6期
关键词:管理系统

叶小岭+赵二摆+朱春阳

摘要:为了提高农村户用沼气池的运行效率,设计了一种基于手机平台的户用沼气池实时监控管理系统。系统结合GPRS、WEB服务器及数据库技术,对沼气池进行监控管理。用户通过Android手机客户端软件进行注册、登录,查看对应沼气池实时运行状态、历史数据曲线及服务器给出的管理意见,还可就一些具体问题与服务器进行交互,有效提高沼气池的运行效率及安全性。

关键词:户用沼气池;WEB;Android智能手机;管理系统

中图分类号: S216.4;TP274文献标志码: A文章编号:1002-1302(2014)06-0358-03

收稿日期:2013-09-07

基金项目:江苏省农业科技自主创新资金[编号:CX(12)3050];江苏省六大人才高峰项目(编号:WLW-021)。

作者简介:叶小岭(1964—),女,河南封丘人,教授,硕士生导师,主要从事检测技术等研究,E-mial:xyz.nim@163.com。

通信作者:赵二摆。E-mail:zhaoerbai200@163.com。作为人口大国,能源短缺,人均资源不足已成为制约我国可持续发展的重要因素。沼气作为一种可再生能源,不仅是农村新能源建设至关重要的组成部分,也是中国可持续发展建设的重要一环。发展农村沼气可以避免因为焚烧秸秆造成的空气污染,减少化石能源的消耗,降低对环境的压力,改善农民的生存条件和生活质量,而且在一定程度上促进了当地产业的发展[1]。然而沼气的正常使用需要“三分建七分管”,很多地区重视建设,忽视维护管理,导致许多沼气池运行不佳甚至废弃。

随着移动通讯产业的迅速发展,智能手机和3G网络得到快速的发展和普及,预计2013年底,中国智能手机用户可达5×108,其中Android操作系统的安装量占51.4%[2]。此外Android智能手机操作系统开放性好、功能扩展性强,能很好地支持应用程序开发。

基于以上分析,并结合GPRS、WEB服务器及数据库技术设计了一种基于Android手机平台的农村沼气管理系统。系统通过GPRS将沼气池的状态信息发送至统一的WEB服务器进行集中管理,用户可通过Android手机客户端软件进行用户注册、登录,登录后即可查看自家沼气池实时运行状态、历史数据以及服务器给出的管理意见,还可以就一些实际问题与服务器进行交互,获得专家意见。以此提高户用沼气池的运行效率,普及户用沼气使用,减少化石能源消耗,改善民生,推动社会的可持续发展。

1系统框架设计

系统主要由数据采集器、GPRS传输模块、WEB服务器、基本数据库、无线网络以及手机客户端,结构图如图1所示。

数据采集装置采集沼气池状态信息,并通过GPRS传输模块及无线网络上传到服务器,服务器端软件进行相应的信

息处理和数据库存取操作,此外,服务器端还与手机客户端进行信息的交互,响应手机信息请求。

1.1数据采集及GPRS传输模块

甲烷的生产过程实际上是一个厌氧发酵的过程。厌氧发酵过程是一个很不稳定的过程,为了提高沼气产出,同时保证一个稳定发酵过程,就需要对沼气池发酵条件进行过程控制,以优化进料以及发酵条件[3]。针对户用沼气池的特点,数据采集器设计用来采集沼气池内的运行信息(沼液温度、池内气压、沼液pH值及甲烷含量)。

数据采集及GPRS传输模块主要由msp430F149单片机、各种传感器、A/D转换电路、GPRS通信模块及外围电路(时钟电路、Flash存储、电源电路等)组成,框架图如图2所示。

传感器采集到沼气池的信息,先经过信号调理电路,然后经12位A/D芯片ADS7834转换后送至msp430F149,单片机将采集到的信息存储至Flash芯片AT45DB32,单片机使用串口将沼气池ID与采集到的数据送至GPRS通讯模块。GPRS通讯采用工业级无线模块WG-8010-232 GPRS DTU,模块支持GSM、GPRS等多种连接方式,TCP、UDP通讯协议,提供标准RS232数据接口,模块可采用常见5 V电源供电。设置模块串口波特率为9 600、通信方式为TCP、数据中心IP地址等后,即可使用RS232与单片机控制模块通信,通过GPRS与数据中心,从而实现沼气池信息从设备到服务器的全透明传输。

1.2数据库与服务器设计

服务器通过数据采集器和数据库的信息交互,将沼气池信息存储到数据库中,并可将数据库中信息取出通过C/S架构实时响应手机客户端的信息请求。

服务器采用支持Servlet且可方便地部署Java Web应用的Tomcat服务器[4]。服务器中部署所需要的Servlet类,用于实现客户端的注册、登录、数据接收存储以及响应客户端请求。服务器与客户端通信采用Http通信协议的post方法。部署服务器时,继承HttpServlet类,在类中采用覆盖HttpServlet的doGet()方法,然后通过HttpServletRequest对象获取客户端的请求信息,由HttpServletResponse对象生成响应结果并将之送给客户端。服务器端的Servlet程序完成后,在web.xml文件中进行属性配置,即可通过8080端口连接已部署的服务器[5]。

系统采用关系型数据库管理系统MySQL,服务器利用JDBC(Java数据库连接)建立数据库连接,执行SQL语句,对数据进行处理[4]。在服务器端将mysql-connector-java-50.7-bin.jar文件放到Java安装目录中,并修改环境变量。Servlet程序中的主要步骤:

Class.forName(“com.mysql.jdbc.Driver”);//加载驱动

Connection conn=DriverManager.getConnection(url,user,password);//连接数据库

然后通过实例化的Statement对象对数据库执行相应的更新和查询等操作,将取得的数据存放到ResultSet对象中,最后将请求的数据发送至客户端。

2客户端设计

客户端是基于Android 2.2版本(API LEVEL 8),在搭建的Android SDK+Java JDK 6+Eclipse 4.2 的环境中进行开发。客户端主要功能是用户注册、登录、在线实时监控、历史数据显示以及获取服务器参考意见5模块,如图3所示。根据需要客户端创建了5个Activity,使用layout文件夹下的5个xml文件实现UI(用户界面)的设计。

2.1登录模块

客户端开启后的首个界面,用户可在本页面输入用户名和登录密码,点击登录按钮即可将用户信息发送至服务器,采用http post网络通信方式,通过验证即可跳转至监控页面,否则使用Toast方法提示错误信息。页面还提供2个CheckBox用来选择是否记住用户名和密码,采用SharedPreferences方法将用户信息保存到本地,方便下次登录,登录界面如图4所示。模块关键代码如下:

HttpPost request=new HttpPost(urlStr_login);//request继承HttpPost方法

HttpResponse response=client.execute(request);//执行请求返回响应

editor.putString(“nameIsChecked”,“1”+“,”+username);//将信息存储到本地

sp=getSharedPreferences(“sp_user”,Context . MODE_PRIVATE); //将本地信息取出

2.2注册模块

首次登录需要注册,通过登录界面里的注册按钮跳转到注册界面。在注册界面,用户可根据提示输入用户名、账号密码及相应沼气池编号,客户端将信息发送至服务器进行注册保存。

2.3实时监控

监控界面实时显示沼气池运行参数。为防止UI主线程堵塞和界面假死,可通过实现Runnable接口,覆写接口的run()方法,并实例化Thread类来创建子线程,让子线程定时向服务器请求数据,取得数据后使用SendMessage()方法向Handler传送Message对象[6]。Handler接收消息后配合主线程更新UI,从而实现沼气池运行信息的实时显示。此外,系统采用json数据交换格式,程序中引入org.json包,即可使用getJSONObject()将服务器返回的数据转换成JSONObject对象,并使用JSONObject.getString()方法将其转换成可方便处理的字符串类型数据。

2.4历史数据显示

用沼气产量与主要关联参数的历史数据变化曲线显示历史数据,从而直观地获得沼气产量变化情况,有利于用户更好地管理沼气池。模块获得数据方式与实时监控模块相同,并引入Canvas与Paint类参与绘制坐标轴及数据变化曲线。首先在Activity中自定义一个继承View的PathView类,在类中实例化3个Paint对象,设置其各自属性来区分不同参数的变化情况。然后在类中使用canvas.getWidth()和canvas.getHeight()函数获得Canvas的宽度和高度,Android的 Canvas以左上角点为坐标原点,由此可方便的计算出画笔的起始点和终点,最后应用覆写onDraw()方法,并在方法中调用 drawLine()、drawCircle()和drawText()等方法实现历史曲线的绘制。

2.5获得参考意见

当沼气池运行出现问题时,用户可在客户端中简要描述故障现象,并上传到服务器,然后通过数据库快速匹配方法给出专家的经验处方。模块主要是采用Httppost()方法将故障现象发送给服务器并取得反馈信息。

客户端程序完成后还需修改根目录下的AndroidManifest.xml文件,在文件中注册新添加的Activity和开启程序所用到的权限。主要代码如下:

//注册RegisterActivity

//设置网络权限

//SD卡写权限

//SD卡创建、删除文件权限

3系统功能测试

在Eclipse中右击工程导出客户端apk(Android安装包),安装到Android版本为2.2及以上的智能手机。数据中心开启服务器和数据库服务,数据采集端开启信息采集和GPRS DTU,手机端开启客户端,完成注册,然后进入登录界面,点击登录按钮进入实时监控界面并刷新数据显示沼气池运行状态,如图5所示,然后分别进入历史曲线和获得参考意见界面,如图6、7所示。经测试,系统运行正常,性能稳定,达到了预期的目标。

参考文献:

[1]王飞,蔡亚庆,仇焕广. 中国沼气发展的现状、驱动及制约因素分析[J]. 农业工程学报,2012,28(1):184-189.

[2]互联网消费调研中心.2012年第三季度中国手机市场研究报告[R]. 北京:IDC,2012.

[3]林聪. 沼气技术理论与工程[M]. 北京:化学工业出版社,2007:45-48.

[4]孙卫琴. Tomcat与Java Web开发技术详解[M]. 北京:电子工业出版社,2009:156-159.

[5]吴吉义,王中友. MySQL原理与Web系统开发[M]. 北京:清华大学出版社,2009:256-257.

[6]姜凡. 基于Android的网络化遥控器系统的研究与实现[D]. 武汉:武汉理工大学,2010:

然后通过实例化的Statement对象对数据库执行相应的更新和查询等操作,将取得的数据存放到ResultSet对象中,最后将请求的数据发送至客户端。

2客户端设计

客户端是基于Android 2.2版本(API LEVEL 8),在搭建的Android SDK+Java JDK 6+Eclipse 4.2 的环境中进行开发。客户端主要功能是用户注册、登录、在线实时监控、历史数据显示以及获取服务器参考意见5模块,如图3所示。根据需要客户端创建了5个Activity,使用layout文件夹下的5个xml文件实现UI(用户界面)的设计。

2.1登录模块

客户端开启后的首个界面,用户可在本页面输入用户名和登录密码,点击登录按钮即可将用户信息发送至服务器,采用http post网络通信方式,通过验证即可跳转至监控页面,否则使用Toast方法提示错误信息。页面还提供2个CheckBox用来选择是否记住用户名和密码,采用SharedPreferences方法将用户信息保存到本地,方便下次登录,登录界面如图4所示。模块关键代码如下:

HttpPost request=new HttpPost(urlStr_login);//request继承HttpPost方法

HttpResponse response=client.execute(request);//执行请求返回响应

editor.putString(“nameIsChecked”,“1”+“,”+username);//将信息存储到本地

sp=getSharedPreferences(“sp_user”,Context . MODE_PRIVATE); //将本地信息取出

2.2注册模块

首次登录需要注册,通过登录界面里的注册按钮跳转到注册界面。在注册界面,用户可根据提示输入用户名、账号密码及相应沼气池编号,客户端将信息发送至服务器进行注册保存。

2.3实时监控

监控界面实时显示沼气池运行参数。为防止UI主线程堵塞和界面假死,可通过实现Runnable接口,覆写接口的run()方法,并实例化Thread类来创建子线程,让子线程定时向服务器请求数据,取得数据后使用SendMessage()方法向Handler传送Message对象[6]。Handler接收消息后配合主线程更新UI,从而实现沼气池运行信息的实时显示。此外,系统采用json数据交换格式,程序中引入org.json包,即可使用getJSONObject()将服务器返回的数据转换成JSONObject对象,并使用JSONObject.getString()方法将其转换成可方便处理的字符串类型数据。

2.4历史数据显示

用沼气产量与主要关联参数的历史数据变化曲线显示历史数据,从而直观地获得沼气产量变化情况,有利于用户更好地管理沼气池。模块获得数据方式与实时监控模块相同,并引入Canvas与Paint类参与绘制坐标轴及数据变化曲线。首先在Activity中自定义一个继承View的PathView类,在类中实例化3个Paint对象,设置其各自属性来区分不同参数的变化情况。然后在类中使用canvas.getWidth()和canvas.getHeight()函数获得Canvas的宽度和高度,Android的 Canvas以左上角点为坐标原点,由此可方便的计算出画笔的起始点和终点,最后应用覆写onDraw()方法,并在方法中调用 drawLine()、drawCircle()和drawText()等方法实现历史曲线的绘制。

2.5获得参考意见

当沼气池运行出现问题时,用户可在客户端中简要描述故障现象,并上传到服务器,然后通过数据库快速匹配方法给出专家的经验处方。模块主要是采用Httppost()方法将故障现象发送给服务器并取得反馈信息。

客户端程序完成后还需修改根目录下的AndroidManifest.xml文件,在文件中注册新添加的Activity和开启程序所用到的权限。主要代码如下:

//注册RegisterActivity

//设置网络权限

//SD卡写权限

//SD卡创建、删除文件权限

3系统功能测试

在Eclipse中右击工程导出客户端apk(Android安装包),安装到Android版本为2.2及以上的智能手机。数据中心开启服务器和数据库服务,数据采集端开启信息采集和GPRS DTU,手机端开启客户端,完成注册,然后进入登录界面,点击登录按钮进入实时监控界面并刷新数据显示沼气池运行状态,如图5所示,然后分别进入历史曲线和获得参考意见界面,如图6、7所示。经测试,系统运行正常,性能稳定,达到了预期的目标。

参考文献:

[1]王飞,蔡亚庆,仇焕广. 中国沼气发展的现状、驱动及制约因素分析[J]. 农业工程学报,2012,28(1):184-189.

[2]互联网消费调研中心.2012年第三季度中国手机市场研究报告[R]. 北京:IDC,2012.

[3]林聪. 沼气技术理论与工程[M]. 北京:化学工业出版社,2007:45-48.

[4]孙卫琴. Tomcat与Java Web开发技术详解[M]. 北京:电子工业出版社,2009:156-159.

[5]吴吉义,王中友. MySQL原理与Web系统开发[M]. 北京:清华大学出版社,2009:256-257.

[6]姜凡. 基于Android的网络化遥控器系统的研究与实现[D]. 武汉:武汉理工大学,2010:

然后通过实例化的Statement对象对数据库执行相应的更新和查询等操作,将取得的数据存放到ResultSet对象中,最后将请求的数据发送至客户端。

2客户端设计

客户端是基于Android 2.2版本(API LEVEL 8),在搭建的Android SDK+Java JDK 6+Eclipse 4.2 的环境中进行开发。客户端主要功能是用户注册、登录、在线实时监控、历史数据显示以及获取服务器参考意见5模块,如图3所示。根据需要客户端创建了5个Activity,使用layout文件夹下的5个xml文件实现UI(用户界面)的设计。

2.1登录模块

客户端开启后的首个界面,用户可在本页面输入用户名和登录密码,点击登录按钮即可将用户信息发送至服务器,采用http post网络通信方式,通过验证即可跳转至监控页面,否则使用Toast方法提示错误信息。页面还提供2个CheckBox用来选择是否记住用户名和密码,采用SharedPreferences方法将用户信息保存到本地,方便下次登录,登录界面如图4所示。模块关键代码如下:

HttpPost request=new HttpPost(urlStr_login);//request继承HttpPost方法

HttpResponse response=client.execute(request);//执行请求返回响应

editor.putString(“nameIsChecked”,“1”+“,”+username);//将信息存储到本地

sp=getSharedPreferences(“sp_user”,Context . MODE_PRIVATE); //将本地信息取出

2.2注册模块

首次登录需要注册,通过登录界面里的注册按钮跳转到注册界面。在注册界面,用户可根据提示输入用户名、账号密码及相应沼气池编号,客户端将信息发送至服务器进行注册保存。

2.3实时监控

监控界面实时显示沼气池运行参数。为防止UI主线程堵塞和界面假死,可通过实现Runnable接口,覆写接口的run()方法,并实例化Thread类来创建子线程,让子线程定时向服务器请求数据,取得数据后使用SendMessage()方法向Handler传送Message对象[6]。Handler接收消息后配合主线程更新UI,从而实现沼气池运行信息的实时显示。此外,系统采用json数据交换格式,程序中引入org.json包,即可使用getJSONObject()将服务器返回的数据转换成JSONObject对象,并使用JSONObject.getString()方法将其转换成可方便处理的字符串类型数据。

2.4历史数据显示

用沼气产量与主要关联参数的历史数据变化曲线显示历史数据,从而直观地获得沼气产量变化情况,有利于用户更好地管理沼气池。模块获得数据方式与实时监控模块相同,并引入Canvas与Paint类参与绘制坐标轴及数据变化曲线。首先在Activity中自定义一个继承View的PathView类,在类中实例化3个Paint对象,设置其各自属性来区分不同参数的变化情况。然后在类中使用canvas.getWidth()和canvas.getHeight()函数获得Canvas的宽度和高度,Android的 Canvas以左上角点为坐标原点,由此可方便的计算出画笔的起始点和终点,最后应用覆写onDraw()方法,并在方法中调用 drawLine()、drawCircle()和drawText()等方法实现历史曲线的绘制。

2.5获得参考意见

当沼气池运行出现问题时,用户可在客户端中简要描述故障现象,并上传到服务器,然后通过数据库快速匹配方法给出专家的经验处方。模块主要是采用Httppost()方法将故障现象发送给服务器并取得反馈信息。

客户端程序完成后还需修改根目录下的AndroidManifest.xml文件,在文件中注册新添加的Activity和开启程序所用到的权限。主要代码如下:

//注册RegisterActivity

//设置网络权限

//SD卡写权限

//SD卡创建、删除文件权限

3系统功能测试

在Eclipse中右击工程导出客户端apk(Android安装包),安装到Android版本为2.2及以上的智能手机。数据中心开启服务器和数据库服务,数据采集端开启信息采集和GPRS DTU,手机端开启客户端,完成注册,然后进入登录界面,点击登录按钮进入实时监控界面并刷新数据显示沼气池运行状态,如图5所示,然后分别进入历史曲线和获得参考意见界面,如图6、7所示。经测试,系统运行正常,性能稳定,达到了预期的目标。

参考文献:

[1]王飞,蔡亚庆,仇焕广. 中国沼气发展的现状、驱动及制约因素分析[J]. 农业工程学报,2012,28(1):184-189.

[2]互联网消费调研中心.2012年第三季度中国手机市场研究报告[R]. 北京:IDC,2012.

[3]林聪. 沼气技术理论与工程[M]. 北京:化学工业出版社,2007:45-48.

[4]孙卫琴. Tomcat与Java Web开发技术详解[M]. 北京:电子工业出版社,2009:156-159.

[5]吴吉义,王中友. MySQL原理与Web系统开发[M]. 北京:清华大学出版社,2009:256-257.

[6]姜凡. 基于Android的网络化遥控器系统的研究与实现[D]. 武汉:武汉理工大学,2010:

猜你喜欢

管理系统
基于James的院内邮件管理系统的实现
基于Excel固定资产管理系统的设计与实现
联调联试管理系统的研究及实现
基于LED联动显示的违停管理系统
停车场寻车管理系统
生产管理系统概述
船舶压载水管理系统
海盾压载水管理系统
基于SNMP的IP地址管理系统开发与应用
基于RFID的仓储管理系统实现