1. 研究的意义
传统的医疗设备诸如心电图机、血氧检测仪等往往伴随着成本高昂、使用复杂、难以携带等负面问题。当然除了上述问题外还需要专业人员进行操作,使普通用户难以上手接触使用。而我们研究的这款设备就很好地解决了上述负面问题。这款家用心率血氧检测设备设计小巧、操作便捷,用户在家中便能自行进行健康检测,无需再前往医院或检查中心,极大地节省了用户的时间成本与费用。
这套系统具有高度的集成性与智能化,包含了心率、血氧与体温等多种身体参数的监测功能,能够全面地反映用户的身体相关参数。同时,通过系统配置的液晶显示屏、语音播报模块和自行设置的参数临界值,用户可以获取到自己当前的生理参数,不需要额外的解读与分析[1]。数值一旦出现异常,系统会立即发出警报,提醒用户及时采取相应措施,使健康与安全得到有力保障[2]。
2. 设计方案
设计一款心率血氧检测系统,需要保证其功能性和用户操作的便捷性,以及检测速度与可靠性。在设计中这几方面的问题是一定要考虑的。
第一,用户能够及时获取自己的健康数据,这就要求系统能够快速处理数据并做出反应,因此系统的实时性是检测系统的一个基本要求。
第二,设计直观的用户界面可以使用户直接在显示屏上看见心率和血氧值,并能对报警功能进行设置,轻松地掌握自己的健康状况。
第三,心率血氧检测系统是在硬件与软件相结合的基础上设计出来的,需要进行精细的设计和严格的测试,打造出一款用户满意的健康检测设备。
该系统由六大核心功能构成:心率血氧传感器、温度传感器、按键设置、声光报警功能、液晶显示功能和语音播报功能。这些组件之间协同工作,共同支撑着系统的各项运作与功能实现。
我们选用STM32F103单片机负责数据处理及逻辑判断,通过与心率血氧传感器的联动,实时捕获并更新当前的心率和血氧数据。这些数据通过液晶显示器清晰地显示给用户,同时也可以通过语音播报模块对检测的数值进行语音播报。温度传感器可以检测用户的体温并进行显示及播报[3]。另外,用户可以通过按键设置心率、血氧、温度等阈值,一旦检测到用户的数据超过阈值,蜂鸣器便会立即发出声光警报,系统结构见图1所示。
2.1. 软件设计
制作程序流程图,将程序的运行流程可视化。使用Keil5软件编写程序,明确各个模块之间的通信协议与接口规范,保障系统的整体性能与稳定性。同时设计一个直观且易于操作的用户界面,能够实时显示心率和血氧等数据,提供丰富的交互功能。
Figure 1. System structure
图1. 系统结构
2.2. 硬件设计
选择MAX30102传感器作为核心组件,该传感器的灵敏度和低功耗特性使其成为心率与血氧检测的不二之选。选用STM32F103单片机,可与MAX30102无缝通信,实现高效的数据处理。为了直观地显示心率和血氧等数据,设计了一个液晶显示屏,为用户提供便捷的使用体验。
3. 软件程序设计
在硬件上电启动之际,各硬件组件将自动启动程序初始化流程,待初始化工作完成后,系统将显示主界面。
Figure 2. Flow of the main program
图2. 主程序的流程
主程序的流程如图2所示,首先,为了确保该设备处于正常工作状态,需要对WT588D语音模块、LCD1602显示器、温度传感器以及心率血氧传感器等进行初始化操作。完成初始化操作后,显示屏显示传感器传来的信息,当传感器检测的数据发生变化的时候,显示屏上的信息也会及时更新。此外,系统会持续检测按键是否被按下,通过按键可以设置某些参数的阈值,如心率。一旦检测到心率数值超出阈值,蜂鸣器会立即启动,发出警报声以提示用户注意。当被检测者检测部位离开传感器或者检测数值恢复正常,报警停止。
4. 硬件电路设计
从系统结构图我们可以了解到:心率血氧传感器、温度传感器借助IIC接口进行数据传输,随后这些数据被传递至单片机以进行下一步处理。此外,按键被用于设定心率、血氧等数据的阈值范围,而液晶屏则实时展示当前的心率和血氧等值。该设计过程涵盖了八大核心组件:单片机处理模块、液晶显示模块、按键组件、心率血氧采集模块、温度检测模块、电源模块、蜂鸣器声光报警装置以及语音播报模块,系统电路如图3所示。
Figure 3. System circuit
图3. 系统电路
4.1. 单片机处理模块
要通过单片机实现系统功能,关键在于确保单片机与外部设备间能够进行高效且准确的信息交互,这需要通过连接单片机的引脚来实现。近年来,单片机在体积、外观、功能、速度等方面进行了优化,使设计更为轻巧紧凑。同时,许多引脚功能得到了增强,升级为双功能或多功能,从而提升了单片机的实用性。该设计采用STM32F103,其电路如图4所示,此电路图详细描绘了单片机核心、时钟、下载、供电、复位以及Boot启动模式选择等关键模块。
4.2. 液晶显示模块
LCD显示器有两种显示形式,分别是字段显示类似于LED显示,只需向特定管脚发送信号即可呈现效果;另一种是字符显示,可以根据用户的需求展示一系列基础字符。在本次设计中,我们选用LCD1602模块作为显示设备,通过字符显示模式来实现显示功能,图5是LCD1602的电路图。
Figure 4. STM32F103 circuit
图4. STM32F103电路
Figure 5. LCD1602 circuit
图5. LCD1602电路
4.3. 按键组件
按键电路则通过六引脚自锁开关来实现,这是一种广泛应用于日常生活的双刀双掷开关,其电路如图6所示。
Figure 6. Button circuit
图6. 按键电路
在按键未触发状态下,引脚1与5、引脚2与6分别处于连通状态。而当按键被按下时,连接状态发生变化,引脚1与3、4与6连接。这种按键因其切换电路状态的灵活性而备受青睐,左边未按下与右边按下的状态如图7所示。
Figure 7. Key switch status
图7. 按键开关状态
4.4. 心率血氧采集模块
心率血氧采集系统是通过人体毛细血管搏动时的透光性变化,测量人体的心率、血氧等参数。我们选用660 nm波长的发光二极管作为光源,当光束照入人体表面的毛细血管时,由于血管的波动会导致光的穿透效果不同,然后光电转换器将捕捉到的反射光线转换为电信号,然后输出。
我们选用的MAX30102传感器,集心率、血氧监测功能于一身,融合了发光二极管、光电转换器等器件[4]。对外界光源有较强的抑制能力,能精准采集心率和血氧数据,并传输至单片机进行后续操作,MAX30102电路图如图8所示[5]。
Figure 8. MAX30102 circuit
图8. MAX30102电路
4.5. 温度检测模块
一般而言,健康人群的体温大约在36℃~37℃的范围内。若体温超出这一范围的上界,则称之为发热,亦即人们常说的发烧状态。本设计采用了DS18B20温度传感器,因其精确度高、稳定性好且能耗极低等优点在大量人体测温场合被使用。
DS18B20温度传感器有三个引脚,分别为VDD用于接入电源、GND负责接地和承担数据传输任务的DQ,通常被称为一线式数据总线。其电路如图9所示,DS18B20在工作过程中,上拉电阻确保引脚维持高电平状态,这既限制了引脚上的电流流动,也确保了温度数据的有效输出。
Figure 9. DS18B20 circuit
图9. DS18B20电路
4.6. 电源模块
电源电路作为单片机的核心供电系统,采用统一的5 V供电,为所有器件提供稳定的电力支持。电源电路如图10所示,开关的引脚4和6在电路功能上等同于引脚1和3,而引脚5和2则可以选择性地连接至单片机的接地引脚,以实现不同的电路配置。
Figure 10. Power supply circuit
图10. 电源电路
4.7. 蜂鸣器声光报警装置
蜂鸣器是一种集成化的电子发声元件,主要分为压电式和电磁式两种类型。蜂鸣器在工作过程中,通常需要较大的电流以确保其正常发声。然而,单片机的I/O端口通常难以满足蜂鸣器所需的驱动条件。因此,为了实现蜂鸣器的正常工作,通常需要借助外部放大电路进行驱动。通过这种方式,可以确保单片机的I/O端口不会因电流过大而受损,同时也能有效地驱动蜂鸣器发出声音,其电路如图11所示。
4.8. 语音播报模块
本系统采用的语音模块芯片是WT588D,这是一款内置SPI-FLASH存储器的语音模块芯片,它弥补了以往各类语音芯片应用领域狭小的缺陷,其电路如图12所示。
Figure 11. Buzzer circuit
图11. 蜂鸣器电路
Figure 12. WT588D circuit
图12. WT588D电路
5. 实物测试
经过前期的准备,确定好所需要的元器件与数量,焊接到电路板上,最终如图13所示。
Figure 13. Design drawing
图13. 设计实物图
在硬件部分组合完毕且连线正确后,对所写的程序代码检验无误后,开始将程序烧录到单片机中。其结果如图14所示,显示屏显示初始化的心率、血氧与当前温度。
Figure 14. Initial device status
图14. 设备初始状态
下方有四个按键,从左至右分别为:设置、增加、减少、播报当前数值。当按下设置按钮时,会进入上下限数值的设定,分别是心率最低值、心率最高值、温度最低值、温度最高值和血氧最低值,设置结果如图15~18所示。
Figure 15. Setting the minimum heart rate value
图15. 心率最低值设定
Figure 16. Setting the maximum heart rate value
图16. 心率最高值设定
Figure 17. Setting of the maximum and minimum body temperature
图17. 体温最高值与最低值设定
Figure 18. Setting of the minimum value of blood oxygen
图18. 血氧最低值设定
测试报警功能能否正常使用,设置报警温度,将最高上限设置为33度,将最低下限设置为20度,如图17所示。回到主页面,如图19所示,当前温度为25.5度,并未超过报警值,设备正常运行。当温度超过设置上限值时,如图20所示,设备开始报警,发光二极管发光并且蜂鸣器响起,同时语音播报报警原因及当前数值。当温度返回正常值时,停止报警。
Figure 19. The current temperature is not alarmed
图19. 当前温度未报警
Figure 20. The temperature exceeds the set value and the alarm starts
图20. 温度超过设定值开始报警
心率与血氧的报警流程与体温类似,便不再赘述。右侧的按键为语音播报功能,按下之后可以播报当前的心率、血氧与体温的数值。
测试心率与血氧检测功能需要将手指放在MAX30102红光所在的地方如图21所示,等待系统显示结果。
Figure 21. Heart rate and blood oxygen are being measured
图21. 心率血氧检测中
片刻之后便能显示结果,体现了该产品的实时性。当按下语音播报按键,便可以听到当前的心率、血氧与体温的数值,结果如图22所示。
Figure 22. Heart rate and blood oxygen results
图22. 心率血氧检测结果
6. 总结与展望
设计了一款小型健康监测设备,该设备基于单片机与心率血氧传感器,为用户提供实时、精确的心率、血氧及体温检测功能。在设计中,融合了多种电子组件,涵盖温度检测装置、液晶显示、语音播报以及自动报警等功能,从而实现了功能的丰富性与实用性。论文详细地展示了设计要求、软件架构与硬件配置。经过实物测试,证明了设计的可行性。当然,我们这款心率血氧检测机不仅仅方便个人及家庭使用,还可以在手术室、麻醉科和恢复室等医疗场所,通过心率血氧检测机评估患者的生理状态,指导麻醉剂的使用和剂量调整,以及监测患者从麻醉中苏醒的过程。
科技的日新月异将推动心率血氧检测机迈向新的高度,检测技术会向着更高的精确度和灵敏度方向发展。扩大应用场景的适应性,提升非接触式体温监测的稳定性,特别是在动态环境下对测量误差的优化处理。通过多功能的深度融合与集成,进一步优化其性能。扩展检测范围,可以检测血糖、血压、呼吸等多项生理指标,打造一体化、全方位的健康管理方案。充分满足现代人们对健康管理更高层次的需求,成为健康管理领域的关键技术力量。
基金项目
本文获广东理工学院课程考核改革项目(KCKHGG202401)、广东理工学院课程教学资源库项目(JXZYK2024005)支持。
NOTES
*通讯作者。