//20240712 DS3231
/* --- 20231115_J38_RTC_DS3231_Clock_Temperature_LCD1602_I2C-01.ino
to set time for repeated works that times */
//
#include <RTClib.h>
#include <LiquidCrystal_I2C.h>
#define baurate 9600
LiquidCrystal_I2C lcd(0x27, 16, 2);
RTC_DS1307 rtc(4 ,5); //(SDA, SCL); // Arduino Uno:
// ----------------------
// DS3231: SDA pin -> Arduino Analog 4 or the dedicated SDA pin
// SCL pin -> Arduino Analog 5 or the dedicated SCL pin
Time t;
int ledPin = 6;
//-------
void setup() {
rtc.begin();
//ตั้งวันและเวลา
//rtc.setDOW(TUESDAY); // Set Day-of-Week to TUESDAY
//rtc.setTime(16, 12, 0); // Set the time to 16:12:00 (24hr format)
//rtc.setDate(14, 11, 2023); // Set the date to November 14, 2023
lcd.init(); // lcd
lcd.backlight(); // lcd
//lcd.begin(); compile error
Serial.begin(baurate);
pinMode(ledPin, OUTPUT);
}
//-----
void loop() {
//Get data from the DS1302
t=rtc.getTime(); //ดึงเวลาเข้ามาไว้ในตัวแปร t
/*Serial.print(" t=rtc.getTime() = "); //
Serial.print(t.hour);
Serial.print(" ");
Serial.print(t.min);
Serial.print(" ");
Serial.print(t.sec);
*/
// Send Day-of-Week
//Serial.print("rtc.getDOWStr() = "); //
Serial.print(rtc.getDOWStr()); // print TUESDAY
Serial.print(" ");
// Send date
//Serial.print("rtc.getDateStr() = ");
Serial.print(rtc.getDateStr()); // print date to 14.11.2023
Serial.print(" -- ");
// Send time
if(t.hour < 10) {
Serial.print(0);
}
//Serial.print("t.hour, DEC = " ); //
Serial.print(t.hour, DEC);
Serial.print(":");
if(t.min < 10) {
Serial.print(0);
}
//Serial.print("t.min, DEC = "); //
Serial.print(t.min, DEC);
Serial.print(":");
if(t.sec < 10) {
Serial.print(0);
}
// Serial.println("t.sec, DEC = "); //
Serial.println(t.sec, DEC);
lcd.setCursor(0, 0);
lcd.print("DATE-> ");
lcd.setCursor(7,0);
//lcd.print("rtc.getDateStr(FORMAT_SHORT) = "); //
lcd.print(rtc.getDateStr(FORMAT_SHORT));
lcd.setCursor(0,1);
lcd.print("TIME-> ");
lcd.setCursor(7,1);
// lcd.print("rtc.getTimeStr() = "); //
lcd.print(rtc.getTimeStr());
if ((t.hour == 16)&&(t.min == 13)&&(t.sec == 00)) { // 16 30 00
digitalWrite(ledPin,HIGH);
Serial.println(">>>>>>> Alarm Enabled <<<<<<<");
lcd.setCursor(0,0);
lcd.print("TIME-> ");
lcd.setCursor(7,0);
lcd.print(rtc.getTimeStr());
lcd.setCursor(0,1);
lcd.print(" Alarm Enabled ");
}
if ((t.hour == 16)&&(t.min == 14)&&(t.sec == 00)) { // 16 31 00
digitalWrite(ledPin,LOW);
Serial.println("<<<<<<< Time Out >>>>>>>");
}
delay (1000);
}
// ------ end program
/*
#define baurate 9600
#define sensor A0
#define dly100 100
int valIRF = 0;
//------
void SensorIRFwork() {
Serial.println("Beware Fire Denger!");
}
//-------
void dIRF() {
valIRF = digitalRead(sensor);
Serial.print("Value => ");
Serial.println(valIRF);
delay(dly100);
}
//----------
void setup() {
Serial.begin(baurate);
}
//-------
void loop() {
dIRF();
}
// --- end program
*/