基于STM32微控制器的人体状态监测系统设计与实现

作者: 王鹏鹏 陈杰 王勇 孙大勇 李芳芳 殷云霞

基于STM32微控制器的人体状态监测系统设计与实现0

摘要:在现代生活中,便携式健康监测设备的需求日益增长,但现有技术往往受限于设备复杂性和操作烦琐性。该研究提出了一种基于STM32微控制器的人体状态监测系统,该系统通过集成MPU-6050运动传感器和MAX30100生物传感器,实现了对人体运动、姿态和生理参数的实时监测。系统利用STM32的高效数据处理能力,确保监测的高精度和实时性。实验验证表明,该系统在家庭、办公室和健身房等多种环境下均表现出良好的适用性,为个人健康管理提供了一种有效的方法。

关键词:STM32微控制器;人体状态检测;MPU-6050;MAX30100;健康状况监测

中图分类号:TP391 文献标识码:A

文章编号:1009-3044(2025)05-0119-04 开放科学(资源服务) 标识码(OSID) :

0 引言

随着科技进步,人体状态检测技术在健康管理、运动分析和疾病预防等领域的应用日益广泛。然而,现有健康监测手段依赖复杂设备和烦琐操作,无法满足现代生活对便捷性和即时性的需求。在快节奏的生活中,健康问题日益成为公众关注的焦点,尤其是慢性疾病的早期检测和预防,这对于提高生活质量和减少医疗成本具有重要意义。传统的医疗检测方法因成本高、操作复杂,不利于实时监测和长期跟踪。而国外在人体状态检测技术方面取得了显著成果,尤其在医疗领域,已开发出多种可穿戴式生理监测设备,如心脏监测器、血压监测器、血糖监测器等,能够实时监测患者的生理参数,并提供数据记录和分析功能[1]。因此,开发一种基于微控制器的智能人体状态检测系统显得尤为迫切。

本研究采用STM32F103C8T6 微控制器为核心,搭载MPU-6050惯性测量单元和MAX30100温度传感器,设计了一种便携式人体健康监测系统[2]。该系统能够全面监测人体的运动状态、姿态以及健康状况,提供及时、准确的健康信息。设计上,系统注重便携性和易用性,使其适用于家庭、办公室和健身房等多种环境[3]。通过精确的算法处理传感器数据,系统确保了监测的高精度和实时性。实验验证表明,该系统在多种环境下均具有良好的适用性,为个人健康管理提供了一种有效的方法。

1 硬件设计与软件设计

1.1 硬件设计

本系统总体结构由STM32F103C8T6核心板、MPU-6050、MAX30100、OLED 显示屏、蜂鸣器和LED 灯组成。通过STM32F103单片机处理数据,实现信号传输,从而使用者可以随时观察到温度、心率以及血氧饱和度的具体参数[4]。

1) STM32F103C8T6核心板模块。STM32F103C8T6是一款基于ARM架构的48引脚LQFP封装微控制器,搭载了高性能的32位ARMCortex™-M332位RISC 核心,工作频率高达72 MHz,配置了64 KB的闪存。其内置的PWM定时器不仅能够产生充足的PWM信号,还支持触控捕获功能[5]。此外,它性价比高、功耗低、功能众多,不但可以接收传感器信息,还可以修改采集过来的信号信息。基于这些优势,结合市场上其他微控制器的实际情况,选择该芯片作为本研究的核心控制芯片,其最小系统框图,如图1所示。

2) MPU-6050运动处理传感器。MPU-6050传感器是全球首个9 轴运动处理单元,它整合了3 轴的MEMS陀螺仪、3轴的MEMS加速度计,并配备了一个可扩展的数字运动处理器(DMP) 。这种集成度不仅减少了外部组件的需求,还提高了数据处理的效率和准确性。通过I2C接口,MPU-6050能够与第三方数字传感器(如磁力计) 相连,实现9轴数据的输出,这在需要精确方向感测的应用中尤为重要[6]。MPU-6050 还能通过SPI接口进行数据传输,进一步提高了数据通信的灵活性和速度。

