APP下载

基于Android磁弹性传感器检测仪上位机的设计与开发

2021-10-10马玉杰程永强郝润芳

电子设计工程 2021年19期
关键词:检测仪蓝牙组件

马玉杰,程永强,郝润芳

(太原理工大学信息与计算机学院,山西晋中 030600)

磁弹性传感器是一新型生物传感器,它是根据磁弹性效应建立起来的,即磁致伸缩效应,它的测量通过谐振检测来实现。在磁弹性材料中加交变磁场时,材料会发生磁致伸缩与共振现象,反映出待测量受到的应力以及负载质量等参数的变化。磁弹性传感器以其灵敏度高、成本低、非接触测量和无源性等优点引起了人们的广泛关注,在很多领域都有良好的发展前景,如生物检测、食品安全、环境监测以及无损检测等[1]。

国外研究磁弹性传感器检测设备相对于中国起步要早一些。前期的检测装置大部分应用于网络分析仪、锁相放大器、频谱分析仪和阻抗分析仪等成型仪器。不过这些设备不仅体型笨重而且价格高昂,所以很难应用于实际[2]。经过深入研究,现在有了独立的检测平台。然而这些仪器基本上都是针对单个检测应用而设计研发,所以应用的范围具有局限性,当需求变化时,就不得不重新开发设备。对于磁弹性传感器的研究,我国起步相对较晚,利用国外研究直接进入用独立仪器检测的研究与应用,仪器大多数都是为了某一种类型或是某一种特性的检测需求定向设计。所以应用范围有局限性,当需求发生改变,只能重新设计,时间和资金消耗加大。为解决以上问题,对基于阻抗测量法的高频磁弹性传感器谐振频率检测系统进行优化设计,让磁弹性传感器位于交流的激励磁场中,由于固定的直流偏置磁场发生的共同作用,磁弹性传感器会因为磁致伸缩效应产生共振现象,偏置磁场在清除磁致伸缩材料的倍频效应时,负载质量影响磁弹性材料的应变特征发生共振变化,此时磁场对变化进行调整,因此用多频率激励信号驱动线圈,能使检测仪得到准确有效的结果。根据以上原理设计并完成一种便携可靠的高频磁弹性传感器检测仪,此检测仪成本低、精度高、功耗低、抗干扰性强。但是获取该检测仪所测得的数据信息还是需要工作人员亲临检测现场,需要消耗较多的时间和精力,因此文中设计并开发了一款针对此磁弹性传感器检测仪的Android 系统手机端上位机软件。

移动设备便携、灵活、高效,因此得到人们的青睐。在今天发展迅速的手机市场上,Android 手机凭借着其良好的性能和系统的持续更新,拥有了非常庞大的用户群体[3-5]。为检测生物样本的磁弹性传感器检测仪设计和开发的手机软件,可以使工作人员解决传统的个人电脑笨重、携带不便等问题,通过蓝牙通信接收实时数据,在移动终端显示下位机检测到的数据信息及曲线图[6],使检测结果更清晰直观,且操作简单、使用方便。

1 应用开发环境与技术

1.1 开发环境

该软件基于Android 系统开发,利用Android Studio 当作开发平台、运用Java 开发语言进行程序开发,使用Android 模拟器和Android 手机来调试系统。

Android Studio 是一个Android 开发环境,有集成的Android 软件开发工具,能够用它来进行软件的开发以及调试[7-8]。

Android Stuido 具有下面几个优势:

1)由谷歌发行,为Android 系统开发量身打造,基于IntelliJ IDEA的IDE 转换而来。

2)速度很快,Eclipse 有启动、响应慢以及内存占据问题等缺点,而且时常卡死,Studio 则在各种方面都比Eclipse 更出色。

3)UI 界面很美观,而且操作更加智能,具有提示补全的功能,这个特性对开发人员来说具有重要的意义,此外还可以智能保存,使得效率得到大大提高。

4)整合了Gradle 构建工具,Studio 支持Gradle,它拥有Ant 与Maven的优势,因此它的配置、编译和打包都很优秀;

