#include <Wire.h>
#include <RTClib.h>
RTC_DS3231 rtc;
char startChar = '*';
char endChar = '#';
char slot1[6] = "";
char slot2[6] = "";
char slot3[6] = "";
char slot4[6] = "";
int led1 = 12;
int led2 = 11;
int led3 = 10;
int led4 = 9;
int buzzer = 8;
String incomingData = "";
int comma1, comma2, comma3, comma4, comma5;
void setup()
{
Serial.begin(9600);
Serial.println("HELLO");
rtc.begin();
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop()
{
DateTime now = rtc.now();
char currenttime[9];
sprintf(currenttime, "%02d:%02d", now.hour(), now.minute());
delay(1000);
Serial.println(currenttime);
delay(1000);
if (Serial.available() > 0)
{
incomingData = Serial.readStringUntil(endChar);
if (incomingData[0] == startChar)
{
// Find the positions of commas
comma1 = incomingData.indexOf(',', 1);
comma2 = incomingData.indexOf(',', comma1 + 1);
comma3 = incomingData.indexOf(',', comma2 + 1);
comma4 = incomingData.indexOf(',', comma3 + 1);
comma5 = incomingData.indexOf(',', comma4+ 1);
// Convert substrings to integers and store them in variables
incomingData.substring(comma1 + 1, comma2).toCharArray(slot1, 6);
incomingData.substring(comma2 + 1, comma3).toCharArray(slot2, 6);
incomingData.substring(comma3 + 1, comma4).toCharArray(slot3, 6);
incomingData.substring(comma4 + 1, comma5).toCharArray(slot4, 6);
// Print values to the Serial Monitor
// give value in format [ *, HH:MM , HH:MM , HH:MM , HH:MM ,#]
Serial.println("Seperated Values:");
Serial.print("SLOT 1: ");
Serial.println(slot1);
Serial.print("SLOT 2: ");
Serial.println(slot2);
Serial.print("SLOT3: ");
Serial.println(slot3);
Serial.print("SLOT4: ");
Serial.println(slot4);
}
}
if (strcmp(slot1, currenttime) == 0)
{
digitalWrite(led1, HIGH);
delay(5000);
digitalWrite(buzzer,1);
delay(5000);
digitalWrite(led1, LOW);
digitalWrite(buzzer,0);
}
if (strcmp(slot2, currenttime) == 0)
{
digitalWrite(led2, HIGH);
delay(5000);
digitalWrite(buzzer,1);
delay(5000);
digitalWrite(led2, LOW);
digitalWrite(buzzer,0);
}
if (strcmp(slot3, currenttime) == 0)
{
digitalWrite(led3, HIGH);
delay(5000);
digitalWrite(buzzer,1);
delay(5000);
digitalWrite(led3, LOW);
digitalWrite(buzzer,0);
}
if (strcmp(slot4, currenttime) == 0)
{
digitalWrite(led4, HIGH);
delay(5000);
digitalWrite(buzzer,1);
delay(5000);
digitalWrite(led4, LOW);
digitalWrite(buzzer,0);
}
}