APP下载

基于Android智能终端的区域自动站巡检维护系统设计与实现

2019-03-05

计算机测量与控制 2019年2期
关键词:串口蓝牙站点

(海南省气象探测中心,海口 570203)

0 引言

随着自动气象站网建设快速推进,智能化、集约化自动站设备成为气象信息采集的主流。面对数量众多、型号不一、分布广泛的自动气象站(简称气象站)设备,特别是针对高山、海岛及环境恶劣的野外站点巡检维护作业时,传统的自动站维护模式给工作人员带来了巨大的压力和不便,严重影响了工作效率,主要表现在:1)维护人员需携带较重的调试设备(笔记本电脑)及各种转接线,较多的设备物资携带、搬运不便,费时费力;2)现场检测、调试的环境恶劣,特别是下雨、大风、高温等不良天气条件下,传统笔记本+转接线的调试模式无法使用;3)设备调试过程不仅要牢记各类调试命令、繁琐的调试步骤,还要现场电话咨询相关设备情况及中心站数据查询,遇到信号差或值班人员忙时,不能快速判断数据是否到达中心站[1-3]。面对传统的站点维护模式带来的弊端,如何快速、便捷、全面地了解站点设备运行状态信息,并在设备故障时快速获取故障信息,完成故障排除,确保设备稳定可靠运行,是自动站检修维护人员必备技能。

近年来,海南省气象部门在全省建设各类气象站644套,其中区域自动气象站(简称区域站)500余套,站点分布广,许多在野外和海洋海岛,交通不便,工作环境恶劣,站点维修保障工作非常困难,迫切需要一套便携式自动站巡检维护系统,提供稳定可靠的现场检测支撑,以有效缩短野外、海岛等自动站的巡检维护的时间,提高工作效率和质量,切实为气象预报、预警、服务工作提供基础保障。本文结合海南省气象设备维护工作实际,利用当今先进电子应用技术,设计一套在便携智能终端(平板电脑/智能手机)上运行的自动站设备巡检维护系统,通过蓝牙通信和智能化图形界面设计,实现对站点设备参数设置及设备信息的智能监测、查询、显示,省去携带笨重的调试工具、大量调试线、转换线及对繁琐设备调试命令记忆,便于携带,操作简单,特别适用于野外区域站设备的维护维修,有效提高站点设备维护效率,减少工作量。

1 总体设计方案

1.1 系统设计功能需求

根据现有自动气象站设备,设计一套集自动站现场信息监测、站点信息查询、采集数据查询、中心站数据查询及站点管理为一体的自动站维修维护支持系统,主要设计目标如下:

1)自动实现对自动站运行状态信息的智能检测;

2)实现对自动站实时采集数据信息查询显示;

3)实现对自动站历史采集数据的查询显示;

4)实现对自动站通信模块通信参数信息的智能设置;

5)提供通用信息调试接口,满足用户自主使用需求;

6)实现通过GPRS网络完成对远端中心站数据传输情况查询;

7)提供自动站故障库满足,现场维护、故障信息的登记和上传;

8)提供系统知识库满足用户获取远端技术支持;

9)能完成自动站和智能终端之间蓝牙通信连接。

1.2 系统功能框架

系统设计实现3大主要功能,分别为自动站现场检测、远端数据查询、维护维修支持,并在各分模块中实现系统相应功能。打开软件进入用户登录界面,用户输入用户名密码后连接远程服务器验证用户名密码是否正确,然后进入主界面,主界面下共设7个可操作模块,系统框架如图1所示。

图1 系统功能结构框图

主要功能如下:

1)现场检测模块实现对自动站设备信息的检测、显示及参数设置功能。选中该模块,首先需通过站点设备型号选择,完成蓝牙匹配连接。连接成功后,用户可根据功能选择设备检测功能、实时数据查询功能、串口终端及DTU设置功能。设备监测实现对站点设备运行信息进行实时监测显示,包括采集器状态(时间、版本信息、自检信息、内部存储信息等)、站点信息(海拔高度、经纬度、电池电压、通信情况等)及实时采集数据等;数据查询功能通过功能按键实现对采集器分钟数据和小时数据的查询显示;串口终端提供灵活的调试窗口,用户可通过自定义参数完成与采集器信息通信,满足用户对特殊功能模块调试;DTU设置模块根据站点信息及通信参数实现对GPRS无线通信模块参数的一键设置,省去常见DTU参数设置的繁琐步骤和复杂命令,野外操作方便。