5)UI 编辑器的功能很强大,特别智能,不止拥有Eclipse+ADT的优势,而且还能实时预览几个设备,Android Studio 拥有大量不同大小的屏幕和不同大小的分辨率,开发人员在工作的时候可以看见自己此时正在编写的程序在各个不同分辨率和尺寸的屏幕里的体现效果,方便程序员及时作出修改和调整。

6)内置终端,支持各类插件,如Git、Markdown、Gradle 等,需要时直接搜索下载。

7)有一个完美集成版本的控制系统,安装时自身携带热门的版本控制系统,如GitHub、Git、SVN等,能够直接对项目进行检查。

Android Studio的缺点主要是旧版本与新版本不可以互相兼容,需要人工修改对应的gradle 配置并升级buildtool,而且Android Studio 是一个比较新的软件开发平台,用户的数量还比较少,如果在使用中碰到开发或技术等方面的困难,不容易找到可以沟通并解决问题的人[9-11]。

1.2 开发技术

1)Android 技术

Android 是一个基于Linux、开源的移动设备的操作系统,比如在智能手机、平板电脑中等都有应用[11]。它是2007 年谷歌和开放手机联盟共同设计并开发的平台软件。这款操作平台软件专门为移动设备而设计,拥有其特别的优势,不再被运营商束缚、选择,其硬件选择范围也非常广泛,系统兼容性良好,打破了传统平台软件的各类限制,与此同时其使用者也拥有了非常好的移动服务体验。Android 提供了统一的应用程序软件的开发方式,这相当于程序员只用为Android 开发程序就可以在不同的Android 移动设备上来运行。Android 开发有很多优势,如开放源代码、庞大开发者群和强大的社区、不停扩大的市场、国际化App 集成、低廉的成本、较高的成功率、完善的开发环境等。Android 软件开发含4 个组件,分别是:活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)以及内容提供商(Content Provider)[12-14]。

①Activity 组件是一切程序的基础,所有程序过程都在Activity 运行,能够包含用户的界面,主要用在与用户的交互方面,它是程序员接触最频繁、Android 中最基础的模块之一。Android的程序里,Activity 常代表手机的一屏,Activity 组件主要有4 个基本状态。第一个状态为激活态Active/Running,它处于屏幕最前端,和用户直接交互;第二个状态为暂停态Paused,表示Activity 丢失焦点,这时Activity 不可以和用户交互;第三个状态为停止态Stopped,这个时候Activity 界面不可见,一般情况是系统收回了较紧张的系统资源;第四个状态为死亡态Killed,这时系统会从内存里把Activity 清除出去。

②Service 组件作为服务组件,由运行在后台的一段代码组成,其运行的状态不可见。Service 组件可以结合自身的需求,在自己的进程里进行运行,还能够在别的应用程序里运行。Service 服务组件有两种服务类型,分别为本地服务以及远程服务。本地进程通常依附于主进程,因此减少了系统资源的占用。不过一旦主进程结束运行以后,Service 便跟着主程序的结束而相应结束了。bind Service 以及context.start Service 是Service 组件启动的两种方法。与此同时,Service 组件也有生命周期,它主要历经4 个阶段,分别为on Create、on Start、on Destroy、on Bind。Service 组件经常被用在数据处理方面,比如背景音乐的播放,从网络获得远程的数据都是Service的应用范围。因此Service 是只能后台运行,能和别的组件交互,具有长生命周期的代码。

③Broadcast Receiver 组件的主要作用是接收系统里的广播信息,程序员能够依据不同的广播类型来设定广播的机制。在进行Android 应用程序开发的时候,熟悉Broadcast Receiver 组件非常重要。Broadcast Receiver 组件也有着生命周期,它包括3 个进程,分别为创建Broadcast Receiver 对象、调用on Receive 方法、广播销毁。Broadcas 用于传输信息,Broadcast Receiver 对发出的Broadcast 过滤、接收以及响应。Android 数据有严密的防护,除SD 卡里的数据,数据库和文件等都不可直接访问。但Android的各应用间并非各自孤立,Content Provider 可为储存和读出数据规定统一标准接口,用它让应用交流数据,许多内置数据用Content Provider 形式以方便程序员调用。

