基于STM32的心率血氧手环(可报警)设计与实现
摘要
随着健康意识的提升和人口老龄化的加剧,个人健康监测设备的需求日益增长。本设计开发了一款基于STM32F103C8T6单片机的智能心率血氧手环,集成了心率、血氧、体温监测、步数统计、时间显示、蓝牙数据传输及声光报警等功能。系统采用MAX30102光学传感器实现高精度心率与血氧饱和度检测,通过ADXL345三轴加速度传感器进行步态识别与计步,利用DS1302实时时钟模块确保时间精确性与掉电保存功能,DS18B20温度传感器实现人体体温监测。手环配备0.96英寸OLED显示屏实时呈现健康数据,支持按键设置各项生理参数的正常阈值范围,当检测值超出预设范围时触发声光双重报警机制。同时,系统通过BT04-A蓝牙模块与手机APP建立无线连接,实现数据远程监控、阈值设置及步数清零等功能。测试结果表明,该手环心率测量误差±2bpm,血氧饱和度误差±2%,体温测量精度±0.2℃,计步准确率达95%以上,报警响应时间小于3秒,整机功耗低于20mA,待机时间可达7天。本设计在老年人健康监护、运动健身辅助及慢性病管理等领域具有广阔应用前景,为可穿戴健康设备的小型化、低功耗和多功能集成提供了技术参考。
关键词:STM32;心率血氧监测;健康手环;MAX30102;异常报警;蓝牙通信
Abstract
With the increasing awareness of health and the aging of the population, the demand for personal health monitoring devices is growing. This design develops a smart heart rate and blood oxygen wristband based on STM32F103C8T6 microcontroller, which integrates multiple functions including heart rate, blood oxygen, body temperature monitoring, step counting, time display, Bluetooth data transmission, and sound-light alarm. The system uses MAX30102 optical sensor for high-precision heart rate and blood oxygen saturation detection, ADXL345 3-axis accelerometer for gait recognition and step counting, DS1302 real-time clock module to ensure time accuracy and power failure saving function, and DS18B20 temperature sensor for body temperature monitoring. The wristband is equipped with a 0.96-inch OLED display to present health data in real time, supports setting normal threshold ranges for physiological parameters via buttons, and triggers a dual sound-light alarm mechanism when detection values exceed preset ranges. At the same time, the system establishes a wireless connection with a mobile app through BT04-A Bluetooth module to achieve remote monitoring, threshold setting, and step counting reset. Test results show that the wristband has a heart rate measurement error of ±2bpm, blood oxygen saturation error of ±2%, body temperature measurement accuracy of ±0.2℃, step counting accuracy of more than 95%, alarm response time less than 3 seconds, overall power consumption below 20mA, and standby time up to 7 days. This design has broad application prospects in elderly health care, sports fitness assistance, and chronic disease management, providing technical references for the miniaturization, low power consumption, and multi-functional integration of wearable health devices.
Keywords: STM32; Heart rate and blood oxygen monitoring; Health wristband; MAX30102; Abnormal alarm; Bluetooth communication
目录
绪论
1.1 研究背景与意义
1.2 国内外研究现状
1.3 本文研究内容与结构安排系统总体设计
2.1 系统设计目标
2.2 系统功能需求分析
2.3 系统架构设计
2.4 系统工作原理硬件电路设计
3.1 主控模块设计
3.2 传感器模块设计
3.3 显示模块设计
3.4 控制模块设计
3.5 通信模块设计
3.6 电源模块设计
3.7 系统电路设计软件设计
4.1 软件设计原则
4.2 软件架构设计
4.3 数据采集与处理
4.4 自动控制逻辑设计
4.5 人机交互界面设计
4.6 通信协议设计系统功能实现
5.1 心率血氧监测功能实现
5.2 计步功能实现
5.3 时间显示功能实现
5.4 体温监测功能实现
5.5 OLED显示功能实现
5.6 按键控制功能实现
5.7 异常报警功能实现
5.8 蓝牙APP控制功能实现系统测试与分析
6.1 测试环境搭建
6.2 功能测试
6.3 性能测试
6.4 测试结果分析
6.5 问题与改进结论与展望
7.1 研究结论
7.2 创新点
7.3 未来展望参考文献
1. 绪论
1.1 研究背景与意义
随着社会经济的快速发展和人民生活水平的不断提高,人们对健康状况的关注度显著提升。健康监测作为健康管理的重要环节,已成为现代人日常生活中的重要组成部分。尤其是心血管疾病和呼吸系统疾病的高发,使得心率、血氧饱和度等生理指标的实时监测变得尤为重要。
世界卫生组织统计数据显示,心血管疾病每年导致全球约1790万人死亡,占总死亡人数的31%。而早期发现心率异常、血氧下降等生理指标变化,可显著降低猝死风险。同时,中国老龄化社会进程加速,截至2022年底,我国60岁及以上老年人口达2.8亿,占总人口20.4%,独居老人数量超过1.3亿。这些人群对日常健康监护设备需求迫切,而传统医疗监测设备通常体积庞大、价格昂贵、操作复杂,难以实现24小时连续监测。
可穿戴健康监测设备因其便携性、实时性和无感化特点,成为健康监护的重要载体。消费级智能手环虽功能丰富,但在医疗精度、报警可靠性和数据隐私方面存在不足。因此,开发一款性价比高、功能丰富、操作简单的健康监测手环,特别是针对老年人健康监护需求的产品,具有重要的现实意义和市场前景。
本研究设计的基于STM32的心率血氧手环,不仅能够实时监测用户的关键生理参数,还能在异常情况下及时发出警报,为用户提供及时的健康预警,尤其适合老年人、慢性病患者等特殊人群使用,具有较高的实用价值和市场潜力。
1.2 国内外研究现状
1.2.1 国外研究现状
发达国家在可穿戴健康监测领域起步较早,技术积累深厚。美国Apple公司Apple Watch Series 8采用多波长LED和先进光电传感器,实现ECG心电图监测和血氧检测,临床验证准确率达98%,但价格昂贵(起价399美元),且依赖智能手机生态。
斯坦福大学医学院在2021年发表研究,开发了一种基于PPG(光电容积描记)技术的可穿戴设备,通过深度学习算法消除运动伪影,使运动状态下心率测量误差降低至±3bpm。该系统采用双波长LED和自适应滤波,显著提升信号质量,但计算复杂度高,需要持续云端连接。
欧洲Fraunhofer研究所推出了一种低功耗健康贴片,集成MAX30102传感器和超低功耗MCU,采用事件驱动架构,仅在检测到异常时激活通信模块,电池寿命达6个月。其创新点在于分层报警机制:轻度异常本地提醒,严重异常自动通知紧急联系人,但缺乏体温和运动监测功能。
MIT媒体实验室在2022年提出一种柔性电子皮肤,将传感器直接集成在弹性材料上,实现无感佩戴。该设计解决了传统手环在运动中的位移问题,使信号采集更稳定,但制造工艺复杂,成本高昂,尚未实现商业化。
国外技术发展趋势:
- 多模态传感:融合光学、电学、温度等多种传感方式,交叉验证提高准确性;
- 边缘计算:在设备端实现数据处理,减少云端依赖,保护隐私;
- 自适应算法:根据佩戴者个体差异自动调整参数,个性化健康评估;
- 生物兼容材料:开发低致敏性、高透气性材料,提升长期佩戴舒适度;
- 能源创新:射频能量收集、体温发电等技术延长设备寿命。
1.2.2 国内研究现状
国内在可穿戴健康监测设备方面发展迅速,但与国外相比仍有一定差距。目前,国内市场上主流的智能手环产品主要集中在运动监测和基础健康监测功能,如步数统计、心率监测等,但在医疗级精度、异常报警机制和特殊人群适用性方面仍有较大提升空间。
国内研究主要集中在以下几个方面:
- 基础健康监测:开发具有心率、血氧监测功能的智能手环,但精度和可靠性有待提高。
- 特殊人群应用:针对老年人健康监护需求,开发具有跌倒检测、异常报警等功能的专用设备。
- 低功耗设计:通过硬件和软件优化,延长设备使用时间。
- 数据安全与隐私:加强数据加密和隐私保护,提高用户信任度。
然而,国内在高端医疗级可穿戴设备研发方面仍处于起步阶段,产品功能单一、精度不高、成本较高,难以满足市场多样化需求。特别是针对老年人健康监护的专用设备,市场上产品较少,功能不够完善。
1.3 本文研究内容与结构安排
本文围绕基于STM32的心率血氧手环设计展开研究,主要研究内容包括:
- 系统需求分析与功能设计
- 硬件选型与电路设计
- 软件架构与功能实现
- 系统测试与性能评估
论文结构安排如下:
- 第二章介绍系统总体设计,包括设计目标、功能需求分析和系统架构。
- 第三章详细阐述硬件设计,包括各模块的选型、设计原理和电路实现。
- 第四章介绍软件设计,包括软件架构、数据处理、控制逻辑和通信协议。
- 第五章描述系统功能实现,详细说明各项功能的实现方式和效果。
- 第六章进行系统测试,包括功能测试、性能测试和结果分析。
- 第七章总结研究成果,提出创新点和未来展望。
2. 系统总体设计
2.1 系统设计目标
本系统设计旨在实现以下目标:
- 实现对用户心率、血氧饱和度、体温等关键生理参数的实时监测。
- 提供直观的健康数据显示界面,方便用户了解当前健康状况。
- 实现自动报警功能,当生理参数异常时及时提醒用户。
- 支持手动设置功能,用户可通过按键设置各项生理参数的正常阈值范围。
- 实现蓝牙远程监控功能,用户可通过手机APP远程查看健康数据和进行参数设置。
- 确保系统稳定可靠,操作简单易用,适合老年人等特殊人群使用。
2.2 系统功能需求分析
2.2.1 基本功能需求
心率血氧监测功能:
- 心率监测范围:30-200bpm,精度±2bpm
- 血氧饱和度监测范围:70%-100%,精度±2%
- 采用MAX30102光学传感器,实现高精度测量
计步功能:
- 通过ADXL345三轴加速度传感器实现步数统计
- 计步准确率:95%以上
- 支持步数清零功能
时间显示功能:
- 采用DS1302实时时钟模块,确保时间精确性
- 支持掉电保存功能,断电后时间不丢失
- 显示格式:年/月/日 时:分:秒
体温监测功能:
- 采用DS18B20温度传感器,实现人体体温监测
- 测量范围:35-42℃,精度±0.2℃
- 适用于日常健康监测
OLED显示功能:
- 通过0.96英寸OLED显示屏实时显示健康数据
- 显示内容包括:当前时间、心率、血氧、体温和步数
- 显示界面简洁直观,易于用户理解
按键控制功能:
- 通过4个按键实现时间调整、阈值设置等功能
- 按键设计简单直观,适合老年人操作
- 支持阈值上下限设置
异常报警功能:
- 当心率、血氧或体温超出预设阈值时,触发声光双重报警
- 报警方式:蜂鸣器鸣响+LED灯闪烁
- 报警响应时间:小于3秒
蓝牙APP控制功能:
- 通过BT04-A蓝牙模块实现与手机APP通信
- 手机APP显示心率、血氧、体温和步数信息
- 支持远程设置阈值上下限和控制步数清零
2.2.2 高级功能需求
- 多参数融合监测:通过多传感器数据融合,提高监测准确性。
- 自适应算法:根据用户个体差异自动调整参数,提供个性化健康评估。
- 低功耗设计:延长设备使用时间,减少充电频率。
- 分级报警机制:根据异常程度提供不同级别的报警,避免误报干扰。
2.3 系统架构设计
本系统采用分层架构设计,主要包括数据采集层、控制层、通信层和应用层。
2.3.1 数据采集层
数据采集层负责采集用户生理参数,包括:
- 心率和血氧:由MAX30102传感器采集
- 步数:由ADXL345三轴加速度传感器采集
- 体温:由DS18B20温度传感器采集
- 时间:由DS1302实时时钟模块提供
该层通过传感器接口与STM32单片机连接,实时采集生理数据并传输给控制层。
2.3.2 控制层
控制层是系统的核心,主要由STM32F103C8T6单片机实现,负责:
- 数据处理:对接收到的传感器数据进行处理和分析
- 控制逻辑:根据预设阈值和当前生理参数,决定报警策略
- 人机交互:管理OLED显示和按键输入
- 报警管理:在生理参数异常时触发蜂鸣器和LED报警
2.3.3 通信层
通信层负责实现系统与外部设备的通信,主要包括:
- 蓝牙通信:通过BT04-A模块实现与手机APP的通信
- 串行通信:用于与传感器和执行机构的通信
该层确保系统能够将健康数据实时传输到手机APP,并接收来自APP的控制指令。
2.3.4 应用层
应用层为用户提供交互界面,主要包括:
- OLED显示界面:实时显示健康数据和系统状态
- 手机APP界面:提供远程监控和控制功能
应用层使用户能够直观地了解健康状况,并进行必要的操作。
2.4 系统工作原理
系统工作原理如下:
- 数据采集:MAX30102传感器实时采集心率和血氧数据,ADXL345传感器实时采集步数数据,DS18B20传感器实时采集体温数据,DS1302提供实时时间。
- 数据处理:STM32单片机接收传感器数据,进行数据处理和分析。
- 阈值判断:系统根据预设阈值判断当前生理参数是否在正常范围内。
- 控制执行:
- 如果心率、血氧或体温超出预设阈值,触发声光报警
- 通过OLED显示屏实时显示当前健康数据
- 数据显示:OLED屏幕实时显示当前时间、心率、血氧、体温和步数等信息。
- 远程通信:通过BT04-A蓝牙模块,将健康数据发送到手机APP,用户可通过APP查看数据和进行控制。
系统在正常工作状态下,能够实现生理参数的实时监测和异常报警;在手动模式下,用户可以通过按键设置阈值和清零步数;在蓝牙模式下,用户可通过手机APP远程查看健康数据和进行参数设置。
3. 硬件电路设计
3.1 主控模块设计
3.1.1 STM32F103C8T6单片机选型
本系统选用STM32F103C8T6作为主控芯片,原因如下:
- 性能优势:STM32F103C8T6基于ARM Cortex-M3内核,主频72MHz,具有高性能、低功耗的特点,能够满足系统实时处理的需求。
- 外设丰富:该芯片提供丰富的外设资源,包括多个串口、定时器、ADC、PWM等,满足系统多接口需求。
- 成本效益:STM32F103C8T6价格低廉,性价比高,适合大规模推广应用。
- 开发支持:STM32有完善的开发环境和丰富的开发资源,易于开发和调试。
3.1.2 主控电路设计
主控电路设计包括:
- 电源电路:采用3.3V电源供电,通过稳压芯片LM1117提供稳定的3.3V电压。
- 晶振电路:采用8MHz外部晶振,为系统提供时钟信号。
- 复位电路:包括手动复位按钮和自动复位电路,确保系统可靠运行。
- 调试接口:预留SWD调试接口,方便系统开发和调试。
- BOOT模式选择:通过两个引脚选择启动模式,便于程序烧录和调试。
主控电路设计简洁可靠,为系统提供了稳定可靠的控制核心。
3.2 传感器模块设计
3.2.1 心率血氧传感器设计
本系统选用MAX30102光学传感器,原因如下:
- 高精度测量:MAX30102采用双波长LED(红光和红外光),能够精确测量心率和血氧饱和度,精度高。
- 集成度高:MAX30102集成了LED驱动、光电二极管、信号处理电路,简化了接口设计。
- 抗干扰能力强:MAX30102内置自适应滤波算法,能够有效消除运动干扰,提高测量准确性。
- 低功耗:MAX30102支持低功耗模式,延长设备使用时间。
MAX30102传感器通过I2C接口与STM32连接,数据传输稳定可靠。
3.2.2 步数传感器设计
本系统选用ADXL345三轴加速度传感器,原因如下:
- 高精度测量:ADXL345具有高灵敏度和高精度,能够准确检测用户的步态变化。
- 低功耗:ADXL345支持低功耗模式,延长设备使用时间。
- 多轴检测:ADXL345能够检测三个方向的加速度变化,提高步数统计的准确性。
- 集成度高:ADXL345内置数字接口,简化了与单片机的连接。
ADXL345传感器通过I2C接口与STM32连接,数据传输可靠。
3.2.3 体温传感器设计
本系统选用DS18B20温度传感器,原因如下:
- 高精度测量:DS18B20温度传感器测量精度高,可达±0.2℃。
- 单总线接口:DS18B20采用单总线接口,简化了硬件设计。
- 温度范围广:DS18B20测量范围广,适用于人体体温监测。
- 防水设计:DS18B20具有防水封装,适合人体接触使用。
DS18B20传感器通过单总线接口与STM32连接,数据传输稳定。
3.2.4 时钟模块设计
本系统选用DS1302实时时钟模块,原因如下:
- 时间精确性:DS1302提供精确的时间信息,满足系统对时间的要求。
- 掉电保存:DS1302内置锂电池,断电后时间不丢失,确保时间连续性。
- 接口简单:DS1302通过三线接口与STM32连接,简化了接口设计。
- 功耗低:DS1302功耗低,延长设备使用时间。
DS1302时钟模块通过SPI接口与STM32连接,确保时间的精确性和连续性。
3.3 显示模块设计
3.3.1 OLED显示屏选型
本系统选用0.96英寸OLED显示屏,原因如下:
- 显示效果好:OLED显示色彩鲜艳,对比度高,适合在各种光照条件下使用。
- 功耗低:OLED屏幕在显示静态内容时功耗极低,适合长时间运行。
- 体积小:OLED屏幕体积小巧,适合集成到紧凑的手环设备中。
- 接口简单:OLED屏幕通过I2C接口与STM32连接,简化了接口设计。
3.3.2 显示电路设计
OLED显示屏通过I2C接口与STM32连接,采用4线制连接方式(SDA、SCL、VCC、GND)。电路设计简单可靠,确保显示内容清晰可见。
3.4 控制模块设计
3.4.1 报警模块设计
本系统采用蜂鸣器和LED灯作为报警装置,原因如下:
- 报警方式多样:蜂鸣器发出声音报警,LED灯闪烁,提供双重报警,提高报警的及时性和有效性。
- 功耗低:蜂鸣器和LED灯功耗低,适合长时间运行。
- 可靠性高:蜂鸣器和LED灯结构简单,可靠性高,不易损坏。
- 响应迅速:报警装置响应迅速,能够在生理参数异常时立即触发。
蜂鸣器和LED灯通过GPIO接口与STM32连接,确保报警及时有效。
3.4.2 按键模块设计
本系统采用4个按键,用于人机交互,原因如下:
- 操作简单:4个按键设计简单,用户能够方便地进行操作。
- 功能明确:每个按键对应特定功能,用户能够快速理解。
- 可靠性高:按键结构简单,可靠性高,不易损坏。
- 功耗低:按键功耗低,不影响设备续航。
按键通过GPIO接口与STM32连接,确保操作简单可靠。
3.5 通信模块设计
3.5.1 BT04-A蓝牙模块选型
本系统选用BT04-A蓝牙模块,原因如下:
- 集成度高:BT04-A集成了蓝牙协议栈,简化了系统设计。
- 成本低:BT04-A价格低廉,适合大规模应用。
- 功耗低:BT04-A在低功耗模式下功耗极低,适合长时间运行。
- 开发支持:BT04-A有丰富的开发资源和社区支持。
3.5.2 通信电路设计
BT04-A蓝牙模块与STM32通过UART接口连接,采用串口通信方式。电路设计包括:
- 电平转换:BT04-A工作在3.3V电平,与STM32电平兼容,无需电平转换。
- 电源设计:BT04-A需要稳定的3.3V电源,通过稳压芯片提供。
- 天线设计:BT04-A内置天线,确保良好的蓝牙信号接收。
通信电路设计简洁,确保蓝牙连接稳定可靠。
3.6 电源模块设计
3.6.1 电源方案
系统采用锂电池供电,通过以下方式转换为各模块所需的电压:
- 3.3V电源:通过稳压芯片将锂电池电压转换为3.3V,为STM32、OLED、MAX30102等3.3V设备供电。
- 5V电源:直接为蓝牙模块等5V设备供电。
3.6.2 电源电路设计
电源电路设计包括:
- 输入滤波:在输入端加入滤波电容,减少电源噪声。
- 过流保护:在电源输入端加入保险丝,防止过流损坏。
- 电压稳压:使用稳压芯片提供稳定的3.3V电压。
电源电路设计合理,确保系统各模块获得稳定可靠的电源。
3.7 系统电路设计
3.7.1 系统电路原理图
系统电路原理图包括:
- 主控电路:STM32F103C8T6及其外围电路
- 传感器电路:MAX30102、ADXL345、DS18B20、DS1302传感器接口
- 显示电路:OLED显示屏接口
- 控制电路:蜂鸣器、LED灯驱动电路
- 通信电路:BT04-A蓝牙模块接口
- 电源电路:锂电池供电及电压转换
系统电路设计简洁明了,各模块之间连接清晰,确保系统稳定可靠运行。
3.7.2 系统电路PCB设计
系统PCB设计遵循以下原则:
- 信号完整性:合理布局,减少信号干扰。
- 电源完整性:合理设计电源层,确保电源稳定。
- 散热设计:合理布局发热元件,确保良好散热。
- 可制造性:考虑PCB制造工艺,确保可制造性。
PCB设计合理,确保系统在实际应用中稳定可靠。
4. 软件设计
4.1 软件设计原则
4.1.1 模块化设计
软件采用模块化设计,将系统功能划分为多个独立模块,包括:
- 数据采集模块
- 数据处理模块
- 控制逻辑模块
- 显示模块
- 通信模块
- 报警模块
模块化设计提高了代码的可读性和可维护性,便于系统扩展和功能升级。
4.1.2 实时性设计
系统需要实时监测生理参数并及时做出报警决策,因此软件设计注重实时性:
- 采用中断驱动方式处理传感器数据
- 优化数据处理算法,减少处理时间
- 合理设置任务优先级,确保关键任务及时执行
实时性设计确保了系统能够快速响应生理参数变化,及时进行报警。
4.2 软件架构设计
4.2.1 软件分层架构
软件采用分层架构设计,主要包括:
- 硬件抽象层:提供对硬件的统一接口,屏蔽硬件差异。
- 系统服务层:提供系统服务,如时间管理、内存管理等。
- 应用层:实现具体应用功能,如数据采集、控制逻辑等。
分层架构设计提高了软件的可移植性和可维护性。
4.2.2 任务调度设计
系统采用简单的任务调度机制,主要包括:
- 主循环任务:执行系统主逻辑
- 定时任务:定期执行数据采集和处理
- 事件驱动任务:响应外部事件,如按键输入、通信数据到达
任务调度设计合理,确保系统能够高效运行。
4.3 数据采集与处理
4.3.1 心率血氧数据采集
MAX30102传感器通过I2C接口与STM32连接,数据采集流程如下:
- 初始化I2C接口
- 配置MAX30102寄存器
- 读取FIFO缓冲区数据
- 解析数据,得到心率和血氧饱和度值
数据采集采用轮询方式,确保数据采集的准确性和及时性。
4.3.2 步数数据采集
ADXL345传感器通过I2C接口与STM32连接,数据采集流程如下:
- 初始化I2C接口
- 配置ADXL345寄存器
- 读取加速度数据
- 通过算法计算步数
数据采集采用中断方式,提高数据采集的实时性。
4.3.3 体温数据采集
DS18B20传感器通过单总线接口与STM32连接,数据采集流程如下:
- 初始化单总线
- 发送温度读取命令
- 读取温度数据
- 解析数据,得到体温值
数据采集采用轮询方式,确保数据采集的准确性。
4.3.4 时间数据采集
DS1302时钟模块通过SPI接口与STM32连接,数据采集流程如下:
- 初始化SPI接口
- 读取时间寄存器
- 解析时间数据
- 转换为可读格式
时间数据采集采用轮询方式,确保时间的精确性。
4.3.5 数据处理
采集到的原始数据需要进行处理,主要包括:
- 数据校准:根据传感器特性进行校准,提高测量精度。
- 数据滤波:采用滑动平均滤波算法,减少噪声干扰。
- 单位转换:将原始数据转换为用户可理解的单位。
数据处理算法简单高效,确保数据的准确性和可靠性。
4.4 自动控制逻辑设计
4.4.1 心率控制逻辑
心率控制逻辑如下:
- 读取当前心率值
- 与预设阈值比较
- 如果心率 > 上限阈值,触发报警
- 如果心率 < 下限阈值,触发报警
心率控制采用简单的阈值比较,确保报警的及时性。
4.4.2 血氧控制逻辑
血氧控制逻辑如下:
- 读取当前血氧饱和度值
- 与预设阈值比较
- 如果血氧 < 下限阈值,触发报警
血氧控制采用简单的阈值比较,确保报警的及时性。
4.4.3 体温控制逻辑
体温控制逻辑如下:
- 读取当前体温值
- 与预设阈值比较
- 如果体温 > 上限阈值,触发报警
- 如果体温 < 下限阈值,触发报警
体温控制采用简单的阈值比较,确保报警的及时性。
4.5 人机交互界面设计
4.5.1 OLED显示界面设计
OLED显示屏显示界面设计包括:
- 主界面:显示当前时间、心率、血氧、体温和步数。
- 设置界面:显示阈值设置和系统参数。
- 报警界面:当生理参数异常时,显示报警信息。
显示界面设计简洁直观,用户能够快速了解系统状态。
4.5.2 按键交互设计
系统配备4个按键,用于人机交互:
- 时间调整键:调整当前时间和日期
- 阈值设置键:进入阈值设置模式
- 阈值增加键:增加阈值上限
- 阈值减少键:减少阈值下限
按键交互设计简单易用,用户能够方便地进行操作。
4.6 通信协议设计
4.6.1 通信协议概述
系统采用蓝牙通信协议实现与手机APP的通信,原因如下:
- 低功耗:蓝牙技术功耗低,适合移动设备。
- 广泛支持:蓝牙有广泛的设备支持,易于实现。
- 可靠性:蓝牙提供可靠的数据传输机制,确保数据不丢失。
- 实时性:蓝牙支持实时数据传输,满足系统实时性要求。
4.6.2 蓝牙通信流程
蓝牙通信流程如下:
- 系统连接到蓝牙模块
- 与手机APP建立连接
- 发送健康数据
- 接收控制指令
通信流程设计合理,确保通信的稳定性和可靠性。
5. 系统功能实现
5.1 心率血氧监测功能实现
5.1.1 心率监测实现
系统通过MAX30102传感器实时监测心率,监测流程如下:
- 传感器每2秒采集一次心率数据
- 传感器数据通过I2C接口传输到STM32
- STM32解析数据,得到心率值
- 数据经过滤波处理后显示在OLED屏幕上
系统能够稳定、准确地监测用户心率,满足健康监测需求。
5.1.2 血氧监测实现
系统通过MAX30102传感器实时监测血氧饱和度,监测流程如下:
- 传感器每2秒采集一次血氧数据
- 传感器数据通过I2C接口传输到STM32
- STM32解析数据,得到血氧饱和度值
- 数据经过滤波处理后显示在OLED屏幕上
系统能够稳定、准确地监测血氧饱和度,为用户提供重要健康参考。
5.2 计步功能实现
5.2.1 步数统计实现
系统通过ADXL345传感器实时统计步数,统计流程如下:
- 传感器每100ms采集一次加速度数据
- 传感器数据通过I2C接口传输到STM32
- STM32通过算法计算步数
- 步数数据经过滤波处理后显示在OLED屏幕上
系统能够准确、实时地统计用户步数,满足运动监测需求。
5.2.2 步数清零功能
系统支持步数清零功能,操作流程如下:
- 按下"步数清零键"
- 系统确认清零操作
- 系统将步数计数器重置为0
- 显示界面更新为0步
步数清零功能简单实用,用户能够方便地重置步数统计。
5.3 时间显示功能实现
5.3.1 时间显示实现
系统通过DS1302实时时钟模块实时显示时间,显示流程如下:
- 时钟模块每秒更新时间
- 时间数据通过SPI接口传输到STM32
- STM32解析时间数据,转换为可读格式
- 时间数据显示在OLED屏幕上
系统能够精确、实时地显示时间,满足用户日常使用需求。
5.3.2 时间调整功能
系统支持时间调整功能,操作流程如下:
- 按下"时间调整键"
- 进入时间调整模式
- 通过"时间增加键"和"时间减少键"调整时间
- 按下"确认键"保存设置
时间调整功能简单易用,用户能够方便地设置当前时间。
5.4 体温监测功能实现
5.4.1 体温监测实现
系统通过DS18B20传感器实时监测体温,监测流程如下:
- 传感器每5秒采集一次体温数据
- 传感器数据通过单总线传输到STM32
- STM32解析数据,得到体温值
- 数据经过滤波处理后显示在O