基于蓝牙低功耗技术的智能健康监测手表系统
基于蓝牙低功耗技术的智能健康监测手表系统
随着可穿戴技术的快速发展,智能手表作为可穿戴技术的典型产品,其智能硬件系统结合精确的算法能够实现健康高度智能化监测,并结合即时通信技术,完成定位跟踪、社交分享、网络交互等功能,最终实现“互联网+健康”。本文基于蓝牙低功耗(BLE)技术设计了实用的佩戴式腕表系统,旨在辅助人类保持健康的运动与生活方式。
系统模型结构
本文所设计的系统主要分为智能硬件和面向 BLE 无线通信技术与安卓客户端的应用软件两大部分。硬件分为内部运行嵌入式实时操作系统(FreeRTOS)(V8.2.3,USA)的微控制单元(MCU),并移植了通用的文件系统(FATFS)模块,即小型嵌入式系统通用的文件配置表(FAT)文件系统模块,用于管理文件和存储数据功能;其次集成了各硬件功能模块——计步器(step)模块、心脏速率监测(pulse sensor)模块、姿态传感器和磁阻传感器模块、闪迪(SanDisk)公司发明的快闪存储器(Micro-SD)卡模块、电源管理模块、液晶显示器(LCD)与触摸彩屏模块、实时时钟(RTC)的备用电池模块、移动网络通信模块等。系统的结构和功能如图 1所示。
系统的硬件结构框图
需要说明的是,系统电路原理图的准确设计与印制电路板的合理布线会大大提高设备工作稳定性以及功耗等指标。本文聚焦这一问题对智能手表系统进行了标准化设计,提高了系统稳定性。
系统软件设计
本文开发平台选用管理多任务的实时操作系统 FreeRTOS,这是一款完全免费也非常成熟的开源操作系统,优点是任务优先级数量不受限制,编程更具灵活性,移植方便。本文考虑到主控 MCU 没有扩展外部存储芯片的情况,而且芯片内部存储执行代码的内存也相当有限,所以选择了编译生成代码量非常少的 FreeRTOS。同时为了提高运行速度,解决内部存贮问题,本文也将数据融合与任务调度算法安排到服务器端来执行,安卓设备端只做实时的数据存储,有效地解决了移动设备计算能力和容量有限的难点问题。
算法数学模型
本文数据处理提高检测精度的方法主要是通过滤波算法得以实现。考虑实现难度,选择平均值滤波算法(AFA)并进行改进后应用于本文系统以去除噪声。AFA 模型采用差分方程,如式(1)所示。
1
其中aK、bK为系统差分方程系数,X(K)为系统输入计算值,Y(n)为系统原来状态函数。如果将系数bK值取 0,则所得公式如式(2)所示。
2
式(2)中通过分析计算,选择合理的滤波器系数aK数值,硬件上就可以实现各种功能的数字滤波器。如果Y的数值设计合理,通过计算Y与X(K)之间误差平方和最小极限值,即得公式如式(3)所示。
3
由一元函数极限定理可得:
4
设输入需要计算值X(K)包含Si(信号)与Ci(噪声),则N次滤波后计算信号如式(5)所示。
5
当噪声为随机信号时,进行N次处理后噪声强度(均方根)之和如式(6)所示。
6
如式(5)、式(6)所示,S、C分别表示进行N次测量后信号和噪声的平均幅度。进行N次滤波并算术平均后的Pi(信噪比)值计算方式如式(7)所示。
7
其中,Pi1、Pi2分别是算法执行前后的信噪比。因此算法利用平均值计算,使Pi提高了倍。该算法对信号的处理能力取决于N值。需要说明的是,当N值增大会导致滤波器灵敏度下降。所以应根据具体情况选取N,以便既减少计算时间,又能使信号的处理效果最好。多次试验证明,对计步与睡眠监测,N可取 8~16 之间数值,对心率测量,取N=4。由于本文采用了灵活调节N值方法,系统功能误差较小。
BLE 客户端应用程序数据同步方法
本系统客户端 MCU 通过通用异步收发传输器(UART)串行口与传感器模块相连接。传感器模块启动后 MCU 会自动发送广播码,客户端应用程序(APP)搜索到广播码即进行连接,成功之后 MCU 通过串口与移动终端之间进行双向通信,传感器数据就被推送给 MCU;MCU 将传感器数据作相应的处理后,客户端 APP 再次开始运行,首先扫描 BLE 模块 nRF51822(Nordic Inc.,丹麦)并与之连接,然后主控 MCU 按照一定格式将数据打包后发送给蓝牙模块,蓝牙模块接收后按照 BLE 协议中的通用总规范(GATT),将数据封装成加密无线信号并发射出去,与之处于连接状态的蓝牙设备将接收到的数据包同样按照 GATT 的协议解析,还原出原始数据,提供客户端 APP 使用。BLE 协议数据帧格式如表 1所示。
表 1. BLE 包格式
帧起始码数 | 心率值字节数 | 计步值字节数 | 睡眠小时字节数 | 运动计数值字节数 |
---|---|---|---|---|
1 | 3 | 6 | 2 | 3 |
图形用户界面软件设计
本系统的 LCD 图形界面是利用对图片和文字进行特定格式编码后的屏幕驱动取模软件所绘制的。软件运行在 FreeRTOS 的内核上,硬件启动初始化后,程序自动跳转到主函数上执行:首先完成硬件初始化后,创建 FreeRTOS 的一个主任务与来电监听任务。主任务调用相关的 LCD 驱动函数来完成锁屏界面的绘制与显示。用户在指定的屏幕区域完成解锁后,调用相关的 LCD 驱动函数完成主菜单界面显示。主菜单界面代码绘制包含通信录、拨号以及应用三大功能。用户选择进入到不同应用程序,算法会根据触摸屏检测区域判断并执行相应的处理代码,同时创建处理单独应用的 FreeRTOS 任务。系统软件界面与通信流程如图 2所示,监测任务程序流程如图 3所示。
界面与通信流程图
监测任务程序流程图
心率监测软件
心率的监测是利用单片机 STM32F103RE(stmicroelectronics inc.,意大利)的通用输入输出接口(GPIO)引脚外部中断功能捕获脉搏信号的上升沿实现的。首先设置外部中断为上升沿捕获,一旦捕获成功,立即在外部中断处理函数中开启溢出中断的 100 Hz 的定时器,同时使计数器(CNT)加 1(每次进入定时器中断函数后必须执行)。需要说明的是,当捕获到下一个上升沿时刻的时候,要在外部中断中关闭定时器的中断功能。单次捕获的脉搏数据为:CNT/100×60 次/min。由于单次采集的数据易受到干扰,需进一步进行滤波处理。本文则利用平均值滤波算法做了处理,得到了置信度很高的脉搏数据。
通信管理软件设计
本文的通信录管理从功能上指的是联系人存取与增、删、改、查等操作。通讯录存取功能是基于 Micro-SD 卡的存取技术实现,主要利用 FAT 类型的文件系统进行创建和管理文件。将 Micro-SD 卡用于存储联系人信息,就便于用户在电脑或手机等终端上进行管理,包括数据的备份和移植。另一方面,FATFS 是支持标准的 FAT 文件格式的功能模块,可提供完整的文件管理底层函数(API),利于对存储的文件进行管理,而系统通讯录管理功能则通过 MCU 内嵌的图形用户界面以及触摸屏的管理软件实现。
安卓 BLE 客户端 APP 软件设计
BLE 的数据交换中有 GATT 的配置文件(GATT profile),该文件定义了“属性(attributes,ATT)”数据配置方法,用于在 BLE 传输链路上进行数据交换。蓝牙技术联盟(SIG)规定了许多低功耗设备的配置文件。GATT 是在 ATT 协议基础上建立,也被称为 GATT/ATT。ATT 对 BLE 设备在运行上进行了优化,以最大程度减少了冗余字节。因此,本系统利用安卓集成开发工具 Android Studio(Google Inc.,美国)开发了 BLE 应用程序。系统实物图与 APP 界面显示如图 4所示。
系统实物与 APP 交互界面
计步功能是利用姿态传感器结合自行设计的算法,再根据人体运动参数进行调整(比如:每个人走路或者跑步的步距、体重等)来实现的。在运动中实时计算用户卡路里等身体信息实时变化情况,并使用面向用户的大数据和云计算功能实现精细化管理,为使用者提高健康的生活方式提供科学数据。心率监测是通过测量心脏反复收缩和舒张的速率来实现的。心脏的运动引起血液对血管的冲击,在体外的反应即为脉搏。一般情况下,心率与脉搏速率是相等的,一次脉搏对应一次心脏活动的收缩和舒张。睡眠质量监测的原理主要是利用人体姿态传感器在睡眠时间内实时监测人体手部运动频率,并通过设置一定的姿态误差阈值实现。在短时间(如 500 ms 内)检测到手部发生运动,且超过了设定的姿态误差值阈值,则判定为单次运动,并进行累加计数,用来反应出人体在一定时间内的运动状态,从而准确地估计出睡眠质量的高低。系统完成的功能显示界面如图 5所示。
心率与睡眠功能监测显示界面
系统测试
本研究选取了 10 位志愿者(5 男,5 女)作为受试者,年龄范围为 20~50 岁。所有志愿者无其他健康问题。受试者在各种恶劣模拟环境下进行了长时间的穿戴试验。测试方案得到了广东海洋大学校医院医学委员会的同意,测试前征得了志愿者的知情与同意。
系统通信性能测试
首先进行了时钟和日历显示的精准度测试。对系统实时时钟进行为期一周的实际穿戴测试,其误差在 1 s 内;其次进行了通信能力测试,实验在信号质量较好情况下测试随机拨打了 10 组电话,均成功接通,双工通信正常;最后进行了系统同步性能测试。系统硬件与上位机 APP 初始化完成后可以长时间实现正常的数据同步和反馈显示。本系统的通信性能测试要包括通信距离、信号强度与丢包率三者之间关系验证,试验结果如表 2所示,其中信号强度的量度表示为:接收信号强度值(RSSI)(单位:dBm)。
表 2. BLE 距离与信号强度关系
手表的距离/m | RSSI/dBm | 数据同步情况 |
---|---|---|
1 | -46 | 正常更新 |
3 | -57 | 正常更新 |
5 | -72 | 更新有卡顿 |
7 | -108 | 更新卡顿严重 |
10 | --- | 断开连接 |
系统功耗测试
系统功耗测试采用目前最先进的直流电源分析仪 N6705B(Keysight Inc.,美国)测试典型工作状态下的功耗电流,测试结果如表 3所示。结果表明,系统功耗低于市场同类产品的标准平均值,符合“绿色环保”的设计理念。参考值是指同类产品通用的业界标准数值。
表 3. 系统工作状态功耗测试数据
状态 | 测量时间/s | 平均电流/mA | 最大电流/mA | 最小电流/mA |
---|---|---|---|---|
待机(参考值) | 10 | 0.4(0.42) | 0.14(0.200) | 0.04(0.05) |
计步(参考值) | 15 | 25(30) | 45.28(50.00) | 30.12(35.00) |
计时(参考值) | 15 | 40.00(42.14) | 60.23(65.00) | 32.80(40.00) |
蓝牙连接(参考值) | 15 | 35.08(44.00) | 70.38(75.00) | 32.50(35.00) |
来电接通(参考值) | 15 | 35.50(45.60) | 65.05(65.00) | 40.08(50.00) |
音乐播放(参考值) | 15 | 80.08(90.07) | 140.08(150.00) | 45.03(45.00) |
睡眠质量测试
本文利用睡眠开始时刻与翻身次数对应关系研究睡眠质量,同时利用记录的姿势数据来判断睡眠状态。翻身次数与入睡时间关系如图 6所示。测试结果与常规睡眠质量分析结果相符,即入睡时间越晚,睡眠质量越差,而且较为合适的入睡时间为晚上 23 点左右。
睡眠质量监测结果
心率准确度测试
心率准确度的测试结果是通过对比分析手动按压脉搏感知计数值与本系统传感器的测得数据间的差异进行的。测试 10 名健康受试者,其误差在±3 次/min 以内,测试结果如图 7所示。
心率监测结果
计步功能测试
系统计步功能测试从快速走路、跑步与乘坐列车(高铁)等情形下进行了验证,测试结果如图 8所示。试验结果表明,慢速下计步精准度最高,基本没有误差。随着人体运动速度的提升,其误差会有增加,即测试者以最快速度奔跑或速度在 50 km/h 的列车内穿戴误差基本为零,但在时速在 50 km/h 以上会有误差产生,最后阶段误差减少是因为高速列车时速达到了测量仪器的极限导致。总之,系统在高铁等高速环境下应用精度有待改进。
计步功能测试结果
系统测试结果表明:系统实现的功能在各项指标与性能上符合产品穿戴质量要求和消费者需求,而且相对功能完善。
结论
本文设计的系统优点在于:
(1)技术创新:系统采用主流的 BSLE 无线通信作为核心技术,实现了心率监测、计步测量、健康运动分析等功能。对比市场上智能手环等智能终端,本系统以具备通话功能与面向移动终端的图形界面为优势;相对于市场上的电话手表,系统具备完善的运动健康监测的功能,而且功耗低,因此本系统具有较强的新颖性和实用性。
(2)思维创新:系统硬件上的 LCD 图形界面设计采用非移植第三方(独立开发)的图形用户界面库,实现了 LCD 与触摸屏的良性交互与人机友好界面等功能,使系统显示简洁,重点内容突出,而且系统不同功能之间的切换反应迅速。
总之,本文研究的智能手表系统将人机交互模式、远程移动通信、传感器和短距离蓝牙通信等新兴技术一体化融合后应用于本系统开发实践,并通过系统的硬软件优化设计实现了“物联网与健康”主题,有很大的技术优势与工程实用性。