基于Android的数据采集处理实验系统设计

时间:2022-02-26 02:20:43

基于Android的数据采集处理实验系统设计

摘 要:传统的教学实验系统是采用有线串口与PC之间通信,无法移动设备,针对这种缺点,设计开发了基于Android平台的便携式的数据采集处理实验系统。通过分析系统在实验中的需求,提出设计思想以及实现方法。介绍Android平台的采集数据、记录数据、绘制曲线和现实拟合曲线。通过曲线拟合对变量间的关系进行分析,验证和发现规律。测试实验结果表明该实验系统符合实验所需功能。

关键词:Android;蓝牙;数据采集;曲线拟合;数据处理

中图分类号:TP27

文献标识码:A文章编号:1005-3824(2014)05-0070-04

0 引 言

Android是一个开放性的开发平台,是基于Linux的自由及开放源代码的操作系统<sup>[1]</sup>。由于Android开源及价格相对较低的原因,使用Android移动终端可以大大的降低成本,最近几年里Android操作系统发展迅猛。

目前的教学中做实验用的实验数据采集系统大多采用PC与串口连接技术,实验人员移动范围窄,实施不方便。基于以上传统实验的缺点,本设计采用上下位机分离,系统采用蓝牙通信协议来代替传统的有线串口,以广泛应用的Android移动终端作为上位机<sup>[2]</sup>,设计出数据采集处理教学实验系统。

1 系统的组成与硬件设计

1.1 系统组成

系统的上位机采用Android平台的移动终端,下位机是以ARM为核心芯片控制数据采集和发送的数据采集终端<sup>[3]</sup>。Android平台通过蓝牙选择连接一个或者多个数据采集终端实现数据的传输,其系统的组成如图1所示。

图1 系统组成图

1.2 硬件设计

数据采集端是通过采集传感器技术采集环境数据,是实现系统功能的重要环节<sup>[4]</sup>。采集的模拟信号,通过 ARM Cortex-M3处理器转换数字信号并对整个电路控制,该处理器采用STM32F103VET6芯片。主芯片控制传感器模块采集数据,并和蓝牙模块通信,通过蓝牙模块发出采集数据。STM32与传感器模块和蓝牙模块串口连接电路图如图2所示。

图2 STM32与蓝牙和传感器模块连接电路

采集数据端的蓝牙模块采用蓝牙3.0。蓝牙技术采用低功耗的无线带拟通信技术来实现数据传输的。蓝牙技术具有应用范围广、体积小、成本低、接口通用等特点。Android有标准的蓝牙接口, Android蓝牙和下位机采集器通过SPP协议通信<sup>[5]</sup>。

数据采集端有多种实验所需要的传感器,如拉力传感器、电压传感器、电流传感器等多种传感器。如图3所示是系统连接图。

图3 系统连接图

2 软件设计与实现

根据用户的需求,软件的运行平台采用Android平台,实现与数据采集端的无线通信。软件包括后台获取数据模块、数据曲线拟合模块和数据记录模块等4个模块。其软件功能模块如图4所示。

图4 软件功能图

1) 连接:主要是完成蓝牙操作部分,包括打开蓝牙,搜索蓝牙设备,连接蓝牙。

2) 后台获取数据:后台获取数据主要是完成Android平台获取数据采集端发送来的数据。

3) 数据显示:数据显示主要是实时的显示数据和绘制曲线,观察变化。

4) 数据表格记录:主要是记录当前获取的数据并显示在Listview上,通过公式或其他处理获取相应的数据。

5) 数据拟合:主要是对绘制的曲线通过曲线拟合发现和验证规律。

2.1 蓝牙连接

该模块实现了Android设备与数据采集端的蓝牙连接功能,连接蓝牙设备需要在AndroidManifest.xml上声明蓝牙权限和蓝牙管理操作权限<sup>[6]</sup>。获取蓝牙设备首先要通过BluetoothAdapter的getDefaultAdapter()方法获取蓝牙适配器。通过Android的API中的startDiscovery()方法来查找蓝牙设备,注册BroadcastReceiver来接受蓝牙设备。获得蓝牙设备方法如下:

BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE)。

通过获取的设备来获取设备名称和MAC地址并显示在Listview上。选择蓝牙设备,为数据采集终端和Android终端配对。蓝牙串口通信采用串口服务,需要为数据采集终端和移动终端配置相同的UUID,从而得到BluetoothSocket对象,并把连接成功的BluetoothSocket对象添加到List<BluetoothSocket>内存变量中去。其蓝牙连接关键代码如下:

try {btSocket.connect();

} catch (IOException e) {

e.printStackTrace();

}

}。

2.2 数据接收

Android平台采集数据通过Android的组件Service后台获取数据。Service后台服务采用异步处理方式,启动一个新的线程,防止阻塞,其流程图如图5所示。

图5 数据采集流程图

取出List<BluetoothSocket>变量内存中的BluetoothSocket对象。通过BluetoothSocket对象的getInputStream()方法获取字节流。在接收数据时通过定义一个字节数组来添加一个缓冲机制。采集的原始数据经过处理,通过Intent对象来传输数据,数据通过广播发送。

Intent intent=new Intent("oneThread");

intent.putExtra("y", y);

intent.putExtra("x", x);

sendBroadcast(intent);

接收端通过BroadcastReceiver来接收广播发来的数据,Intent来获取Bundle 对象,通过该对象获取Service发送的值并对数据显示、数据拟合,数据记录3个模块做出相应的处理。当启动停止采集的响应时,Service调用onDestory()方法来停止Service停止采集数据。

2.3 数据显示

在主界面BroadcastReceiver类中对广播发送来的数据进行显示数据和绘制曲线,用以观察数据变化。可以选择数据显示、曲线显示和共同显示。

2.4 数据记录

进入数据记录界面,设置采集的频率,添加变量名。接收广播发送的数据,把数据保存在HashMap<String, Double>对象中,把该对象添加到List<HashMap<String, Double>> 对象中并通过适配器在ListvView显示数据,其关键代码如下:

form_data.add(item);

form_listview.setAdapter(formDataAdapter);

点击公式按钮使数据通过相应的物理公式处理获取实验所需的变量(如:已知电压和电路求电阻和功率)。当表格观察不是太显著时,选择数据中的2个变量并对相应曲线显示的横、纵坐标进入拟合处理界面<sup>[7]</sup>。

为了更好地处理数据同时便于数据的提取和操作,该模块提供了数据的保存功能,可以保存ListView中的数据。Android系统提供了Share Preference,File,Sqlite,Network 4种数据存储方式 。本设计是采用File存储方式来保存数据,采用Excel技术保存数据,引用 Java Excel API框架。把数据保存到Excel表格中,并把文件保存到SD卡中。该操作要顺利进行需要在AndroidManifest.xml设置SD卡是否可读写的权限。数据存储有利于数据的管理,同时便于数据的提取和再次操作。

2.5 数据拟合

该模块主要是实现对数据的拟合,绘制曲线功能采用安卓系统上制作图表的框架AChartEngine。曲线拟合的基本思想采用的是最小二乘法<sup>[8]</sup>。

接收的数据调用curve.drawview(x, y)方法绘制曲线,并把数据保存到List<Double>内存变量中供数据拟合使用。通过曲线显示数据变化,实验人员可以直观地观察数据变化趋势。

停止采集数据,在绘制的数据曲线选择一段端区间,对选择的区间曲线进行拟合。拟合类MatchServe,该类定义了线性拟合、三次拟合、对数拟合等函数,实现区间拟合的功能。调用拟合函数等方法实现区间曲线拟合。如选择三次拟合先通过Match.Polyfit(array_Ydata, array_Xdata,3)获取三项式的参数值,根据采集点获取3次拟合的值并存到开始定义的数组中,并绘制拟合曲线关键代码如下:

curve.addnewmatchLiner(Line.LINETHREE,Color.YELLOW);

for (int i = 0; i < array_Xdata.length; i++) {curve.drawview(array_Xdata[i], matched_Y[i]);

}。

