APP下载

基于光电传感技术的端云一体化心率血压智能监测系统设计

2021-07-16茹,陈

中国计量大学学报 2021年2期
关键词:中间件脉搏串口

杨 茹,陈 亮

(中国计量大学 光学与电子科技学院,浙江 杭州 310018)

随着云平台、物联网时代的到来,智慧医疗得到了广泛的认可[1]。在智慧医疗的大环境影响下,实现人体心率血压体征参数的即时、准确、快速监测对于疾病的早期预防和发现具有重要意义[2]。

目前传统血压测量方法有多种,主要包括动脉张力法、示波法以及容积补偿法等[3]。它们的共同特点是在测量过程中都需要使用压力式充气袖带,会给用户造成轻微不适感,并且测量过程需要1 min左右,不能及时捕捉到人体的实时血压,且携带不方便,对高血压的预防与监测没有起到良好的积极作用[4]。而市面上的便携式的血压监测设备,如智能手环等,又缺乏用户健康数据管理功能,因此市场上极需要一款能够连续测量心率血压的便携式健康管理系统。

本设计为基于光电传感技术的端云一体化心率血压智能监测系统,实现了人体多体征参数的检测。系统由智能监测传感器设备、应用终端和云平台三部分组成。通过监测血压、心率等体征参数,判断用户的健康状况,当发生异常时可及时预警。系统监测参数多元化、实时性能高,可实现数据的远程传输、处理和展示。有助于建立人体健康监测新模式,在穿戴式健康监测设备领域有着广阔的应用前景[5]。

1 系统总体设计方案

本系统设计包含数据采集前端(含心率血压监测传感器、数据传输、数据处理中间件)、数据云平台分析存储模块和数据可视化终端(即PC客户应用终端)三个部分。

数据采集前端采用STM32F103单片机作为主控模块,搭载MKB0805心率血压采集模块,其传感器利用光电容积脉搏波描记法(Photo Plethysmo Graphy,PPG),通过手腕或指尖采集人体心率血压数据,数据会实时显示在T5L_DGUS串口屏上,而后通过搭载的ME3616窄带物联网(Narrow Band-Internet of Things,NB-IoT)模块,采用传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP)将采集的数据以自定义的数据包格式发送至云服务器。

数据云平台通过云服务器上部署的中间件服务程序进行数据分析,以保证传输数据的准确与唯一性,将最终数据存储至MYSQL数据库中。

数据可视化终端通过PC客户端服务软件,进行心率血压历史数据的直观展示分析。系统的整体框架图,如图1。

图1 系统总体设计框图Figure 1 System design block diagram

2 系统硬件设计

2.1 主控模块

目前比较流行的主控模块主要有51单片机、STM32单片机、应用范围较广泛的ARM控制器等。其中51单片机需要仿真器来实现软硬件的调试,较为繁琐,并且其片上资源相对较少,不能满足本设计要求;STM32单片机与ARM控制器相对于51单片机,可以实现本设计的所有需要。但是ARM控制器相对成本较高,并且要单独配置开发环境。STM32单片机价格低廉,功能齐全,性价比最高。综上,本系统的硬件采用STM32F103芯片作为主控模块,构成核心控制系统。

在单片机串口1(UART1)搭载心率血压采集模块,UART2搭载数据显示模块,UART3搭载WIFI模块。单片机通过串口通信与各模块进行数据交互,实现心率血压数据采集、处理、分析以及实时显示、异常报警、远程传输等功能,系统硬件结构图如图2。

图2 硬件结构图Figure 2 Hardware structure diagram

2.2 心率血压数据采集模块

综合比较市面上各种测试心率血压的模块,包括小米手环、HRV健康测量AD8232监测传感器、MAX30100心率血氧传感器以及MKB0805连续心率血压脉搏波传感器,对比发现MKB0805传感器可以实现通过手指接触即可快速测得心率血压且测量精度高,而且可以直接接入主控模块,具有其他模块所不具备的稳定性。因此,心率血压模块采用MKB0805传感器。

