MAX30102是一个集成的脉搏血氧仪和心率监测模块。它包括内部发光二极管,光电探测器及其它元件。MAX30102提供了一个完整的系统解决方案来简化移动和可穿戴设备的设计过程。MAX30102通过一个标准的I2C接口和外部器件通讯。MAX30102内部使用特定波长(660nm)的光,以反射方式检测血液由于心率而产生的波动,由此可通过计算测量出心率。
血氧饱和度(oxygen saturation简写为SpO2),它是指在全部血容量中被结合O2容量占全部可结合的O2容量的百分比,是人体携带氧气能力的重要参考值。人体正常的SpO2应该不小于95%。
血氧饱和度的测量可以利用人体组织在血管搏动时造成透光率不同来实现。光源一般采用对动脉血中氧合血红蛋白(Hb02)和血红蛋白(Hb)有选择性的特定波长的发光二极管(一般选用660nm附近的红光和900nm附近的红外光)。当光束透过人体外周血管,由于动脉搏动充血容积变化导致这束光的透过光率发生改变,此时由光电变换器接收人体组织反射的光线,转变为电信号并将其放大和输出。由于脉搏是随心脏的搏动而周期性变化的信号,动脉血管容积也周期性变化,因此光电变换器的电信号变化周期就是脉搏率。同时根据血氧饱和度的定义,SpO2 一般由以下公式计算:
MAX30102基于光电容积描记法工作:
1.光发射:红光和红外LED交替发光,照射皮肤表面
2.光检测:光电二极管检测透过或反射的光强度
3.信号处理:内部电路对光电信号进行放大、滤波和数字化
4.数据输出:通过I²C接口输出原始PPG波形数据
测量心率可以通过分析红光PPG信号的周期性变化,识别心跳节律。
测量血氧可以利用氧合血红蛋白和脱氧血红蛋白对红光和红外光的吸收差异,计算血氧饱和度。
MAX30102提供了硬件基础,但准确的生理参数计算还需要配合相应的软件算法,这也是这个传感器既容易上手又有深度挖掘空间的原因。
与OLED的驱动处理不同,直接使用单片机的I2C外设(I2C1:P0_16、P0_17)可以实现和MAX30102的数据交互。AX30102的电源使用的是3.3V。
本次活动中,软件算法方面,我可没有足够的数学功底,直接使用了大佬提供的支持库。测量结果上看,感觉波动有点大,应该是处理上还是有很大的不足的。
视频:
链接:https://pan.baidu.com/s/138zoXdo_waF9dyU6B2IicQ
提取码:1234