• Arduino Mega 2560+ cytron esp8266 Sheild +Oximeter Max30100
• IOS
• Blynk server
• Blynk Library version v0.6.1
#define BLYNK_PRINT Serial
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
#include <Wire.h>
#include "MAX30100_PulseOximeter.h"
#include <SoftwareSerial.h>
SoftwareSerial EspSerial(10, 11);
PulseOximeter pox;
ESP8266 wifi(&EspSerial);
BlynkTimer timer;
char auth[] = "...";
char ssid[] = "...";
char pass[] = "...";
void onBeatDetected()
{
Serial.println("Beat!");
}
void setup()
{
Serial.begin(115200);
delay(1000);
EspSerial.begin(9600);
delay(1000);
Blynk.begin(auth, wifi, ssid, pass);
delay(1000);
pinMode(9,OUTPUT);
Serial.print("Initializing pulse oximeter..");
if (!pox.begin()) {
Serial.println("FAILED");
for(;;);
} else {
Serial.println("SUCCESS");
}
pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);
timer.setInterval(1000L, sensorDataSend);
pox.setOnBeatDetectedCallback(onBeatDetected);
}
void loop(){
Blynk.run();
timer.run();
}
void sensorDataSend(){
pox.update();
Serial.print("Heart rate:");
Serial.print(pox.getHeartRate());
Serial.print("bpm / SpO2:");
Serial.print(pox.getSpO2());
Serial.println("%");
Blynk.virtualWrite(V7, pox.getHeartRate());
}