吴振深,吴俊,邓惠燕,许文强,林晨星,刘持标,严孝元,邱锦明
(三明学院信息工程学院物联网应用福建省高校工程研究中心,福建三明365004)
基于Android智能手机的移动式环境监控系统开发
吴振深,吴俊,邓惠燕,许文强,林晨星,刘持标,严孝元,邱锦明
(三明学院信息工程学院物联网应用福建省高校工程研究中心,福建三明365004)
针对目前大范围内环境实时监控存在的各种问题,利用Android智能手机的传感器实时收集各种环境数据,将所获取的数据利用WiFi或3G无线通信技术及时传输到数据服务中心并存入到数据库中。利用数据融合技术对温度、光线亮度、GPS、环境照片等数据进行智能化处理,并通过JavaEE Web、百度地图及短信自动发送等技术对数据处理的结果进行显示和警报。在大范围内使用该系统,可以达到及早发现并避免恶劣环境污染,减少经济及生命损失的目的。
环境监控;Android;Java EE;短信
近年来,除了实行传统的环境污染监控措施外[1],不同地方建立了局部的污染在线监控系统,试图对所在区域的环境污染进行24 h实时监控。但由于这些系统的监控范围很小,等到污染发生时,不能及时发现污染源,造成了严重的社会危害和经济损失。广西龙江河镉污染事件[2]、紫金矿业的汀江污染事件[3]、河南省新安县段家沟水库污染等[4],由于不能及时发现污染源,造成污染大面积扩散,带来了严重的社会危害和经济损失。
要解决环境污染监控问题,需要建立一个全社会人人都可以参与的实时环境监控系统。这就需要大多数人都可以实时收集他们所处位置的环境数据,并且能够将这些数据实时发到特定的数据服务中心;汇集到数据服务中心的数据配合国家专业的环境监控系统,可及早发现污染的苗头,及早消除各种污染源,避免对人民的身心健康造成危害,避免带来严重的经济损失。要实现上述目的,就需要大多数人时时携带一个配有各种传感器的设备,而且这个设备可以随时将收集到的传感器数据通过网络发送到数据服务中心。当前的智能手机就可以达到同时进行传感器数据收集及传输的目的[5-6]。根据2012年2月份的统计,中国手机用户数量突破10亿[7],且大多数手机为带有传感器的可以进行网络通信的智能手机。利用智能手机,可以实时收集并传输各种来自传感器的数据(声音、图像、GPS、速度、陀螺仪、亮度、地磁、方向、压力、近程、温度等传感器数据),同时还可以通过人工输入来实时传输有关环境的各种描述性数据。如今主流的智能手机平台主要有Apple公司的IOS,Google公司的Android,Microsoft公司的Windows Phone,Nokia公司的Symbian,HP公司的WebOS等。其中Android平台因为可支持多种传感器且开源,得到了广泛的应用,成为了当今智能手机的主导。
目前国内外还没有成熟的移动式环境监控系统。在本研究中,使用Android、JavaEE、Struts、Hibernate、Spring及Ext JS框架等技术,利用配有各种传感器的Android智能手机,成功开发一个社会上大多数人都可以参与的移动式环境监控系统。此系统的建立可帮助实施大区域环境实时监控,及时发现污染源,把污染降低到最低。本研究实现了Android传感技术在环境监控领域的新应用,所开发的系统具有的特色为可充分利用数以亿计的智能手机传感器,在不增加经济负担的情况下,实施较大范围内的环境实时监控。同时,所开发的系统具有两个特点:(1)将开源Android平台应用与开源的JavaEE技术相结合,使得实时环境监控系统的开发和部署变得十分容易,在保证最大经济和社会效益的情况下,降低系统的开发和维护成本。(2)利用智能手机,不但可以实时收集并传输各种来自传感器的数据,而且还可以通过手动输入来实时收集有关环境的各种描述性数据。
如图1所示,整套环境监控系统分为Android客户端、数据传输网络和Web服务器端。Android客户端程序负责收集实时光线数据、温度数据、GPS定位数据,环境照片等,并通过HTTP Post的方式访问Web服务器端提供的相关服务,将所收集到的数据存入数据库服务器。数据传输网络主要包括3G、WiFi及互联网等。Web服务器端主要是一套基于Java EE技术的环境监控系统,主要功能是供远程的工作者通过动态曲线图、警报等了解监控领域实时数据,了解环境异常,以及通过GPS坐标在Baidu或Google地图上进行数据源的定位。
图1 移动式实时环境监控系统结构
Android是Google公司于2007年11月5日发布的以Linux作为系统内核的移动终端操作系统。该系统源代码完全开放,是首个为移动终端打造的真正开放和完整的移动软件,得到了国内外智能手机运营商的大力支持。Android包括操作系统、用户界面中间件和一些重要的应用程序;Android基于开源的WebKit引擎,选用SQLite嵌入式数据库进行结构化数据存储。使用Activity、Intent、Service、Android UI、SQLite、多线程、基于HTTP的网络编程以及系统调用等技术,开发应用程序运行于Android智能手机客户端。通过系统提供的传感器监听器,实时将传感器数据读出,并通过HTTP Post技术将数据传送到远程数据库服务器。所开发的Android客户端传感器数据实时收集模块结构如图2所示。通过Android平台提供的大量的传感管理结构,可以提取并显示周围环境中的传感数据,如光线,温度,GPS数据等(图3)。
图2 Android客户端数据收集模块
Android客户端数据的发送采用HTTP Post方式,把Android手机收集的传感数据传送并存储到远程数据库服务器MySQL中。对于图像数据,通过调用Android系统的相机Camera类的API函数,获取系统相机拍照功能,并将照片临时存在本地手机存储卡里面,为系统通过网络传输到Web服务器做备份和缓存;运用HTTP Post方式和Android系统API提供的HttpClient类,把Android手机所拍的照片传送并存储到数据服务中心的特定文件夹。另外,对于一些难以通过Android手机传感器和摄像来收集的数据,比如噪声、空气中特殊的气味及大地震动等,借助所开发的客户端界面,可以通过手动输入的方式收集环境数据,并将其发送到远程数据库服务器。
一般情况下,智能手机与Web服务器之间的数据通信可以通过WIFI(Wireless Fidelity)和3G两种无线通信方式来实现。WiFi作为目前无线IP传输的成熟技术,由于其具有传输距离远、带宽高、组网容易,在各行各业已被广泛使用。伴随着国内中国电信、中国移动及中国联通三大运营商大规模建设基于WiFi技术的“无线城市”,其物联网应用架构已然形成。基于WiFi的物联网数据传输技术所具有的优势可概括为:成本低廉、无线网络安装及组网灵活、低功耗、在室内步行环境下能支持10~300 Mbit/s的传输速率、在恶劣环境下数据传输具有持久性和可靠性、数据传输具有较高的私密性及施工周期短等。WiFi技术在物联网中广泛应用于工业生产线监控、城市安全巡查、城市交通监控、食品物流监控、火灾现场抢救监控、供水监控、洪灾现场抢救监控、电力监控、油田监测、环境监测、学校安全监控、反恐防暴安全监控及小区安全监控等。3G系统在室内静止环境下的最高速率能达到2 Mbit/s,而且最高速率只能在很短的距离范围内和有限的移动条件下提供;同时由于3G服务的价格较高,这些都使得3G也只适合在没有WiFi网络的地方使用。一般情况下,在Android手机周围存在WiFi无线通信服务时,手机可以自动选取WiFi来进行数据传输,否则就利用3G服务来进行智能手机与Web服务器之间的数据传输。
Java EE是一个标准中间件体系结构,旨在简化和规范分布式多层企业应用系统的开发和部署。Java EE技术是Java语言平台的扩展,支持开发人员创建可伸缩的强大的可移植企业应用程序。Apache Struts的Web框架是一个免费开源的用于创建Java Web应用程序的解决方案,Struts框架的宗旨是帮助开发人员利用MVC架构创建Web应用程序。Struts 2是Struts的下一代产品,是在WebWork和Struts1的技术基础上进行了合并的全新的框架。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求。Hibernate是一个可以自动根据XML或Annotation完成对象关系映射(Object Relational Mapping:ORM),并持久化到数据库的开源框架,通过对JDBC进行对象封装,使得开发人员可以方便地使用面向对象的编程思想来对数据库进行操作。Spring是为了解决企业应用程序开发复杂性的框架,它使用基本的JavaBean来完成以前只可能由EJB完成的事情。Ext JS是一种JavaScript开发框架,这种强大的JavaScript库通过使用可重用的对象和部件简化了Ajax开发,方便Web应用程序开发人员使用这个工具。
在环境监控系统的Web服务器中,每一个向服务器发送环境数据的手机被定义为一个移动节点,服务器可以同时接受来自多个移动节点的数据。从理论上来讲,当一个环境监控系统的Web服务器足够强大时,它可以接收来自数以千记的移动节点的数据。如果在我国广大的领域布置数以万计的Web服务器,所形成的服务器群就可以接收来自全国数以亿计的Android智能手机的数据。在服务器端,运用Java EE技术构建环境监控系统的远程Web管理系统,其结构如图4所示。基于Web服务器的环境监控系统的分为5个模块,分别是:节点管理,传感数据管理,移动节点管理,注册用户管理和系统登录管理。系统整体架构运用Struts、Hibernate、Spring三个主流Java框架构建,前端展示还运用到了Ext JS框架,将网页窗体的效果与Ajax技术相结合,实现局部刷新,增强用户体验,使得用户界面更加友好。同时Ext JS与Baidu Map API相结合,使得系统可以根据GPS定位的经纬度,在平面或卫星Baidu Map上面显示出数据源的位置。
图4 Web服务器端环境监控系统功能模块
移动节点管理模块主要管理所有节点的所有信息,注册新的手机节点。操作员和管理员都可以注册新节点,通过填写节点名称和节点IP地址注册新节点,这样导航栏就会多出新节点的管理数据菜单。同时还可以对所有节点的信息进行增删改查。传感器数据管理模块主要用来显示各种传感器数据动态曲线图(图5)、移动节点在Baidu地图上的GPS卫星定位(图6)及节点所拍摄的环境照片(图7)等。
图5 环境监控数据动态曲线显示
图6 Baidu Map显示数据原位置
图7 移动节点所拍摄环境照片管理
传感器数据管理模块的另外一个主要功能为传感数据融合及异常报警管理,基于数据融合理论来实时判断环境异常的详细技术路线如图8所示。这个功能主要实现对数据库中来自不同节点的温度、湿度、亮度、GPS、照片等的当前和历史数据进行融合处理,根据事先设定的环境异常决策规则来判断当前不同监控区域的环境安全状态。当环境异常发生时,自动启动警报机制,及时将信息发送给有关部门或人员。警报的方式根据需求可以设定为平台报警、PC自带的喇叭进行声音报警、Email、手机短信报警等。其中,报警短信是通过连接在Web服务器上的短信猫发出的。短信猫利用Java代码和短信猫工具库SMSLib实现短信收发的。SMSLib是一个Java库,它允许通过一个兼容的GSM调制解调器或GSM手机完成SMS消息发送/接收,同时SMSLib还支持群短信发运[8]。
图8 判定环境异常的详细技术路线
基于智能手机及其它前沿信息化技术成功开发了移动式环境监控系统,为充分发挥全社会的力量对广阔领域的环境进行实时监控打下了一定的基础。在系统开发过程中解决了Android手机客户端传感器数据收集及传输的关键技术;在Web服务器端解决了同时接收来自多个智能手机环境数据的技术难题;也利用数据融合理论解决了判定环境异常及发出警报的关键技术。同时,利用数个Android智能手机对所开发的系统进行了测试,并取得了满意的结果。以后将基于当前的工作,对该项目进行更进一步的优化和中试;在地市或全省范围内布置所优化的移动式环境监控系统,实施较大范围的实时环境监控,可产生较大的环境效益和社会效益。
[1]何涛.三明市饮用水源地农村面源污染的防治措施[J].三明学院学报,2009,26(2):218-221.
[2]张志国.广西龙江河镉污染事件给我们带来怎样的警示[J].绿色中国:A版,2012(2):8-9.
[3]邱龙广.完善公司治理杜绝紫金矿业环保门再次发生[J].时代经贸,2010(29):148-149.
[4]郭严军.洛阳市新安县段家沟水库泛库原因分析与防治对策[J].河南水产,2008(3):26-38.
[5]陈刚.在Android驱动程序中对传感器数据进行转换[J].中国电子商情:基础电子,2012(4):53-55.
[6]大卫·塔尔博特.移动设备新时代——人手一台电脑[J].科技创业,2011(6):79.
[7]人民网.中国手机用户数量已达到10亿[EB/OL].[2012-12-01]http://news.cntv.cn/20120323/114381.shtml.
[8]程世繁,汪秉文.基于SMSLib的数据采集系统设计和实现[J].计算机与数字工程,2011(12):62-65.
Development of the Mobile Environment Monitoring System Based on Android Smartphone Technologies
WU Zhen-shen,WU Jun,DENG Hui-yan,XU Wen-qiang,LIN Chen-xing, LIU Chi-biao,YAN Xiao-yuan,QIU Jin-ming
(IOT Application Engineering Research Center of Fujian Province Colleges and Universities, School of Information Engineering,Sanming University,Sanming 365004,China)
Aiming at all kinds of problems which exists in environment real-time monitoring at present,a mobile environment monitoring system,which uses Android smart phone to collect environmental information,was built.These pieces of information are sent to the data center through one of wireless communication technologies of WiFi and 3G.With data fusion techniques such as temperature,light,GPS and images around the country,various information stored in the database is processed.Results are presented with technologies of JavaEE Web and Baidu map,and alarms are sent out by using automated SMS implementations.When this system is used in large range,it can realize the goals to reduce economic losses and life losses with early detections of severe environmental pollution accidents.
environment monitoring;Android;Java EE;SMS
TP311.52
A
1673-4343(2013)02-0032-06
2012-11-15
2012年度国家级大学生创新创业训练计划项目(201211311002);2012年度省级大学生创新创业训练计划项目(ZL1204/CS(sj));三明市科技局重点项目(2011-G-4);福建省自然科学基金资助项目(2012J01283,2012J01282);福建省教育厅省属高校科研专项计划项目(JK2012051)。
吴振深,男,福建晋江人,大学生。研究方向:网络工程、物联网工程。