#include #include "MAX30105.h" #include "heartRate.h" MAX30105 sensor; #define SDA_PIN D4 #define SCL_PIN D5 #define LED_PIN D6 // XIAO ESP32-C3 output LED pin long lastBeat = 0; float beatsPerMinute = 0; void setup() { Serial.begin(115200); delay(1000); pinMode(LED_PIN, OUTPUT); digitalWrite(LED_PIN, LOW); Wire.begin(SDA_PIN, SCL_PIN); if (!sensor.begin(Wire, I2C_SPEED_STANDARD)) { Serial.println("Sensor not found. Check wiring."); while (1); } sensor.setup(); sensor.setPulseAmplitudeRed(0x1F); sensor.setPulseAmplitudeIR(0x1F); sensor.setPulseAmplitudeGreen(0); Serial.println("Place your fingertip on the sensor."); } void loop() { long irValue = sensor.getIR(); if (irValue > 5000) { if (checkForBeat(irValue)) { long delta = millis() - lastBeat; lastBeat = millis(); beatsPerMinute = 60.0 / (delta / 1000.0); Serial.print("Beat detected! BPM: "); Serial.println(beatsPerMinute); digitalWrite(LED_PIN, HIGH); delay(80); digitalWrite(LED_PIN, LOW); } } else { Serial.println("No finger detected"); digitalWrite(LED_PIN, LOW); } delay(20); }