④Content Provider 组件作为共享机制,可以让不同的数据之间进行共享。比如,发短信时选择一个联系人,此时Content Provider 组件就能够发挥自身的用途,使得系统更加方便利用。Android 平台用URI的形式为每项资源都规定了自己的资源名,形式与“content://应用的标准前缀/URI 标识/路径/需获取的记录ID”非常相像。Conten Provider 就是在URI的基础上来实现的。Content Provider的数据共享用接口中的标准方式完成。on Create、update、query、insert、delete 等都是很常见的操作方式。

2)Java 技术。Java 吸收C++的优势且废弃难懂、少用的性能。Java 没有指针,而是引用,自动收集垃圾,无内存问题。Java 简单、功能强大,是面向对象编程语言的代表。

①Java 编程语言拥有独立的平台,它使用“Java虚拟机”作为指导,在应用里首先编译成为中间码,然后对其进行装载和校验,最后经过解释来生成机器码,从而使得应用程序得以执行。Java 能够屏蔽掉平台里的特征要求,系统只用支持Java 虚拟机就可成功运行Java 程序。

②Java 编程语言不支持自动强制、多级继承以及运算符重载这些作用,因为这些功能在实际开发应用中很少用到,而且如果使用的话很容易出现混淆,所以Java 抛弃这些功能使得编程复杂性降低很多、更加简单。Java 里加入一些能够增加实用性的新功能,因为Java 语言的复杂性不是很高,所以它的应用门槛比较低,在计算机软件的开发中可靠性非常好,而且它所占用系统的空间也比较小。

③Java 编程语言是多线程的,能保证软件并行,Java 语言的同步原语较完整,可保证数据的共享。在开发软件程序的时候,用多线程的方式控制各个特定的行为,不仅如此,还能使它们进行交互。

④计算机的程序编写不是对于一整个程序的全部内容直接进行,而是把程序分割成为几个不同的模块,然后来编写小模块。实际操作时,编写必须能够保证不同的模块之间是相互独立的,从而使得编写效率得到提高。对于程序的编写,需要考虑模块的组成结构,它们应该是独立的,避免对单个模块进行改变,其他模块就不会发生连带反应。Java 面向对象,各模块的建立对应程序,功能分解,此外Java还有分布式、健壮性、安全性、平台独立、可移植性、多线程、封装性、继承性、动态性等优点。

3)蓝牙技术

蓝牙是一种新兴的无线通信规范。蓝牙本质上是创建通用的无线电空中接口,在没有电线、电缆连接时,使得各个厂家生产的移动设备可以在一定范围内互相连接、操作。蓝牙技术不但使移动设备之间的相互通信简单化,也使设备与因特网间的通信简化,使得通信设备与因特网之间的信息传输更加快速、高效,且让便携式的通信设备不需要电缆就可以联网[15-16]。

该设计应用蓝牙的2.1 协议标准,它能自动使用数字密码配对,比如在手机的选项里选择配对特定装置,确定后手机能自动列出当前环境中的可用设备,并自动连接配对。蓝牙2.1 装置之间互相确认的信号发送时间间隔约0.5 s,使芯片负载大大降低,还能使蓝牙能有更多时间彻底的休眠,蓝牙装置在联机后的待机时间也很长。

4)数据库技术

Microsoft SQL Server 是分布式的关系型数据库管理系统,拥有客户机/服务器的体系结构,应用Transact-sql的sql 语言在客户机和服务器之间传送客户机请求以及服务器的处理结果[17-20]。

SQL Server 可提供符合当前商业环境下所要求的各个类型的数据库解决方案。它的应用非常广泛,拥有很多非常明显的优势:易用性、适用于分布式组织的可伸缩性、用在决策支持的数据仓库功能和很多别的服务器软件关系密切的集成性、较高的性价比等。

SQL Server 除了这些优势以外,还能为使用者的数据信息的管理和分析带来灵活性,允许在迅速改变的环境里从容地响应,因此有很高的竞争优势。从数据的管理与分析这两个方面来看,把原始的数据转变成为商业智能以及充分地利用Web 带来的机会特别重要。SQL Server 是一个完整的数据库与数据分析包,作为重要的基准测试可伸缩性以及速度奖的记录保持者,SQL Server 是一个具备完全Web支持的数据库产品,有对可扩展标记语言(XML)的核心支持和在Internet 上与防火墙外查询的能力。