2)远端数据查询模块通过GPRS无线网络实现本地对中心站数据查询并通过离线地图位置信息及列表显示自动站采集数据信息。

3)维护维修支持模块包含故障库和知识库两个部分,故障库方便现场维护人员登记自动站巡检维护现场情况信息,通过网络上传至省局中心故障库,方便自动站维护、管理;知识库主要实现维修技术支持,通过访问网络云库,查询相关技术手册、文档等,快速解决技术盲点,完成故障处理。

1.3 系统工作流程

系统设计成外置蓝牙模块+Android智能终端的形式,Android智能终端需配带蓝牙功能并支持蓝牙4.0协议及GPRS无线上网功能。由于区域站数据采集器多采用的是RS-232标准通信协议与外界进行通信连接[4],因此设计蓝牙模块为标准的RS-232通信接口与采集器连接。将蓝牙模块设置与采集器串口参数匹配并上电,完成蓝牙模块串口与采集器串口连接,打开Android终端蓝牙功能,用户登录系统APP,完成设备间蓝牙连接,通过功能模块实现对区域站设备的调试、检测、参数设置及维护工作;同时智能终端通过GPRS网络,访问中心站数据库,完成对中心站站点信息的查询工作。由于数据中心网络为专用网络,则需经过防火墙实现与数据中心或省级运行监控系统(ASOM2.0)进行数据交互,实现数据查询[5-6]。

2 系统模块设计

系统采用模块化设计实现全部功能,主要包括蓝牙模块和移动端APP。蓝牙模块主要实现自动站与智能终端之间无线通信连接,移动端APP主要完成对自动站数据的查询、显示、数据录入及中心站数据查询。

2.1 蓝牙模块设计

系统研制外置蓝牙模块与自动站采集器调试串口相连,实现自动站串口通信与蓝牙通信转换。蓝牙模块采用BLK-MD-BC04-B蓝牙适配器模块,该模块是深圳市博陆科电子科技有限公司专为智能无线数据传输而打造,支持SPP蓝牙串口协议,具有成本低、体积小、功耗低、收发灵敏性高等优点[7],只需配备少许的外围元件就能实现其强大功能。本设计针对其内嵌的标准蓝牙协议栈的RS-232接口,通过MAX232芯片配备外围电路将蓝牙协议信号转换为RS-232标准信号输出,转换电路如图2所示。

图2 蓝牙适配器转串口输出电路

设计完成后,模块采用3.3 V锂电池供电,通过串口连接即可完成采集器与蓝牙模块之间通信连接,进而实现自动站与智能终端间通信连接,完成二者间信息的无线透传。

2.2 Android应用软件设计

系统基于AndroidSDK2.0以上技术和蓝牙网络技术,通过JAVA、C++语言编写,Eclipse编辑,运行于Android终端的应用程序APP。系统设计实现3大功能模块,在各大模块的基础上细分小功能模块,再对各功能模块进行详细的功能设计、UI界面设计和代码编写[8]。

1)登录界面实现。登录界面采用XUtlis开源框架[9]提供的HttpUtils工具类,采用POST请求,对用户输入的用户名和密码推送的服务接口进行验证,验证通过后回调函数onSuccess()进入主界面。其核心代码如下:

HttpUtils http = new HttpUtils();

