当前位置:首页 > 电子/通信 > 数据通信与网络 > 基于智能移动终端的数据监控系统的解决方案
基于智能移动终端的数据监控系统的解决方案摘要:工业监控设备(仪器仪表)主要由数据采集,显示以及数据输出等部分构成。现有工业用数据监控设备多为专用设备,通用性和便携性差,现场数据传送需有专用pc,有一定的制约性,价格昂贵。本文针对以上问题设计了运行在android智能移动终端上的数据监控系统,旨在利用移动终端在数据存储、远程传输、监控等方面的优势,实现专业数据采集器的部分功能,由此,无需专用pc,由个人所持智能移动终端便可实现现场数据查询和远程数据传送。降低产品自身的价格的同时,也能减少固定投资成本。关键词:android;监控系统;移动终端;surveillancesystemsolutionbasedonsmartmobileterminalsunhongyi,langchenglian(departmentofelectricalengineering,tongjiuniversity,shanghai201804,china)【abstract】monitoringdevicesinindustrymainlyconsistofdatacollectors,monitoranddataoutput.mostofthemonitoringdevicesarespecial-designed,whichmeanslimited-utility,andnotconvenienttobringwith.besides,thepcshouldbeusedtomonitorandtransferthedata,thereforeaddingthecost.thispaperaimstousethesmartmobileterminal,implementingthefunctionsofthemonitoringdevices.accordingly,thepersonal-ownedsmartmobileterminalcanbeusedtoqueryandtransferthedatainsteadofpc,whichcutsthecostandenhancestheflexibility.【keywords】android;surveillancesystem;mobileterminal0引言工业监控设备(仪器仪表)主要由数据采集,显示以及数据输出(有线向pc传送)等部分构成。现有工业用数据监控设备多为专用设备,如安捷伦dso9000,日本bits的hm-2g等,其便携性差,成本高。部分数据监控设备通过usb线或wifi等方式,将监控所得数据传输至专用pc,有一定的制约性,价格昂贵。如图1所示数据采集器,作为与pc机配合使用的专用硬件,通过usb线或wifi将串口数据传输至pc机,进行数据采集和监视。图1传统监控设备系统总框图fig.1systemchartofthetriditionasurveillancedevice随着智能移动终端应用的推广,采用智能移动终端替代专用设备的显示以及数据传送的部分功能,成为研究的热点和趋势。android系统是基于linux的开源操作系统平台,凭借其开放性技术,大大降低产品的开发成本,有助于在激烈的市场竞争中获得用户青睐。本文针对以上问题设计了运行在android智能移动终端上的数据监控系统。系统旨在利用移动终端在数据存储、远程传输、监控等方面的优势,实现专业数据采集器的部分功能,由此,无需专用pc,由个人所持智能移动终端便可实现现场数据查询和远程数据传送。降低产品自身的价格的同时,也能减少pc机的固定投资成本。1系统分析与设计整套系统需实现工业数据监控设备的功能,故主要包括两大部分:数据采集器实现对工业设备中相关数据的采集,并传送至移动终端;智能移动终端实现数据的显示、存储、回放、远程发送等功能。在移动智能终端方面,android智能操作系统成为近年来最受关注的操作系统,由于它的免费性,以及系统的开放性,使开发人员可以随时取得程序的源代码,这对于程序开发人员和运营商定制非常重要。在移动智能终端支持方面,三星、摩托罗拉、多普达等国际一线厂商几乎倾倒性的发展android,在2011年第一季度android操作系统己经跃居智能终端操作系统的榜首。随着android技术的迅猛发展和日趋成熟,android操作系统在手持终端中所占比例正逐步上升,其开放性、便携性、良好的兼容性、无缝结合网络通信等特点将使android操作系统在各个领域中都有着广泛的应用。rs232c在工业设备之间的数据交换及设备控制上占有举足轻重的位置,原因在于rs232c的成熟性和简单性。串行通信网络物理层是建立在rs232c(rs485)基础之上,至今rs232c仍被用于各种设备之间数据交换。几乎所有的mpu都标准配备uart,在电路设计,设备编程,设备连接,以及设备数据交换的事实监视,都必不可少的需要查看记录数据交换内容,由此产生了rs232c数据分析仪。现有rs232c监视器多为专用硬件来采集串行通信中的数据线和控制线信息,通过usb把信息送到pc上,由专用软件显示出来。也有做成专用设备自带显示器和数据输出口。rs232c数据分析仪由于是面对研发人员,使用数量相对较少,目前也只有少数厂家生产。图2系统总框图fig.2systemchartofthewholesystem采集数据的硬件设备将实现rs232c数据分析仪的功能,由于智能移动终端已具有显示、存储数据等功能,故将传统数据监视器的相应功能进行部分裁剪,并增加数据通过移动终端远程发送。就采集数据的硬件与移动终端通信的方式而言,选择有usb、蓝牙、及wifi传输等方式。其中,利用usb数据线进行传输的速率最高,但是由于手机厂商出于各方面因素的考虑,android手机不具备usbhost功能,并且若将数据采集硬件作为usbhost的话,势必会增加数据采集端硬件的制作成本,利用usb进行两者间的数据传输不可行。就wifi而言,进行硬件端与手机端的wifi匹配不利于普通用户操作,并且若建立wifi网络环境,也会增加相应成本。故,最终选择以蓝牙方式进行数据采集硬件与移动终端的通行。蓝牙2.0的传输速率为1m/s,传输距离为10米,完全满足两段通信的使用要求。2移动终端软件设计2.1数据采集模块数据采集模块主要包括android端与硬件端蓝牙通信的建立。android平台提供了android.bluetooth包用于蓝牙应用。本系统android智能终端作为客户端主动连接采集数据的硬件,连接流程如下:1.注册broadcastreceiver来获取蓝牙状态、搜索设备等消息;2.使用blueadatper的搜索;3.在broadcastreceiver的onreceive()里取得搜索所得的蓝牙设备信息(如名称,mac,rssi);4.通过设备的mac地址来建立一个bluetoothdevice对象;5.由bluetoothdevice衍生出bluetoothsocket,准备socket来读写设备;6.通过bluetoothsocket的createrfcommsockettoservicerecord()方法来选择连接的协议/服务;7.connect之后(如果还没配对则系统自动提示),使用bluetoothsocket的getinputstream()和getoutputstream()来读写蓝牙设备。通过以上步骤,android智能终端与硬件设备建立蓝牙通信,可进行数据传输。2.2波形显示模块大部分仪器仪表中,对测试的数据采用数据和波形的形式在屏幕上显示出来,故该模块以数据示波器为例,显示波形用于辅助频谱观察,数据走势,提供视觉直观感受。2.2.1坐标转换算法在android端需将实际数据转换为软件界面的相应坐标进行绘制。首先按显示量程及纵坐标最大采样点进行相应的比例变化,然后在按照android系统得窗口坐标系进行相应转化,主要代码如下:实际电压值转化为屏幕视口纵坐标:privatefloatvoltage2waveform(floatvoltage){return(voltage/generaldata.getgdata().getgrange()+1)*(height/2);}其中,参数voltage为实际电压值;generaldata.getgdata().getgrange()为用户选择的显示量程;height为绘图区域的高度。视口纵坐标转化为窗口纵坐标:publicfloattestdata(floatreal_data){returnheight-real_data+1;}其中,参数real_data为视口纵坐标;height为绘图区域的高度。经过以上两步方法,便可将实际数据值转化为android端屏幕的绘制值。2.2.2软件绘图方式浅析androidsdk提供了两个可操作canvas(画布)的类:view和surfaceview。利用view的ondraw()方法绘制画布。在本软件中程序启动时,即开启绘图线程,当接受到相应数据时,折算后的绘制值将被传入绘图线程,进行实时绘制。以下为绘制波形所涉及到的部分代码:publicwaveformplotthread(surfaceholdersurfaceholder,waveformviewview){holder=surfaceholder;plot_area=view;}publicvoidrun(){canvasc;while(_run){c=null;try{c=holder.lockcanvas(null);synchronized(holder){plot_area.plotpoints(c);}}finally{if(c!=null){holder.unlockcanvasandpost(c);}}}}publicvoidsurfacecreated(surfaceholderholder){plot_thread=newwaveformplotthread(getholder(),this);plot_thread.setrunning(true);plot_thread.start();}其中,plot_thread为waveformplotthread的对象。在绘制区域被创建时便启动该线程,实现实时绘制。本函数使用surfaceview实现绘图,其绘制支持双缓冲区技术,绘制图形的效率更高。使用时,需继承surfaceview的类,并实现surfaceholder.callback接口。图3数据实时显示fig.3realtimedisplayofthedata2.3数据存储模块android采用专门为嵌入式产品而设计的轻量级数据库sqlite。本软件端将接收到的数据存储至移动终端的sd卡上。通过sqlitedatabase.openorcreatedatabase方法可以打开已存在的数据库,或创建新的数据库。开启软件时,自动建立data_monitor.db数据库文件,每次接受数据会以接收时间作为表名建表,例如:2012年01月04日23点28分55秒建表,存储周期为30秒,则表名为:_2012_01_04_23_28_55_30。2.4查看历史模块在软件界面,点击“历史”按钮,系统将停止接受硬件传来的数据,并跳转至“回放”界面,在此界面中点击“查看历史”,进入查看历史界面,浏览数据库存储的历史数据文件。点击相应表名,可选择查看或删除该表。查看时可进行数据回放,显示频谱。图4查看历史fig.4checktherecord图5记录回放fig.5recorddisplay3结论本文给出了使用移动终端的显示及远程传输功能,与外部硬件配合,能够简单的实现现场数据采集和远程数据监控等功能。移动终端在工业上的应用还处于萌芽期,而利用人手必备的移动终端,配合简单的数据采集硬件设备,达到监控仪表的部分功能,便是移动终端在工业应用上的良好实现方式之一。若建立后台服务器的数据存储,并进行进一步改善和
本文标题:基于智能移动终端的数据监控系统的解决方案
链接地址:https://www.777doc.com/doc-3412141 .html