基于J2ME的脉搏波测量系统设计
片机蓝牙设计
单片机使用UART接口和蓝牙模块进行通信。HC-05为蓝牙透明传输模块,专为具有异步串口的用户提供快捷蓝牙点对点通讯。用户不需任何协议,就像有线电缆连接一样,只需对串口写入数据,就可以将数据传输到远端用户设备。上电后蓝牙主机模块复位、读蓝牙模块地址、设置状态参数和初始化模块,与远端的手机连接成功后,可以通过UART异步串口与从机通信。这里将HC-05设置为主机模式,经过初始化后提供蓝牙服务,等待手机端蓝牙客户端连接。
3.2.2 手机端J2ME设计
J2ME(Java2 Platform,Micro Edition)是Sun专门为小型的资源受限的消费性电子设备的应用程序开发所提供新的Java版本,它广泛的使用于移动电话、PDA(个人数字助理以及电视机顶盒等众多小型资源受限设备中。对于J2ME来说,由于其得天独厚的跨平台性与良好的可移植性,使得其在设备繁多、平台异常混乱的手机与PDA市场更显得如鱼得水。
J2ME平台是由配置(Configurations)和简表(Profile)构成的。配置是提供给量大范围设备使用的最小类库集合,在配置中同时包含Java虚拟机(JVM)。简表是针对一系列设备提供的开发包集合。在J2ME中还有一个重要的概念:可选包(Optioual Package),它是针对特定设备提供的类库,比如某些设备是支持蓝牙的,针对此功能,J2ME中制定了JSR82(Bluetooth API)提供了对蓝牙的支持。程序流程图如图5所示。
图5 程序流程图
设计过程如下:
1)构建基于MIDLet的Mobile主类,实现按钮监听,在其监听消息中响应手机左控制键退出(Cmd_Exit)和右控制键显示脉搏波(Cmd_Show)的命令。部分代码如下:
2)建立派生于GameCanvas实现按钮监听的Show类,画脉搏的函数名为DrawPulse用于将接收到的脉搏数据动态显示在屏幕上。部分代码如下:
3)建立Record类,通过RecordStore的方法addRecord,deleteRecord,getRecord存储,删除和显示收到的脉搏数据。至此整个J2ME的界面搭建完成。部分代码如下:
4)建立新类使其实现Punnable(多线程)。由于需要发送连接请求和接收数据,必须要将发送和接收过程使用多线程实现。导人输入输出数据流包循环接收数据。部分代码如下:
4 数据昱示与结果分析
考虑到自然光对测量的影响,将整个电路放置在不透光的小型圆柱形密封容器内(直径约5cm,高度约5cm),中间打1.5cm直径的孔,用于固定受测者手指姿态,顶部打0.5cm的孔用于反向放置光敏电阻。分别将采集电路板、蓝牙传输电路板叠放并用泡沫固定。测试时用手指的指尖按住光敏电阻的表面,受测者可以较长时间保持稳定的姿态。受测过程中有时出现部分毛刺和基线漂移现象,但是不影响整体测量效果。测量结果为:脉搏波形平滑,噪声抑制良好,长时间观测达到稳定后能提供使用者健康状态评价参数,如图6所示。
图6 数据显示
5 结论
系统采用C8051F330单片机和J2ME蓝牙研制便携式脉搏波测量仪,相比传统的检测设备,采取了光电容积脉搏波描计法,结果误差控制在10%以内、成本降低了50%以上、体积减少50%以上,配合J2ME可方便地进行二次开发。同时系统在部分细节还有待提高,比如采用更加有效的滤波方法滤除脉搏波中的基线漂移等噪声、构建更加人性化的手机界面等等。在系统基础上使用J2ME二次开发邮件系统或者CPRS,构建远程社区医疗保健系统,将人体生理信号使用手机发送给医生进行远程诊断,会给用户带来极大的便利,显示出良好的使用前景。
- 基于J2ME的脉搏波测量系统设计原理(02-27)
- 尽可能提高测试系统利用效率的三种策略(10-22)
- 一种气动人工肌肉运动位移测量系统的实现(03-07)
- 核辐射剂量场实时成像测量系统的研究(01-10)
- 基于数字移相的高精度脉宽测量系统及其FPGA实现(08-22)