#include <Wire.h>
#include <SparkFun_Bio_Sensor_Hub_Library.h>
SparkFun_Bio_Sensor_Hub bioHub;
void setup() {
Serial.begin(115200);
Wire.begin();
Serial.println("Initializing sensor...");
if (!bioHub.begin()) {
Serial.println("Sensor not found! Check connections.");
while (1); // Stalls here if sensor is not present.
}
delay(1000); // Wait for the sensor to stabilize
bioHub.configBpm(3); // PPG mode: 3 = RED + IR LED
Serial.println("Sensor ready, sending PPG data...");
}
void loop() {
bioData data = bioHub.readBpm(); // Read data
if (data.status == 0) { // If status is 0, data is valid
Serial.print("IR: ");
Serial.print(data.irLed);
Serial.print("\tRED: ");
Serial.print(data.redLed);
Serial.print("\tHeart Rate: ");
Serial.print(data.heartRate / 10.0); // heartRate LSB=0.1bpm
Serial.print("\tConfidence: ");
Serial.print(data.confidence);
Serial.print("\tStatus: ");
Serial.print(data.status);
Serial.print("\tOxygen: ");
Serial.println(data.oxygen);
} else {
Serial.print("Waiting for data, status: ");
Serial.println(data.status);
}
delay(50); // Approximately 20 Hz sample rate
}
As output, I see these lines going down infinitely:
IR: 0 RED: 0 Heart Rate: 0.00 Confidence: 0 Status: 0 Oxygen: 0
How can I solve this?