hello guys
this is my first post on this awesome community i have a single issue which is every time i connect to Blynk or i use the Blynk libraries the whole project keeps working but the MAX30100 stops reading BPM & SPO2 when i comment every line of the blynk library it works any suggestions
thank you
#include "MAX30100_PulseOximeter.h"
#define REPORTING_PERIOD_MS 1000
#include <MFRC522.h>
#include <SPI.h>
#define BLYNK_PRINT Serial
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
#define RST_PIN 8
#define SS_PIN 53
char auth[] = "";
char ssid[] = "";
char pass[] = "";
#define EspSerial Serial1
MFRC522 mfrc522(SS_PIN, RST_PIN);
String read_rfid;
//
String ok_rfid1 = "3fc2ad29";
//String ok_rfid1 = "31c2ad29";
PulseOximeter pox;
uint32_t tsLastReport = 0;
#define REPORTING_PERIOD_MS 1000
int mic = 5;
int led1 = 3;
int led2 = 4;
int micValue;
int fsrSensor = A0;
int fsrValue;
int temperatureSensor = A1;
int tempValue ;
int tempInCelisus;
int count = 0;
void onBeatDetected()
{
Serial.println("Beat!");
}
ESP8266 wifi(&EspSerial);
#define ESP8266_BAUD 115200
BlynkTimer timer;
// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void myTimerEvent()
{
// You can send any value at any time.
// Please don't send more that 10 values per second.
//Blynk.virtualWrite(V5, millis() / 1000);
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
SPI.begin();
mfrc522.PCD_Init();
pinMode(mic, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
digitalWrite(led2, HIGH);
EspSerial.begin(ESP8266_BAUD);
delay(10);
Blynk.begin(auth, wifi, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, wifi, ssid, pass, "blynk-cloud.com", 8442);
//Blynk.begin(auth, wifi, ssid, pass, IPAddress(192,168,1,100), 8442);
// Setup a function to be called every second
timer.setInterval(1000L, myTimerEvent);
Serial.print("Initializing pulse oximeter..");
if (!pox.begin()) {
Serial.println("FAILED");
for (;;);
} else {
Serial.println("SUCCESS");
}
pox.setOnBeatDetectedCallback(onBeatDetected);
}
void dump_byte_array(byte * buffer, byte bufferSize) {
read_rfid = "";
for (byte i = 0; i < bufferSize; i++) {
read_rfid = read_rfid + String(buffer[i], HEX);
}
}
void loop() {
pox.update();
Blynk.run();
timer.run();
if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
Serial.print("Heart rate:");
Serial.print(pox.getHeartRate());
Serial.print("bpm / SpO2:");
Serial.print(pox.getSpO2());
Serial.println("%");
Blynk.virtualWrite(V6, pox.getHeartRate());
Blynk.virtualWrite(V7, pox.getSpO2());
Blynk.virtualWrite(V8, tempInCelisus);
if (fsrValue < 900 && fsrValue > 850)
{
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
} else
{
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
}
tempInCelisus = tempValue * 0.4885;
tsLastReport = millis();
}
micValue = digitalRead(mic);
fsrValue = analogRead(fsrSensor);
tempValue = analogRead(temperatureSensor);
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size);
if (read_rfid == ok_rfid1)
{
// Blynk.notify("DR Enterd");
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
delay(500);
digitalWrite(led1, LOW);
delay(500);
digitalWrite(led2, HIGH);
} else {
digitalWrite(led1, LOW);
for (count = 0; count < 5; count++)
{
digitalWrite(led2, HIGH);
delay(100);
digitalWrite(led2, LOW);
delay(100);
}
count = 0;
}
}