#include <WiFi.h>
#include <ThingSpeak.h>
#define SECRET_SSID "Wokwi-GUEST"
#define SECRET_PASS ""
#define SECRET_CH_ID 2030257
#define SECRET_WRITE_APIKEY "E5BXT8Y4KK8J9LC1"
char ssid[] = SECRET_SSID;
char pass[] = SECRET_PASS;
int keyIndex = 0;
WiFiClient client;
unsigned long myChannelNumber = SECRET_CH_ID;
const char * myWriteAPIKey = SECRET_WRITE_APIKEY;
#define blue 18
#define BPM 35
#define SPO 32
#define buzzer 23
int BPMval;
int SPOval;
void setup(){
Serial.begin(115200);
while (!Serial) {
;
}
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
pinMode(blue, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop(){
if (WiFi.status() !=WL_CONNECTED)
{
Serial.print("Attempting to connect to SSID: ");
Serial.println(SECRET_SSID);
while(WiFi.status() !=WL_CONNECTED)
{
WiFi.begin(ssid, pass);
Serial.print(".");
delay(5000);
}
Serial.println("\nConnected.");
}
BPMval = analogRead(BPM);
BPMval= map(BPMval, 0, 4095, 0, 140);
BPMval= constrain(BPMval,0,140);
SPOval = analogRead(SPO);
SPOval = map(SPOval, 0, 4095, 0, 100);
Serial.println("BPM =");
Serial.println(BPMval);
Serial.println("SPo2 =" + String(SPOval,1) + "%");
Serial.println(SPOval);
Serial.println("---");
if (BPMval<51){
digitalWrite(blue, HIGH); // turn on LED
delay(100);
digitalWrite(blue, LOW);
delay(100);
digitalWrite(buzzer,HIGH);
}
else
digitalWrite(blue, LOW);
if (BPMval>100) {
digitalWrite(blue, HIGH);
delay(100);
digitalWrite(blue, LOW);
delay(100); // turn on LED
digitalWrite(buzzer, HIGH);
}
else
digitalWrite(blue, LOW);
ThingSpeak.setField(1, BPMval);
ThingSpeak.setField(2, SPOval);
int x = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if(x == 200)
{
Serial.println("Channel Update successful.");
}
else
{
Serial.println("Problem updating channel. HTTP error code" + String(x));
}
delay(15000);
}