#include <EEPROM.h>
/*****************************Global variable************************/
uint8_t Ton1_HH,Ton1_MM,Ton1_SS,Toff1_HH,Toff1_MM,Toff1_SS =0;
uint8_t Ton2_HH,Ton2_MM,Ton2_SS,Toff2_HH,Toff2_MM,Toff2_SS =0;
uint8_t Ton3_HH,Ton3_MM,Ton3_SS,Toff3_HH,Toff3_MM,Toff3_SS =0;
/******************************************************************/
#define EEPROM_SIZE 20
#define Flag_On_Off_Timer_Addr 0
#define Ton1_HH_Addr 1
#define Ton1_MM_Addr 2
#define Ton1_SS_Addr 3
#define Toff1_HH_Addr 4
#define Toff1_MM_Addr 5
#define Toff1_SS_Addr 6
#define Ton2_HH_Addr 8
#define Ton2_MM_Addr 8
#define Ton2_SS_Addr 9
#define Toff2_HH_Addr 10
#define Toff2_MM_Addr 11
#define Toff2_SS_Addr 12
#define Ton3_HH_Addr 13
#define Ton3_MM_Addr 14
#define Ton3_SS_Addr 15
#define Toff3_HH_Addr 16
#define Toff3_MM_Addr 17
#define Toff3_SS_Addr 18
void EEPROM_Read_Timer_HH_MM_SS_1()
{
/*****************************Reading Ton1/Toff1 Time from EEPROM*********************/
Ton1_HH=EEPROM.read(Ton1_HH_Addr);
Ton1_MM=EEPROM.read(Ton1_MM_Addr);
Ton1_SS=EEPROM.read(Ton1_SS_Addr);
if( Ton1_HH>99 )
Ton1_HH = 0;
if(Ton1_MM>60)
Ton1_MM=0;
if(Ton1_SS )
Ton1_SS=0;
/*****************************Reading Ton1/Toff1 Time from EEPROM*********************/
Toff1_HH=EEPROM.read(Toff1_HH_Addr);
Toff1_MM=EEPROM.read(Toff1_MM_Addr);
Toff1_SS=EEPROM.read(Toff1_SS_Addr);
if( Toff1_HH>99 )
Toff1_HH = 0;
if(Toff1_MM>60)
Toff1_MM=0;
if(Toff1_SS )
Toff1_SS=0;
}
void EEPROM_Read_Timer_HH_MM_SS_2()
{
/*****************************Reading Ton2/Toff2 Time from EEPROM*********************/
Ton2_HH=EEPROM.read(Ton2_HH_Addr);
Ton2_MM=EEPROM.read(Ton2_MM_Addr);
Ton2_SS=EEPROM.read(Ton2_SS_Addr);
if( Ton2_HH>99 )
Ton2_HH = 0;
if(Ton2_MM>60)
Ton2_MM=0;
if(Ton2_SS )
Ton2_SS=0;
/*****************************Reading Ton2/Toff2 Time from EEPROM*********************/
Toff2_HH=EEPROM.read(Toff2_HH_Addr);
Toff2_MM=EEPROM.read(Toff2_MM_Addr);
Toff2_SS=EEPROM.read(Toff2_SS_Addr);
if( Toff2_HH>99 )
Toff2_HH = 0;
if(Toff2_MM>60)
Toff2_MM=0;
if(Toff2_SS )
Toff2_SS=0;
}
void EEPROM_Read_Timer_HH_MM_SS_3()
{
/*****************************Reading Ton3/Toff3 Time from EEPROM*********************/
Ton2_HH=EEPROM.read(Ton2_HH_Addr);
Ton2_MM=EEPROM.read(Ton2_MM_Addr);
Ton2_SS=EEPROM.read(Ton2_SS_Addr);
/*****************************Reading Ton3/Toff3 Time from EEPROM*********************/
Toff3_HH=EEPROM.read(Toff3_HH_Addr);
Toff3_MM=EEPROM.read(Toff3_MM_Addr);
Toff3_SS=EEPROM.read(Toff3_SS_Addr);
if( Toff3_HH>99 )
Toff3_HH = 0;
if(Toff3_MM>60)
Toff3_MM=0;
if(Toff3_SS )
Toff3_SS=0;
}
void setup() {
bool Flag_on_off_Timer= 0;
Serial.begin(115200);
EEPROM.begin(EEPROM_SIZE);
Flag_on_off_Timer=EEPROM.read(Flag_On_Off_Timer_Addr);
if(Flag_on_off_Timer!=0 ||Flag_on_off_Timer!=1 ) // if EEPROM Read wrong vale then set to default
Flag_on_off_Timer=0 ;
EEPROM_Read_Timer_HH_MM_SS_1();
EEPROM_Read_Timer_HH_MM_SS_2();
EEPROM_Read_Timer_HH_MM_SS_3();
}
void loop() {
while (!Serial.available()); // Wait for input
String name = Serial.readStringUntil('\n');
if(name.endsWith("*")&& (name.length()>2))
// Inside HH,MM,SS String
Serial.print("Hello, ");
Serial.print(name);
Serial.println("!");
}