MAX30102 心率监测:把采集、判定和反馈连成一条闭环
校级重点大创项目。从读原始数据开始,到把结果反馈出去,整条链路一个人走完。
这是我主持的校级重点大创项目,物联网方向。目标听起来不复杂:测心率,异常了要能提示。但真正做下来,工作量基本都花在两件事上——原始数据到底能不能用,以及「什么时候该响」。
传感器给的是波形,不是数字
MAX30102 是 PPG(光电容积脉搏波)传感器,原理是用红光和红外光照射皮肤,测量血液对光的吸收随心跳发生的变化。它输出的是两路随时间变化的原始光强数据,不是现成的心率值。中间隔着一整条信号链:
- 去掉原始数据里的直流分量,只留下脉搏带来的交流成分;
- 滤掉工频干扰和手指晃动带进来的抖动;
- 在波形上做峰值检测,用相邻峰值的间隔算瞬时心率;
- 把若干个瞬时值做平滑,输出稳定的心率读数。
手指没放稳、按得太用力、环境光漏进传感器,都会让波形变形。所以除了算法本身,结构上还得把遮光做好——这也是我在这个项目里最直观的一课:很多信号问题其实是机械问题。
反馈才是闭环的另一半
只有读数不算系统。项目的重点在「反馈」:心率超出设定区间时,设备要主动提示,而不是等人自己去看屏幕。判定逻辑上真正要处理的是「抖一下就报警」——瞬时越界不算数,要连续满足条件才触发,否则误报频繁到没人当回事,这个功能等于没有。
所以整条链路是:采集 → 处理 → 判定 → 反馈,每一段都要单独验证,再串起来联调。
结果
传感器采集、数据处理与反馈逻辑全流程独立完成,实现心率实时监测与异常反馈的闭环,成果以第一作者发表于国际期刊。