基于ZigBee的心率检测系统设计
2022-01-19吴绍聪高常青曲爱涛
吴绍聪,高常青,曲爱涛,余 超,杨 波
(济南大学,山东 济南 250022)
0 引 言
随着科技的发展,智能医疗逐渐成为了人们关注的方向。心率作为人体的一项重要生命体征,在临床监护中可以作为医生实时判断病人生理变化的重要指标。目前,大部分医院通过心率监测仪器对病人的心率进行检测,医护人员需要定期查看病人心率情况并进行登记。这种情况下,一方面需要护士定期对病患进行观察,增加了护士的工作量,而且人工登记的方式容易产生失误;另一方面,当病患的心率出现紧急情况时,护士较难及时发现并治疗。同时心率监测仪体积庞大,价格相对昂贵,检测时还需要在患者身体上进行复杂的布线。鉴于以上问题,本文设计了一款心率检测系统,可用于实时检测被测者的心率情况,并且可以通过无线网络进行远程通信,用户也可以远程监测被测者的心率信息。该系统省去了复杂的布线环节,节约了成本和工作量。
1 整体方案设计
本文开发的基于ZigBee的心率检测系统,其总体结构如图1所示。系统主要由心率监测终端、ZigBee无线通信网络、监测软件系统三部分组成。
本系统通过心率监测终端设备对病人的心率进行检测,利用处理器对采集的数据信号进行算法处理,获取最终心率信息;然后采用ZigBee无线通信模块实现数据的远程传输,将信号发送至PC主机端;最后在软件平台中进行图形化显示,同时连接SQL Server数据库进行数据保存,为后续医护人员治疗病人提供参考。
图1 系统总体结构
2 硬件设计
系统的监测终端主要负责对病人的心率进行实时检测。主要由Arduino UNO控制板、XBee S2C无线模块、MAX30102心率传感器、带IC接口的OLED显示屏和蜂鸣器构成。结构如图2所示。
图2 监测终端结构
2.1 Arduino UNO处理器
监测系统的主控单元采用Arduino UNO处理器。Arduino是一个开放源码式的电子平台,提供易用、灵活的硬件和软件。Arduino UNO作为目前使用率最多的开发板,其处理器采用ATMEGA328P芯片,拥有存储量大的FLASH和RAM;同时具有丰富的I/O外围接口,输入电压为7~12 V,工作电压为5 V。它配有专门的USB接口,能够通过USB线与电脑连接,实现程序的烧录和数据传输,而且可以直接为开发板供电,开发板还可以通过AC-DC适配器或电源上电。
2.2 MAX30102心率传感器
病人心率采集模块采用Maxim公司2016年推出的心率传感器MAX30102模块。其本身集成了一个660 nm的红光LED光源和一个880 nm的红外光LED光源、光电检测器、光器件以及对环境光进行抑制的低噪声电子电路。芯片采用1.8 V内核供电,标准的IC兼容通信接口,可以应用于可穿戴设备上实现心率的采集检测。其引脚SDA、SCL、VIN、GUD分别接于Arduino处理器的A4、A5、5 V、GND端口。
2.3 XBee S2C无线模块
组网通信模块采用XBee S2C无线模块。该模块是由美国DIGI公司开发的一款集成ZigBee协议的无线通信模块。其工作频段为2.4 GHz;与其他ZigBee模块相比,具有良好的通信距离和抗干扰能力,能够实现远程低功耗的数据传输。实际工作中模块底板中的TX和RX引脚与Arduino控制器中的TX和RX引脚连接使用。
2.4 显示报警模块
信息显示采用0.96寸OLED显示屏,带有IC接口与Arduino控制器连接,用于终端显示病人的心率信息。报警模块采用蜂鸣器进行报警,当病人的心率出现异常时,蜂鸣器声音提示医护人员进行治疗。电源模块为Arduino控制器模块、MAX30102心率传感器、XBee S2C通信模块、显示屏和报警模块进行稳定电压输出。
3 系统软件设计
系统的软件部分主要包括心率监测终端设计、信号处理以及上位机信号显示部分。心率监测终端部分采用C语言在Arduino IDE软件程序开发平台上完成编程,利用Serial串口函数与ZigBee无线通信模块进行数据传输。上位机信号显示部分通过VB.NET在Visual Studio平台上进行设计。
3.1 终端流程设计
心率传感器工作原理为光电容积法,即驱动两种不同波长的光源交替照射至病人的手腕桡动脉处。由于皮肤内含有血管组织,会对照射的光线进行吸收。当心脏收缩或舒张时,血管中血容量发生变化,光吸收量相应也产生变化。光强度的周期性变化反映了心脏的脉动周期,形成脉搏波信号。
心率检测终端流程如图3所示。系统在实际工作过程中,初始化操作后,MAX30102心率传感器模块首先对病人的信号进行采集,从而获得光电容积脉搏波信号。然后将信号传输至Arduino处理器,处理器通过微分阈值法对信号进行处理并提取特征点,后续通过特征点峰值对病人心率进行计算并采用OLED显示信息;在采集数据后通过ZigBee无线通信网络进行数据传输,最终上传至上位机平台进行图形化显示。
图3 心率检测终端流程
3.2 算法程序处理
根据前面介绍的心率检测原理,处理器需要对采集的脉搏波信号进行处理,再进行最终心率的计算。因此,系统采用微分阈值法,将脉搏波信号中具有陡峭下降沿或上升沿形态的特征点提取出来,从而确定峰值坐标,计算出病人心率。
设是经过滤波去噪后的光电容积脉搏波信号,是对的一次微分值,计算公式如下:
式中:为一次阈值处理信号;为经验值,实验中经过多次取值,最终确定=2。
其中:为二次阈值处理信号;值为选取一段时间内所有的值并截取的最大值的一半的值。光电容积脉搏信号示意图如图4所示。图5和图6分别为经过两次阈值处理的信号图。
从图中可以看出,经过一次阈值处理可以取消原信号的下降沿数据,保留部分重搏脉的影响;经过二次阈值处理后波形类似于三角形,只有零与非零取值,根据相邻峰值点可以计算出当前心率。
图4 光电容积脉搏图
图5 一次阈值处理示意图
图6 二次阈值处理示意图
3.3 信号显示界面设计
心率监测终端不断采集病人的心率数据并通过无线通信网络上传至PC电脑端。本文在Visual Studio平台上进行上位机管理界面的设计,上位机主要用于对实时监测的数据进行接收和保存。数据库中有心率记录表用于保存相应的数据,用户可以通过上位机心率查询界面对保存的记录进行查询,并以波形信息显示,可以为医生对病人进行后续的诊疗提供数据保证。本系统的信号显示界面如图7所示。
图7 心率记录显示界面
4 结 语
本文采用Arduino UNO处理器、XBee S2C无线模块、MAX30102心率传感器等进行硬件搭建,结合上位机软件开发了一套基于ZigBee的远程心率监测系统。该系统能够有效地对病人心率数据进行采集并具备报警功能,还提供了上位机平台可以对数据进行接收、显示和存储,减少了医护人员的工作量,提高了监测效率。