//--------------------RTC---------------//
#include "RTClib.h"
RTC_DS1307 rtc;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
#define sw1 13
#define sw2 12
#define sw3 14
#define Buz 23
byte SetH,SetM,SetS;
boolean st_SetH,st_SetM,st_SetS,st_SetHok,st_SetMok,st_SetSok = 0;
/*************************************************************/
void setup() {
pinMode(sw1,INPUT_PULLUP);
pinMode(sw2,INPUT_PULLUP);
pinMode(sw3,INPUT_PULLUP);
pinMode(Buz,OUTPUT);
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
abort();
}
Serial.begin(115200);
Serial.println("Hello, ESP32!");
}
/*****************************************************************/
void loop() {
DateTime now = rtc.now();
if(digitalRead(sw3)==0){//กดsw1ตั้งเวลา
delay(2000);
if(digitalRead(sw3)==0){
st_SetH=1;
Serial.println("Set Timer Mode");
Serial.println("-------------------");
Serial.println("Set Hours");
//-----------------ตั้งเวลา Hours ชม.---------------------------------//
while(st_SetH==1){
if(digitalRead(sw1)==0){
while(digitalRead(sw1)==0)delay(10);
SetH++;
if(SetH >= 24) SetH=24;
st_SetHok=1;
Serial.println("Hours : "+String(SetH));
delay(50);
}//SetH++
if(digitalRead(sw2)==0){
while(digitalRead(sw2)==0)delay(10);
// while(digitalRead(sw1)==0)delay(10);
SetH--;
if(SetH == 255) SetH=0;
st_SetHok=1;
Serial.println("Hours : "+String(SetH));
delay(50);
}//SetH--
if(digitalRead(sw3)==0&&st_SetHok==1){
st_SetH=0;
st_SetHok=0;
st_SetM=1;
Serial.print("Set Hours Ok");
}
}//while SetH
while(st_SetM==1){
if(digitalRead(sw1)==0){
while(digitalRead(sw1)==0)delay(10);
SetM++;
if(SetM >= 60) SetM=60;
st_SetMok=1;
Serial.println("Minute : "+String(SetM));
delay(50);
}//SetM++
if(digitalRead(sw2)==0){
while(digitalRead(sw2)==0)delay(10);
// while(digitalRead(sw1)==0)delay(10);
SetM--;
if(SetM == 255) SetM=0;
st_SetMok=1;
Serial.println("Minute : "+String(SetM));
delay(50);
}//SetM--
if(digitalRead(sw3)==0&&st_SetMok==1){
st_SetM=0;
st_SetMok=0;
st_SetS=1;
Serial.print("Set Minute Ok");
}
}//while SetM
while(st_SetS==1){
if(digitalRead(sw1)==0){
while(digitalRead(sw1)==0)delay(10);
SetS++;
if(SetS >= 60) SetS=60;
st_SetSok=1;
Serial.println("Second : "+String(SetS));
delay(50);
}//SetS++
if(digitalRead(sw2)==0){
while(digitalRead(sw2)==0)delay(10);
// while(digitalRead(sw1)==0)delay(10);
SetS--;
if(SetS == 255) SetS=0;
st_SetSok=1;
Serial.println("Second : "+String(SetS));
delay(50);
}//SetS--
if(digitalRead(sw3)==0&&st_SetSok==1){
st_SetS=0;
st_SetSok=0;
Serial.print("Set second Ok");
}
}//while SetS
}//เช็คการกด sw3ค้าง
}//ifกดsw3วิ
Serial.println("Set Timer "+String(SetH)+":"+String(SetM)+":"+String(SetS));
delay(1000);
};