Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h>
- #include "MAX30100_PulseOximeter.h"
- #include <LiquidCrystal_I2C.h>
- #define REPORTING_PERIOD_MS 1000
- LiquidCrystal_I2C lcd(0x27, 16, 2);
- PulseOximeter pox;
- uint32_t tsLastReport = 0;
- int Buzzer = 4;
- int LED = 18 ;
- void onBeatDetected()
- {
- Serial.println("Beat!");
- }
- void setup()
- {
- lcd.init();
- lcd.backlight();
- Serial.begin(115200);
- Wire.begin();
- pinMode(Buzzer, OUTPUT);
- pinMode(LED, OUTPUT);
- 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)
- {
- int hR = pox.getHeartRate();
- int oR = pox.getSpO2();
- Serial.print("Heart rate:");
- Serial.print(hR);
- Serial.print("bpm / O2:");
- Serial.print(oR);
- Serial.println("%");
- lcd.setCursor(0, 0); // positionner le cursor a 0,0
- lcd.print("Heart rate:"); // Printe "Distance" sur LCD
- lcd.print(hR);
- lcd.setCursor(0, 1); // positionner le cursor a 0,0
- lcd.print("O2:"); // Printe "Distance" sur LCD
- lcd.print(oR);
- if (pox.getSpO2() == 0)
- {
- digitalWrite(Buzzer, LOW);
- digitalWrite(LED, LOW);
- }
- else if (pox.getSpO2() >= 95)
- {
- digitalWrite(Buzzer, LOW);
- digitalWrite(LED, LOW);
- }
- else if (pox.getSpO2() < 95 && pox.getSpO2() > 0)
- {
- digitalWrite(Buzzer, HIGH);
- digitalWrite(LED, HIGH);
- } tsLastReport = millis();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement