I'm new in using arduino IDE and I have a code for Pulse Oximeter Max30100, NodeMCU ESP8266 and OLED screen, but I have Pulse Oximeter Max30102 -it was available is market- instead of Max30100.
When I changed the library, some members doesn't work.
this is the code:
#include <Wire.h>
//#include "MAX30100_PulseOximeter.h" // this was the previous library
#include "MAX30102.h" // this is the library I added instead of the above one
#define BLYNK_PRINT Serial
#include <Blynk.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include "Wire.h"
#include "Adafruit_GFX.h"
#include "OakOLED.h"
#define REPORTING_PERIOD_MS 1000
OakOLED oled;
char auth[] = "Iewd2gc7QynNOsT_3ZMAnWo8sU9uffU9"; // You should get Auth Token in the Blynk App.
char ssid[] = "*****"; // Your WiFi credentials.
char pass[] = "*********";
// Connections : SCL PIN - D1 , SDA PIN - D2 , INT PIN - D0
//PulseOximeter pox; // and this also was the original line for the next line
MAX30102 pox; // this is the line I've added
float BPM, SpO2;
uint32_t tsLastReport = 0;
const unsigned char bitmap [] PROGMEM=
{
0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x18, 0x00, 0x0f, 0xe0, 0x7f, 0x00, 0x3f, 0xf9, 0xff, 0xc0,
0x7f, 0xf9, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0xe0, 0x7f, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xf0,
0xff, 0xf7, 0xff, 0xf0, 0xff, 0xe7, 0xff, 0xf0, 0xff, 0xe7, 0xff, 0xf0, 0x7f, 0xdb, 0xff, 0xe0,
0x7f, 0x9b, 0xff, 0xe0, 0x00, 0x3b, 0xc0, 0x00, 0x3f, 0xf9, 0x9f, 0xc0, 0x3f, 0xfd, 0xbf, 0xc0,
0x1f, 0xfd, 0xbf, 0x80, 0x0f, 0xfd, 0x7f, 0x00, 0x07, 0xfe, 0x7e, 0x00, 0x03, 0xfe, 0xfc, 0x00,
0x01, 0xff, 0xf8, 0x00, 0x00, 0xff, 0xf0, 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x00, 0x3f, 0xc0, 0x00,
0x00, 0x0f, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
void onBeatDetected()
{
Serial.println("Beat Detected!");
oled.drawBitmap( 60, 20, bitmap, 28, 28, 1);
oled.display();
}
void setup() {
Serial.begin(115200);
oled.begin();
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(1);
oled.setCursor(0, 0);
oled.println("Initializing pulse oximeter..");
oled.display();
pinMode(16, OUTPUT);
Blynk.begin(auth, ssid, pass);
Serial.print("Initializing Pulse Oximeter..");
if (!pox.begin())
{
Serial.println("FAILED");
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(1);
oled.setCursor(0, 0);
oled.println("FAILED");
oled.display();
for(;;);
}
else
{
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(1);
oled.setCursor(0, 0);
oled.println("SUCCESS");
oled.display();
Serial.println("SUCCESS");
pox.setOnBeatDetectedCallback(onBeatDetected);
}
}
void loop() {
// put your main code here, to run repeatedly:
pox.update();
Blynk.run();
BPM = pox.getHeartRate();
SpO2 = pox.getSpO2();
if (millis() - tsLastReport > REPORTING_PERIOD_MS)
{
Serial.print("Heart rate:");
Serial.print(BPM);
Serial.print(" bpm / SpO2:");
Serial.print(SpO2);
Serial.println(" %");
Blynk.virtualWrite(V2, BPM);
Blynk.virtualWrite(V3, SpO2);
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(1);
oled.setCursor(0,16);
oled.println(pox.getHeartRate());
oled.setTextSize(1);
oled.setTextColor(1);
oled.setCursor(0, 0);
oled.println("Heart BPM");
oled.setTextSize(1);
oled.setTextColor(1);
oled.setCursor(0, 30);
oled.println("Spo2");
oled.setTextSize(1);
oled.setTextColor(1);
oled.setCursor(0,45);
oled.println(pox.getSpO2());
oled.display();
tsLastReport = millis();
}
}
and the error appeared:
C:\Users\TOSHIBA\Desktop\Final Project\Doc\doc2\Final 2\Project code\sketch_jul25b_ma\sketch_jul25b_ma.ino: In function 'void setup()':
sketch_jul25b_ma:81:14: error: 'class MAX30102' has no member named 'setOnBeatDetectedCallback'
81 | pox.setOnBeatDetectedCallback(onBeatDetected);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\TOSHIBA\Desktop\Final Project\Doc\doc2\Final 2\Project code\sketch_jul25b_ma\sketch_jul25b_ma.ino: In function 'void loop()':
sketch_jul25b_ma:88:11: error: 'class MAX30102' has no member named 'update'
88 | pox.update();
| ^~~~~~
sketch_jul25b_ma:91:15: error: 'class MAX30102' has no member named 'getHeartRate'
91 | BPM = pox.getHeartRate();
| ^~~~~~~~~~~~
sketch_jul25b_ma:92:16: error: 'class MAX30102' has no member named 'getSpO2'
92 | SpO2 = pox.getSpO2();
| ^~~~~~~
sketch_jul25b_ma:108:26: error: 'class MAX30102' has no member named 'getHeartRate'
108 | oled.println(pox.getHeartRate());
| ^~~~~~~~~~~~
sketch_jul25b_ma:123:26: error: 'class MAX30102' has no member named 'getSpO2'
123 | oled.println(pox.getSpO2());
| ^~~~~~~
exit status 1
'class MAX30102' has no member named 'setOnBeatDetectedCallback'
Please help me fixing this I have to fix it cause it's my graduation project
Please help me