Arduino + max30102 + DSP = SpO2

Arduino + max30102 + DSP = SpO2

Once I saw an oximeter on Ali, I wondered how it worked. And when I figured it out, I was surprised at its simplicity and decided to repeat it.





Having figured it out a little, it turned out to be not so complicated and ended up with the following modules:





  • ready-made measuring module for max30102 (heart of oxygenation measurement). The module can of course be any, the main thing is that based on max30102.





  • brains to control the above, a module on stm32f103.





  • and then where to put all this led display on the i2c. 





- : https://github.com/Jasoji/stm32-max30102  , .





, Eclipse.





, .





, . , 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%, .








All Articles