• +965 51122049
Keyestudio MAX30102 O2 SpO2 Blood Oxygen Pulse Monitor Sensor for Arduino

Keyestudio MAX30102 O2 SpO2 Blood Oxygen Pulse Monitor Sensor for Arduino

KWD3.500KWD3.500
0%Off

Keyestudio MAX30102 O2 SpO2 Blood Oxygen Pulse Monitor Sensor for Arduino


 
(Out of stock)

 


Share:

Overview

The Keyestudio MAX30102 heart rate sensor integrates a pulse oximeter and a heart rate monitor, and mainly uses the MAX30102EFD component.
It integrates an infrared LED, photodetector, optical components, and low-noise electronic circuitry with ambient light suppression.
The sensor contains an I2C communication interface.When using it, we use the communication interface to transmit the collected data to the MCU with I2C communication interface, and then calculate the heart rate and blood oxygen.
In order to facilitate the connection of the sensor to other devices, the sensor also comes with a 3mm diameter fixing hole.
 

Technical parameters

  • Working voltage: DC 5V
  • Working current: 60mA
  • Maximum power: 0.3W
  • Operating temperature range: -25°C to +65°C
  • Communication interface: I2C communication (4pin pitch is 2.54mm pin)
  • Size: 20*36*7mm
  • Weight: 2.5g
  • Environmental attributes: ROHS

 

Wiring Diagram


thumb
 

 

Test Code

#include 
#include "MAX30105.h"
#include "heartRate.h"
MAX30105 particleSensor;
const byte RATE_SIZE = 4; //Increase this for more averaging. 4 is good.
byte rates[RATE_SIZE]; //Array of heart rates
byte rateSpot = 0;
long lastBeat = 0; //Time at which the last beat occurred

float beatsPerMinute;
int beatAvg;

void setup()
{
  Serial.begin(115200);
  Serial.println("Initializing...");

  // Initialize sensor
  if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) //Use default I2C port, 400kHz speed
  {
    Serial.println("MAX30105 was not found. Please check wiring/power. ");
    while (1);
  }
  Serial.println("Place your index finger on the sensor with steady pressure.");

  particleSensor.setup(); //Configure sensor with default settings
  particleSensor.setPulseAmplitudeRed(0x0A); //Turn Red LED to low to indicate sensor is running
  particleSensor.setPulseAmplitudeGreen(0); //Turn off Green LED
}

void loop()
{
  long irValue = particleSensor.getIR();
  if (checkForBeat(irValue) == true)
  {
    //We sensed a beat!
    long delta = millis() - lastBeat;
    lastBeat = millis();
    beatsPerMinute = 60 / (delta / 1000.0);
    if (beatsPerMinute < 255 && beatsPerMinute > 20)
    {
      rates[rateSpot++] = (byte)beatsPerMinute; //Store this reading in the array
      rateSpot %= RATE_SIZE; //Wrap variable

      //Take average of readings
      beatAvg = 0;
      for (byte x = 0 ; x < RATE_SIZE ; x++)
        beatAvg += rates[x];
      beatAvg /= RATE_SIZE;
    }
  }

  Serial.print("IR=");
  Serial.print(irValue);
  Serial.print(", BPM=");
  Serial.print(beatsPerMinute);
  Serial.print(", Avg BPM=");
  Serial.print(beatAvg);
  if (irValue < 50000)
    Serial.print(" No finger?");
  Serial.println();
}


Pay attention: 
1.Before uploading the code, you must place the corresponding library file in the library file folder where the Arduino IDE is installed. 
2.In the experiment, we test the program with the 1.8.9 version of IDE, other versions of the IDE may not be compatible with the program. 
 

 

Test Result

According to the wiring diagram, connect the board to computer with a USB cable, upload the test code successfully, then open the serial port monitor, set the baud rate to 115200, and the serial port monitor displays as shown below.

thumb
 

The IR value is a value for judging whether or not the finger is close. When the finger is not close to the sensor, the IR value is small and No finger is displayed. The IR value increases sharply after close to the sensor, and the data to be tested starts to enter the test range value. BMP The value is heart rate and the AVG BMP value is blood oxygen saturation. (Avg BPM) blood oxygen saturation is 75-100, heart rate (BPM) 60-150.
 


Special Note: 
Before the test, first sense the finger pulse. The finger pulse should be fully fitted to the sensor for about 15 seconds to display the stable data. When the serial monitor has no data display, the finger pulse should be moved to facilitate sensor sensing, or press Reset button on the UNO board until get smoother data. 

thumb
 



 

Resources

https://fs.keyestudio.com/KS0462


Add your review

Your email address will not be published. Required fields are marked *

Please login to write review!

Upload photos

Looks like there are no reviews yet.

Related Products