http.send(HttpRequest.HttpMethod.POST, ApiUrl, param, new RequestCallBack()

{

@Override

public void onSuccess(ResponseInforesponseInfo) {

Gsongson = new Gson();

………..

return;

}

2)主界面实现。主界面下主要有8个可操作的模块按钮,主界面由GridView组成,Gridview使用自定义的BaseAdapter适配器最大限度的定义视图,通常只需要实现BaseAdapter类的getCount,getItem,getView,getItemId函数即可,其中getview函数实现对子item视图定制。当点击不同的GridView不同的item时候,触发点击事件,在onItemClick函数中根据索引号启动intent(意图)进入不同的分模块子界面。实现函数如下:

public View getView(int position, View ConvertView, ViewGroup parent) {……..}

3)分模块界面实现。进入现场检测分模块,用户需首先进入站点选择界面,完成站点型号选择及蓝牙匹配连接后,才可以进入其他分模块,实现相关功能。在站点型号选择界面内,通过Android提供的列表选择框(Spinner)选择调试站点设备型号信息,包括设备厂家及设备型号,通过点击连接按钮,出发启动蓝牙匹配事件,通过调用系统内部蓝牙接口API接口函数,启动设备蓝牙功能,并通过设备查找及设备配对实现蓝牙连接。蓝牙连接完成后,可进入设备监控、数据查询、设备调试及DTU设置功能模块。执行模块功能函数,通过调用内嵌的采集器信息查询命令,完成数据交换,并对数据进行解析和显示,完成自动站站点运行状态的监控及信息查询。蓝牙串口读写函数如下:

public StringWriteandRead(String sendstring,booleanneed_read)

{

String recvString="";

clearRecvBuffer();

SendString(sendstring);

if(!need_read)

returnrecvString;

if(wait_for_ready(MAX_WAITTIME)>0)

{

recvString=RecvString();

}

return recvString;

}

4)知识库模块主要通过获取省局网络服务器中的技术文档,借助第三方软件打开选择的文档文件进行查看。由于服务器采用的是电脑本身进行设计,安装了相应的apache程序,并利用了其8080端口,通过获取输入流来获取相应文件后显示,实现代码如下:

Stringurl=http://172.22.69.136:8080/Awmfiles/Files;//要提交的目标地址。

InputStreaminputStream = getResources().openRawsource(R.raw.stations);//获取目标文件

5)故障库模块界面中,用户根据文本框提示填写对应的故障信息如站点编号、处理时间、填报人、故障描述、原因分析、现场图片等,生成标准的故障报告单,系统自动读取故障单中站点编号和处理时间生成文档名称,通过直接通过HTTP协议提交数据到网络服务器存储。故障单中现场图片框可调用系统相机和相册,完成图片信息录入,图片左右切换采用视图翻转工具(ViewPager),适配器采用PagerAdapter,每一个图片对应一个ImageView,先把所有的Imageview放入一个List之中,通过PagerAdapter几个共有函数实现图片左右滑动。

6)远端数据查询模块主要通过网络端口访问云服务器,根据访问的地理位置信息和采集数据信息,通过离线地图以数据列表的形式显示查询的数据信息。

3 关键技术与实现

3.1 蓝牙通信技术

本系统在进行自动站现场调试时,首先需对站点设备型号进行选择,点击连接按钮,系统提示用户打开设备蓝牙功能,并搜索寻找匹配的蓝牙设备,对找到的设备以列表形式显示设备信息,完成连接,系统显示连接成功,此时用户可进行自动站设备相关现场调试工作。外置蓝牙模块通过蓝牙适配器内的蓝牙串口协议实现串口通信与蓝牙通信之间转换,用户在连接前只需简单设置下蓝牙串口的串口通信参数,将蓝牙串口与采集器串口相连,就可实现采集器与外界的无线蓝牙通信。在设计智能终端蓝牙通信时,Android提供了BluetoothAdapter类,代表了本机的蓝牙适配器对象,该类提供了开关蓝牙设备、扫描蓝牙设备、设置及获取蓝牙状态信息。通过调用startDiscovery()方法查找周围蓝牙设备,注册广播接收者,当有新蓝牙设备搜索到时添加到设备列表。设备连接成功后实现客户端和服务器机制,在服务器端子线程调用accept()方法监听线程,在客户端调用connect()方法发起连接请求。构建蓝牙通信连接后,不管是服务器还是客户端机制,彼此都会连接对应的BluetoothSocket对象,获取对应的输入字节流(inputstream)和输出字节流(outputstream),调用read(byte[])和write(byte[])方法来分别实现对数据流的读和写,实现蓝牙数据通信功能[10-11],通信原理如图3所示。

