一种便携式心率血氧体温检测系统的设计与实现
作者: 贾海云 刘宇环 李小洁 胡永倩
摘要:随着人们健康意识的提升,心率、血氧、体温等生理参数的监测日益重要。文章设计并实现了一种基于STM32单片机的心率血氧体温检测系统,该系统利用MAX30102心率传感器和DS18B20温度传感器实时采集心率、血氧、体温等生理参数,并通过OLED显示屏进行数据显示和分析。系统在检测到生理参数异常时,会触发声光报警,提醒用户关注自身健康状况。
关键词:STM32单片机;心率血氧体温检测;MAX30102;DS18B20;OLED显示
中图分类号:TP391 文献标识码:A
文章编号:1009-3044(2025)01-0117-04 开放科学(资源服务) 标识码(OSID) :
0 概述
随着人们越来越关注身体健康,许多家庭自备智能健康监测设备以随时检测身体状况[1]。对于一些患有心血管、呼吸系统等疾病的人群来说,监测这些指标可及时了解身体状况,从而采取相应的治疗措施。然而现有的监护装置大多体积大、成本高、难以随身携带,受环境因素限制,具有一定局限性[2]。
本文设计了一款能检测心率血氧体温参数的系统,融合了高精度传感器、强大的数据处理能力及直观的显示与报警功能,为用户提供了一个全面实时的生理参数监测平台。系统由STM32F103C8T6单片机核心板、MAX30102 心率传感器、DS18B20 温度传感器、OLED显示屏、蜂鸣器和发光二极管等元器件组成[3]。通过集成MAX30102 心率传感器、DS18B20 温度传感器等元器件,实现对心率、血氧和体温的实时监测。STM32单片机负责处理传感器采集的数据,并通过OLED显示屏实时显示相关数据。一旦检测到参数异常,系统会触发声光报警,提醒用户关注自身健康状况。
1 系统设计方案
系统采用模块化设计,主要包括STM32单片机最小系统、传感器模块、显示模块以及报警模块等。STM32单片机作为系统的主控单元,负责整个系统的数据采集、处理、显示及通信控制。心率血氧检测模块采用MAX30102传感器,实时采集心率和血氧饱和度数据,通过IIC接口与单片机连接,实现数据的传输与处理。体温测量模块采用DS18B20温度传感器负责实时测量体温,与单片机的一个I/O口连接,实现数据的读取与处理。显示模块采用OLED显示屏,通过IIC接口与单片机连接,显示相关数据信息。声光报警模块会触发蜂鸣器发出警报,并通过LED灯闪烁进行视觉提示。整个系统结构框图如图1所示:
2 硬件电路设计
STM32单片机作为系统的主控单元,负责采集传感器数据、处理数据、控制显示屏等;传感器模块包括心率血氧传感器和温度传感器,负责采集人体生理信号;OLED显示屏用于显示心率、血氧和体温数据;电源模块为系统提供稳定的工作电压。系统原理图如图2所示。
2.1 心率血氧传感器电路设计
MAX30102心率传感器集成了脉搏血氧仪和心率监测仪的功能,用于检测心率和血氧采集,采用5V直流电源供电。MAX30102心率传感器需要处理输入信号,并将其转换为数字信号。MAX30102心率传感器通过IIC接口与STM32单片机进行通信,实现信号处理。SDA为数据引脚端,接单片机PB0引脚,用于与单片机进行数据通信。SCL 为时钟引脚,接单片机PB1引脚,用于同步数据传输。通过编写相应的驱动程序,STM32可以读取MAX30102传感器的心率和血氧数据,进而实现率监测功能。
2.2 温度传感器电路设计
DS18B20是一款高精度的数字温度传感器,其工作原理基于低温度系数和高温度系数晶振的频率变化,通过计数器测量来得到温度值[4]。其主要性能指标包括测温范围、精度、分辨率及输出格式等。DS18B20的使用无需任何外围元件,且支持多点组网功能,便于构建复杂的测温系统。它与STM32单片机的接口方式采用单总线通信协议,通过数据端DQ即可实现双向通信,这大大提高了系统的抗干扰性。数据端DQ连接单片机PA11引脚,使用上拉电阻将DQ 引脚拉高,指令发送和数据接收通过DQ引脚完成。
2.3 OLED 显示电路设计
OLED显示器是基于有机发光二极管技术,通过在有机材料层上施加电压,使电子和空穴在材料中移动并复合,从而释放出光能,实现自发光显示。OLED 显示器使用IIC通信协议与单片机通信,时钟线SCL 连接单片机PB6引脚,数据线SDA连接单片机PB7引脚上。程序设计时需要初始化IIC接口,设置正确的时钟速度、从设备地址等参数。根据OLED显示器的数据手册,编写用于初始化显示器、发送命令和数据以及设置显示参数的驱动代码。
2.4 声光报警电路设计
声光报警电路由三极管S8050、1K 上拉电阻和蜂鸣器构成。如果当前心率低于或高于阈值,蜂鸣器就会发出警报声,以提醒人们注意身体健康。三极管在电路中的主要作用是放大电流和驱动蜂鸣器。设计中三极管S8050 采用高电平特性来驱动蜂鸣器报警,它可以放大电流达到200倍以上,其基极与单片机PC13引脚连接。单片机可以控制蜂鸣器的开关状态,当单片机输出低电平时,晶体管的上拉电阻将限制电流以防止晶体管击穿,起到保护晶体管的作用。
3 软件设计
硬件一旦上电启动,各部分都会开始程序初始化,之后进入显示主界面。本设计的主要流程包含OLED液晶初始化、传感器模块等初始化,进入循环while判断按键是否按下、设置当前心率的上下限、当心率超过设置的上下限则启动声光报警。程序流程图如图3所示:
3.1 心率血氧程序设计
程序采用单片机内部定时器定时检测周期10 s,在10 s过程中引脚检测方波脉搏信号,每次高电平来临,系统进行判断相邻两次高电平的时间差是否大于10 ms,这与人的心跳特征有关,此判断能消除电压比较器的误判和弥补个人心跳的差异性。首先初始化IIC通信,设置STM32为主机,MAX30102为从机。配置MAX30102的寄存器,包括采样率、LED亮度、工作模式等。启动MAX30102的采样,读取传感器数据。对读取的数据进行滤波和去噪处理,得到心率和血氧饱和度的值。将心率和血氧饱和度的值通过OLED显示出来,实现实时监测心率和血氧饱和度的功能。心率血氧模块程序流程如图4所示:
3.2 液晶模块程序设计
系统使用OLED显示屏来实时反应心率血氧体温监测数据。要让液晶显示屏正常工作,首先写入命令控制字,再写入需要显示的数据。写入命令控制字之前,须用指令来查看液晶是否处于忙状态。如果处于忙状态,就需等待,直到显示器发出工作完成的指令,才能写入控制字和数据[5]。程序开始时,需要初始化OLED显示屏,包括设置OLED的分辨率、亮度、对比度等参数,并清空OLED屏幕。监测数据时,将数据写入OLED显示屏,包括心率、血氧和体温等数据。
液晶显示模块程序流程如图5所示。
3.3 按键模块程序设计
当按下按键时,单片机会检测对应的引脚电平是否为0。如果电平为0,表示按键被按下。经过短暂延时,单片机会根据按下的具体按键进行判断。若按下K1按键,系统就会判断当前处于设置模式。若按下K2按键,系统将对当前的心率上限进行增加操作。若按下K3按键,系统将对当前的心率进行减少操作。通过按键操作,可调整心率上限,以实现相应功能。按键模块程序流程如图6所示:
3.4 报警模块程序设计
按键处理函数用于处理按键操作。当按键被按下时,单片机会进行判断,经过短暂的延迟后确认按键是否被按下。接着判断设置的报警阈值,并根据设置的具体报警值进行相应处理。如果达到了报警值,声光报警器将被触发并发出报警信号。这样,按键处理函数能有效地处理按键输入和相应的报警操作。报警模块程序流程如图7所示。
4 测试结果分析
本文对所设计的基于STM32单片机的心率血氧体温检测系统进行了全面的性能测试。测试环境包括STM32 单片机、MAX30102 心率血氧传感器、DS18B20 温度传感器及OLED 显示屏等硬件,并在Keil uVision IDE环境下编写测试程序。硬件测试包括传感器的连接和数据采集的准确性。通过对不同心率、血氧和体温值的模拟测试,验证了系统的准确性和稳定性。软件测试包括数据处理算法和用户界面的测试。通过对心率、血氧和体温数据的处理和显示,验证了系统数据处理的正确性和用户界面的友好性。通过实际测量,系统响应时间快,心率、血氧和体温能正常显示且准确度高。当超过或低于阈值,会产生声光报警,符合设计要求。最后,通过对多个测试对象的心率、血氧和体温数据的检测和分析,验证了系统的实用性和可靠性,测试结果如图8所示。
5 结论
本文设计并实现了一款基于STM32单片机的心率血氧体温检测系统,通过集成MAX30102心率传感器、DS18B20温度传感器及OLED显示屏,实现了心率、血氧和体温的实时监测与显示。系统能够实时分析数据并在异常时发出声光报警,提高了健康监测的便捷性和有效性。创新之处为具有多参数集成监测与实时报警功能,为用户提供全面的健康监测服务。但系统仍存在功耗管理、数据传输与长期存储及用户交互界面等方面的不足,未来将聚焦于低功耗设计、远程数据传输与智能分析以及用户界面的优化,以进一步提升系统的实用性和用户体验感。
参考文献:
[1] 赵亚娟.基于互联网+平台心血管疾病的慢病随访模式探索及其在房颤射频消融术后患者随访中的应用[D].济南:山东大学,2018.
[2] 赵锦程.基于多功能传感器的健康检测系统研究[D].青岛:青岛大学,2022.
[3] 刘赛静,谢金鹏,胡海峰.基于STM32的人体健康检测系统设计[J].电子制作, 2023,31 (23):16-19.
[4] 薛宇.基于RBF神经网络温度补偿的非色散红外SF_6气体传感器[D].南京:南京信息工程大学,2017.
[5] 张青春,郁岚. 智能人体电子秤的系统设计[J]. 仪表技术,2008(7):11-12,14.
【通联编辑:梁书】
基金项目:安徽省高校自然科学研究重点项目“基于QoS 约束的无线传感网络覆盖研究”(2023AH052570) ;安徽省质量工程项目-计算机网络技术专业教学创新团队(2023cxtd252) ;校级质量工程项目-物联网应用技术专业教学创新团队项目(SZ2023007)