MPU-6050的I2C接口也能连接非惯性类的数字传感器,比如压力传感器。该系列传感器配备了三个16位的ADC,为陀螺仪和加速度计提供高精度的模拟到数字转换,确保了对动态和静态运动的精确追踪。用户可以根据需要调整传感器的测量范围,其中陀螺仪的测量范围可设置为±250、±500、±1 000、±2 000度每秒(dps) ,而加速度计的量程则可调节为±2、±4、±8、±16g,这样的灵活性使得MPU-6050能够适应从轻微运动到剧烈冲击的各种监测需求[7]。MPU-6050的封装形式为QFN(无引线方形封装) ,尺寸仅为4 mm×4mm×0.9mm,具备极高的抗冲击性能,能够承受高达10 000g的冲击力。

此外,它还配备了可编程的低通滤波器,以满足不同应用场景的需求。例如,在监测睡眠模式时,可以选择一个较高的滤波器设置以减少由微小运动引起的干扰,从而更准确地分析睡眠质量。

3) MAX30100模块。MAX30100传感器以其紧凑的设计和低功耗特性,成为可穿戴设备中监测脉搏血氧饱和度和心率的理想选择。它集成了两个LED灯(一个红光和一个红外光) 、一个高灵敏度光电探测器、优化的光学元件和低噪声模拟信号处理,以检测脉搏血氧饱和度和心率信号。此外,这款传感器支持1.8V和3.3V的电源供应,并可以通过软件关闭,具有极低的待机电流,允许电源始终连接[8]。

4) 显示模块设计。为了满足心率血氧波线图和多元监测的需求,本设计选用了1.44英寸彩屏,并搭配了具有4线SPI通信模式、ST7735S驱动芯片及128×128分辨率的LCD模块。此外,该模块还整合了LCD 显示屏及背光控制电路,允许在不同光照条件下优化屏幕的可视性,设计图如图2 所示。TFT(Thin FilmTransistor) 液晶彩屏采用薄膜晶体管技术的液晶屏幕,通过薄膜晶体管操控每个像素点以实现快速反应和优质画质呈现。这不仅使得波线图和监测数据清晰可见,也增强了用户界面的直观性,便于用户随时查看自己的健康信息。

5) 摔倒报警模块。本设计报警模块采用蜂鸣器与LED灯相结合的方式,如图3和图4所示。报警模块的核心是STM32微控制器,它负责接收并处理来自MPU-6050传感器的信号。MPU-6050传感器通过其内置的算法监测用户的运动状态,一旦检测到摔倒事件,便向STM32微控制器发送信号。随后,STM32微控制器触发报警模块,激活蜂鸣器和LED灯。

在电路设计中,采用了8050型号的NPN三极管来控制蜂鸣器的警报声。由于8050三极管在高电平时导通,这与STM32微控制器在启动时引脚默认为高电平的特性相匹配。因此,当STM32微控制器检测到摔倒信号时,它只须向8050三极管施加高电平,即可使蜂鸣器发出警报声,同时点亮LED灯[9]。这种设计不仅确保了报警模块的响应速度和可靠性,而且通过简单的电路设计实现了高效的能源利用。报警模块的快速反应对于紧急情况下及时获得帮助至关重要,而LED灯的闪烁则为周围的人提供了一个明显的警示信号。

1.2 软件设计

1) 跌倒算法设计。在本研究中,STM32微控制器被用于采集MPU-6050传感器输出的原始加速度和角速度数据。数据预处理包括计算由MPU-6050传感器测得的加速度信号所对应的俯仰角(accPitch) 和横滚角(accRoll) 。这些角度通过a tan2函数计算,公式如下:

式中:AX、AY 和AZ 分别为X、Y、Z 轴的加速度输出。

随后,对陀螺仪数据进行时间积分来估计角速度信息。具体而言,俯仰角和横滚角通过积分陀螺仪的角速度信号GY和GX并乘以灵敏度系数131.0获得,以适应MPU-6050传感器的特定配置。为提高角度估计的稳定性和准确性,本研究采用了互补滤波技术,该技术能够有效结合加速度计和陀螺仪的数据,并设置互补滤波器的参数α为0.98,以实现对俯仰角和横滚角的平滑估计。