图3 蓝牙通信原理图

3.2 远程数据查询技术

为实现野外作业时工作人员能方便快捷了解站点与中心站间数据传输情况,减少传统模式下,维护人员通过电话联系中心站值班人员询问查询站点数据信息,手续繁琐、实时性差,本系统集成一套通过移动网络访问中心数据库,查询数据传输实况。系统设计基于Android系统使用Apicloud技术完成客户端开发,主要通过针对现在业务使用的CIMISS数据系统,通过数据采集抓取最新的CIMISS数据包,并在本地生成文件,把本地的数据文件解析为sql语句,把解析好的sql语句从省局内网推送到云服务器,把sql文件数据录入数据库以供App使用,数据流程如图4所示。

图4 数据访问处理流程

当用户使用该功能时,需保证移动智能端设备无线GPRS网络正常。打开系统后,设备自动获取当前地理位置信息(GPRS获取当前经纬度信息),根据地理位置信息自动查询距离当前最近的自动站,并对该自动站当前数据进行展示。系统通过调用离线地图,根据自动站信息自动定位站点位置,用户可通过站点名称或站点站号实现对指定站点信息的查询显示。

4 系统软件实现及效果展示

将此软件在华为荣耀系列手机上装载运行,在野外进行自动站维修维护时,只需随身携带手机和配套的蓝牙小模块,无需携带数据线和电脑等笨重调试设备,通过串口蓝牙通信连接,实现对自动站状态(站点运行状态监测及实时采集数据监测)自动监测和采集数据的实时查询(分钟数据和小时数据);通过GPRS无线网络访问远端数据中心中心站数据库数据情况;通过访问网络服务器,获取远端技术支持,快速完成现场测试维修工作。系统运行界面干净整洁,操作简单,功能全面,能快捷的显示自动站状态信息及采集数据信息,同时可完成相关参数的设置,完全满足自动站维护人员现场维护工作的需求。系统经显示使用测试,设备站点选择界面如图5所示,现场监测运行界面如图6所示,自动站数据查询界面如图7所示,知识库和故障库运行界面如图8~9所示。

图5 主界面

图6 现场监测运行界面图

图7 自动站查询系统

图8 故障库

图9 知识库

通过对本软件的多次测试和效果检验得出的主要结论有:1)系统结构较为完善,软件启动快速,运行状态稳定;2)软件符合设计方案要求,除了能够完全满足自动站维护人员野外现场自动站设备维修维护工作需要,实现对自动站现场工作全流程提供帮助,方便工作人员全面获取自动站运行状态信息及对远端中心站数据查询显示,还为业务操作带来了便利,方便管理人员实现站点信息管理工作,有效提高气象装备保障的行业效率。

5 结论

本文结合海南省自动气象站维护、维修工作实际,基于Android平台研发一套自动气象站设备巡检维护系统手机APP,基本实现了自动站站信息现场显示、参数设置及数据远端查询等相关功能,为区域自动站维护工作提供有效的技术支撑。设置故障库信息,方便管理人员进行站点设备管理等工作,保证自动站设备稳定可靠运行。系统设计完成后,可根据用户工作需求实际进行二次开发,完善数据库、优化界面及添加相关功能模块等。经外场试验,系统运行稳定,界面设计合理,运行平台开放,操作简单,便携、智能,具有较强的实用性,特别是对野外高山、海岛等恶劣环境下自动站维修维护工作提供极大地便利,在气象现代化建设大潮下,为气象设备稳定可靠运行及气象数据服务工作带来一定的帮助。

猜你喜欢

串口蓝牙站点
蓝牙音箱的直线之美
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
帮你轻松找到AirPods的神奇工具
北京市轨道交通站点公共空间使用后评价初探
积极开展远程教育示范站点评比活动
MCS—51单片机中的多串口通讯技术的应用
怕被人认出
先进站点应与落后站点开展结对帮扶
蓝牙4.0落地加速