Android技术在物联网环境监测报警模块实现中的应用

2017-01-11 01:59宋坤伟
山西电子技术 2016年6期
关键词:环境监测报警终端

杜 彬,宋坤伟

(山西职业技术学院,山西 太原 030006)

Android技术在物联网环境监测报警模块实现中的应用

杜 彬,宋坤伟

(山西职业技术学院,山西 太原 030006)

随着物联网技术的飞速发展,与移动平台相结合,通过手机端实现物联网应用已是必然的发展趋势。在此前提下,本文就基于Android的移动终端在环境监测过程中的实时报警功能实现进行了设计与实现尝试,重点对手机终端上的报警机制进行了优化,在响应实时性与报警音效方面都有明显改进。

物联网;Android;环境监测;报警模块

随着无线网络与芯片技术的不断升级,智能手机的功能日益强大,手机已经成为物联网应用系统中的重要基础控制平台。在现阶段,基于智能手机的物联网应用已在包括智能家居、环境监测、安防监控等多个领域获得了良好的实践推广。笔者所在学院基于所辖液氮实验室在无人值守状态时的安全保障需求出发,为实验室配置了由多种监测仪器构成的环境数据监控系统。为保障良好的监控效果并降低开发与使用成本,本文对基于Android开源框架实现物联网环境数据监测报警功能的原理与过程进行了分析与研究[1]。

1 物联网环境监测系统的整体结构

实验室环境监测系统基于物联网的典型三层结构来建立,自上而下分别是应用层、网络层以及感知层。如图1所示。

图1 物联网的典型三层结构

构成应用层的是智能手机设备与APP应用程序,采用Android手机作为控制终端,通过4G/Wifi网络随时随地为用户提供有关液氮实验室的温度、氧气浓度、液氮压力的实时检测数据并允许用户调取当前的监控画面。

网络层的任务是负责监测系统中的数据转发,主要由三部分构成。监测服务器,负责接收各个传感器采集到的数据,并将相关数据传至应用层;远程控制服务器,负责接收与处理应用层的指令并对传感器进行相应操作;中转服务器,负责转发内外网络之间的IP数据包,以实现位于外网的用户终端与校园网中的系统之间的数据交互。

组成感知层的是多个信息采集节点即各种硬件传感器,在实验室监测系统中主要包括:温度、湿度传感器、氧气浓度、液氮压力传感器与网络摄像头等[2]。

2 Android数据通信的实现机制

由于实验室监测系统对数据传输的质量与速度要求比较高,因此Android移动终端与服务器之间的双向数据通信基于Socket完成,Socket可以理解为是一个封装了TCP/IP协议和UDP协议的双向网络实时交互套接字,它提供了面向链接的、可靠的数据连接;Android终端与服务器的通信过程如下:

服务器端的过程:

1) 创建Socket对象,在预设的端口上监听来自网络上的数据连接请求;

2) 监听到客户端连接请求时,向更改客户端返回已接收到请求的信息,并建立相应的数据连接;

3) 通信完成之后,关闭数据连接并撤销Socket对象。

客户端的过程:

1) 创建Socket对象,并设置要连接的服务器地址与端口号;

2) 向目的服务器发送连接请求,并等待对方的响应;

3) 创建与服务器之间的连接后,进行数据通信;

4) 通信完成之后,关闭数据连接、撤销Socket对象。

由于移动端的网络应用服务主要是基于HTML5语言,HTML5也是通过WebSocket技术来实现网络数据的双向交互,因此Android系统对Socket套接字进行了封装。首先在Android服务器端预先配置native接口,通过调用JavaScript的LocalServerSocket ()方法就可以在域名空间中创建一个Socket套接字;在客户端通过配置Framework,调用LocalSocket()方法与服务器端建立进程间的通信。分别通过socket_listen、write、read方法的调用实现Socket的监听与读、写。

3 Android监测系统下报警提示机制的建立

监测系统中的报警提示机制主要是为了实时监测传感器等硬件设备的异常或网络中断等突发故障,以便能够及时上报网络控制中心。结合Android技术,首先将被监测终端所捕获并将数据上传到服务器,监测系统进一步精确数据涉及范围;再通过与Android手机通信,触发Android手机上的报警机制;最后监测人员及时根据报警提示给出相应的处理办法。手机的震动是基于Android振动器(Vibrator)的vibrate(long[]complex,int key)方法来完成的。参数complex是基于数组设置的震动参数;key作为数组下标来调用complex中相应的震动设置。震动实现的核心代码:

