SpO2センサMAX30102をArduino Unoで使う

MAX30102モジュール
store.nerokas.co.ke

配線
・VINを3.3に
・SCLをAIN5に
・SDAをAIN4に
・GND=GND
プルアップ抵抗が必要。4.7kΩでプルアップ。
f:id:seinzumtode:20210125225719p:plain

コード
github.com

#include <Wire.h>
#include "MAX30100_PulseOximeter.h"
#define REPORTING_PERIOD_MS     1000
PulseOximeter pox;
uint32_t tsLastReport = 0;

void onBeatDetected()
{
    Serial.println("Beat!");
}

void setup()
{
    Serial.begin(115200);
    Serial.print("Initializing pulse oximeter..");

    if (!pox.begin()) {
        Serial.println("FAILED");
        for(;;);
    } else {
        Serial.println("SUCCESS");
    }

    pox.setOnBeatDetectedCallback(onBeatDetected);
}

void loop()
{
    pox.update();

    if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
        Serial.print("Heart rate:");
        Serial.print(pox.getHeartRate());
        Serial.print("bpm / SpO2:");
        Serial.print(pox.getSpO2());
        Serial.println("%");

        tsLastReport = millis();
    }
}

f:id:seinzumtode:20210125225724p:plain