绘制拟合曲线时保留了原点数据曲线。原采集数据可与经过处理的拟合曲线进行比较和分析。曲线界面可以通过手势放大与缩小。拟合曲线视图可以通过保存图片把拟合曲线保存下来。曲线数据也可以同记录数据模块一样保存在Excel表格中。保存下来的图片和数据供学生写实验报告使用。

3 系统实验测试

系统以连接电压传感器和电流传感器来测试伏安特性实验为例进行测试。软件的使用流程为:打开应用程序进入数据显示界面设置采集频率,点击链接打开蓝牙搜索蓝牙并连接数据采集端,启动开始按钮开始采集数据,选择数字显示、曲线显示和共同显示,如图6所示是共同显示实例,横坐标是采集时间,纵坐标是对应的采集数据。

图6 系统测试实例1

进入数据记录模块添加电压(U)和电流(I)变量,启动采集,开始记录数据并可以通过公式对记录的数据进行处理获取其功率P,如图7 和图8所示。

进入数据拟合界面,添加曲线,设置采集频率,连接蓝牙启动Service绘制曲线,停止后,对所绘制的曲线选择拟合区间,绘制拟合曲线。其绘制的曲线和拟合曲线如图9所示。―是采集数据绘制的曲线,其他如线性拟合曲线等都是在选择的区间绘制的拟合曲线。如图9所示,横坐标是电压,纵坐标是电流,可以看出拟合曲线接近重叠,可以看出R=U/I的规律。点击保存数据可以选择图片保存和数据保存,图片保存为JPG格式,数据保存在Excel文件中。

图7 记录数据

图8 公式处理后数据

图9 拟合曲线

4 结 语

本文基于Android平台,结合目前教育事业所需以及Android终端的广泛使用,设计开发了一个基于Android平台便携式的实验系统。系统可以提高学生的兴趣,根据做不同的实验而连接不同的传感器,完成实验,利用它为教育事业服务。设计还有很多不足的地方,一方面是界面没有美化,另一方面是系统的细节设计不完善,有望在不断改进中能得到广泛推广。

参考文献:

[1]

JACKSON W. Android apps for absolute beginners[M].New York City:Apress,2011.

[2] 朱洪涛,吴洪波,李铮.基于Android平台的数据采集系统设计[J].自动化与仪表,2013(3):28-31.

[3] 郑锋凯,白凤娥,薄丽萍.无线传感器网络在地震区山地灾害监测中的应用[J].电脑开发与应用,2010,23(7):47-49.

[4] 苏维嘉,唐宇,杨静. 基于Android平台的USB数据采集系统[J].计算机系统应用,2012,21(8):39-42.

[5] 徐勇. 基于Android智能手机的动态心电监测系统设计[D].南京:南京邮电大学,2013.

[6] 蓝坤,张跃.Android在远程医疗信息系统中的应用[J]. 计算机应用,2013,33(6):1790-1792.

[7] 杨秀莲,吴兴纯. 大学物理实验中数据处理方法的灵活应用[J].中国科教创新导刊,2012(16):55-57.

[8] 田垅,刘宗田. 最小二乘法分段直线拟合[J].计算机科学,2012,39(S1):482-484.

作者简介:

汪国磊(1989),男,安徽六安人,硕士研究生,主要研究方向为嵌入式仪器。

Data collection and processing of experimental

teaching system design based on android

WANG Guolei

(Chongqing Key Laboratory of signal and information processing, Chongqing University of Posts and Telecommunications, Chongqing 400065,P.R.China)

Abstract:The traditional teaching experiment system can not be moved which communicating between the serial port and PC. This paper designs and develops platform of the portable data collection and processing experiment system based on the Android. The design concept and implementation methods of the system have been proposed by analyzing the system requirements in the experiment. The functions of system ,such as data collection, recording data , drawing curves and Achieving the curve fitting are introduced. The rules were discovered and verified by curve fitting to analyze the relationship between variables. The experimental results show that the experimental system meet the required function by testing the system.

Key words:Android,bluetooth,data collection,curve fitting, date processing

上一篇:一体化缴费平台应用研究 下一篇:高密度电法在工程建设岩溶探测中的应用