其基本原理为:血液在流动过程中产生周期性的脉搏波,脉搏波波形会随着离心脏距离的不同会有时间上的延迟即脉搏波传导时间,由Moens-Kortweg公式和Hughes[6-7]推导出人体血压变化与动脉血管壁杨氏弹性量以及脉搏波传导时间的关系[8-11]:

(1)

式(1)中,P为血压值,E0为血压值为零时血管壁弹性模量,h为血管壁厚度,d为血管内径,ρ为血液密度,PTT为脉搏波传导时间,k为无量纲常数,r为血管特性参数量值。由式(1)可知,血压值和脉搏波传导时间具有较好的相关性,由脉搏波传导时间可以间接地得到血压值。

心率血压采集模块主要由YK1801脉搏传感器芯片、HR6707脉搏芯片、HR6816增益芯片和SFB9712算法芯片组成。其中YK1801脉搏传感器采用光电式容积脉搏波描记(PPG)的方式采集人体的脉搏信号,再通过HR6816芯片组成的高阻抗、低噪声、低温漂的增益放大电路对心电信号和脉搏信号进行放大,其原理图如图3。放大之后的信号通过HR6707芯片内置的RC滤波电路和低通数字滤波器进行滤波,获得较平滑的信号[12-13]。再将信号输入SFB9712算法芯片,最终输出血压、心率等串口信号。

图3 心率血压采集模块增益电路图Figure 3 Gain circuit diagram of heart rate and blood pressure acquisition module

本系统心率血压采集模块可实现心率血压采集计算、脉搏心电波形输出、血压跟踪监测等人体健康指标采集。

2.3 数据显示模块

本系统数据显示模块采用T5L_DGUS串口屏,T5LASIC是针对AIoT应用设计的性价比高、功耗低、GUI和应用高度整合的单芯片双核ASIC IC,采用成熟和稳定且应用广泛的8051核,1 T(单指令周期)高速工作,最高主频250 MHz,其信号接口定义如表1。

表1 T5L_DGUS串口屏信号接口定义

相较于传统的LCD显示模块,其显示功能更加丰富,分辨率高及自带触摸功能,可实现人机交互需求,且与主控模块通信方便,更满足本系统的需求。

DGUS屏采用异步、全双工串口(UART),串口模式为8n1,即每个数据传送采用十个位,包括1个起始位,8个数据位,1个停止位。232/TTL通讯和主板T/R输入输出信号交叉接线,地线必须接上;485通讯485+接A+,485-接B-。串口的所有指令或数据都是16进制(HEX)格式。采用变量驱动模式工作,屏的工作模式和GUI的状态完全由数据变量来控制。因此,串口指令只需要对变量进行读、写即可。

本系统数据展示模块可实现数据采集控制、实时时钟显示、实时心率血压显示、历史检测数据查看、异常数据提示等功能。

2.4 NB-IoT数据传输模块

ME3616系列NB-IoT模块是一款内嵌了TCP/IP网络服务协议栈的NB-IoT无线通信IC。可以提供最大66 kb/s上行速率和34 kb/s下行速率。且模块为极小尺寸LCC紧凑型封装模块,适用于可穿戴设备等对于模块尺寸有严格要求的应用领域。

传统的数据传输WIFI模块,只能在固定地点连接网络,具切换时间长、带宽小、覆盖半径小,存在数据安全隐患。而NB-IoT通信技术,具有低功耗、深覆盖、多连接、低成本、架构优等特点。适合静态业务与实时传输数据的业务场景[14-15],更加契合本系统便携性的需求。因此,本系统的数据传输模块采用NB-IoT模块。

NB-IoT是在基于频分双工长期演进技术(Frequency Division Dual-Long Term Evolution,FDD-LTE)上改造而来的,物理层设计大部分沿用LTE系统技术,上行采用单载波频分多址(Single-carrier Frequency-Division Multiple Access,SC-FDMA),下行采用正交频分复用技术(Orthogonal Frequency Division Multiplexing,OFDM)。高层协议设计沿用LTE协议,针对其小数据包、低功耗和大连接特性进行功能增强。

