Arduino + max30102 + DSP = SpO2
Uma vez que vi um oxímetro em Ali, me perguntei como funcionava. E quando descobri, fiquei surpreso com sua simplicidade e decidi repetir.
Depois de descobrir um pouco, acabou não sendo tão difícil e, como resultado, chegou aos seguintes módulos:
módulo de medição pronto para max30102 (medição do coração de oxigenação). O módulo pode ser qualquer um, o principal é aquele baseado em max30102.
cérebros para controlar o acima, um módulo em stm32f103.
-
- : https://github.com/Jasoji/stm32-max30102 , .
, .
, . , 60-80, . . , .
. max30102.c max30102_cal, :
if (R >= 0.36 && R < 0.66)
spo2 = (uint8_t)(107 - 20 * R);
else if (R >= 0.66 && R < 1)
spo2 = (uint8_t)(129.64 - 54 * R);
, . , ... . .. , . .
, ( max30102 ). , .
, max30102 . , . .
.
:
( )
. , , :
if(s.red > s.iRed) { // <o:p>
sampleBuff[0].red = s.iRed;
sampleBuff[0].iRed = s.red;
} else {
sampleBuff[0].red = s.red;
sampleBuff[0].iRed = s.iRed;
}
.
, .
. - ).
108, 101. . , . . , :
, - .
.
.
SpO2 = aR2+bR+c
R = (ACred/DCred) / (ACired/DCired)
a,b,c - ( , ). max30102 .
ACred - .
DCred - . .
.. .
.
, .. , . . , .
, .
:
1. , . , .
2. , .
. ( ).
.
.
, .
.
... .
, . , . , 99% 95%, .