vibrator=(Vibrator)getSystemService(Context.VIBRATOR_SERVICE);

long[]complex ={120,400,300,400};//设置震动模式

vibrator.vibrate(complex,0);//从数组中下标为0的元素开始读取

在Android移动端的报警机制建立中,报警音效的播放可以通过两种方式:一是MediaPlayer播放器,其集合了Microsoft的系统特性,能够很方便地实现多种音视频格式的文件播放。但由于其资源占用率较高,延时情况时有发生,且不能同时支持多个音频文件的播放,在密集、短促,且实时性要求较高的音效播放应用中显得力不从心;再是SoundPool,在SoundPool中引入了音效池这个概念,就是预先建立缓存池用于管理多个短促音效,以提高音效播放的响应速度,这样各类应用程序就可以分别通过音效ID进行识别,来调用相应音效播放文件。与前者相比,SoundPool在Android移动端的报警机制中的应用具有以下明显优势:

1) 专门针对短促音效文件进行管理,借助音效池为每个音效文件建立单独的执行线程,避免了对UI主线程操作的阻塞干扰;

2) 能够同时支持多个短促音效文件的播放,使报警提示能够及时得到响应。

因此本研究中主要采用了SoundPool方法来实现报警音效的播放。

实时报警功能的实现核心代码:

int vars=TransferData.getnowx(); bool judge=checkdata(vars);

if(judge){Looper.prepare();

New AlertDialog.Builder(self).setTitle(″紧急提示:″).setMessage(seid +″号传感器检测到异常,请立即处理!″).setPositiveButton(″OK″,null).show();

SoundPool.play(soundMap.get(l), 1,1,1,-1,2);

Looper.loop();}

代码中的seid是监测到数据异常的传感器设备编号,vars是传感器采集到的温度、浓度、压力数据值。

此外,在Android系统中主要是由主线程来处理所有的UI交互事件,诸如按键响应事件、界面切换事件、用户信息提交事件等。主线程会将这些交互事件分配给相应的组件进行处理,在这些事件的处理过程中一旦涉及到网络数据传输等操作,主线程的响应效率就会受到网络延时的严重影响,超时之后系统界面则会弹出无响应对话框(Application Not Responding),简称ANR。为了避免主线程的ANR,本研究为主线程建立了若干子线程,通过Socket建立多个子线程到服务器端的专用连接通道,将主线程事件按一定规则转移至不同子线程进行处理,从而减少主线程的任务负载,提高报警事件的处理效率。

4 总结

本文对基于Android手机终端的液氮实验室物联网环境数据监测系统的结构、服务器与客户端的通讯机制以及Android手机终端报警功能的实现进行了分析,并以Android开发平台为基础对手机终端报警模块的实现原理进行了研究并给出了核心代码。以期对于手机与物联网的深入应用提供一些有益的参考。

[1] 李志超.基于Android的音频系统开发研究[J].计算机与现代化,2013,(11):112-114.

[2] 李嘉.基于无线传感器网络的数据传输技术研究[D].长春:吉林大学,2014.

Application of Android Technology in the Realization of Internet of Things Environment Monitoring Alarm Module

Du Bin, Song Kunwei

(ShanxiVocationalandTechnicalCollege,TaiyuanShanxi030006,China)

With the rapid development of Internet of Things technology and combined with the mobile platform, it is an inevitable development trend to achieve the application of Internet of things through the mobile phone terminal. Under this premise, this paper attempts to design and implement the real-time alarm function based on Android mobile terminal in the environmental monitoring process, and focuses on the optimization to the alarm mechanism on the mobile phone terminal, so obvious improvement is achieved in response to real-time and alarm sound effects.

Internet of Things; Android; environmental monitoring; alarm module

2016-10-12

杜 彬(1981- ),男,辽宁昌图人,讲师,大学本科,研究方向:物联网技术。

1674- 4578(2016)06- 0059- 02

TP393.1;TN929.5

A

猜你喜欢
环境监测报警终端
X美术馆首届三年展:“终端〉_How Do We Begin?”
通信控制服务器(CCS)维护终端的设计与实现
环境监测系统的数据分析与处理
LKD2-HS型列控中心驱采不一致报警处理
大气污染问题的环境监测
多功能北斗船载终端的开发应用
2015款奔驰E180车安全气囊报警
对环境监测数据造假必须零容忍
便携式GC-MS在环境监测中的应用
死于密室的租住者