#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
RTC_DS1307 rtc;
char daysOfTheWeek[7][24] = {
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
};
long int hourToMinute;
long int hourToSec;
long int minuteToSec;
long int nowSec;
long int lastSec;
LiquidCrystal_I2C lcd(0x27, 20, 4);
const int ROW_NUM = 5;
const int COLUMN_NUM = 4;
char keys[ROW_NUM][COLUMN_NUM] = {
{'1','2','3','4'},
{'5','6','7','8'},
{'A','B','C','D'},
{'E','F','G','H'},
{'I','J','K','L'},
};
byte pin_rows[ROW_NUM] = {6, 5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte pin_column[COLUMN_NUM] = {10, 9, 8, 7}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM );
#define LED1 22
#define LED2 23
#define LED3 24
#define LED4 25
#define LED5 26
#define LED6 27
#define LED7 28
#define LED8 29
#define LED_ATO 30
#define LED_AWC 31
#define LED_START 32
#define LED_STOP 33
#define LED_LIGHT 34
#define LED_F 35
#define LED_G 36
#define LED_CLEAR 37
#define LED_I 38
#define LED_J 39
#define LED_K 40
#define LED_L 41
int ato;
int awc;
int start;
int stop;
int clear;
int light;
int channelSelect[9];
#define txEnable 13
int address[10] = {
10, 11, 12, 13, 14, 15, 16, 17, 18, 19
};
int addressHold;
char data[64] = {0};
int y100;
int y200;
float y[19];
int addressALL = 20;
int packet1 = 21;
int packet2 = 22;
int packet3 = 23;
int packet4 = 24;
int packet5 = 25;
int packet6 = 26;
int comRelease = 27;
int commandStart = 30;
int commandStop = 40;
int commandATO = 41;
int commandAWC = 42;
int timecodeSec = 55;
int commandEStop = 91;
int AWCStartTime[4] = {3,12,0,0}; // {Day,Hour,Minute,Second}
int ATOCycle_1[3] = {10,0,0}; // {Hour,Minute,Second}
int ATOCycle_2[3] = {14,0,0}; // {Hour,Minute,Second}
int ATOCycle_3[3] = {17,0,0}; // {Hour,Minute,Second}
int ATOCycle_4[3] = {20,0,0}; // {Hour,Minute,Second}
unsigned long ATOS;
unsigned long AWCS_1;
unsigned long AWCS_2;
unsigned long AWCS_3;
unsigned long AWCS_4;
unsigned long previousMillis;
unsigned long currentMillis;
const int duration_1 = 10000;
int w;
int x;
int initializerW;
unsigned long currentMillis_2;
int duration_2 = 1000; // ON time
int interval = 3000; // OFF time
unsigned long flashMillis;
int z;
int a;
int d;
int e;
int f;
void setup(){
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Serial: Baud 9600");
delay(1000);
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
if (! rtc.begin()) {
abort();
lcd.setCursor(0,1);
lcd.print("Serial: Baud 9600");
}
else {
lcd.setCursor(0,1);
lcd.print("RTC Begin");
}
delay(1000);
for(int i = 0; i < 9; i++) {
channelSelect[i] = 0;
}
ato = 0;
awc = 0;
start = 0;
stop = 0;
clear = 0;
w = 0;
x = 0;
z = 0;
light = 0;
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
pinMode(LED7, OUTPUT);
pinMode(LED8, OUTPUT);
pinMode(LED_ATO, OUTPUT);
pinMode(LED_AWC, OUTPUT);
pinMode(LED_START, OUTPUT);
pinMode(LED_STOP, OUTPUT);
pinMode(LED_LIGHT, OUTPUT);
pinMode(LED_F, OUTPUT);
pinMode(LED_G, OUTPUT);
pinMode(LED_CLEAR, OUTPUT);
pinMode(LED_I, OUTPUT);
pinMode(LED_J, OUTPUT);
pinMode(LED_K, OUTPUT);
pinMode(LED_L, OUTPUT);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED8, HIGH);
delay(1000);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
delay(1000);
digitalWrite(LED_ATO, HIGH);
digitalWrite(LED_AWC, HIGH);
digitalWrite(LED_START, HIGH);
digitalWrite(LED_STOP, HIGH);
digitalWrite(LED_LIGHT, HIGH);
digitalWrite(LED_F, HIGH);
digitalWrite(LED_G, HIGH);
digitalWrite(LED_CLEAR, HIGH);
digitalWrite(LED_I, HIGH);
digitalWrite(LED_J, HIGH);
digitalWrite(LED_K, HIGH);
digitalWrite(LED_L, HIGH);
delay(1000);
digitalWrite(LED_ATO, LOW);
digitalWrite(LED_AWC, LOW);
digitalWrite(LED_START, LOW);
digitalWrite(LED_STOP, LOW);
digitalWrite(LED_LIGHT, LOW);
digitalWrite(LED_F, LOW);
digitalWrite(LED_G, LOW);
digitalWrite(LED_CLEAR, LOW);
digitalWrite(LED_I, LOW);
digitalWrite(LED_J, LOW);
digitalWrite(LED_K, LOW);
digitalWrite(LED_L, LOW);
DateTime now = rtc.now();
hourToMinute = (now.hour() * 60);
hourToSec = (hourToMinute * 60);
minuteToSec = now.minute() * 60;
nowSec = hourToSec + minuteToSec + now.second();
lastSec = nowSec;
lcd.setCursor(0,2);
lcd.print(nowSec);
delay(500);
lcd.clear();
ATOS = ((AWCStartTime[1] * 3600) + (AWCStartTime[2] * 60) + (AWCStartTime[3]));
lcd.setCursor(0,0);
lcd.print(ATOS);
delay(2000);
lcd.clear();
AWCS_1 = ((ATOCycle_1[0] * 3600) + (ATOCycle_1[1] * 60) + ATOCycle_1[2]);
lcd.setCursor(0,0);
lcd.print(AWCS_1);
AWCS_2 = ((ATOCycle_2[0] * 3600) + (ATOCycle_2[1] * 60) + ATOCycle_2[2]);
lcd.setCursor(0,1);
lcd.print(AWCS_2);
AWCS_3 = ((ATOCycle_3[0] * 3600) + (ATOCycle_3[1] * 60) + ATOCycle_3[2]);
lcd.setCursor(0,2);
lcd.print(AWCS_3);
AWCS_4 = ((ATOCycle_4[0] * 3600) + (ATOCycle_4[1] * 60) + ATOCycle_4[2]);
lcd.setCursor(0,3);
lcd.print(AWCS_4);
delay(2000);
lcd.clear();
currentMillis = millis();
previousMillis = currentMillis;
initializerW = 0;
}
void loop(){
DateTime now = rtc.now();
hourToMinute = (now.hour() * 60);
hourToSec = (hourToMinute * 60);
minuteToSec = now.minute() * 60;
nowSec = hourToSec + minuteToSec + now.second();
if(nowSec == 0) {
lastSec = nowSec;
}
KEY();
serialCom();
timerTimeout();
timerFlash();
xx();
updateDisplay();
if((w == 0) && (x == 1)) {
for(int i = 0; i < 9; i++) {
channelSelect[i] = 0;
}
ato = 0;
awc = 0;
start = 0;
stop = 0;
clear = 0;
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED_ATO, LOW);
digitalWrite(LED_AWC, LOW);
digitalWrite(LED_START, LOW);
digitalWrite(LED_STOP, LOW);
Serial.println("Timeout");
x = 0;
}
if(light == 0) {
digitalWrite(LED_LIGHT, LOW);
e = 2;
}
else if(light == 1) {
if(z == 1) {
digitalWrite(LED_LIGHT, HIGH);
}
else if(z == 0) {
digitalWrite(LED_LIGHT, LOW);
}
e = 0;
}
else if(light == 2) {
digitalWrite(LED_LIGHT, HIGH);
e = 1;
}
if(now.day() == 3 /*|| now.second() == 10*/) {
if((nowSec == 43200) && (a == 0)) {
}
}
}
void KEY() {
char key = keypad.getKey();
if (key){
//Serial.println(key);
currentMillis = millis();
previousMillis = currentMillis;
if(key == '1') {
channelSelect[1] = address[1];
digitalWrite(LED1, HIGH);
initializerW = 1;
Serial.println(key);
}
else if(key == '2') {
channelSelect[2] = address[2];
digitalWrite(LED2, HIGH);
initializerW = 1;
Serial.println(key);
}
else if(key == '3') {
channelSelect[3] = address[3];
digitalWrite(LED3, HIGH);
initializerW = 1;
Serial.println(key);
}
else if(key == '4') {
channelSelect[4] = address[4];
digitalWrite(LED4, HIGH);
initializerW = 1;
Serial.println(key);
}
else if(key == '5') {
channelSelect[5] = address[5];
digitalWrite(LED5, HIGH);
initializerW = 1;
Serial.println(key);
}
else if(key == '6') {
channelSelect[6] = address[6];
digitalWrite(LED6, HIGH);
initializerW = 1;
Serial.println(key);
}
else if(key == '7') {
channelSelect[7] = address[7];
digitalWrite(LED7, HIGH);
initializerW = 1;
Serial.println(key);
}
else if(key == '8') {
channelSelect[8] = address[8];
digitalWrite(LED8, HIGH);
initializerW = 1;
Serial.println(key);
}
if(key == 'A') { // ATO
ato = 1;
awc = 0;
digitalWrite(LED_ATO, HIGH);
initializerW = 1;
Serial.println("ATO");
}
else if(key == 'B') { //AWC
ato = 0;
awc = 1;
digitalWrite(LED_AWC, HIGH);
initializerW = 1;
Serial.println("AWC");
}
if(key == 'C') {
start = 1;
digitalWrite(LED_START, HIGH);
initializerW = 1;
Serial.println("Start");
}
if(key == 'D') {
stop = 1;
digitalWrite(LED_STOP, HIGH);
initializerW = 1;
Serial.println("Stop");
}
if(key == 'E') {
if(light == 0) {
Serial.println("AUTO");
light = 1;
}
else if(light == 1) {
Serial.println("ON");
light = 2;
}
else if(light == 2) {
Serial.println("OFF");
light = 0;
}
}
if(key == 'H') {
for(int i = 0; i < 9; i++) {
channelSelect[i] = 0;
}
ato = 0;
awc = 0;
start = 0;
stop = 0;
clear = 0;
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED_ATO, LOW);
digitalWrite(LED_AWC, LOW);
digitalWrite(LED_START, LOW);
digitalWrite(LED_STOP, LOW);
Serial.println("Clear");
}
}
}
void serialCom() {
byte n = Serial.available();
if (n != 0) {
byte m = Serial.readBytesUntil('\n', data, 64);
data[m] = '\0'; //null-byte
y100 = atoi(strtok(data, ","));
y200 = atoi(strtok(NULL, ","));
if(y100 == address[0]) {
if(y200 == packet1) {
y[1] = atof(strtok(NULL, ","));
y[2] = atof(strtok(NULL, ","));
y[3] = atof(strtok(NULL, ","));
y[4] = atof(strtok(NULL, ","));
y[5] = atof(strtok(NULL, ","));
}
if(y200 == packet2) {
y[6] = atof(strtok(NULL, ","));
y[7] = atof(strtok(NULL, ","));
y[8] = atof(strtok(NULL, ","));
}
if(y200 == packet3) {
y[9] = atof(strtok(NULL, ","));
y[10] = atof(strtok(NULL, ","));
y[11] = atof(strtok(NULL, ","));
}
if(y200 == packet4) {
y[12] = atof(strtok(NULL, ","));
y[13] = atof(strtok(NULL, ","));
y[14] = atof(strtok(NULL, ","));
}
if(y200 == packet5) {
y[15] = atof(strtok(NULL, ","));
y[16] = atof(strtok(NULL, ","));
y[17] = atof(strtok(NULL, ","));
}
if(y200 == packet6) {
y[18] = atof(strtok(NULL, ","));
}
}
}
if((f == 1)) {
digitalWrite(txEnable, HIGH);
Serial.print(address[5]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandATO);
digitalWrite(txEnable, LOW);
f = 2;
}
else if((f == 2) && (y[1] == commandStop) && (y[2] == commandATO)) {
digitalWrite(txEnable, HIGH);
Serial.print(address[5]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandAWC);
digitalWrite(txEnable, LOW);
f = 3;
}
else if((y[1] == commandStop) && (y[2] == commandAWC)) {
y[1] = 0;
y[2] = 0;
f = 0;
}
if(start == 1) {
// ATO
if((ato == 1) && (awc == 0)) {
if(channelSelect[1] == address[1]) {
Serial.print(address[1]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandATO);
channelSelect[1] = 0;
digitalWrite(LED1, LOW);
}
if(channelSelect[2] == address[2]) {
Serial.print(address[2]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandATO);
channelSelect[2] = 0;
digitalWrite(LED2, LOW);
}
if(channelSelect[3] == address[3]) {
Serial.print(address[3]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandATO);
channelSelect[3] = 0;
digitalWrite(LED3, LOW);
}
if(channelSelect[4] == address[4]) {
Serial.print(address[4]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandATO);
channelSelect[4] = 0;
digitalWrite(LED4, LOW);
}
if(channelSelect[5] == address[5]) {
Serial.print(address[5]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandATO);
channelSelect[5] = 0;
digitalWrite(LED5, LOW);
}
if(channelSelect[6] == address[6]) {
Serial.print(address[6]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandATO);
channelSelect[6] = 0;
digitalWrite(LED6, LOW);
}
if(channelSelect[7] == address[7]) {
Serial.print(address[7]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandATO);
channelSelect[7] = 0;
digitalWrite(LED7, LOW);
}
if(channelSelect[8] == address[8]) {
Serial.print(address[8]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandATO);
channelSelect[8] = 0;
digitalWrite(LED8, LOW);
}
digitalWrite(LED_ATO, LOW);
ato = 0;
awc = 0;
}
// AWC
if((ato == 0) && (awc == 1)) {
if(channelSelect[1] == address[1]) {
Serial.print(address[1]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandAWC);
channelSelect[1] = 0;
digitalWrite(LED1, LOW);
}
if(channelSelect[2] == address[2]) {
Serial.print(address[2]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandAWC);
channelSelect[2] = 0;
digitalWrite(LED2, LOW);
}
if(channelSelect[3] == address[3]) {
Serial.print(address[3]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandAWC);
channelSelect[3] = 0;
digitalWrite(LED3, LOW);
}
if(channelSelect[4] == address[4]) {
Serial.print(address[4]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandAWC);
channelSelect[4] = 0;
digitalWrite(LED4, LOW);
}
if(channelSelect[5] == address[5]) {
Serial.print(address[5]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandAWC);
channelSelect[5] = 0;
digitalWrite(LED5, LOW);
}
if(channelSelect[6] == address[6]) {
Serial.print(address[6]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandAWC);
channelSelect[6] = 0;
digitalWrite(LED6, LOW);
}
if(channelSelect[7] == address[7]) {
Serial.print(address[7]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandAWC);
channelSelect[7] = 0;
digitalWrite(LED7, LOW);
}
if(channelSelect[8] == address[8]) {
Serial.print(address[8]);
Serial.print(",");
Serial.print(packet1);
Serial.print(",");
Serial.print(commandStart);
Serial.print(",");
Serial.println(commandAWC);
channelSelect[8] = 0;
digitalWrite(LED8, LOW);
}
digitalWrite(LED_AWC, LOW);
ato = 0;
awc = 0;
}
digitalWrite(LED_START, LOW);
start = 0;
}
}
void timerTimeout() {
currentMillis = millis();
if(initializerW == 1) {
previousMillis = currentMillis;
initializerW = 0;
x = 1;
}
if(currentMillis < (previousMillis + duration_1)) {
w = 1;
}
else if(currentMillis > (previousMillis + duration_1)) {
w = 0;
}
}
void timerFlash() {
currentMillis_2 = millis();
if(currentMillis_2 < (flashMillis + duration_2)) {
z = 1;
}
else if(currentMillis_2 > (flashMillis + duration_2)) {
if(currentMillis_2 < (flashMillis + duration_2 + interval)) {
z = 0;
}
else if(currentMillis_2 >= (flashMillis + duration_2 + interval)) {
flashMillis = currentMillis_2;
}
}
}
void xx() {
DateTime now = rtc.now();
/*
if(nowSec >= lastSec) {
if((nowSec > lastSec) && (nowSec < (lastSec + 6)) && (d == 0)) {
digitalWrite(txEnable, HIGH);
Serial.print(addressALL);
Serial.print(",");
Serial.print(timecodeSec);
Serial.print(",");
if(nowSec < 10) {
Serial.print("0000");
Serial.println(nowSec);
}
else if(nowSec > 10 && nowSec < 100) {
Serial.print("000");
Serial.println(nowSec);
}
else if(nowSec > 100 && nowSec < 1000) {
Serial.print("00");
Serial.println(nowSec);
}
else if(nowSec > 1000 && nowSec < 10000) {
Serial.print("0");
Serial.println(nowSec);
}
else if(nowSec > 10000) {
Serial.println(nowSec);
}
//Serial.println("");
digitalWrite(txEnable, LOW);
d = 1;
}
else if((nowSec > (lastSec + 6)) && (nowSec < (lastSec + 12)) && (d == 1)) {
digitalWrite(txEnable, HIGH);
Serial.print(addressALL);
Serial.print(",");
Serial.print(timecodeSec);
Serial.print(",");
if(nowSec < 10) {
Serial.print("0000");
Serial.println(nowSec);
}
else if(nowSec > 10 && nowSec < 100) {
Serial.print("000");
Serial.println(nowSec);
}
else if(nowSec > 100 && nowSec < 1000) {
Serial.print("00");
Serial.println(nowSec);
}
else if(nowSec > 1000 && nowSec < 10000) {
Serial.print("0");
Serial.println(nowSec);
}
else if(nowSec > 10000) {
Serial.println(nowSec);
}
//Serial.println("");
digitalWrite(txEnable, LOW);
d = 2;
}
else if((nowSec > (lastSec + 12)) && (nowSec < (lastSec + 18)) && (d == 2)) {
digitalWrite(txEnable, HIGH);
Serial.print(addressALL);
Serial.print(",");
Serial.print(timecodeSec);
Serial.print(",");
if(nowSec < 10) {
Serial.print("0000");
Serial.println(nowSec);
}
else if(nowSec > 10 && nowSec < 100) {
Serial.print("000");
Serial.println(nowSec);
}
else if(nowSec > 100 && nowSec < 1000) {
Serial.print("00");
Serial.println(nowSec);
}
else if(nowSec > 1000 && nowSec < 10000) {
Serial.print("0");
Serial.println(nowSec);
}
else if(nowSec > 10000) {
Serial.println(nowSec);
}
//Serial.println("");
digitalWrite(txEnable, LOW);
d = 3;
}
else if((nowSec > (lastSec + 18)) && (nowSec < (lastSec + 24)) && (d == 3)) {
digitalWrite(txEnable, HIGH);
Serial.print(addressALL);
Serial.print(",");
Serial.print(timecodeSec);
Serial.print(",");
if(nowSec < 10) {
Serial.print("0000");
Serial.println(nowSec);
}
else if(nowSec > 10 && nowSec < 100) {
Serial.print("000");
Serial.println(nowSec);
}
else if(nowSec > 100 && nowSec < 1000) {
Serial.print("00");
Serial.println(nowSec);
}
else if(nowSec > 1000 && nowSec < 10000) {
Serial.print("0");
Serial.println(nowSec);
}
else if(nowSec > 10000) {
Serial.println(nowSec);
}
//Serial.println("");
digitalWrite(txEnable, LOW);
d = 4;
}
else if(nowSec >= (lastSec + 24)) {
lastSec = nowSec;
d = 0;
}
}
*/
if((now.second() == 0) || (now.second() == 30)) {
if(d == 0) {
digitalWrite(txEnable, HIGH);
Serial.print(addressALL);
Serial.print(",");
Serial.print(timecodeSec);
Serial.print(",");
if(nowSec < 10) {
Serial.print("0000");
Serial.println(nowSec);
}
else if(nowSec > 10 && nowSec < 100) {
Serial.print("000");
Serial.println(nowSec);
}
else if(nowSec > 100 && nowSec < 1000) {
Serial.print("00");
Serial.println(nowSec);
}
else if(nowSec > 1000 && nowSec < 10000) {
Serial.print("0");
Serial.println(nowSec);
}
else if(nowSec > 10000) {
Serial.println(nowSec);
}
//Serial.println("");
digitalWrite(txEnable, LOW);
d = 1;
}
}
else if((now.second() != 0) && (now.second() != 30)) {
d = 0;
}
}
void updateDisplay() {
DateTime now = rtc.now();
lcd.setCursor(0,0);
if(now.month() < 10){
lcd.print("0");
lcd.print(now.month());
}
else {
lcd.print(now.month());
}
lcd.print("/");
if(now.day() < 10){
lcd.print("0");
lcd.print(now.day());
}
else {
lcd.print(now.day());
}
lcd.print("/");
lcd.print(now.year());
lcd.print(" ");
if(now.hour() < 10){
lcd.print("0");
lcd.print(now.hour());
}
else {
lcd.print(now.hour());
}
lcd.print(":");
if(now.minute() < 10){
lcd.print("0");
lcd.print(now.minute());
}
else {
lcd.print(now.minute());
}
lcd.print(":");
if(now.second() < 10){
lcd.print("0");
lcd.print(now.second());
}
else {
lcd.print(now.second());
}
/* hourToMinute = (now.hour() * 60);
hourToSec = (hourToMinute * 60);
minuteToSec = now.minute() * 60;
nowSec = hourToSec + minuteToSec + now.second(); */
/*
lcd.setCursor(0,1);
lcd.print(now.hour()); lcd.print(" "); lcd.print(hourToSec);
lcd.setCursor(0,2);
lcd.print(now.minute()); lcd.print(" "); lcd.print(minuteToSec);
lcd.setCursor(0,3);
lcd.print(now.second()); lcd.print(" "); lcd.print(nowSec);
*/
lcd.setCursor(0,1);
//Sunday (6 spaces)
if(now.dayOfTheWeek() == 0) {
lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
lcd.print(" ");
}
//Monday (6 spaces)
if(now.dayOfTheWeek() == 1) {
lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
lcd.print(" ");
}
//Tuesday (5 spaces)
if(now.dayOfTheWeek() == 2) {
lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
lcd.print(" ");
}
//Wednesday (3 spaces)
if(now.dayOfTheWeek() == 3) {
lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
lcd.print(" ");
}
//Thursday (4 spaces)
if(now.dayOfTheWeek() == 4) {
lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
lcd.print(" ");
}
//Friday (6 spaces)
if(now.dayOfTheWeek() == 5) {
lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
lcd.print(" ");
}
//Saturday (4 spaces)
if(now.dayOfTheWeek() == 6) {
lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
lcd.print(" ");
}
if(nowSec < 10) {
lcd.print("0000");
lcd.print(nowSec);
}
else if(nowSec > 10 && nowSec < 100) {
lcd.print("000");
lcd.print(nowSec);
}
else if(nowSec > 100 && nowSec < 1000) {
lcd.print("00");
lcd.print(nowSec);
}
else if(nowSec > 1000 && nowSec < 10000) {
lcd.print("0");
lcd.print(nowSec);
}
else if(nowSec > 10000) {
lcd.print(nowSec);
}
lcd.setCursor(8,2);
if(e == 0) {
lcd.print("Light Auto");
}
else if(e == 1) {
lcd.print("Light On ");
}
else if(e == 2) {
lcd.print("Light Off ");
}
}