基于Arduino与PPG技术的低成本可穿戴生命体征监测系统设计与实现
1. 项目概述在医疗健康与公共卫生领域持续、精准的生命体征监测正变得前所未有的重要。对于身处一线的医护人员、社区工作者等群体他们长时间暴露在高风险环境中自身的健康状况不仅是个人问题更关系到整个防疫链条的稳定。传统的医疗监护设备虽然精准但往往体积庞大、价格昂贵且不便携难以满足一线工作者在移动、高强度作业下的实时健康监护需求。这正是“Raksha - 前线工作者可穿戴生命体征监测系统”诞生的背景。它不是一个简单的智能手环而是一个基于开源硬件和成熟传感技术旨在为特定高危人群提供低成本、高可靠性健康预警的工程解决方案。这个项目的核心是利用光电容积脉搏波描记法PPG和热敏电阻通过一个Arduino主控板实时采集佩戴者的心率和体温数据。数据不仅能在本地的小型显示屏上可视化更能通过蓝牙模块传输到智能手机形成从数据采集、本地处理到无线传输的完整链路。其最大的工程价值在于它巧妙地平衡了成本、功耗、精度和可穿戴性。整套系统的物料成本可以控制在15美元以内远低于市面上的商用健康监测设备这使得大规模部署成为可能。对于开发者、电子爱好者或是关注公共健康创新的团队而言这个项目提供了一个绝佳的范本展示了如何用触手可及的开源组件解决一个真实世界中的紧迫问题。2. 系统核心设计思路与方案选型2.1 需求分析与技术路径选择设计任何硬件系统第一步永远是明确需求边界。对于这个面向一线工作者的监测设备核心需求可以归纳为以下几点连续监测心率、体温、可穿戴与舒适性、数据可访问性实时查看与远程传输、长续航、高可靠性以及极致的成本控制。基于这些需求我们放弃了复杂的方案选择了一条务实的技术路径。在心率监测方案上我们面临两个主流选择心电图ECG和光电容积脉搏波描记法PPG。ECG是临床金标准通过测量心脏电活动来获取心率精度极高。但它需要至少两个电极与皮肤保持良好接触通常需贴在胸部这对于需要自由活动的一线工作者来说舒适性和便利性是大问题。而PPG技术则是一种光学测量法。它的原理很简单向皮肤通常是指尖或手腕发射特定波长的光如绿光并用光电传感器检测反射或透射的光强度。随着心脏的搏动皮下毛细血管中的血流量会发生周期性变化导致对光的吸收量也随之变化从而在光电传感器上产生一个微弱的、与脉搏同步的交流信号。通过分析这个信号的频率就能计算出心率。注意PPG信号极易受到运动伪影的干扰。当佩戴者剧烈运动时传感器与皮肤的相对位移会导致信号基线漂移甚至淹没有效脉搏波。这是所有PPG设备面临的共同挑战。在本项目中由于一线工作者活动多样必须在算法或硬件上考虑一定的抗干扰能力尽管开源脉冲传感器自带的库已包含基础滤波。因此选择PPG而非ECG核心考量是可穿戴性和用户体验。PPG传感器可以做成很小的模块轻松集成到手环、贴片中实现无感佩戴。虽然绝对精度可能略逊于ECG但对于监测心率趋势、发现异常波动如持续心动过速这一核心目标来说已经完全足够。2.2 主控与传感单元选型解析主控芯片Arduino Pro Mini 的权衡原作者最初考虑过ESP12E即ESP8266模块这是一款集成了Wi-Fi的强大芯片可以直接将数据上传到云端服务器如ThingSpeak实现真正的物联网连接。这听起来很诱人但为什么最终换成了更“简陋”的Arduino Pro Mini呢关键点在于模拟输入引脚ADC的数量和系统功耗。ESP8266通常只有一个可用的高精度ADC引脚。而本项目需要同时连接两个模拟传感器PPG传感器输出模拟电压信号和热敏电阻通过分压电路也输出模拟电压。虽然可以通过模拟开关复用ADC但这会增加电路复杂度和编程难度。Arduino Pro Mini基于ATmega328P则提供了6个ADC通道完美满足需求。此外在持续监测的应用中功耗至关重要。ESP8266的Wi-Fi功能是耗电大户即使深度睡眠其整体功耗也高于处于低功耗模式下的ATmega328P。对于电池供电的可穿戴设备每一毫安时的电量都需精打细算。选择Pro Mini是在功能、复杂度和功耗之间做出的一个典型工程折衷。传感器选型够用就好PPG心率传感器项目使用了来自pulsesensor.com的成品模块。这是一个经过市场检验的开源传感器社区支持好有现成的Arduino库能大大降低开发门槛。它内部集成了绿光LED、光电检测器和模拟前端直接输出一个0-3.3V或0-5V的模拟信号其电压波动即对应血流变化。对于想进一步探索的开发者文中提到的MAX30102是更高级的集成模块它同时集成了红光和红外光LED不仅可以测心率还能计算血氧饱和度SpO2功能更强但成本和功耗也稍高。温度传感器选用10kΩ的负温度系数NTC热敏电阻。这是一种成本极低通常几分钱、灵敏度高的温度传感方案。它的原理是电阻值随温度升高而降低。通过将其与一个固定电阻串联组成分压电路测量热敏电阻上的分压就能反推出其电阻值进而利用公式计算出温度。为什么不使用更线性的数字温度传感器如DS18B20呢主要还是成本和接口考虑。DS18B20需要单总线协议虽然精度高但编程稍复杂且单价高于热敏电阻。在体温监测这个场景下±0.5°C的精度已经足够NTC热敏电阻的方案更具性价比。无线传输HC-05蓝牙模块选择经典的HC-05蓝牙2.0模块而非低功耗蓝牙BLE如HM-10是基于兼容性和开发便利性的考量。HC-05可以与绝大多数智能手机的蓝牙功能配对传输速率稳定且AT指令集成熟资料丰富。虽然BLE在功耗上有巨大优势但对于这个需要持续传输数据流的应用传统蓝牙的功耗在可接受范围内并且其连接更稳定不易断开。当然正如作者在“未来增强”中提到的改用BLE是优化续航的一个明确方向。2.3 供电与结构设计考量供电系统采用单节3.7V锂聚合物Li-Po充电电池。这是可穿戴设备的标配能量密度高、放电平稳。Arduino Pro Mini的工作电压是5V因此需要一个升压电路通常Pro Mini板载了将电池的3.7V满电约4.2V放电截止约3.0V稳定到5V。良好的电池管理包括硬件上的充电电路和保护板以及软件上的睡眠策略。例如可以设定在佩戴者静止时降低采样频率或让主控进入休眠模式以大幅延长续航。结构设计3D打印外壳不仅仅是为了美观更是功能性的必需。一个好的外壳需要1)牢固固定所有电子元件防止内部晃动导致连接线断裂2)精准开孔确保PPG传感器透镜紧贴皮肤且热敏电阻能良好接触体温通常需要金属导热片3)佩戴舒适边缘圆滑重量分布均匀4)防水防尘至少达到生活防水等级以适应一线工作者可能遇到的汗液、灰尘等环境。原作者从电机绕组中取材绝缘铜线进行内部连接这是一个非常聪明的做法这种线材柔韧性极佳耐弯折远胜于普通的杜邦线或硬质导线极大地提升了设备的物理可靠性。3. 硬件电路设计与核心原理详解3.1 系统电路框图与连接整个系统的信号流和电源流可以清晰地用以下框图表示但我们将用文字详细描述每个环节[3.7V Li-Po电池] - [升压/稳压至5V] - [为整个系统供电] | v [Arduino Pro Mini] --- [HC-05蓝牙模块] (TX/RX通信) | (ADC0) | v v [PPG传感器] [智能手机/终端] | (模拟信号脉搏波) v [皮肤组织] | v [Arduino Pro Mini] --- [热敏电阻分压电路] (ADC1) | (处理、计算) v [小型OLED/LCD显示屏] (本地显示)具体接线方案基于Arduino Pro Mini电源部分电池正负极直接连接到Pro Mini的RAW或VCC具体看板子定义和GND引脚。确保电池带有保护板。Pro Mini的VCC5V输出和GND将为其他模块供电。PPG传感器VCC- Arduino5VGND- ArduinoGND信号线 (S)- ArduinoA0(模拟输入引脚0)热敏电阻电路这是一个经典的分压电路。将10kΩ热敏电阻与一个10kΩ的固定电阻串联。连接点Arduino 5V-10kΩ固定电阻-(连接点A)-10kΩ NTC热敏电阻-Arduino GND。测量点将连接点A接到Arduino的A1引脚。这样A1引脚上的电压值就随热敏电阻的阻值即温度变化。HC-05蓝牙模块VCC- Arduino5VGND- ArduinoGNDTXD- ArduinoRX(数字引脚0注意这会影响串口监视器编程时需断开)RXD- ArduinoTX(数字引脚1)显示屏以I2C OLED为例VCC- Arduino5VGND- ArduinoGNDSCL- ArduinoA5(在Pro Mini上I2C时钟线)SDA- ArduinoA4(在Pro Mini上I2C数据线)实操心得在焊接或连接所有元件时建议先在一个面包板上搭建完整电路并测试通过再进行永久性的焊接。对于可穿戴设备所有焊点最好使用热熔胶或硅胶进行加固防止因长期弯折而脱焊。电源走线应尽可能粗短并在关键芯片的电源引脚附近放置一个10-100μF的电解电容进行退耦以稳定电源减少因无线模块发射信号导致的电压波动。3.2 PPG信号采集原理与电路PPG传感器模块内部已经完成了最精妙的部分。它通常包含一个驱动电路以恒定电流驱动绿光LED发光。紧挨着LED的是一个对绿光敏感的光电晶体管或光电二极管。当光线射入皮肤组织后一部分被骨骼、肌肉、静脉血等组织吸收这部分是“直流”分量另一部分到达动脉血管。随着心脏的收缩和舒张动脉血管的容积会周期性变化导致对光线的吸收量也发生周期性变化这部分是“交流”分量。光电传感器接收到的总光强就是这个“直流”背景上叠加了一个微小的“交流”脉搏波。传感器内部的模拟前端可能是一个运放构成的跨阻放大器将这个微弱的光电流信号转换并放大为一个电压信号。我们从信号线S读到的就是这个包含了脉搏信息的模拟电压。这个电压信号通常只有几十毫伏的波动叠加在一个较大的直流偏置上例如1.5V。在Arduino代码中我们需要通过analogRead()函数以足够高的频率通常100-500Hz采样这个电压然后通过数字信号处理算法如带通滤波、寻找峰值来提取出脉搏的频率即心率。3.3 温度测量原理与计算热敏电阻的测量本质上是电阻测量。我们构建的分压电路其输出V_out的计算公式为V_out Vcc * (R_ntc / (R_fixed R_ntc))其中Vcc是5VR_fixed是10kΩ固定电阻R_ntc是热敏电阻的实时阻值。通过analogRead(A1)我们得到一个ADC数值adc_val0-1023。V_out (adc_val / 1023.0) * Vcc。然后可以反推出R_ntcR_ntc R_fixed * (Vcc / V_out - 1)或R_ntc R_fixed * ( (1023.0 / adc_val) - 1 )得到R_ntc后就需要将其转换为温度。对于NTC热敏电阻其阻值与温度的关系是非线性的最精确的描述是Steinhart-Hart方程1/T A B * ln(R) C * [ln(R)]^3其中T是绝对温度单位开尔文KR是热敏电阻在当前温度下的阻值单位欧姆A,B,C是热敏电阻的特性系数通常由制造商提供。对于常见的10kΩ NTC热敏电阻B值约为3950一套近似的系数是A0.001129148,B0.000234125,C8.76741e-8。代码中正是使用了这组系数。计算出的T是开尔文温度减去273.15即得到摄氏度温度。重要提示不同批次、不同型号的热敏电阻其A、B、C系数可能有细微差别。最准确的做法是查阅该特定热敏电阻的数据手册。如果没有可以通过测量三个已知温度点如冰水混合物0°C、室温25°C、体温37°C下的电阻值代入方程求解出专属的系数这将大大提高测量精度。4. 软件设计与核心算法实现4.1 程序整体架构与流程系统的软件核心运行在Arduino Pro Mini上需要完成多任务管理模拟信号采样、数字信号处理心率计算、温度计算、数据显示和蓝牙数据传输。由于Arduino是单线程的我们需要在一个loop()函数中高效地轮询这些任务。一个典型的程序架构如下初始化 (setup())初始化串口用于调试和蓝牙通信。初始化I2C总线配置显示屏。初始化心率传感器如果使用库则调用begin()函数。设置定时器或记录初始时间戳用于控制采样频率。主循环 (loop())高频任务每2-10毫秒执行一次读取PPG传感器的模拟值analogRead(A0)。这是整个心率检测的基础采样率必须足够高100Hz才能捕捉到脉搏波的细节。中频任务每50-100毫秒执行一次将采集到的一批PPG原始数据送入心率计算算法更新心率和IBI值。读取热敏电阻的ADC值analogRead(A1)计算当前温度。温度变化较慢无需高频采样。低频任务每500-1000毫秒执行一次在显示屏上更新心率、体温的数值和波形图。通过串口即蓝牙模块将打包好的数据如“HR:75, Temp:36.5”发送出去。4.2 心率检测算法详解直接从PPG的模拟信号中提取心率需要经过几个步骤。许多开源PPG传感器库如PulseSensor Playground已经封装了这些算法但理解其原理至关重要。信号预处理滤波去除直流分量原始信号包含一个大的直流偏置。我们更关心交流的脉搏波部分。通常做法是计算一个滑动窗口如2秒内信号的平均值然后用每个采样值减去这个平均值得到以零为中心的交流信号。带通滤波人体心率范围通常在0.5 Hz到4 Hz即30到240次/分钟。我们需要设计一个数字带通滤波器如二阶巴特沃斯滤波器只保留这个频段内的信号从而极大地抑制基线漂移低频噪声和高频肌电干扰、工频干扰。峰值检测 经过滤波后的信号是一个相对干净的脉搏波序列。接下来就是寻找每个脉搏波的峰值点即波峰。一个简单而有效的算法是设置一个动态阈值。初始阈值可以设为信号平均值的某个倍数。遍历滤波后的数据点。当一个数据点高于其前后两个点并且高于当前阈值时将其标记为一个候选峰值。一旦检测到一个有效峰值记录下当前时间毫秒。并进入一个“不应期”例如200-300毫秒在这段时间内忽略其他峰值防止对同一个脉搏波重复计数。根据新峰值的数据动态更新阈值例如新阈值 旧阈值 * 0.9 当前峰值幅度 * 0.1以适应信号幅度的缓慢变化。心率与IBI计算心搏间期IBI记录下连续两个有效峰值之间的时间间隔单位毫秒。这就是IBI它直接反映了心率变异性HRV。瞬时心率心率 (BPM) 60000 / IBI。例如IBI为800ms则心率为75 BPM。平均心率为了显示更稳定通常计算过去5-10个IBI的平均值再转换为心率。以下是算法核心部分的伪代码示意// 伪代码展示核心逻辑 long lastBeatTime 0; // 上一次心跳的时间戳 int beatInterval 0; // 心搏间期(IBI) int BPM 0; // 心率 bool beatDetected false; int signalThreshold 512; // 初始阈值根据实际信号调整 void processPPGSample(int rawSignal) { // 1. 去除直流分量 (简化高通滤波) static int dcOffset 0; dcOffset (dcOffset * 31 rawSignal) / 32; // 一阶低通近似为直流 int acSignal rawSignal - dcOffset; // 2. 软件带通滤波 (此处省略具体滤波器系数) int filteredSignal bandpassFilter(acSignal); // 3. 峰值检测 static int lastFiltered 0; if (filteredSignal signalThreshold filteredSignal lastFiltered) { // 上升沿可能是峰值起点 } lastFiltered filteredSignal; // 检测到峰值后 if (peakIsValid) { long currentTime millis(); beatInterval currentTime - lastBeatTime; lastBeatTime currentTime; // 计算BPM避免除零错误 if (beatInterval 0) { BPM 60000 / beatInterval; // 对BPM进行合理性限制例如30-240 BPM BPM constrain(BPM, 30, 240); } // 动态更新阈值 signalThreshold signalThreshold * 0.9 peakAmplitude * 0.1; beatDetected true; } }4.3 温度计算与数据融合温度计算相对直接关键在于精度和稳定性。每次读取温度时可以进行多次ADC采样例如16次然后取平均值以降低随机噪声。计算出的温度值也可以进行滑动平均滤波避免显示数值跳动过快。一个更进阶的思路是数据融合。心率和体温并非独立变量。例如在感染初期体温可能尚未明显升高但心率可能因免疫系统激活而加快静息心率升高。我们可以设定一些简单的规则进行初级预警规则1连续10分钟体温 37.3°C触发低级别体温警报。规则2连续30分钟静息心率需判断佩戴者处于静止状态比个人基线值高出20%触发心率异常警报。规则3规则1和规则2同时满足触发高级别健康风险警报。这些规则可以实现在Arduino端也可以将原始数据发送到手机App在手机端进行更复杂的分析。在资源受限的嵌入式端实现复杂算法如原作者提到的TinyML异常检测挑战很大但简单的阈值判断是完全可行的。4.4 蓝牙数据传输协议设计HC-05模块将Arduino的串口数据透明地传输到手机。我们需要设计一个简单、可解析的数据协议。推荐使用字符串格式因为它易于在Arduino端生成在手机端无论是Android还是iOS也易于用split函数解析。例如每秒钟发送一帧数据HR:75,IBI:800,TEMP:36.5,BATT:89\nHR心率值。IBI心搏间期可用于分析心率变异性。TEMP体温值。BATT电池电量百分比需要额外的ADC通道测量电池电压并换算。\n换行符作为帧结束标志方便手机端按行读取。在Arduino代码中使用Serial.print()和Serial.println()函数发送即可。手机端需要开发一个简单的App可以使用MIT App Inventor、Android Studio或React Native等工具监听蓝牙串口接收数据解析字符串并更新UI显示同时可以将数据记录到本地文件或上传到服务器。5. 系统集成、测试与优化5.1 组装、校准与初步测试在完成电路焊接和3D打印外壳后进入组装与测试阶段。这个阶段的目标是验证每个功能模块独立工作正常并完成必要的校准。分模块测试供电测试连接电池用万用表测量Arduino的5V引脚确保电压稳定在4.8V-5.2V之间。观察整机空载电流应在几十毫安级别。传感器测试PPG传感器将手指稳定地放在传感器上通过Arduino IDE的串口绘图器Serial Plotter观察A0引脚输出的波形。你应该能看到一个清晰的、周期性的脉搏波形。如果波形杂乱或幅度太小尝试调整按压力度和位置。热敏电阻将热敏电阻握在手中或置于腋下通过串口监视器打印计算出的温度值。观察其是否随温度变化而灵敏变化。可以同时用一支准确的水银或电子体温计做对比。蓝牙测试将HC-05与手机配对。在手机上安装一个通用的蓝牙串口调试App如“Serial Bluetooth Terminal”。在Arduino代码中编写简单的Serial.println(Hello Bluetooth)查看手机端是否能收到信息。显示测试编写简单的测试程序在屏幕上显示“Hello World”和基本图形确保连接正确。系统校准温度校准这是最重要的校准环节。准备两杯水冰水混合物约0°C和温水用水银温度计测至约37°C。将热敏电阻分别浸入注意防水记录下ADC读数和计算出的温度。由于公式系数、固定电阻精度、ADC参考电压误差等因素计算值很可能与真实值有偏差。我们可以计算出一个**偏移量Offset和比例因子Scale**进行软件补偿。例如T_corrected (T_calculated * Scale) Offset。通过两点校准法解算出Scale和Offset。心率验证在静止状态下用手指同时按压PPG传感器和另一只手的桡动脉摸脉搏人工计数15秒的脉搏数乘以4与设备显示的心率进行对比。多次测量取平均评估设备准确性。5.2 整机集成与佩戴测试将所有模块装入外壳注意导线布局避免短路并确保PPG传感器窗口和热敏电阻导热面与外壳开口对齐。进行长时间的佩戴测试至少1-2小时。测试中需要重点关注佩戴舒适度与信号稳定性在不同活动状态下静坐、慢走、模拟工作动作观察心率波形是否稳定。如果运动时信号完全丢失可能需要优化算法或考虑增加加速度计进行运动补偿这是未来高级版本的方向。电池续航测试记录设备从满电到关机的工作时间。这决定了充电频率。如果续航不达标需要从软件和硬件两方面优化软件优化在不影响基本功能的前提下降低显示屏刷新率、降低蓝牙发送频率、让主控在采样间隙进入空闲Idle或掉电Power-down睡眠模式。硬件优化选用容量更大的电池或检查电路中是否存在异常耗电的元件。数据传输可靠性在佩戴者走动、周围有其他蓝牙/Wi-Fi设备干扰的环境下测试蓝牙连接是否稳定数据是否持续传输且无大量丢包。5.3 常见问题与故障排查在开发此类生物信号监测设备时会遇到一些典型问题。以下是一个快速排查指南问题现象可能原因排查步骤与解决方案心率读数不稳定或为01. 传感器接触不良。2. 环境光干扰。3. 信号太弱算法阈值设置不当。4. 运动伪影过大。1. 确保传感器紧贴皮肤无松动。可尝试在传感器表面涂抹少量清水或耦合剂增强光接触。2. 避免强光直射传感器部位。传感器模块本身应有遮光结构。3. 通过串口绘图器观察原始信号调整算法中的信号阈值和增益如果传感器可调。4. 让佩戴者保持静止片刻再观察。考虑在代码中增加运动状态判断运动时暂停心率显示或给出提示。体温读数不准或漂移1. 热敏电阻与皮肤接触不良。2. 分压电阻精度差或热敏电阻B值不匹配。3. ADC参考电压不准。4. 未进行校准。1. 确保热敏电阻通过金属片或导热硅胶与皮肤良好接触。2. 使用1%精度的固定电阻并获取热敏电阻的精确B值或Steinhart-Hart系数。3. 使用外部的精密基准电压源为Arduino的AREF引脚供电并在代码中设置analogReference(EXTERNAL)。4.必须执行两点温度校准这是提高精度的最关键步骤。蓝牙连接失败或经常断开1. 供电不足。2. 接线错误TX/RX反接。3. 距离过远或有障碍物。4. 模块进入AT命令模式。1. 蓝牙模块发射时电流较大确保电源能提供足够电流50mA。在模块VCC和GND间并联一个100μF电容。2. 检查接线模块TXD接Arduino RX模块RXD接Arduino TX。3. 经典蓝牙有效距离约10米无障碍确保在此范围内。4. 检查模块是否意外进入了AT命令模式通常由某个引脚电平控制确保其处于自动连接Slave模式。设备功耗过高续航短1. 显示屏、蓝牙常开。2. 主控未进入睡眠。3. 存在短路或元件漏电。1. 采用间歇工作策略每5秒唤醒一次采样、计算、显示、发送数据然后立即进入深度睡眠。2. 使用Arduino的低功耗库如LowPower.h让MCU在空闲时进入SLEEP_MODE_PWR_DOWN。3. 断开所有外设用万用表测量静态电流应低于1mA。逐一连接外设定位耗电大户。3D打印外壳佩戴不适1. 材料硬边缘锐利。2. 尺寸不合适。3. 固定方式不佳。1. 使用砂纸打磨所有边缘和接触面。考虑使用更柔软、有弹性的打印材料如TPU。2. 根据目标用户手腕尺寸重新调整模型。3. 采用魔术贴或弹性表带替代硬质卡扣提高适应性。6. 项目总结与未来演进方向经过从设计、选型、制作到测试的完整流程这个基于Arduino和PPG的可穿戴生命体征监测系统已经能够可靠地完成其核心使命以极低的成本为一线工作者提供连续的心率和体温监测并通过蓝牙实现数据外传。它证明了开源硬件和传感器技术在解决特定领域实际问题上的巨大潜力和敏捷性。在实际部署中我个人体会最深的有两点一是可靠性源于细节。比如那根从电机里拆出来的绝缘铜线看似不起眼却从根本上解决了内部连接线因反复弯折而断裂的隐患再比如对热敏电阻进行两点校准虽然增加了步骤却将体温测量误差从±2°C降低到了±0.3°C以内这直接决定了设备的预警价值。二是必须在理想与现实间取舍。我们都希望设备功能强大如直接联网、血氧监测、续航超长、精度媲美医疗级但受限于成本、体积和功耗必须做出选择。本项目选择PPG而非ECG选择蓝牙而非Wi-Fi选择Arduino Pro Mini而非ESP32都是这种工程思维的体现——找到满足核心需求的最简方案。这个项目作为一个起点有着丰富的扩展可能性这也是其作为开源项目的魅力所在传感器升级将脉冲传感器替换为MAX30102或更新的MAX30105可以增加血氧饱和度SpO2监测功能。这对于呼吸道疾病包括COVID-19的早期筛查有重要参考价值。低功耗与智能化主控升级改用支持蓝牙低功耗BLE的微控制器如nRF52832或ESP32仅使用其BLE功能。BLE在保持连接的同时功耗可比传统蓝牙低一个数量级。算法升级引入运动传感器如MPU6050采集三轴加速度数据用于识别佩戴者活动状态静止、行走、奔跑并据此对PPG信号进行运动伪影补偿大幅提升动态心率监测精度。边缘智能利用TinyML框架在设备端运行轻量级机器学习模型。例如可以训练一个分类模型实时判断当前心率波形是否正常或识别出疑似房颤等心律失常的波形模式实现本地化的初步异常检测减少对手机或云端的依赖。数据平台与可视化开发功能更完善的手机App或Web仪表板。不仅能显示实时数据还能绘制长期的历史趋势图计算个人健康基线设置个性化预警阈值并支持将匿名化数据安全地同步到云端供医护人员或研究人员进行群体健康分析。最后这个项目的意义超越了技术本身。它展示了如何用有限的资源为那些守护我们健康的人构建一道他们自己的健康防线。当技术以如此具体和关怀的方式落地时它便拥有了最温暖的力量。