2 上位机功能及界面的设计与实现

针对磁弹性传感器共振频率检测的单一化研究设计,利用磁弹性传感器和交流磁场无线耦合的共振检测方法,设计出了一种多通道的磁弹性试纸共振频率检测系统,能够检测多种生物样本。该传感器检测仪能够检测多种生物样本,生物样本的特性可以通过检测仪检测出来并反映在检测的数据中,结合磁弹性传感器检测仪的实际应用情况,并且进行全面的需求分析以及对市场调研,此Android 手机上位机软件需要有5 个功能,分别是接收数据、数据处理、数据存入SQL Server、数据可视化以及显示曲线的功能,具体的工作流程如图1 所示。

图1 系统工作流程图

磁弹性传感器检测仪上位机软件的设计包括前端设计和后端设计两个部分,系统的设计如图2所示,前端设计部分由登录界面、蓝牙连接界面和UI 界面3 部分构成,工作人员利用登录界面进入应用程序,然后在蓝牙界面中利用蓝牙技术连接磁弹性检测仪下位机使得软件与硬件进行数据连接,UI界面中显示出数据信息和曲线图,工作人员可通过UI 界面获取下位机数据信息。后端设计部分包括与下位机的蓝牙通信、数据处理、数据存储以及历史查询4 个部分。该系统采用蓝牙技术传输数据,使得数据信息由磁弹性检测仪下位机传输到手机上位机软件中。数据处理模块对数据进行可视化处理,使得数据可以以曲线的形式表现出来。数据存储模块把数据信息存储在数据库中,当工作人员需要获取历史数据信息时就能够从数据库中调取存储的数据。

图2 系统设计图

该软件设计了登录界面(如图3 所示),工作人员点击APP 图标进入程序后到达登录界面,点击“START”按钮便可进入蓝牙配对界面(如图4 所示),此时点击“搜索设备”按钮搜索可配对的设备,这时屏幕上会列出通信范围内所有可连接的设备名称,找到磁弹性传感器的设备名称后点击配对即可配对成功。此时可把此设备设置为默认连接设备,下一次连接时应用会自动和磁弹性传感器检测仪下位机配对。

图3 登录界面

图4 蓝牙配对界面

配对成功以后系统就进入UI 数据曲线显示的界面(如图5 所示),点击界面的右下角的开关按钮,系统就进入检测状态,这时检测仪有数据传输进来系统就可以实时接收并显示出来,界面顶部的“Instant measured value”显示接收到的实时测量数值,点击右下角曲线显示的按钮,界面开始实时显示数据曲线。界面中的4 个坐标轴曲线图分别表示四个检测通道各自的检测数值,实线部分表示测量值“measured value”,虚线部分表示标准值“standard value”,检测时测量值平稳输出,当测量值突然出现一个向下的脉冲时,数据就能够反映出被检测生物样本的特性,这时通过对比测量值与标准值,就可以获得此被测生物样本的特性。所以把测量值与标准值在同一坐标系中显示非常有必要,更加便于两组数据的比较,而且都用曲线显示使得数据信息更加清晰直观。

图5 数据曲线显示界面

完成每次检测后,都可通过局域网把该次检测所使用的ID、检测时间(DT)、以及检测到的数据传入电脑存进SQL Server 数据库中,当工作人员需要获取某个时间或者某个ID 操作的数据信息时,就可进入SQL Server 中输入日期时间或ID 信息调取当时检测得到的数据(如图6 所示)。

图6 数据库查询界面

3 结束语

文中设计完成了基于Android 手机的磁弹性传感器检测仪软件设计,传统的检测仪获得数据信息必须要亲临现场、操作复杂,而且得到的数据不直观,本软件可以远程接收数据得到检测的结果,提高了工作效率,并以图表的形式表现出来,有较好的实用性和较大的市场前景。

猜你喜欢

检测仪蓝牙组件
蓝牙音箱的直线之美
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
一种防雷接地装置的便携式检测仪电路
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
基于555振荡器的地沟油频率检测仪
紧急:蓝牙指尖陀螺自燃!安全隐患频出
多功能空气质量远程检测仪