1、 基于智能移动终端的数据监控系统的解决方案摘 要:工业监控设备(仪器仪表)主要由数据采集,显示以及数据输出等部分构成。现有工业用数据监控设备多为专用设备,通用性和便携性差,现场数据传送需有专用 pc,有一定的制约性,价格昂贵。本文针对以上问题设计了运行在 android 智能移动终端上的数据监控系统,旨在利用移动终端在数据存储、远程传输、监控等方面的优势,实现专业数据采集器的部分功能,由此,无需专用 pc,由个人所持智能移动终端便可实现现场数据查询和远程数据传送。降低产品自身的价格的同时,也能减少固定投资成本。关键词:android;监控系统;移动终端;surveillance system
2、solution based on smart mobile terminal sun hongyi, lang chenglian(department of electrical engineering, tongji university, shanghai 201804, china)【abstract】 monitoring devices in industry mainly consist of data collectors, monitor and data output. most of the monitoring devices are special-designed
3、, which means limited-utility, and not convenient to bring with. besides, the pc should be used to monitor and transfer the data, therefore adding the cost. this paper aims to use the smart mobile terminal, implementing the functions of the monitoring devices. accordingly, the personal-owned smart m
4、obile terminal can be used to query and transfer the data instead of pc, which cuts the cost and enhances the flexibility.【key words】android; surveillance system; mobile terminal0 引 言工业监控设备(仪器仪表)主要由数据采集,显示以及数据输出(有线向 pc 传送)等部分构成。现有工业用数据监控设备多为专用设备,如安捷伦 dso9000, 日本 bits 的 hm-2g 等,其便携性差,成本高。部分数据监控设备通过 u
5、sb 线或 wifi 等方式,将监控所得数据传输至专用 pc,有一定的制约性,价格昂贵。如图 1 所示数据采集器,作为与 pc 机配合使用的专用硬件,通过 usb 线或wifi 将串口数据传输至 pc 机,进行数据采集和监视。图 1 传统监控设备系统总框图 fig.1 system chart of the triditiona surveillance device随着智能移动终端应用的推广,采用智能移动终端替代专用设备的显示以及数据传送的部分功能,成为研究的热点和趋势。android 系统是基于 linux 的开源操作系统平台,凭借其开放性技术,大大降低产品的开发成本,有助于在激烈的市场竞
6、争中获得用户青睐。本文针对以上问题设计了运行在 android 智能移动终端上的数据监控系统。系统旨在利用移动终端在数据存储、远程传输、监控等方面的优势,实现专业数据采集器的部分功能,由此,无需专用 pc, 由个人所持智能移动终端便可实现现场数据查询和远程数据传送。降低产品自身的价格的同时, 也能减少 pc 机的固定投资成本。1 系统分析与设计整套系统需实现工业数据监控设备的功能,故主要包括两大部分:数据采集器实现对工业设备中相关数据的采集,并传送至移动终端;智能移动终端实现数据的显示、存储、回放、远程发送等功能。在移动智能终端方面,android 智能操作系统成为近年来最受关注的操作系统,由
7、于它的免费性,以及系统的开放性,使开发人员可以随时取得程序的源代码,这对于程序开发人员和运营商定制非常重要。在移动智能终端支持方面,三星、摩托罗拉、多普达等国际一线厂商几乎倾倒性的发展 android,在 2011 年第一季度 android 操作系统己经跃居智能终端操作系统的榜首。随着 android 技术的迅猛发展和日趋成熟,android 操作系统在手持终端中所占比例正逐步上升,其开放性、便携性、良好的兼容性、无缝结合网络通信等特点将使 android操作系统在各个领域中都有着广泛的应用。rs232c 在工业设备之间的数据交换及设备控制上占有举足轻重的位置,原因在于 rs232c 的成熟
8、性和简单性。串行通信网络物理层是建立在 rs232c(rs485)基础之上,至今 rs232c 仍被用于各种设备之间数据交换。几乎所有的 mpu 都标准配备 uart,在电路设计,设备编程,设备连接,以及设备数据交换的事实监视,都必不可少的需要查看记录数据交换内容,由此产生了 rs232c 数据分析仪。现有 rs232c 监视器多为专用硬件来采集串行通信中的数据线和控制线信息,通过 usb 把信息送到 pc 上,由专用软件显示出来。也有做成专用设备自带显示器和数据输出口。rs232c 数据分析仪由于是面对研发人员,使用数量相对较少,目前也只有少数厂家生产。图 2 系统总框图fig.2 syst
9、em chart of the whole system采集数据的硬件设备将实现 rs232c 数据分析仪的功能,由于智能移动终端已具有显示、存储数据等功能,故将传统数据监视器的相应功能进行部分裁剪,并增加数据通过移动终端远程发送。就采集数据的硬件与移动终端通信的方式而言,选择有 usb、蓝牙、及 wifi 传输等方式。其中,利用 usb 数据线进行传输的速率最高,但是由于手机厂商出于各方面因素的考虑,android 手机不具备 usb host 功能,并且若将数据采集硬件作为 usb host 的话,势必会增加数据采集端硬件的制作成本,利用 usb 进行两者间的数据传输不可行。就 wifi
10、而言,进行硬件端与手机端的 wifi 匹配不利于普通用户操作,并且若建立 wifi 网络环境,也会增加相应成本。故,最终选择以蓝牙方式进行数据采集硬件与移动终端的通行。蓝牙 2.0 的传输速率为 1m/s,传输距离为 10 米,完全满足两段通信的使用要求。2 移动终端软件设计2.1 数据采集模块数据采集模块主要包括 android 端与硬件端蓝牙通信的建立。android 平台提供了 android.bluetooth 包用于蓝牙应用。本系统 android 智能终端作为客户端主动连接采集数据的硬件,连接流程如下:1.注册 broadcastreceiver 来获取蓝牙状态、搜索设备等消息;2
11、.使用 blueadatper 的搜索;3.在 broadcastreceiver 的onreceive()里取得搜索所得的蓝牙设备信息(如名称,mac,rssi);4.通过设备的 mac 地址来建立一个 bluetoothdevice 对象;5.由bluetoothdevice 衍生出 bluetoothsocket,准备 socket 来读写设备;6.通过 bluetoothsocket 的 createrf commsockettoservicerecord()方法来选择连接的协议/服务;7.connect 之后(如果还没配对则系统自动提示),使用bluetoothsocket 的 ge
12、tinputstream()和 getoutputstream()来读写蓝牙设备。通过以上步骤,android 智能终端与硬件设备建立蓝牙通信,可进行数据传输。2.2 波形显示模块大部分仪器仪表中,对测试的数据采用数据和波形的形式在屏幕上显示出来,故该模块以数据示波器为例,显示波形用于辅助频谱观察,数据走势,提供视觉直观感受。2.2.1 坐标转换算法在 android 端需将实际数据转换为软件界面的相应坐标进行绘制。首先按显示量程及纵坐标最大采样点进行相应的比例变化,然后在按照 android 系统得窗口坐标系进行相应转化,主要代码如下:实际电压值转化为屏幕视口纵坐标:private floa
13、t voltage2waveform(float voltage)return (voltage/generaldata.getgdata().getgrange()+1)*(height/2);其中,参数 voltage 为实际电压值;generaldata. getgdata().getgrange()为用户选择的显示量程;height 为绘图区域的高度。视口纵坐标转化为窗口纵坐标:public float testdata(float real_data)return height-real_data+1;其中,参数 real_data 为视口纵坐标;height 为绘图区域的高度。经过
14、以上两步方法,便可将实际数据值转化为 android 端屏幕的绘制值。2.2.2 软件绘图方式浅析android sdk 提供了两个可操作 canvas(画布)的类:view 和surfaceview。利用 view 的 ondraw()方法绘制画布。在本软件中程序启动时,即开启绘图线程,当接受到相应数据时,折算后的绘制值将被传入绘图线程,进行实时绘制。以下为绘制波形所涉及到的部分代码:public waveformplotthread(surfaceholder surfaceholder, waveformview view) holder = surfaceholder;plot_are
15、a = view;public void run()canvas c;while(_run) c = null; tryc = holder.lockcanvas(null); synchronized (holder) plot_area.plotpoints(c);finallyif(c!=null)holder.unlockcanvasandpost(c);public void surfacecreated(surfaceholder holder) plot_thread = new waveformplotthread(getholder(),this);plot_thread.s
16、etrunning(true); plot_thread.start();其中,plot_thread 为 waveformplotthread 的对象。在绘制区域被创建时便启动该线程,实现实时绘制。本函数使用surfaceview 实现绘图,其绘制支持双缓冲区技术,绘制图形的效率更高。使用时,需继承 surfaceview 的类,并实现surfaceholder.callback 接口。图 3 数据实时显示fig.3 real time display of the data2.3 数据存储模块android 采用专门为嵌入式产品而设计的轻量级数据库sqlite。本软件端将接收到的数据存储至
17、移动终端的 sd 卡上。通过 sqlitedatabase.openorcreatedatabase 方法可以打开已存在的数据库,或创建新的数据库。开启软件时,自动建立data_monitor.db 数据库文件,每次接受数据会以接收时间作为表名建表,例如:2012 年 01 月 04 日 23 点 28 分 55 秒建表,存储周期为 30 秒,则表名为:_2012_01_04_23_28_55_30。2.4 查看历史模块在软件界面,点击“历史”按钮,系统将停止接受硬件传来的数据,并跳转至“回放”界面,在此界面中点击“查看历史” ,进入查看历史界面,浏览数据库存储的历史数据文件。点击相应表名,可
18、选择查看或删除该表。查看时可进行数据回放,显示频谱。图 4 查看历史fig.4 check the record图 5 记录回放fig.5 record display3 结论本文给出了使用移动终端的显示及远程传输功能,与外部硬件配合,能够简单的实现现场数据采集和远程数据监控等功能。移动终端在工业上的应用还处于萌芽期,而利用人手必备的移动终端,配合简单的数据采集硬件设备,达到监控仪表的部分功能,便是移动终端在工业应用上的良好实现方式之一。若建立后台服务器的数据存储,并进行进一步改善和维护,那么将推进工业数据采集步入云端处理的过程。 ,参考文献1 刘正,陈强. 基于 android 的 gps
19、应用中的研究与开发j.中国西部科技,2010,9(32):15-16. liu z, chen q. research and development based on androids gps application j. science and technology of west china,2010,9(32):15-16. (in chinese)2 杨丰盛. android 技术内幕m. 北京:机械工业出版社,2011,07. yang f s. inside the android m. bei jing:machine press,2011,07.3 reto meier. professional android2 application developmentm. usa: wrox,2010,231.4 赖超,龙曦,李金霖. 基于 android 平台的手机后台监听技术j.电脑知识与技术,2010,6(33):9472-9474. lang c, long x, li j l. mobile backstage monitoring technique based on android j. computer knowledge and technology,2010,6(33):9472-9474. (in chinese)