ME3616系列NB-IoT模块的MCU主控模块通过UART串口和AT指令可以与模组通信,通过模块的指令集与主控模块(STM32)串口通信实现数据传输功能的开发。MCU原理图如图4。

图4 ME3616 MCU原理图Figure 4 Schematic diagram of the ME3616 MCU

本系统NB-IoT数据传输模块通过TCP/IP协议,可实现将数据采集前端的心率血压数据传输至数据云平台的中间件服务软件,进行数据的后续处理与存储。

3 系统软件设计

本系统软件开发环境分为两部分:单片机主控模块采用KeilV5为开发环境,使用C语言编写程序实现单片机与各模块的交互;而数据处理中间件软件与PC客户端服务软件采用Qt5.13.0进行软件开发,结合SQL命令、Matlab算法、云计算等联合编程,实现了数据采集、实时显示、远程传输、异地存储和历史数据动态分析等功能。

3.1 本地数据采集与人机交互系统

3.1.1 心率血压数据采集单元

心率血压数据通过主控模块STM32单片机控制MKB0805传感器来进行采集,是整个系统的至关重要的环节。

首先通过主控模块对心率血压模块进行校准,单片机每隔100 ms通过串口向MKB0805传感器发送数据采集指令FD 00 00 00 00 00,模块回复初始的心率血压值。

采集到初始的数据后,将数据存入单片机内存中,当数据达到20组后,开始数据预处理。遍历20组数据进行异常值剔除,再进行均值求和处理,得到最终的心率血压数值,并存储到单片机的Flash中,数据采集单元流程如图5。

图5 心率血压数据采集流程图Figure 5 Flow chart of heart rate and blood pressure data collection

3.1.2 人机交互单元

在T5L_DGUS串口屏配备的开发软件中进行GUI设置,分配相应的数据变量显示接口地址。

单片机根据串口屏的数据传输协议,对需要显示的数据进行封装、校验,发送至对应的显示接口地址中,取出接口地址的数据在屏幕中对应控件进行显示。在GUI设置添加相应的触控控件并在T5L芯片中分配对应的触控地址,触摸屏幕时,通过串口向单片机发送对应的触控位置,单片机对接收的数据进行解析,实现对应的人机交互功能操作,展示界面如图6。

图6 人机交互展示界面Figure 6 Human-computer interface

3.1.3 异常报警单元

对于处理完成的心率血压数据,在软件中提前设定心率血压的健康值范围,首先与健康值范围进行对比,若超出范围则触发串口屏的蜂鸣器报警信号,并在串口屏的交互界面弹出报警提示。若数值属于健康范围,继而与单片机Flash中存储的历史数据进行比对,如若变化率超过设定的阈值,则同样触发报警信号,并且将异常的数据存入单片机Flash中,以便用户在交互界面进行历史异常数据查询。

3.2 数据上云

系统数据采集完成后,得到本地的心率血压数据,为了方便数据的存储与管理,我们利用单片机串口与ME3616通讯,发送AT指令,将数据发送至指定云服务器。先将ME3616模块连接到网络,成功附着到网络之后,再配置目标服务器和端口号,实现数据的交互。

程序包含异常处理模块,若ME3616模组入网失败,则主控模块将重新启动ME3616模组继续尝试入网;如若入网成功继续接入云服务器,则进行数据传输;如若入网再次失败,则断电关机,手动上电重启。整个数据上云流程图如图7。

图7 NB-IoT模块数据上云流程图Figure 7 Flow chart of NB-IoT module data uploading to the cloud

3.3 云平台搭建

3.3.1 中间件服务程序设计

为了将NB-IoT模组传输的数据存储至云服务器上的MYSQL数据库,通过Qt进行传输中间件的软件开发。软件接收到心率血压实时数据后,进行数据分析,最后将解析的数据按照高压、低压、心率、上传时间等标签顺序存储在数据库表内,以便数据展示时调用。

选择TCP/IP作为数据传输的通信协议,为了防止数据传输过程中的数据丢包和误传等传输错误,按照自定义的数据包格式上传至中间件。制定NB-IoT模组与中间件之间数据包的传输协议,协议数据包结构包括:

u8 header[4];//数据头

u16 len; //数据长度 包括头

u16 cmd_no; //命令号

u8 sn[4]; //设备编号

u32 second; //当前传输时间(s)

u32 ms; //当前传输时间(ms)

u32 sys_num1; //系统随机数1

u32 sys_num2; //系统随机数2

u8 data[158]; //命令附加的数据

u8 crc[2]; //crc16校验位

NB-IoT模组连接到中间件后,中间件显示连接客户端列表,同时开始接收来自NB-IoT模组的数据包。首先判断数据头是否为“HEAD”,对比数据包实际长度是否与记录的包长度len相等,减少接收不完整的数据包或者数据粘包现象,此后通过16 crc校验码对数据包数据进行校验,最后为防止同一数据包的重复接收,为每一个数据包配备唯一识别码,接收数据包后判断唯一识别码是否与前五个包存在重复现象,若存在则舍弃该数据包。中间件服务程序流程图如图8(a),展示界面如图8(b)。

图8 中间件服务程序Figure 8 Middleware service program

3.3.2 MYSQL数据库设计

云数据库是数字智慧解决方案的重要工具,本文使用的云数据库是部署在虚拟云服务器环境下的MYSQL数据库[16-18]。数据库设计是数据存储与管理的核心,主要分为三个数据表单,分别为用户历史检测数据表、用户登录信息表和用户异常数据表,其中用户历史检测数据表字段设计如表2。

表2 用户历史检测数据表

3.4 数据可视化终端软件设计

系统利用QT开发了上位机PC客户端软件,整个软件包括登录界面和健康数据可视化展示两大部分。

通过连接云端数据库,可以实现数据手动及自动刷新,用户可以观测自己的健康数据,当数据出现异常时,界面弹出异常警报消息框。PC客户端软件登录界面展示如图9。

图9 PC客户端软件登录界面Figure 9 Login interface of the PC client software

健康数据可视化展示界面如图10,其中健康数据展示包括血压走势曲线、心率血压历史数据总览表、心率血压变化柱形图等一系列数据动态展示。可以让用户更加直观得观测身体健康数据的变化。

图10 智能健康监测系统数据可视化终端Figure 10 Data visualization terminal of intelligent health monitoring system

在每块数据曲线展示部分的.cpp文件中连接MYSQL数据库,利用QT的QtCharts/QChartView图表类,QLineSeries的线系列类制作了心率血压数据的走势曲线及柱形图。

4 结 论

本系统基于智慧医疗与云平台背景,在对比了传统心率血压测量方式与市场常见的智能监测设备后,设计了一种端云一体化心率血压智能监测系统,该系统包含数据采集前端、数据云平台和数据可视化终端三部分,整个系统具有数据采集精确度高、实时性强、数据管理多元化等特点。

采用STM32F103为主控模块,通过串口通信与心率血压采集模块、数据显示模块和NB-IoT数据传输模块进行交互,实现心率血压数据采集、处理、分析,以及实时显示、异常报警、远程传输等功能。同时本系统还配备有数据可视化终端,即上位机PC客户端软件,登录账号后,可以实时观测近期历史健康数据,且在异常数据出现时发出监测预警。

整套系统成熟稳定、体积小、方便智能,经用户多次测试,数据采集精度高,采集效率高。该系统在智慧医疗、可穿戴智能设备等健康管理行业有着广阔的应用前景。

猜你喜欢

中间件脉搏串口
浅谈AB PLC串口跟RFID传感器的通讯应用
用心感受狗狗的脉搏
《今日评说》评今日浙江 说时代脉搏
RFID中间件技术及其应用研究
基于51系列单片机的穿戴式脉搏仪的设计
基于Android 平台的OSGi 架构中间件的研究与应用
近红外可穿戴设备中脉搏波的呼吸率检测
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信