#include "SPI.h"
#include <Adafruit_ILI9341.h>
#include "showtft.h" //รูป
#define TFT_DC 2
#define TFT_CS 15
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
//--------------------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 = 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!");
tft.begin();
tft.setRotation(1);
tft.fillScreen(ILI9341_BLACK);
tft.drawRGBBitmap(0, 0, (uint16_t *)dragonBitmap, DRAGON_WIDTH, DRAGON_HEIGHT);
}
/*****************************************************************/
void loop() {
DateTime now = rtc.now();
if(digitalRead(sw3)==0){//กดsw1ตั้งเวลา
delay(2000);
if(digitalRead(sw3)==0){
st_SetH=1;
Serial.println("------------------------------");
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;
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;
Serial.println("Hours : "+String(SetH));
delay(50);
}//SetH--
if(digitalRead(sw3)==0){
delay(1000);
if(digitalRead(sw3)==0){
st_SetH=0;
st_SetM=1;
Serial.println("Set Hours Ok");
Serial.println("--> Set Minute");
}
}
}//while SetH
while(st_SetM==1){
if(digitalRead(sw1)==0){
while(digitalRead(sw1)==0)delay(10);
SetM++;
if(SetM >= 60) SetM=60;
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;
Serial.println("Minute : "+String(SetM));
delay(50);
}//SetM--
if(digitalRead(sw3)==0){
delay(1000);
if(digitalRead(sw3)==0){
st_SetM=0;
st_SetS=1;
Serial.println("Set Minute Ok");
Serial.println("--> Set Second");
}
}
}//while SetM
while(st_SetS==1){
if(digitalRead(sw1)==0){
while(digitalRead(sw1)==0)delay(10);
SetS++;
if(SetS >= 60) SetS=60;
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;
Serial.println("Second : "+String(SetS));
delay(50);
}//SetS--
if(digitalRead(sw3)==0){
delay(1000);
if(digitalRead(sw3)==0){
st_SetS=0;
Serial.println("Set second Ok");
}
}
}//while SetS
}//เช็คการกด sw3ค้าง
}//ifกดsw3วิ
if(now.hour()==SetH && now.minute()==SetM && now.second()==SetS){
tone(23,1000,1000);
}
Serial.print("Cerrent Timer "+String(now.hour())+":"+String(now.minute())+":"+String(now.second()));
Serial.println(" Timer ON "+String(SetH)+":"+String(SetM)+":"+String(SetS));
delay(1000);
};