Untitled

 avatar
unknown
plain_text
3 months ago
3.1 kB
7
Indexable
#include "MAX30100_PulseOximeter.h"
 
 
#define REPORTING_PERIOD_MS     1000
 
PulseOximeter pox;
uint32_t tsLastReport = 0;
 
void onBeatDetected()
{
    Serial.println("Beat!");
}
#include<SPI.h>
#include<Wire.h>
#include<Adafruit_GFX.h>
#include<Adafruit_SSD1306.h>


#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET); /* Object of class Adafruit_SSD1306 */

#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif
 
void setup()
{
 display.begin(SSD1306_SWITCHCAPVCC, 0x3C); /* Initialize display with address 0x3C */
  display.clearDisplay(); /* Clear display */
 display.setCursor(15,5); /* Set x,y coordinates */
 display.setTextSize(1); /* Select font size of text. Increases with size of argument. */
 display.setTextColor(WHITE); /* Color of text*/
  display.println("ElectronicWings"); /* Text to be displayed */
 display.display();
  delay(500);
  /* Draw rectangle with round edges. Parameters (x_co-ord,y-co-ord,width,height,color) */
 display.drawRoundRect(5, 35, 35, 25, 1, WHITE);
  /* Draw circle. Parameters (x_co-ord of origin,y-co-ord of origin,radius,color) */
 display.drawCircle(65, 50, 12, WHITE);
  /* Draw triangle. Parameters (x0,y0,x1,y1,x2,y2,width,color). (x0,y0), (x1,y1) and (x2,y2) are the co-ord of vertices of the triangle  */
  display.drawTriangle(90, 60, 105, 35, 120, 60, WHITE);
 display.display();
  delay(1000);
 display.clearDisplay();
  /* Draw image. Parameters (x_co-ord, y_co-ord, name of array containing image, width of image in pixels, height in pixels, color) */
 display.drawBitmap(0, 0, Arduino_Logo, 128, 32, WHITE);
 display.display();
  delay(1000); 
}
{
    Serial.begin(115200);
    Serial.print("Initializing pulse oximeter..");
    delay(3000);
 
    // Initialize the PulseOximeter instance
    // Failures are generally due to an improper wiring, missing power supply
    if (!pox.begin()) {
        Serial.println("FAILED");
        for(;;);
    } else {
        Serial.println("SUCCESS");
    }
    pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);
 
    // Register a callback for the beat detection
    pox.setOnBeatDetectedCallback(onBeatDetected);
}
 }
void loop()
{
 display.clearDisplay();
  display.drawBitmap(0, 0, Smiley_1, 128, 32, WHITE);
 display.display();
  delay(200);
 display.clearDisplay();
 display.drawBitmap(0, 0, Smiley_2, 128, 32, WHITE);
 display.display();
  delay(200);
 display.clearDisplay();
  display.drawBitmap(0, 0, Smiley_3, 128, 32, WHITE);
 display.display();
  delay(200);
 display.clearDisplay();
 display.drawBitmap(0, 0, Smiley_4, 128, 32, WHITE);
 display.display();
  delay(200);
}
{
    // Make sure to call update as fast as possible
    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();
    }
}
Editor is loading...
Leave a Comment