朱洪浪 李林 曾陈萍 董加强 张耀方
摘要:本文以STM32F103单片机为控制芯片,利用MLX90614红外测温传感器和MKB0805脉搏血压传感器设计了一款能够实时检测人体血压、心率和体温的多功能健康检测系统。该系统由人体生理参数采集、数据分析处理、显示数据三部分组成,实现了对人体生理参数的实时采集显示和异常生理参数提醒的功能。
关键词:健康检测;多功能;STM32F103
中图分类号:TP3 文献标识码:A
文章编号:1009-3044(2021)07-0244-02
随着人们生活水平和质量的不断提高,对自身健康状况的关注度也愈来愈高,特别是日常的血压、心率和体温等生理指标对人体健康十分重要,同时这些生理指标的异常也是某些疾病的前期表现,因此对人体生理指标的日常监测技术开发就显得尤其重要。
近年来,一些学者基于嵌入式技术开发的智能可穿戴设备不仅可以实现对人体生理指标的实时采集,还能对人体异常生理指标进行提醒。如吴健健等人[1]通过压电传感器采集睡眠心率变化,经单片机分析后能够判断人的心血管健康状态,从而预警突发疾病。熊强强等人[2]基于STM32F103单片机设计了一款智能型腕带式心率检测仪。武智晓等人[3]通过对90例心动过缓患者的心率水平与血压水平的相关性进行了研究,发现血压与心率有一定的相关性。曾波等人[4]基于灰色系统建模技术实现了人体疾病早期预测预警。上述研究均实现了单一生理指标的采集及疾病预测,但这些研究并未对血压、心率和体温等多生理指标进行实时检测。因此,探索一种能够实时检测人体血压、心率和体温的多功能健康检测系统,具有十分重要的研究意义和实用价值。
本文设计的多功能健康检测系统采用了低功耗的STM32F103处理芯片,外围功能模块包括人体生理参数采集、数据分析处理、显示数据三个部分,实现了对人体体温、心率、血压多种生理指标的实时检测显示及报警,提高了人們对自身健康状态的知晓度,该系统同时也方便了用户随时随地地对自身进行检查,及时了解自身的健康状况。
1 方案设计
本健康检测系统采用模块化设计法,以STM32F103核心芯片为信息运算处理核心,主要包括体温模块、心率血压模块、按键模块、OLED显示模块、报警模块,如图1所示。其中,体温模块采用MLX90614红外测温传感器采集人体体温,经放大电路将采集到的微弱温度信号放大后,由ADC0832转换后给STM32F103单片机,单片机处理后,将体温信息显示在OLED显示屏上。心率血压模块采用MKB0805脉搏血压传感器采集人体心率值和血压值,滤去高频噪声信号后,将微弱的心率信号和微弱的血压信号进行放大传输给STM32F103单片机,单片机将心率值、血压值处理后显示在OLED显示屏上。按键模块设置了三种按键:选择按键、确定按键、返回按键,选择按键可以对测量功能,如测量体温、测量心率、测量血压进行选择;确定按键确定选择的测量功能,并进入该指标测量显示界面;返回按键返回上一功能界面。报警模块采用蜂鸣器和LED进行声光报警,以提醒用户当前测量指标异常。如体温(36.0~37.4℃正常、37.4~38.0℃低热、38.1~41.0℃高热)、心率40~60次/min过缓、60~100次/min正常、100~140次/min过速)、血压(高压:收缩压140mmHg以上,舒张压90mmHg以上;低压:收缩压90mmHg以下,舒张压60mmHg以下),这些指标参数不在设定正常的上下限范围之内时,通过STM32F103单片机控制蜂鸣器鸣叫,同时LED灯被点亮,以达到提醒的效果。根据不同年龄端、不同性别的用户,可以设置正常值上下限范围,可以更好地满足不同用户需求。
2 硬件系统设计
基于STM32F103单片机的多功能健康检测系统原理图,如图2所示。
如图2,红外测温模块和心率血压模块所需工作电压不同,分别连接VCC-3.3(3.3V)和VCC(5V)。红外测温模块的MLX-SCL和MLX-SDA管脚分别连接核心板STM32F103的IO口PA8和PA9。心率血压模块的接收数据MBK-RX和发送数据MBK-TX分别连接核心板STM32F103的IO口PA2和PA3。MBK0805和MLX90614使用的通信方式分别是串口通信和I2C通信。在MBK0805的通信协议中规定一帧数据为6个字节,所以程序中要循环6次才能接收/发送一帧数据。在模块开始进行监测后,使用一个信号量来循环访问临界资源是否到达。在第一组临界资源到达时,通过对收到的第一个字节进行判断,是否是读取数据的格式报文。如果第一个字节FD,即连续解析第2字节到第4字节的值,分别对应为高压值(High)、低压值(Low)、心率值(XinLv)。如图3所示,采集到的高压值为High:118mmHg、低压值Low:70mmHg、心率值XinLv:79次/min。当前测量的高压值在90~140mmHg,因此属于正常范围,不需要进行报警;当前测量的低压值在60~90mmHg,因此也属于正常范围,不需要进行报警;当前测量的心率值在60~100次/min,因此也属于正常范围,不需要进行报警。功能按键模块中S1为选择按键、S2为确定按键、S3为返回按键。
3 软件系统设计
基于STM32F103单片机的多功能健康检测系统软件流程图如4所示:
多功能健康检测系统的软件设计是利用STM32F103移植的UCOS3操作系统进行多任务软件开发。本次软件设计包括三个主要任务模块:
1)MBK0805心率血压模块:负责采集测量人体心率值、血压值两个生理参数,将数据传给STM32F103中的MCU进行处理;
2)MLX90614红外测温模块:负责测量人体体温值,将数据传给STM32F103中的MCU进行处理;
3)OLED数据显示模块:负责将MCU处理后的数据进行显示,方便用户进行查看;
4)功能按键模块:负责功能选择,分别有选择、确定、返回三个按键。
如图4所示,在对STM32F103、OLED和串口2进行初始化之后,系统启动也就完成,则之后就可以在初始菜单界面,通过选择功能按键对测量功能进行选择,如选择体温或者心率、血压的测量功能。被测量采集到之后,就可以通过返回功能按键,返回到菜单栏进行其他功能的选择。在测量体温时,体温值偏高或者偏低,经过STM32F103单片机的MCU处理之后会在OLED显示屏上显示相应体温值和提示信息;在测量心率值、血压值时,血压又分为高压和低压,OLED显示屏上会一次显示出高压值、低压值、心率值的测量值。
4 结语
本文基于STM32F103单片机的多功能健康检测系统设计提出了一个模块化的设计方案,该多功能健康检测系统主要由体温、心率和血压、显示模块组成。通过STM32F103单片机将体温、心率、血压等多种指标参数集成在一起并进行显示,实现了对人体生理参数的实时采集显示和异常生理参数提醒的功能,进一步帮助人们及时掌握个人身体健康状况,对疾病进行早发现早预防。主要功能包括:
1)通过按键可以選择对应的检测指标,如选择测体温或者心率和血压;
2)选择体温检测时,通过红外测温的方式,测得人体体温,并将体温信息显示在OLED显示屏上;
3)选择心率和血压检测时,将心率血压传感器绑在手腕上进行检测,经过测量,随即在OLED显示上显示出对应的血压值和心率值信息。
参考文献:
[1] 吴健健,陈韦晋,章婷婷,等.基于智能床垫的心率检测系统[J].合肥工业大学学报(自然科学版),2020, 43(3):330-334,388.
[2] 熊强强,尹建平,姚卫国,等.一种智能型腕带式心率检测仪的设计与实现[J].国外电子测量技术,2020,39(2):88-92.
[3] 武智晓,黎明江,张静,等.心动过缓患者心率水平与血压水平相关性研究[J].海南医学,2012(7):32-34.
[4] 曾波,刘思峰,白云,等.基于灰色系统建模技术的人体疾病早期预测预警研究[J].中国管理科学,2020,28(1):144-152.
【通联编辑:张薇】