基于实验确定的阈值,系统设计了一套报警机制:当俯仰角超出[-30°, 30°]或横滚角超出[0°, -70°] 的范围时,系统将触发蜂鸣器和LED灯报警,以警示可能的摔倒事件。一旦角度返回到预设的安全范围内,报警信号将被解除。

2) 心率血氧饱和度检测算法设计。传统诊脉技术主要分为3种:心脏电流信号探测、血压波动测量和光电检测法。心脏电流信号探测通过捕捉心脏电活动来监测心率,而血压波动测量则利用压力传感器来估算脉率。尽管这两种方法在医疗监测中具有重要价值,但它们可能会限制患者的活动自由,长期使用可能导致生理和心理不适。因此,光电检测法因其非侵入性和对用户活动影响小的特点,在脉搏测量中得到了广泛应用。

光电法测量技术通过血管搏动引起的透光率变化进行测量,使用由光源和光电转换器组成的传感器来实现。传感器可方便地安置于指尖、腕部或耳垂等部位,以实现对脉搏及血氧饱和度的精确检测。该技术使用660nm红光和900nm红外光的发光二极管,这些波长对血液中的氧合血红蛋白和还原血红蛋白有较高的选择性,从而优化检测效果[10]。

MAX30102传感器集成了多种功能,简化了设计过程,提高了系统的可靠性。用户通过I2C通信即可读取光强度值,并结合算法计算心率和血氧饱和度,为健康监测提供了一种高效、可靠的解决方案。这种集成化设计不仅简化了传感器的外围电路设计,也提高了系统的整体稳定性。

3) 温度检测算法设计。在设计基于MAX30100 和MPU-6050传感器的体温测量系统时,关键在于数据的精确采集与处理。为此,MAX30100传感器须配置适当的采样率、分辨率和滤波参数,以获取可靠的测量数据。同时,MPU-6050传感器提供的温度数据将通过滑动窗口平均或卡尔曼滤波技术进行降噪处理,以降低误差。

为提升系统准确性,采用校准和温度补偿算法调整环境影响。此外,通过实验建立距离与温度的映射关系,并开发补偿算法,考虑传感器位置和测量目标特性对测量准确性的影响[11]。在数据处理和算法优化方面,考虑采用机器学习模型或神经网络等先进算法,这些先进算法能够提高测量的准确性和稳定性。实时监控传感器数据变化,并根据实时情境优化参数与算法,以适应不同的环境和应用场景。

最后,通过与标准体温测量方法的比较,使用人工体温模拟器或实际体温测量数据集进行验证和测试,评估算法的准确性和可靠性。这些综合措施确保了体温测量系统的准确性和可靠性,为用户提供了高质量的健康监测服务。

2 系统测试与分析

2.1 硬件测试与软件测试

首先,硬件调试首先从静态检查着手,此步骤涉及对电路图的细致比对,确保元器件的型号、规格、极性及集成芯片的插接方向无误,并严格遵循电路图布局。重点检查项目包括连线正确性、总线和地址线的短路以及其他潜在故障。其次,进行电源系统测试,验证电源模块是否能够提供稳定且符合设计要求的电源。最后,开展综合测试,测试内容包括传感器响应、数据传输准确性和系统长时间运行的稳定性。所有测试结果均证实了硬件设计的可靠性和系统功能的符合性。

在软件测试阶段,调试工作按照一定的先后顺序逐步进行。首先,对各个模块的子程序进行单独调试,确保每个子模块都能在预定参数下正常运行;其次,对中断服务程序进行测试,验证中断响应的准确性和及时性;最后,对主程序进行调试,确保系统能够按照既定逻辑协调各模块的工作,实现整体功能的正常运行。

硬件测试结果显示,所有元器件均符合设计要求,电源系统稳定,系统在通电后各设备运行正常,长时间运行测试中未发现异常。软件测试结果表明,所有子模块均能按预定参数正常工作,中断服务程序响应准确及时,主程序能有效地协调各模块工作,系统运行流畅,算法得到预期的测试结果,满足设计要求。总体而言,硬件与软件测试均达到了设计目标,系统在实际应用中的有效性和稳定性得到了验证。

经典小说推荐

杂志订阅