#include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C lcd(0x27, 20, 4);
#include "Wire.h"
#include "SPI.h"
#include "RTClib.h"
#include "DHT.h"
//#include <EEPROM.h>
RTC_DS1307 RTC; //หรือจะใช้ตัวนี้ >> RTC_DS3231 RTC;
#define DHTPIN 12
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
#define ON HIGH //กำหนด High/Low,1,0 ให้อยู่ในรูป ON / OFF
#define OFF LOW
const byte BUTTON_SET = A0; // LCD_Menu
const byte BUTTON_SELECT = A1; // LCD_Menu
const byte BUTTON_UP = A2; // LCD_Menu
const byte BUTTON_DW = A3; // LCD_Menu
const byte soil_in = A4;
//------------------------------------------------------------------------------------------- ส่วนของ ตั้งค่า relay ----
const byte relay1 = 11, relay4 = 4, relay7 = 7, relay10 = 10, // FIX
relay2 = 2, relay5 = 5, relay8 = 8, //relay11 = 11, // FIX
relay3 = 3, relay6 = 6, relay9 = 9;
const byte Sun = 0, Mon = 1 , Tue = 2 , Wed = 3 , Thu = 4 , Fri = 5 , Sat = 6;
//================================================================================================= Temp & Humi ====
byte Temp_control = 90 , Humi_control = 50 ; // relay1 , relay2 4 byte
byte Temp_delay = 1 , Humi_delay = 1 ; // เปิดรดน้ำ กี่นาที [ min ]
//----------------------------------------------------------------------------------------------- Pump Set -----
byte pump_T1[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // LCD_Menu |3-5|4-6|5-7|6-8|7-9|8-10|9-11|A-12|B-13|
byte pump_T2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // LCD_Menu
byte pump_T3[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // LCD_Menu 81 byte
byte pump_T4[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // LCD_Menu
byte pump_T5[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // LCD_Menu
byte pump_T6[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // LCD_Menu
byte pump_T7[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // LCD_Menu
byte pump_T8[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // LCD_Menu
byte pump_T9[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // LCD_Menu
//-------------------------------------------------------------------------------------------------- Set time ----
byte time01[] = { 9 , 0 }, time02[] = { 16 , 0 }; // LCD_Menu
byte time03[] = { 0 , 0 }, time04[] = { 0 , 0 }; // LCD_Menu
byte time05[] = { 0 , 0 }, time06[] = { 0 , 0 }; // LCD_Menu
byte time07[] = { 0 , 0 }, time08[] = { 0 , 0 }; // LCD_Menu
byte time09[] = { 0 , 0 };
//--------------------------------------------------------------- เก็บค่าไว้ในตัวแปร เพื่อบันทึก dayOfweek Sun-Sat -----
byte week1 = 0; byte week2 = 0; byte week3 = 0; byte week4 = 0; byte week5 = 0; // LCD_Menu
byte week6 = 0; byte week7 = 0; byte week8 = 0; byte week9 = 0; // LCD_Menu
//---------------------------------------------------------------------------------------------------- delay ----
// ปรับ delay ต่างๆของ pump
int delay_2 = 5, delay_3 = 5, delay_4 = 5, delay_5 = 5, delay_6 = 5, // เพิ่มเป็น int เพราะต้องการค่าที่เยอะกว่า 255
delay_7 = 5, delay_8 = 5, delay_9 = 5, delay_10 = 5;
//=============================================================================================== relay main ====
// relayAll ใช้เปรียบเทียบกับ pumpTAll เพื่อให้รู้ว่าจะให้ปั๊มตัวไหนทำงานบ้าง
byte relayAll[]= { relay2 , relay3 , relay4, relay5, relay6, relay7, relay8, relay9, relay10 };
unsigned long temp_count1 = 0, humi_count1 = 0; // ใช้ร่วมกับ millis
byte count_openH = 0, count_openT = 0;
//================================================================================================ week show ====
const char daysOfTheWeek[7][12] = {"SUN","MON","TUE","WED","THU","FRI","SAT"}; // show monitor
void setup() { //############################################################################# void setup() #####
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.begin(20,4);//กา หนดชนิดจอแสดงผลที่ใชข้นาด 16x2
Wire.begin();//เรียกใชก้ารส่งขอ้มูลI2C
//RTC.begin(); //ใช้สำหรับ esp32 แต่ถ้าเอามาไว้หน้านี้ เวลาจะเพี้ยน
dht.begin();
RTC.adjust(DateTime(__DATE__, __TIME__));
//ใชต้้งัเวลาถา้อบัโหลดโปรแกรมน้ีแลว้ให้ลบเอาบรรทดัน้ีออกจากโปรแกรมแลว้อบัโหลดใหม่อีกคร้ังมิฉะน้นั
//เมื่อรันโปรแกรมใหม่เวลาจะตรงกบั เวลาอบัโหลดไม่ใช่เวลาจริง*/
RTC.begin();
lcd.setCursor(0,1); lcd.print(" WELCOME TO");
lcd.setCursor(0,2); lcd.print(" >>> MyFarm <<<");
delay(1500);
lcd.clear();
pinMode(BUTTON_SET, INPUT_PULLUP); // LCD_Menu
pinMode(BUTTON_SELECT, INPUT_PULLUP); // LCD_Menu
pinMode(BUTTON_UP, INPUT_PULLUP); // LCD_Menu
pinMode(BUTTON_DW, INPUT_PULLUP); // LCD_Menu
pinMode(soil_in, INPUT);
//กาหนดให้ขา OUTPUT มีค่าเป็น High คอยลร์ีเลยต์วัที่1ไม่ไดร้ับไฟ//บอร์ดโมดูลรีเลย์ทำางานเมื่อได้รับอินพุทเป็น Low// เพราะฉะน้้นเลยตั้งค่าเริ่มต้นเป็น High
pinMode(relay1,OUTPUT); pinMode(relay2, OUTPUT); pinMode(relay3, OUTPUT); pinMode(relay4,OUTPUT);
pinMode(relay5,OUTPUT); pinMode(relay6, OUTPUT); pinMode(relay7, OUTPUT); pinMode(relay8,OUTPUT);
pinMode(relay9,OUTPUT); pinMode(relay10,OUTPUT); //pinMode(relay11,OUTPUT);
digitalWrite(relay1,OFF); digitalWrite(relay2,OFF); digitalWrite(relay3,OFF); digitalWrite(relay4,OFF);
digitalWrite(relay5,OFF); digitalWrite(relay6,OFF); digitalWrite(relay7,OFF); digitalWrite(relay8,OFF);
digitalWrite(relay9,OFF); digitalWrite(relay10,OFF); //digitalWrite(relay11,OFF);
} //----------------------------------------------------------------------------------------- void setup() END ----
void loop() { //################################################################################ void loop() ####
static boolean Display = true; // LCD_Menu
static boolean ButtonSet = false; // LCD_Menu
static boolean ButtonSelect = false; // LCD_Menu
clockRun();
AutoMode();
if(Display == true){ // LCD_Menu
Display = false; // LCD_Menu
/* lcd.setCursor(0,1); // LCD_Menu
lcd.print("sometime not control"); */ // LCD_Menu
} // Auto
//------------------------------------------------------------------------------------------------- Auto Set ----
if(digitalRead(BUTTON_SET)== 0){ // LCD_Menu
delay(10);
if(digitalRead(BUTTON_SET) == 0){ // LCD_Menu
if(ButtonSet == false){ // LCD_Menu
ButtonSet = true; // LCD_Menu
lcd.clear(); // LCD_Menu
AutoSet(); // LCD_Menu
Display = true; // LCD_Menu
}
}
}else { ButtonSet = false; } // LCD_Menu
//===================================================
//-------------- Manual Set -------------------------
if(digitalRead(BUTTON_SELECT)== 0){ // LCD_Menu
delay(10);
if(digitalRead(BUTTON_SELECT) == 0){ // LCD_Menu
if(ButtonSelect == false){ // LCD_Menu
ButtonSelect = true; // LCD_Menu
lcd.clear(); // LCD_Menu
ManualSet(); // LCD_Menu
Display = true; // LCD_Menu
}
}
}else { ButtonSelect = false; } // LCD_Menu
//===================================================
delay(100);
} // ************************************************************************************** void loop() END ****
void clockRun() { //###################################################################### void clockRun() ####
DateTime now = RTC.now();
lcd.setCursor(0,2);
lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
//--------------------------------------------------------------------------------------------- Day Month Year ----
lcd.setCursor(0,0);
if ( now.day()< 10 ) { lcd.print(0); } lcd.print(now.day (), DEC); lcd.print('/');
if (now.month()<10 ) { lcd.print(0); } lcd.print(now.month(), DEC); lcd.print('/');
lcd.print(now.year()%100, DEC);
//-------------------------------------------------------------------------------------------- Hour Min Second ----
lcd.setCursor(0,1);
if ( now.hour() < 10 ) { lcd.print(0); } lcd.print(now.hour (), DEC); lcd.print(':');
if ( now.minute()< 10 ) { lcd.print(0); } lcd.print(now.minute(), DEC); lcd.print(':');
if ( now.second()< 10 ) { lcd.print(0); } lcd.print(now.second(), DEC);
//----------------------------------------------------------------------------------------------- status Pump ----
lcd.setCursor(0, 3);
lcd.print("Status>> ");
lcd.setCursor(9, 2);
lcd.print(" H23456789A"); //Set ค่าตำแหน่งปั๊ม ต่างๆ
int r1 = digitalRead(relay1); int r2 = digitalRead(relay2); int r3 = digitalRead(relay3);
int r4 = digitalRead(relay4); int r5 = digitalRead(relay5); int r6 = digitalRead(relay6);
int r7 = digitalRead(relay7); int r8 = digitalRead(relay8); int r9 = digitalRead(relay9);
int r10 = digitalRead(relay10); //int r11 = digitalRead(relay11);
//if(r1 == ON){ lcd.setCursor( 9,3); lcd.print("*"); } else { lcd.setCursor( 9,3); lcd.print(" "); }
if(r1 == ON){ lcd.setCursor(10,3); lcd.print("*"); } else { lcd.setCursor(10,3); lcd.print(" "); }
if(r2 == ON){ lcd.setCursor(11,3); lcd.print("*"); } else { lcd.setCursor(11,3); lcd.print(" "); }
if(r3 == ON){ lcd.setCursor(12,3); lcd.print("*"); } else { lcd.setCursor(12,3); lcd.print(" "); }
if(r4 == ON){ lcd.setCursor(13,3); lcd.print("*"); } else { lcd.setCursor(13,3); lcd.print(" "); }
if(r5 == ON){ lcd.setCursor(14,3); lcd.print("*"); } else { lcd.setCursor(14,3); lcd.print(" "); }
if(r6 == ON){ lcd.setCursor(15,3); lcd.print("*"); } else { lcd.setCursor(15,3); lcd.print(" "); }
if(r7 == ON){ lcd.setCursor(16,3); lcd.print("*"); } else { lcd.setCursor(16,3); lcd.print(" "); }
if(r8 == ON){ lcd.setCursor(17,3); lcd.print("*"); } else { lcd.setCursor(17,3); lcd.print(" "); }
if(r9 == ON){ lcd.setCursor(18,3); lcd.print("*"); } else { lcd.setCursor(18,3); lcd.print(" "); }
if(r10 == ON){ lcd.setCursor(19,3); lcd.print("*"); } else { lcd.setCursor(19,3); lcd.print(" "); }
//-------------------------- Temp & Humi --------------------------------------------------------- โชว์มอนิเตอร์ ----
float t = dht.readTemperature();
float h = map(analogRead(soil_in),0,1023,0,100);
//float h = dht.readHumidity();
lcd.setCursor(9,0);lcd.print("T = ");lcd.print(t);
lcd.setCursor(18,0);lcd.print((char)223);lcd.print("C");
lcd.setCursor(9,1);lcd.print("H = ");lcd.print(h);
lcd.setCursor(19,1);lcd.print("%");
} //******************************************************************************************** END clockRun() ****
/*#################
###################
###################
#################*/
void ManualSet(){ //########################################################################## ManualSet() ######
boolean Display = true;
boolean Exit = false;
boolean ButtonSet = false;
boolean ButtonSelect = true;
boolean ButtonUp = false;
boolean ButtonDw = false;
byte Menu2 = 0; byte delayPoint = 1; byte RelayOX = 1;
digitalWrite(relay1 ,OFF); digitalWrite(relay4 ,OFF); digitalWrite(relay7 ,OFF); digitalWrite(relay10,OFF);
digitalWrite(relay2 ,OFF); digitalWrite(relay5 ,OFF); digitalWrite(relay8 ,OFF); //digitalWrite(relay11,OFF);
digitalWrite(relay3 ,OFF); digitalWrite(relay6 ,OFF); digitalWrite(relay9 ,OFF);
while(Exit == false){
if(Display == true){
Display = false;
if(Menu2 == 0){
lcd.setCursor(0, 0);lcd.print("1:");lcd.setCursor(7, 0);lcd.print("5:");lcd.setCursor(14, 0);lcd.print("9:");
lcd.setCursor(0, 1);lcd.print("2:");lcd.setCursor(7, 1);lcd.print("6:");lcd.setCursor(14, 1);lcd.print("A:");
lcd.setCursor(0, 2);lcd.print("3:");lcd.setCursor(7, 2);lcd.print("7:");//lcd.setCursor(14, 2);lcd.print("B:");
lcd.setCursor(0, 3);lcd.print("4:");lcd.setCursor(7, 3);lcd.print("8:");lcd.setCursor(15, 3);lcd.print("Relay");
if(digitalRead(11)==0){lcd.setCursor( 2,0); lcd.print("- ");} else{lcd.setCursor( 2,0);lcd.print("ON");}
if(digitalRead( 2)==0){lcd.setCursor( 2,1); lcd.print("- ");} else{lcd.setCursor( 2,1);lcd.print("ON");}
if( digitalRead(3)==0){lcd.setCursor( 2,2); lcd.print("- ");} else{lcd.setCursor( 2,2);lcd.print("ON");}
if( digitalRead(4)==0){lcd.setCursor( 2,3); lcd.print("- ");} else{lcd.setCursor( 2,3);lcd.print("ON");}
if( digitalRead(5)==0){lcd.setCursor( 9,0); lcd.print("- ");} else{lcd.setCursor( 9,0);lcd.print("ON");}
if( digitalRead(6)==0){lcd.setCursor( 9,1); lcd.print("- ");} else{lcd.setCursor( 9,1);lcd.print("ON");}
if( digitalRead(7)==0){lcd.setCursor( 9,2); lcd.print("- ");} else{lcd.setCursor( 9,2);lcd.print("ON");}
if( digitalRead(8)==0){lcd.setCursor( 9,3); lcd.print("- ");} else{lcd.setCursor( 9,3);lcd.print("ON");}
if( digitalRead(9)==0){lcd.setCursor(16,0); lcd.print("- ");} else{lcd.setCursor(16,0);lcd.print("ON");}
if(digitalRead(10)==0){lcd.setCursor(16,1); lcd.print("- ");} else{lcd.setCursor(16,1);lcd.print("ON");}
//if(digitalRead(11)==0){lcd.setCursor(16,2); lcd.print("- ");} else{lcd.setCursor(16,2);lcd.print("ON");}
switch(RelayOX){
case 1: lcd.setCursor( 1, 0); lcd.print(char(255)); break;
case 2: lcd.setCursor( 1, 1); lcd.print(char(255)); break;
case 3: lcd.setCursor( 1, 2); lcd.print(char(255)); break;
case 4: lcd.setCursor( 1, 3); lcd.print(char(255)); break;
case 5: lcd.setCursor( 8, 0); lcd.print(char(255)); break;
case 6: lcd.setCursor( 8, 1); lcd.print(char(255)); break;
case 7: lcd.setCursor( 8, 2); lcd.print(char(255)); break;
case 8: lcd.setCursor( 8, 3); lcd.print(char(255)); break;
case 9: lcd.setCursor(15, 0); lcd.print(char(255)); break;
case 10: lcd.setCursor(15, 1); lcd.print(char(255)); break; }
//case 11: lcd.setCursor(15, 2); lcd.print(char(255)); break; }
} // End if(Menu2 == 0)
if(Menu2 == 1){ // Delay Show time
lcd.setCursor(0, 0);lcd.print("2:");lcd.setCursor(7, 0);lcd.print("5:");lcd.setCursor(14, 0);lcd.print("8:");
lcd.setCursor(0, 1);lcd.print("3:");lcd.setCursor(7, 1);lcd.print("6:");lcd.setCursor(14, 1);lcd.print("9:");
lcd.setCursor(0, 2);lcd.print("4:");lcd.setCursor(7, 2);lcd.print("7:");lcd.setCursor(14, 2);lcd.print("A:");
lcd.setCursor(0, 3);lcd.print(" Delay Setting");
lcd.setCursor( 2,0);lcd.print(delay_2 ); if(delay_2 < 10){lcd.print(" ");}else{lcd.print(" ");}
lcd.setCursor( 2,1);lcd.print(delay_3 ); if(delay_3 < 10){lcd.print(" ");}else{lcd.print(" ");}
lcd.setCursor( 2,2);lcd.print(delay_4 ); if(delay_4 < 10){lcd.print(" ");}else{lcd.print(" ");}
lcd.setCursor( 9,0);lcd.print(delay_5 ); if(delay_5 < 10){lcd.print(" ");}else{lcd.print(" ");}
lcd.setCursor( 9,1);lcd.print(delay_6 ); if(delay_6 < 10){lcd.print(" ");}else{lcd.print(" ");}
lcd.setCursor( 9,2);lcd.print(delay_7 ); if(delay_7 < 10){lcd.print(" ");}else{lcd.print(" ");}
lcd.setCursor(16,0);lcd.print(delay_8 ); if(delay_8 < 10){lcd.print(" ");}else{lcd.print(" ");}
lcd.setCursor(16,1);lcd.print(delay_9 ); if(delay_9 < 10){lcd.print(" ");}else{lcd.print(" ");}
lcd.setCursor(16,2);lcd.print(delay_10); if(delay_10< 10){lcd.print(" ");}else{lcd.print(" ");}
switch(delayPoint){
case 1: lcd.setCursor( 1, 0); lcd.print(char(255)); break;
case 2: lcd.setCursor( 1, 1); lcd.print(char(255)); break;
case 3: lcd.setCursor( 1, 2); lcd.print(char(255)); break;
case 4: lcd.setCursor( 8, 0); lcd.print(char(255)); break;
case 5: lcd.setCursor( 8, 1); lcd.print(char(255)); break;
case 6: lcd.setCursor( 8, 2); lcd.print(char(255)); break;
case 7: lcd.setCursor(15, 0); lcd.print(char(255)); break;
case 8: lcd.setCursor(15, 1); lcd.print(char(255)); break;
case 9: lcd.setCursor(15, 2); lcd.print(char(255)); break; } //End switch
}
} // End if(Display == true)---------------------------------------------
//----------------------------------------------------------------
if(digitalRead(BUTTON_SET) == 0){
delay(10);
if(digitalRead(BUTTON_SET) == 0){
if(ButtonSet == false){
ButtonSet = true;
Display = true;
lcd.clear();
Exit = true;
digitalWrite(relay1 ,OFF); digitalWrite(relay2 ,OFF); digitalWrite(relay3 ,OFF);
digitalWrite(relay4 ,OFF); digitalWrite(relay5 ,OFF); digitalWrite(relay6 ,OFF);
digitalWrite(relay7 ,OFF); digitalWrite(relay8 ,OFF); digitalWrite(relay9 ,OFF);
digitalWrite(relay10,OFF); //digitalWrite(relay11,OFF);
delay(100);
}
}
}else{ ButtonSet = false; }
//----------------------------------------------------------------
if(digitalRead(BUTTON_SELECT) == 0){
delay(10);
if(digitalRead(BUTTON_SELECT) == 0){
if(ButtonSelect == false){
ButtonSelect = true;
Display = true;
if( Menu2 < 1 ) { Menu2++;} else { Menu2 = 0 ; }
lcd.clear();
}
}
}else{ ButtonSelect = false; }
//----------------------------------------------------------------
if(digitalRead(BUTTON_UP) == 0){
delay(10);
if(digitalRead(BUTTON_UP) == 0){
if(ButtonUp == false){
ButtonUp = true;
switch(Menu2){
case 0: if( RelayOX < 10 ) { RelayOX++; } else{ RelayOX = 1; } break;
case 1: if( delayPoint < 9 ) { delayPoint++; } else{ delayPoint = 1; } break;
}
Display = true;
}
}
}else{ ButtonUp = false; }
//----------------------------------------------------------------
if(digitalRead(BUTTON_DW) == 0){
delay(10);
if(digitalRead(BUTTON_DW) == 0){
if(ButtonDw == false){
ButtonDw = true;
if(Menu2 == 0){
switch(RelayOX){
case 1 : digitalWrite(11,!digitalRead(11)); break;
case 2 : digitalWrite( 2,!digitalRead( 2)); break;
case 3 : digitalWrite( 3,!digitalRead( 3)); break;
case 4 : digitalWrite( 4,!digitalRead( 4)); break;
case 5 : digitalWrite( 5,!digitalRead( 5)); break;
case 6 : digitalWrite( 6,!digitalRead( 6)); break;
case 7 : digitalWrite( 7,!digitalRead( 7)); break;
case 8 : digitalWrite( 8,!digitalRead( 8)); break;
case 9 : digitalWrite( 9,!digitalRead( 9)); break;
case 10: digitalWrite(10,!digitalRead(10)); break;
//case 11: digitalWrite(11,!digitalRead(11)); break;
} // End Switch()
} // End if(Menu2 == 0)
if(Menu2 == 1){
switch(delayPoint){
case 1 : if(delay_2 < 2000 ){ delay_2+=100;} else{ delay_2=0; } break; // delay ....
case 2 : if(delay_3 < 250 ) { delay_3+=10; } else{ delay_3=0; } break; // delay ....
case 3 : if(delay_4 < 250 ) { delay_4+=10; } else{ delay_4=0; } break; // delay ....
case 4 : if(delay_5 < 250 ) { delay_5+=10; } else{ delay_5=0; } break; // delay ....
case 5 : if(delay_6 < 250 ) { delay_6+=10; } else{ delay_6=0; } break; // delay ....
case 6 : if(delay_7 < 250 ) { delay_7+=10; } else{ delay_7=0; } break; // delay ....
case 7 : if(delay_8 < 250 ) { delay_8+=10; } else{ delay_8=0; } break; // delay ....
case 8 : if(delay_9 < 250 ) { delay_9+=10; } else{ delay_9=0; } break; // delay ....
case 9 : if(delay_10 < 250 ) { delay_10+=10;} else{ delay_10=0; } break; // delay ....
}//
} // End Menu2 == 1
Display = true;
}
}
}else{ ButtonDw = false; } // End if(digitalRead(BUTTON_DW) == 0)
delay(100);
} //****************************************************************************** While ManualSet() END *****
} //*************************************************************************************** ManualSet() END *****
/*#################
###################
###################
#################*/
void AutoSet(){ //############################################################################## AutoSet() ######
boolean Display = true;
boolean Exit = false;
boolean ButtonSet = true;
boolean ButtonSelect = false;
boolean ButtonUp = false;
boolean ButtonDw = false;
byte Menu = 0; byte TempPoint = 1; byte TimePoint = 1;
const char MenuWeek[ 7] [17]={ "Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
const char MenuText[15] [17]={ "Temp","Time01","Time02","Time03","Time04","Time05","Time06","Time07","Time08","Time09"};
while(Exit == false){
if(Display == true){
Display = false;
if(Menu == 0 ){
/* lcd.setCursor(0, 0); // Temp Control
lcd.print("Temp Set > ");
lcd.setCursor(12, 0);
if(Temp_control <10){lcd.print(0);}
lcd.print(Temp_control);
lcd.print(char(223));lcd.print("C ON"); */
lcd.setCursor(0, 1); // Humin Control
lcd.print("Humi Set < ");
lcd.setCursor(12, 1);
if(Humi_control <10){lcd.print(0);}
lcd.print(Humi_control);lcd.print(" % ON");
/* lcd.setCursor(0, 2); // Temp Delay
lcd.print("Temp Delay: ");
lcd.setCursor(12, 2);
lcd.print(Temp_delay);
if(Temp_delay <10){lcd.print(" ");}
else if(Temp_delay <100){lcd.print(" ");}
lcd.setCursor(17, 2);
lcd.print("Min"); */
lcd.setCursor(0, 3); // Humi Delay
lcd.print("Humi Delay: ");
lcd.setCursor(12, 3);
lcd.print(Humi_delay); // Humi_delay show
if(Humi_delay <10){lcd.print(" ");}
else if(Humi_delay <100){lcd.print(" ");}
lcd.setCursor(17, 3);
lcd.print("Min");
switch(TempPoint){ // Mark Set Temp&Humi
//case 1: lcd.setCursor(11,0);lcd.print(char(126));break;
case 1: lcd.setCursor(11,1);lcd.print(char(126));break;
//case 3: lcd.setCursor(11,2);lcd.print(char(126));break;
case 2: lcd.setCursor(11,3);lcd.print(char(126));break; }
}else {
lcd.clear();
lcd.setCursor(17, 0); // set dayOfweek
switch(Menu){
case 1: lcd.print("-");break;
case 2: lcd.print("-");break;
case 3: lcd.print(MenuWeek[week3] );break;
case 4: lcd.print(MenuWeek[week4] );break;
case 5: lcd.print(MenuWeek[week5] );break;
case 6: lcd.print(MenuWeek[week6] );break;
case 7: lcd.print(MenuWeek[week7] );break;
case 8: lcd.print(MenuWeek[week8] );break;
case 9: lcd.print(MenuWeek[week9] );break;
}
lcd.setCursor(0, 1);
lcd.print(MenuText[Menu]);
lcd.print(" = "); // Show set time
lcd.setCursor(10,1);
switch(Menu){
case 1: if(time01[0] < 10 ){lcd.print(0);}lcd.print(time01[0] ); lcd.print(":");
if(time01[1] < 10 ){lcd.print(0);}lcd.print(time01[1] ); break;
case 2: if(time02[0] < 10 ){lcd.print(0);}lcd.print(time02[0] ); lcd.print(":");
if(time02[1] < 10 ){lcd.print(0);}lcd.print(time02[1] ); break;
case 3: if(time03[0] < 10 ){lcd.print(0);}lcd.print(time03[0] ); lcd.print(":");
if(time03[1] < 10 ){lcd.print(0);}lcd.print(time03[1] ); break;
case 4: if(time04[0] < 10 ){lcd.print(0);}lcd.print(time04[0] ); lcd.print(":");
if(time04[1] < 10 ){lcd.print(0);}lcd.print(time04[1] ); break;
case 5: if(time05[0] < 10 ){lcd.print(0);}lcd.print(time05[0] ); lcd.print(":");
if(time05[1] < 10 ){lcd.print(0);}lcd.print(time05[1] ); break;
case 6: if(time06[0] < 10 ){lcd.print(0);}lcd.print(time06[0] ); lcd.print(":");
if(time06[1] < 10 ){lcd.print(0);}lcd.print(time06[1] ); break;
case 7: if(time07[0] < 10 ){lcd.print(0);}lcd.print(time07[0] ); lcd.print(":");
if(time07[1] < 10 ){lcd.print(0);}lcd.print(time07[1] ); break;
case 8: if(time08[0] < 10 ){lcd.print(0);}lcd.print(time08[0] ); lcd.print(":");
if(time08[1] < 10 ){lcd.print(0);}lcd.print(time08[1] ); break;
case 9: if(time09[0] < 10 ){lcd.print(0);}lcd.print(time09[0] ); lcd.print(":");
if(time09[1] < 10 ){lcd.print(0);}lcd.print(time09[1] ); break;
}
//-------------------------------------------------------------------------------
switch(TimePoint){
case 1: lcd.setCursor(11,0);lcd.print("*"); break;
case 2: lcd.setCursor(14,0);lcd.print("*"); break;
case 3: lcd.setCursor(16,0);lcd.print(char(126)); break;
}
lcd.setCursor(0, 3);
lcd.print("Relay>>"); // 5 , 11 ตำแหน่ง
lcd.setCursor(10,3); lcd.print("---------");
if(Menu == 1){
lcd.setCursor(10,2);if(TimePoint ==4){lcd.print("*");} lcd.setCursor(10,3);if(pump_T1[0] >0 ){
if(pump_T1[0]>9){lcd.print("A");} else{lcd.print(pump_T1[0]);}
}
lcd.setCursor(11,2);if(TimePoint ==5){lcd.print("*");} lcd.setCursor(11,3);if(pump_T1[1] >0 ){
if(pump_T1[1]>9){lcd.print("A");} else{lcd.print(pump_T1[1]);}
}
lcd.setCursor(12,2);if(TimePoint ==6){lcd.print("*");} lcd.setCursor(12,3);if(pump_T1[2] >0 ){
if(pump_T1[2]>9){lcd.print("A");} else{lcd.print(pump_T1[2]);}
}
lcd.setCursor(13,2);if(TimePoint ==7){lcd.print("*");} lcd.setCursor(13,3);if(pump_T1[3] >0 ){
if(pump_T1[3]>9){lcd.print("A");} else{lcd.print(pump_T1[3]);}
}
lcd.setCursor(14,2);if(TimePoint ==8){lcd.print("*");} lcd.setCursor(14,3);if(pump_T1[4] >0 ){
if(pump_T1[4]>9){lcd.print("A");} else{lcd.print(pump_T1[4]);}
}
lcd.setCursor(15,2);if(TimePoint ==9){lcd.print("*");} lcd.setCursor(15,3);if(pump_T1[5] >0 ){
if(pump_T1[5]>9){lcd.print("A");} else{lcd.print(pump_T1[5]);}
}
lcd.setCursor(16,2);if(TimePoint ==10){lcd.print("*");} lcd.setCursor(16,3);if(pump_T1[6] >0 ){
if(pump_T1[6]>9){lcd.print("A");} else{lcd.print(pump_T1[6]);}
}
lcd.setCursor(17,2);if(TimePoint ==11){lcd.print("*");} lcd.setCursor(17,3);if(pump_T1[7] >0 ){
if(pump_T1[7]>9){lcd.print("A");} else{lcd.print(pump_T1[7]);}
}
lcd.setCursor(18,2);if(TimePoint ==12){lcd.print("*");} lcd.setCursor(18,3);if(pump_T1[8] >0 ){
if(pump_T1[8]>9){lcd.print("A");} else{lcd.print(pump_T1[8]);}
}
}
if(Menu == 2){
lcd.setCursor(10,2);if(TimePoint ==4){lcd.print("*");} lcd.setCursor(10,3);if(pump_T2[0] >0 ){
if(pump_T2[0]>9){lcd.print("A");} else{lcd.print(pump_T2[0]);}
}
lcd.setCursor(11,2);if(TimePoint ==5){lcd.print("*");} lcd.setCursor(11,3);if(pump_T2[1] >0 ){
if(pump_T2[1]>9){lcd.print("A");} else{lcd.print(pump_T2[1]);}
}
lcd.setCursor(12,2);if(TimePoint ==6){lcd.print("*");} lcd.setCursor(12,3);if(pump_T2[2] >0 ){
if(pump_T2[2]>9){lcd.print("A");} else{lcd.print(pump_T2[2]);}
}
lcd.setCursor(13,2);if(TimePoint ==7){lcd.print("*");} lcd.setCursor(13,3);if(pump_T2[3] >0 ){
if(pump_T2[3]>9){lcd.print("A");} else{lcd.print(pump_T2[3]);}
}
lcd.setCursor(14,2);if(TimePoint ==8){lcd.print("*");} lcd.setCursor(14,3);if(pump_T2[4] >0 ){
if(pump_T2[4]>9){lcd.print("A");} else{lcd.print(pump_T2[4]);}
}
lcd.setCursor(15,2);if(TimePoint ==9){lcd.print("*");} lcd.setCursor(15,3);if(pump_T2[5] >0 ){
if(pump_T2[5]>9){lcd.print("A");} else{lcd.print(pump_T2[5]);}
}
lcd.setCursor(16,2);if(TimePoint ==10){lcd.print("*");} lcd.setCursor(16,3);if(pump_T2[6] >0 ){
if(pump_T2[6]>9){lcd.print("A");} else{lcd.print(pump_T2[6]);}
}
lcd.setCursor(17,2);if(TimePoint ==11){lcd.print("*");} lcd.setCursor(17,3);if(pump_T2[7] >0 ){
if(pump_T2[7]>9){lcd.print("A");} else{lcd.print(pump_T2[7]);}
}
lcd.setCursor(18,2);if(TimePoint ==12){lcd.print("*");} lcd.setCursor(18,3);if(pump_T2[8] >0 ){
if(pump_T2[8]>9){lcd.print("A");} else{lcd.print(pump_T2[8]);}
}
}
if(Menu == 3){
lcd.setCursor(10,2);if(TimePoint ==4){lcd.print("*");} lcd.setCursor(10,3);if(pump_T3[0] >0 ){
if(pump_T3[0]>9){lcd.print("A");} else{lcd.print(pump_T3[0]);}
}
lcd.setCursor(11,2);if(TimePoint ==5){lcd.print("*");} lcd.setCursor(11,3);if(pump_T3[1] >0 ){
if(pump_T3[1]>9){lcd.print("A");} else{lcd.print(pump_T3[1]);}
}
lcd.setCursor(12,2);if(TimePoint ==6){lcd.print("*");} lcd.setCursor(12,3);if(pump_T3[2] >0 ){
if(pump_T3[2]>9){lcd.print("A");} else{lcd.print(pump_T3[2]);}
}
lcd.setCursor(13,2);if(TimePoint ==7){lcd.print("*");} lcd.setCursor(13,3);if(pump_T3[3] >0 ){
if(pump_T3[3]>9){lcd.print("A");} else{lcd.print(pump_T3[3]);}
}
lcd.setCursor(14,2);if(TimePoint ==8){lcd.print("*");} lcd.setCursor(14,3);if(pump_T3[4] >0 ){
if(pump_T3[4]>9){lcd.print("A");} else{lcd.print(pump_T3[4]);}
}
lcd.setCursor(15,2);if(TimePoint ==9){lcd.print("*");} lcd.setCursor(15,3);if(pump_T3[5] >0 ){
if(pump_T3[5]>9){lcd.print("A");} else{lcd.print(pump_T3[5]);}
}
lcd.setCursor(16,2);if(TimePoint ==10){lcd.print("*");} lcd.setCursor(16,3);if(pump_T3[6] >0 ){
if(pump_T3[6]>9){lcd.print("A");} else{lcd.print(pump_T3[6]);}
}
lcd.setCursor(17,2);if(TimePoint ==11){lcd.print("*");} lcd.setCursor(17,3);if(pump_T3[7] >0 ){
if(pump_T3[7]>9){lcd.print("A");} else{lcd.print(pump_T3[7]);}
}
lcd.setCursor(18,2);if(TimePoint ==12){lcd.print("*");} lcd.setCursor(18,3);if(pump_T3[8] >0 ){
if(pump_T3[8]>9){lcd.print("A");} else{lcd.print(pump_T3[8]);}
}
}
if(Menu == 4){
lcd.setCursor(10,2);if(TimePoint ==4){lcd.print("*");} lcd.setCursor(10,3);if(pump_T4[0] >0 ){
if(pump_T4[0]>9){lcd.print("A");} else{lcd.print(pump_T4[0]);}
}
lcd.setCursor(11,2);if(TimePoint ==5){lcd.print("*");} lcd.setCursor(11,3);if(pump_T4[1] >0 ){
if(pump_T4[1]>9){lcd.print("A");} else{lcd.print(pump_T4[1]);}
}
lcd.setCursor(12,2);if(TimePoint ==6){lcd.print("*");} lcd.setCursor(12,3);if(pump_T4[2] >0 ){
if(pump_T4[2]>9){lcd.print("A");} else{lcd.print(pump_T4[2]);}
}
lcd.setCursor(13,2);if(TimePoint ==7){lcd.print("*");} lcd.setCursor(13,3);if(pump_T4[3] >0 ){
if(pump_T4[3]>9){lcd.print("A");} else{lcd.print(pump_T4[3]);}
}
lcd.setCursor(14,2);if(TimePoint ==8){lcd.print("*");} lcd.setCursor(14,3);if(pump_T4[4] >0 ){
if(pump_T4[4]>9){lcd.print("A");} else{lcd.print(pump_T4[4]);}
}
lcd.setCursor(15,2);if(TimePoint ==9){lcd.print("*");} lcd.setCursor(15,3);if(pump_T4[5] >0 ){
if(pump_T4[5]>9){lcd.print("A");} else{lcd.print(pump_T4[5]);}
}
lcd.setCursor(16,2);if(TimePoint ==10){lcd.print("*");} lcd.setCursor(16,3);if(pump_T4[6] >0 ){
if(pump_T4[6]>9){lcd.print("A");} else{lcd.print(pump_T4[6]);}
}
lcd.setCursor(17,2);if(TimePoint ==11){lcd.print("*");} lcd.setCursor(17,3);if(pump_T4[7] >0 ){
if(pump_T4[7]>9){lcd.print("A");} else{lcd.print(pump_T4[7]);}
}
lcd.setCursor(18,2);if(TimePoint ==12){lcd.print("*");} lcd.setCursor(18,3);if(pump_T4[8] >0 ){
if(pump_T4[8]>9){lcd.print("A");} else{lcd.print(pump_T4[8]);}
}
}
if(Menu == 5){
lcd.setCursor(10,2);if(TimePoint ==4){lcd.print("*");} lcd.setCursor(10,3);if(pump_T5[0] >0 ){
if(pump_T5[0]>9){lcd.print("A");} else{lcd.print(pump_T5[0]);}
}
lcd.setCursor(11,2);if(TimePoint ==5){lcd.print("*");} lcd.setCursor(11,3);if(pump_T5[1] >0 ){
if(pump_T5[1]>9){lcd.print("A");} else{lcd.print(pump_T5[1]);}
}
lcd.setCursor(12,2);if(TimePoint ==6){lcd.print("*");} lcd.setCursor(12,3);if(pump_T5[2] >0 ){
if(pump_T5[2]>9){lcd.print("A");} else{lcd.print(pump_T5[2]);}
}
lcd.setCursor(13,2);if(TimePoint ==7){lcd.print("*");} lcd.setCursor(13,3);if(pump_T5[3] >0 ){
if(pump_T5[3]>9){lcd.print("A");} else{lcd.print(pump_T5[3]);}
}
lcd.setCursor(14,2);if(TimePoint ==8){lcd.print("*");} lcd.setCursor(14,3);if(pump_T5[4] >0 ){
if(pump_T5[4]>9){lcd.print("A");} else{lcd.print(pump_T5[4]);}
}
lcd.setCursor(15,2);if(TimePoint ==9){lcd.print("*");} lcd.setCursor(15,3);if(pump_T5[5] >0 ){
if(pump_T5[5]>9){lcd.print("A");} else{lcd.print(pump_T5[5]);}
}
lcd.setCursor(16,2);if(TimePoint ==10){lcd.print("*");} lcd.setCursor(16,3);if(pump_T5[6] >0 ){
if(pump_T5[6]>9){lcd.print("A");} else{lcd.print(pump_T5[6]);}
}
lcd.setCursor(17,2);if(TimePoint ==11){lcd.print("*");} lcd.setCursor(17,3);if(pump_T5[7] >0 ){
if(pump_T5[7]>9){lcd.print("A");} else{lcd.print(pump_T5[7]);}
}
lcd.setCursor(18,2);if(TimePoint ==12){lcd.print("*");} lcd.setCursor(18,3);if(pump_T5[8] >0 ){
if(pump_T5[8]>9){lcd.print("A");} else{lcd.print(pump_T5[8]);}
}
}
if(Menu == 6){
lcd.setCursor(10,2);if(TimePoint ==4){lcd.print("*");} lcd.setCursor(10,3);if(pump_T6[0] >0 ){
if(pump_T6[0]>9){lcd.print("A");} else{lcd.print(pump_T6[0]);}
}
lcd.setCursor(11,2);if(TimePoint ==5){lcd.print("*");} lcd.setCursor(11,3);if(pump_T6[1] >0 ){
if(pump_T6[1]>9){lcd.print("A");} else{lcd.print(pump_T6[1]);}
}
lcd.setCursor(12,2);if(TimePoint ==6){lcd.print("*");} lcd.setCursor(12,3);if(pump_T6[2] >0 ){
if(pump_T6[2]>9){lcd.print("A");} else{lcd.print(pump_T6[2]);}
}
lcd.setCursor(13,2);if(TimePoint ==7){lcd.print("*");} lcd.setCursor(13,3);if(pump_T6[3] >0 ){
if(pump_T6[3]>9){lcd.print("A");} else{lcd.print(pump_T6[3]);}
}
lcd.setCursor(14,2);if(TimePoint ==8){lcd.print("*");} lcd.setCursor(14,3);if(pump_T6[4] >0 ){
if(pump_T6[4]>9){lcd.print("A");} else{lcd.print(pump_T6[4]);}
}
lcd.setCursor(15,2);if(TimePoint ==9){lcd.print("*");} lcd.setCursor(15,3);if(pump_T6[5] >0 ){
if(pump_T6[5]>9){lcd.print("A");} else{lcd.print(pump_T6[5]);}
}
lcd.setCursor(16,2);if(TimePoint ==10){lcd.print("*");} lcd.setCursor(16,3);if(pump_T6[6] >0 ){
if(pump_T6[6]>9){lcd.print("A");} else{lcd.print(pump_T6[6]);}
}
lcd.setCursor(17,2);if(TimePoint ==11){lcd.print("*");} lcd.setCursor(17,3);if(pump_T6[7] >0 ){
if(pump_T6[7]>9){lcd.print("A");} else{lcd.print(pump_T6[7]);}
}
lcd.setCursor(18,2);if(TimePoint ==12){lcd.print("*");} lcd.setCursor(18,3);if(pump_T6[8] >0 ){
if(pump_T6[8]>9){lcd.print("A");} else{lcd.print(pump_T6[8]);}
}
}
if(Menu == 7){
lcd.setCursor(10,2);if(TimePoint ==4){lcd.print("*");} lcd.setCursor(10,3);if(pump_T7[0] >0 ){
if(pump_T7[0]>9){lcd.print("A");} else{lcd.print(pump_T7[0]);}
}
lcd.setCursor(11,2);if(TimePoint ==5){lcd.print("*");} lcd.setCursor(11,3);if(pump_T7[1] >0 ){
if(pump_T7[1]>9){lcd.print("A");} else{lcd.print(pump_T7[1]);}
}
lcd.setCursor(12,2);if(TimePoint ==6){lcd.print("*");} lcd.setCursor(12,3);if(pump_T7[2] >0 ){
if(pump_T7[2]>9){lcd.print("A");} else{lcd.print(pump_T7[2]);}
}
lcd.setCursor(13,2);if(TimePoint ==7){lcd.print("*");} lcd.setCursor(13,3);if(pump_T7[3] >0 ){
if(pump_T7[3]>9){lcd.print("A");} else{lcd.print(pump_T7[3]);}
}
lcd.setCursor(14,2);if(TimePoint ==8){lcd.print("*");} lcd.setCursor(14,3);if(pump_T7[4] >0 ){
if(pump_T7[4]>9){lcd.print("A");} else{lcd.print(pump_T7[4]);}
}
lcd.setCursor(15,2);if(TimePoint ==9){lcd.print("*");} lcd.setCursor(15,3);if(pump_T7[5] >0 ){
if(pump_T7[5]>9){lcd.print("A");} else{lcd.print(pump_T7[5]);}
}
lcd.setCursor(16,2);if(TimePoint ==10){lcd.print("*");} lcd.setCursor(16,3);if(pump_T7[6] >0 ){
if(pump_T7[6]>9){lcd.print("A");} else{lcd.print(pump_T7[6]);}
}
lcd.setCursor(17,2);if(TimePoint ==11){lcd.print("*");} lcd.setCursor(17,3);if(pump_T7[7] >0 ){
if(pump_T7[7]>9){lcd.print("A");} else{lcd.print(pump_T7[7]);}
}
lcd.setCursor(18,2);if(TimePoint ==12){lcd.print("*");} lcd.setCursor(18,3);if(pump_T7[8] >0 ){
if(pump_T7[8]>9){lcd.print("A");} else{lcd.print(pump_T7[8]);}
}
}
if(Menu == 8){
lcd.setCursor(10,2);if(TimePoint ==4){lcd.print("*");} lcd.setCursor(10,3);if(pump_T8[0] >0 ){
if(pump_T8[0]>9){lcd.print("A");} else{lcd.print(pump_T8[0]);}
}
lcd.setCursor(11,2);if(TimePoint ==5){lcd.print("*");} lcd.setCursor(11,3);if(pump_T8[1] >0 ){
if(pump_T8[1]>9){lcd.print("A");} else{lcd.print(pump_T8[1]);}
}
lcd.setCursor(12,2);if(TimePoint ==6){lcd.print("*");} lcd.setCursor(12,3);if(pump_T8[2] >0 ){
if(pump_T8[2]>9){lcd.print("A");} else{lcd.print(pump_T8[2]);}
}
lcd.setCursor(13,2);if(TimePoint ==7){lcd.print("*");} lcd.setCursor(13,3);if(pump_T8[3] >0 ){
if(pump_T8[3]>9){lcd.print("A");} else{lcd.print(pump_T8[3]);}
}
lcd.setCursor(14,2);if(TimePoint ==8){lcd.print("*");} lcd.setCursor(14,3);if(pump_T8[4] >0 ){
if(pump_T8[4]>9){lcd.print("A");} else{lcd.print(pump_T8[4]);}
}
lcd.setCursor(15,2);if(TimePoint ==9){lcd.print("*");} lcd.setCursor(15,3);if(pump_T8[5] >0 ){
if(pump_T8[5]>9){lcd.print("A");} else{lcd.print(pump_T8[5]);}
}
lcd.setCursor(16,2);if(TimePoint ==10){lcd.print("*");} lcd.setCursor(16,3);if(pump_T8[6] >0 ){
if(pump_T8[6]>9){lcd.print("A");} else{lcd.print(pump_T8[6]);}
}
lcd.setCursor(17,2);if(TimePoint ==11){lcd.print("*");} lcd.setCursor(17,3);if(pump_T8[7] >0 ){
if(pump_T8[7]>9){lcd.print("A");} else{lcd.print(pump_T8[7]);}
}
lcd.setCursor(18,2);if(TimePoint ==12){lcd.print("*");} lcd.setCursor(18,3);if(pump_T8[8] >0 ){
if(pump_T8[8]>9){lcd.print("A");} else{lcd.print(pump_T8[8]);}
}
}
if(Menu == 9){
lcd.setCursor(10,2);if(TimePoint ==4){lcd.print("*");} lcd.setCursor(10,3);if(pump_T9[0] >0 ){
if(pump_T9[0]>9){lcd.print("A");} else{lcd.print(pump_T9[0]);}
}
lcd.setCursor(11,2);if(TimePoint ==5){lcd.print("*");} lcd.setCursor(11,3);if(pump_T9[1] >0 ){
if(pump_T9[1]>9){lcd.print("A");} else{lcd.print(pump_T9[1]);}
}
lcd.setCursor(12,2);if(TimePoint ==6){lcd.print("*");} lcd.setCursor(12,3);if(pump_T9[2] >0 ){
if(pump_T9[2]>9){lcd.print("A");} else{lcd.print(pump_T9[2]);}
}
lcd.setCursor(13,2);if(TimePoint ==7){lcd.print("*");} lcd.setCursor(13,3);if(pump_T9[3] >0 ){
if(pump_T9[3]>9){lcd.print("A");} else{lcd.print(pump_T9[3]);}
}
lcd.setCursor(14,2);if(TimePoint ==8){lcd.print("*");} lcd.setCursor(14,3);if(pump_T9[4] >0 ){
if(pump_T9[4]>9){lcd.print("A");} else{lcd.print(pump_T9[4]);}
}
lcd.setCursor(15,2);if(TimePoint ==9){lcd.print("*");} lcd.setCursor(15,3);if(pump_T9[5] >0 ){
if(pump_T9[5]>9){lcd.print("A");} else{lcd.print(pump_T9[5]);}
}
lcd.setCursor(16,2);if(TimePoint ==10){lcd.print("*");} lcd.setCursor(16,3);if(pump_T9[6] >0 ){
if(pump_T9[6]>9){lcd.print("A");} else{lcd.print(pump_T9[6]);}
}
lcd.setCursor(17,2);if(TimePoint ==11){lcd.print("*");} lcd.setCursor(17,3);if(pump_T9[7] >0 ){
if(pump_T9[7]>9){lcd.print("A");} else{lcd.print(pump_T9[7]);}
}
lcd.setCursor(18,2);if(TimePoint ==12){lcd.print("*");} lcd.setCursor(18,3);if(pump_T9[8] >0 ){
if(pump_T9[8]>9){lcd.print("A");} else{lcd.print(pump_T9[8]);}
}
} // */
} // END else
} //***************************************************************************** END Display == true; *****
//----------------------------------------------------------------
if(digitalRead(BUTTON_SET) == 0){
delay(10);
if(digitalRead(BUTTON_SET) == 0){
if(ButtonSet == false){
ButtonSet = true;
if(Menu < 10 ){
Menu++;
}else { Menu = 0 ; lcd.clear();}
Display = true;
TempPoint = 1; TimePoint = 1;
if(Menu == 10){ Exit = true; lcd.clear(); delay(100);}
}
}
}else{ ButtonSet = false; }
//----------------------------------------------------------------
if(digitalRead(BUTTON_SELECT) == 0){
delay(10);
if(digitalRead(BUTTON_SELECT) == 0){
if(ButtonSelect == false){
ButtonSelect = true;
switch(Menu){
case 0: if(TempPoint < 2 ) { TempPoint++; } else{ TempPoint=1; } break;
case 1: if(TimePoint < 12 ) { TimePoint++; } else{ TimePoint=1; } break;
case 2: if(TimePoint < 12 ) { TimePoint++; } else{ TimePoint=1; } break;
case 3: if(TimePoint < 12 ) { TimePoint++; } else{ TimePoint=1; } break;
case 4: if(TimePoint < 12 ) { TimePoint++; } else{ TimePoint=1; } break;
case 5: if(TimePoint < 12 ) { TimePoint++; } else{ TimePoint=1; } break;
case 6: if(TimePoint < 12 ) { TimePoint++; } else{ TimePoint=1; } break;
case 7: if(TimePoint < 12 ) { TimePoint++; } else{ TimePoint=1; } break;
case 8: if(TimePoint < 12 ) { TimePoint++; } else{ TimePoint=1; } break;
case 9: if(TimePoint < 12 ) { TimePoint++; } else{ TimePoint=1; } break;
}
Display = true;
}
}
}else{ ButtonSelect = false; }
//----------------------------------------------------------------
if(digitalRead(BUTTON_UP) == 0){
delay(10);
if(digitalRead(BUTTON_UP) == 0){
if(ButtonUp == false){
ButtonUp = true;
if(Menu == 0){switch(TempPoint){
//case 1: if(Temp_control < 99) {Temp_control++;}else{Temp_control= 0;} break;
case 1: if(Humi_control < 99) {Humi_control++;}else{Humi_control= 0;} break;
//case 3: if(Temp_delay < 120) {Temp_delay++;} else{Temp_delay = 0;} break;
case 2: if(Humi_delay < 120) {Humi_delay++;} else{Humi_delay = 0;} break; }
}
//--------------------------------------------------------------------------------------------------- Time01-----
if(Menu == 1){ switch(TimePoint){
case 1: if( time01[0] < 23) { time01[0] ++;}else{time01[0] = 0;} break;
case 2: if( time01[1] < 59) { time01[1] ++;}else{time01[1] = 0;} break;
//case 3: if( week1 < 6 ) { week1 ++;}else{week1 = 0;} break;
case 4 : if( pump_T1[0] < 2){pump_T1[0] =1;} pump_T1[0]++; if(pump_T1[0] >10){pump_T1[0] =0;} break;
case 5 : if( pump_T1[1] < 2){pump_T1[1] =1;} pump_T1[1]++; if(pump_T1[1] >10){pump_T1[1] =0;} break;
case 6 : if( pump_T1[2] < 2){pump_T1[2] =1;} pump_T1[2]++; if(pump_T1[2] >10){pump_T1[2] =0;} break;
case 7 : if( pump_T1[3] < 2){pump_T1[3] =1;} pump_T1[3]++; if(pump_T1[3] >10){pump_T1[3] =0;} break;
case 8 : if( pump_T1[4] < 2){pump_T1[4] =1;} pump_T1[4]++; if(pump_T1[4] >10){pump_T1[4] =0;} break;
case 9 : if( pump_T1[5] < 2){pump_T1[5] =1;} pump_T1[5]++; if(pump_T1[5] >10){pump_T1[5] =0;} break;
case 10: if( pump_T1[6] < 2){pump_T1[6] =1;} pump_T1[6]++; if(pump_T1[6] >10){pump_T1[6] =0;} break;
case 11: if( pump_T1[7] < 2){pump_T1[7] =1;} pump_T1[7]++; if(pump_T1[7] >10){pump_T1[7] =0;} break;
case 12: if( pump_T1[8] < 2){pump_T1[8] =1;} pump_T1[8]++; if(pump_T1[8] >10){pump_T1[8] =0;} break;
}
} //ที่เป็น 5-13 เพราะเริ่มใช้ขา input ที่ขา 5 เลยเริ่มนับที่ 5ไปอีก 9 ตัว เป็น relay3 ใช้ขา5
//-------------------------------------------------------------------------------------------------- Time02 ----
if(Menu == 2){ switch(TimePoint){
case 1: if( time02[0] < 23) { time02[0]++;}else{time02[0] = 0;} break;
case 2: if( time02[1] < 59) { time02[1]++;}else{time02[1] = 0;} break;
//case 3: if( week2 < 6 ) { week2 ++;}else{week2 = 0;} break;
case 4 : if( pump_T2[0] < 2){pump_T2[0] =1;} pump_T2[0]++; if(pump_T2[0] >10){pump_T2[0] =0;} break;
case 5 : if( pump_T2[1] < 2){pump_T2[1] =1;} pump_T2[1]++; if(pump_T2[1] >10){pump_T2[1] =0;} break;
case 6 : if( pump_T2[2] < 2){pump_T2[2] =1;} pump_T2[2]++; if(pump_T2[2] >10){pump_T2[2] =0;} break;
case 7 : if( pump_T2[3] < 2){pump_T2[3] =1;} pump_T2[3]++; if(pump_T2[3] >10){pump_T2[3] =0;} break;
case 8 : if( pump_T2[4] < 2){pump_T2[4] =1;} pump_T2[4]++; if(pump_T2[4] >10){pump_T2[4] =0;} break;
case 9 : if( pump_T2[5] < 2){pump_T2[5] =1;} pump_T2[5]++; if(pump_T2[5] >10){pump_T2[5] =0;} break;
case 10: if( pump_T2[6] < 2){pump_T2[6] =1;} pump_T2[6]++; if(pump_T2[6] >10){pump_T2[6] =0;} break;
case 11: if( pump_T2[7] < 2){pump_T2[7] =1;} pump_T2[7]++; if(pump_T2[7] >10){pump_T2[7] =0;} break;
case 12: if( pump_T2[8] < 2){pump_T2[8] =1;} pump_T2[8]++; if(pump_T2[8] >10){pump_T2[8] =0;} break;
}
}
//------------------------------------------------------------------------------------------------- Time03 -----
if(Menu == 3){ switch(TimePoint){
case 1 : if( time03[0] < 23) { time03[0]++;}else{time03[0] = 0;} break;
case 2 : if( time03[1] < 59) { time03[1]++;}else{time03[1] = 0;} break;
case 3 : if( week3 < 6 ) { week3 ++;}else{week3 = 0;} break;
case 4 : if( pump_T3[0] < 2){pump_T3[0] =1;} pump_T3[0]++; if(pump_T3[0] >10){pump_T3[0] =0;} break;
case 5 : if( pump_T3[1] < 2){pump_T3[1] =1;} pump_T3[1]++; if(pump_T3[1] >10){pump_T3[1] =0;} break;
case 6 : if( pump_T3[2] < 2){pump_T3[2] =1;} pump_T3[2]++; if(pump_T3[2] >10){pump_T3[2] =0;} break;
case 7 : if( pump_T3[3] < 2){pump_T3[3] =1;} pump_T3[3]++; if(pump_T3[3] >10){pump_T3[3] =0;} break;
case 8 : if( pump_T3[4] < 2){pump_T3[4] =1;} pump_T3[4]++; if(pump_T3[4] >10){pump_T3[4] =0;} break;
case 9 : if( pump_T3[5] < 2){pump_T3[5] =1;} pump_T3[5]++; if(pump_T3[5] >10){pump_T3[5] =0;} break;
case 10: if( pump_T3[6] < 2){pump_T3[6] =1;} pump_T3[6]++; if(pump_T3[6] >10){pump_T3[6] =0;} break;
case 11: if( pump_T3[7] < 2){pump_T3[7] =1;} pump_T3[7]++; if(pump_T3[7] >10){pump_T3[7] =0;} break;
case 12: if( pump_T3[8] < 2){pump_T3[8] =1;} pump_T3[8]++; if(pump_T3[8] >10){pump_T3[8] =0;} break;
}
}
//-------------------------------------------------------------------------------------------------- Time04 ----
if(Menu == 4){ switch(TimePoint){
case 1 : if( time04[0] < 23) { time04[0]++;}else{time04[0] = 0;} break;
case 2 : if( time04[1] < 59) { time04[1]++;}else{time04[1] = 0;} break;
case 3 : if( week4 < 6 ) { week4 ++;}else{week4 = 0;} break;
case 4 : if( pump_T4[0] < 2){pump_T4[0] =1;} pump_T4[0]++; if(pump_T4[0] >10){pump_T4[0] =0;} break;
case 5 : if( pump_T4[1] < 2){pump_T4[1] =1;} pump_T4[1]++; if(pump_T4[1] >10){pump_T4[1] =0;} break;
case 6 : if( pump_T4[2] < 2){pump_T4[2] =1;} pump_T4[2]++; if(pump_T4[2] >10){pump_T4[2] =0;} break;
case 7 : if( pump_T4[3] < 2){pump_T4[3] =1;} pump_T4[3]++; if(pump_T4[3] >10){pump_T4[3] =0;} break;
case 8 : if( pump_T4[4] < 2){pump_T4[4] =1;} pump_T4[4]++; if(pump_T4[4] >10){pump_T4[4] =0;} break;
case 9 : if( pump_T4[5] < 2){pump_T4[5] =1;} pump_T4[5]++; if(pump_T4[5] >10){pump_T4[5] =0;} break;
case 10: if( pump_T4[6] < 2){pump_T4[6] =1;} pump_T4[6]++; if(pump_T4[6] >10){pump_T4[6] =0;} break;
case 11: if( pump_T4[7] < 2){pump_T4[7] =1;} pump_T4[7]++; if(pump_T4[7] >10){pump_T4[7] =0;} break;
case 12: if( pump_T4[8] < 2){pump_T4[8] =1;} pump_T4[8]++; if(pump_T4[8] >10){pump_T4[8] =0;} break;
}
}
//-------------------------------------------------------------------------------------------------- Time05 ----
if(Menu == 5){ switch(TimePoint){
case 1 : if( time05[0] < 23) { time05[0]++;}else{time05[0] = 0;} break;
case 2 : if( time05[1] < 59) { time05[1]++;}else{time05[1] = 0;} break;
case 3 : if( week5 < 6 ) { week5 ++;}else{week5 = 0;} break;
case 4 : if( pump_T5[0] < 2){pump_T5[0] =1;} pump_T5[0]++; if(pump_T5[0] >10){pump_T5[0] =0;} break;
case 5 : if( pump_T5[1] < 2){pump_T5[1] =1;} pump_T5[1]++; if(pump_T5[1] >10){pump_T5[1] =0;} break;
case 6 : if( pump_T5[2] < 2){pump_T5[2] =1;} pump_T5[2]++; if(pump_T5[2] >10){pump_T5[2] =0;} break;
case 7 : if( pump_T5[3] < 2){pump_T5[3] =1;} pump_T5[3]++; if(pump_T5[3] >10){pump_T5[3] =0;} break;
case 8 : if( pump_T5[4] < 2){pump_T5[4] =1;} pump_T5[4]++; if(pump_T5[4] >10){pump_T5[4] =0;} break;
case 9 : if( pump_T5[5] < 2){pump_T5[5] =1;} pump_T5[5]++; if(pump_T5[5] >10){pump_T5[5] =0;} break;
case 10: if( pump_T5[6] < 2){pump_T5[6] =1;} pump_T5[6]++; if(pump_T5[6] >10){pump_T5[6] =0;} break;
case 11: if( pump_T5[7] < 2){pump_T5[7] =1;} pump_T5[7]++; if(pump_T5[7] >10){pump_T5[7] =0;} break;
case 12: if( pump_T5[8] < 2){pump_T5[8] =1;} pump_T5[8]++; if(pump_T5[8] >10){pump_T5[8] =0;} break;
}
}
//------------------------------------------------------------------------------------------------- Time06 ----
if(Menu == 6){ switch(TimePoint){
case 1 : if( time06[0] < 23) { time06[0]++;}else{time06[0] = 0;} break;
case 2 : if( time06[1] < 59) { time06[1]++;}else{time06[1] = 0;} break;
case 3 : if( week6 < 6 ) { week6 ++;}else{week6 = 0;} break;
case 4 : if( pump_T6[0] < 2){pump_T6[0] =1;} pump_T6[0]++; if(pump_T6[0] >10){pump_T6[0] =0;} break;
case 5 : if( pump_T6[1] < 2){pump_T6[1] =1;} pump_T6[1]++; if(pump_T6[1] >10){pump_T6[1] =0;} break;
case 6 : if( pump_T6[2] < 2){pump_T6[2] =1;} pump_T6[2]++; if(pump_T6[2] >10){pump_T6[2] =0;} break;
case 7 : if( pump_T6[3] < 2){pump_T6[3] =1;} pump_T6[3]++; if(pump_T6[3] >10){pump_T6[3] =0;} break;
case 8 : if( pump_T6[4] < 2){pump_T6[4] =1;} pump_T6[4]++; if(pump_T6[4] >10){pump_T6[4] =0;} break;
case 9 : if( pump_T6[5] < 2){pump_T6[5] =1;} pump_T6[5]++; if(pump_T6[5] >10){pump_T6[5] =0;} break;
case 10: if( pump_T6[6] < 2){pump_T6[6] =1;} pump_T6[6]++; if(pump_T6[6] >10){pump_T6[6] =0;} break;
case 11: if( pump_T6[7] < 2){pump_T6[7] =1;} pump_T6[7]++; if(pump_T6[7] >10){pump_T6[7] =0;} break;
case 12: if( pump_T6[8] < 2){pump_T6[8] =1;} pump_T6[8]++; if(pump_T6[8] >10){pump_T6[8] =0;} break;
}
}
//-------------------------------------------------------------------------------------------------- Time07 ----
if(Menu == 7){ switch(TimePoint){
case 1 : if( time07[0] < 23) { time07[0]++;}else{time07[0] = 0;} break;
case 2 : if( time07[1] < 59) { time07[1]++;}else{time07[1] = 0;} break;
case 3 : if( week7 < 6 ) { week7 ++;}else{week7 = 0;} break;
case 4 : if( pump_T7[0] < 2){pump_T7[0] =1;} pump_T7[0]++; if(pump_T7[0] >10){pump_T7[0] =0;} break;
case 5 : if( pump_T7[1] < 2){pump_T7[1] =1;} pump_T7[1]++; if(pump_T7[1] >10){pump_T7[1] =0;} break;
case 6 : if( pump_T7[2] < 2){pump_T7[2] =1;} pump_T7[2]++; if(pump_T7[2] >10){pump_T7[2] =0;} break;
case 7 : if( pump_T7[3] < 2){pump_T7[3] =1;} pump_T7[3]++; if(pump_T7[3] >10){pump_T7[3] =0;} break;
case 8 : if( pump_T7[4] < 2){pump_T7[4] =1;} pump_T7[4]++; if(pump_T7[4] >10){pump_T7[4] =0;} break;
case 9 : if( pump_T7[5] < 2){pump_T7[5] =1;} pump_T7[5]++; if(pump_T7[5] >10){pump_T7[5] =0;} break;
case 10: if( pump_T7[6] < 2){pump_T7[6] =1;} pump_T7[6]++; if(pump_T7[6] >10){pump_T7[6] =0;} break;
case 11: if( pump_T7[7] < 2){pump_T7[7] =1;} pump_T7[7]++; if(pump_T7[7] >10){pump_T7[7] =0;} break;
case 12: if( pump_T7[8] < 2){pump_T7[8] =1;} pump_T7[8]++; if(pump_T7[8] >10){pump_T7[8] =0;} break;
}
}
//------------------------------------------------------------------------------------------------- Time08 -----
if(Menu == 8){ switch(TimePoint){
case 1 : if( time08[0] < 23) { time08[0]++;}else{time08[0] = 0;} break;
case 2 : if( time08[1] < 59) { time08[1]++;}else{time08[1] = 0;} break;
case 3 : if( week8 < 6 ) { week8 ++;}else{week8 = 0;} break;
case 4 : if( pump_T8[0] < 2){pump_T8[0] =1;} pump_T8[0]++; if(pump_T8[0] >10){pump_T8[0] =0;} break;
case 5 : if( pump_T8[1] < 2){pump_T8[1] =1;} pump_T8[1]++; if(pump_T8[1] >10){pump_T8[1] =0;} break;
case 6 : if( pump_T8[2] < 2){pump_T8[2] =1;} pump_T8[2]++; if(pump_T8[2] >10){pump_T8[2] =0;} break;
case 7 : if( pump_T8[3] < 2){pump_T8[3] =1;} pump_T8[3]++; if(pump_T8[3] >10){pump_T8[3] =0;} break;
case 8 : if( pump_T8[4] < 2){pump_T8[4] =1;} pump_T8[4]++; if(pump_T8[4] >10){pump_T8[4] =0;} break;
case 9 : if( pump_T8[5] < 2){pump_T8[5] =1;} pump_T8[5]++; if(pump_T8[5] >10){pump_T8[5] =0;} break;
case 10: if( pump_T8[6] < 2){pump_T8[6] =1;} pump_T8[6]++; if(pump_T8[6] >10){pump_T8[6] =0;} break;
case 11: if( pump_T8[7] < 2){pump_T8[7] =1;} pump_T8[7]++; if(pump_T8[7] >10){pump_T8[7] =0;} break;
case 12: if( pump_T8[8] < 2){pump_T8[8] =1;} pump_T8[8]++; if(pump_T8[8] >10){pump_T8[8] =0;} break;
}
}
//------------------------------------------------------------------------------------------------- Time09 -----
if(Menu == 9){ switch(TimePoint){
case 1 : if( time09[0] < 23) { time09[0]++;}else{time09[0] = 0;} break;
case 2 : if( time09[1] < 59) { time09[1]++;}else{time09[1] = 0;} break;
case 3 : if( week9 < 6 ) { week9 ++;}else{week9 = 0;} break;
case 4 : if( pump_T9[0] < 2){pump_T9[0] =1;} pump_T9[0]++; if(pump_T9[0] >10){pump_T9[0] =0;} break;
case 5 : if( pump_T9[1] < 2){pump_T9[1] =1;} pump_T9[1]++; if(pump_T9[1] >10){pump_T9[1] =0;} break;
case 6 : if( pump_T9[2] < 2){pump_T9[2] =1;} pump_T9[2]++; if(pump_T9[2] >10){pump_T9[2] =0;} break;
case 7 : if( pump_T9[3] < 2){pump_T9[3] =1;} pump_T9[3]++; if(pump_T9[3] >10){pump_T9[3] =0;} break;
case 8 : if( pump_T9[4] < 2){pump_T9[4] =1;} pump_T9[4]++; if(pump_T9[4] >10){pump_T9[4] =0;} break;
case 9 : if( pump_T9[5] < 2){pump_T9[5] =1;} pump_T9[5]++; if(pump_T9[5] >10){pump_T9[5] =0;} break;
case 10: if( pump_T9[6] < 2){pump_T9[6] =1;} pump_T9[6]++; if(pump_T9[6] >10){pump_T9[6] =0;} break;
case 11: if( pump_T9[7] < 2){pump_T9[7] =1;} pump_T9[7]++; if(pump_T9[7] >10){pump_T9[7] =0;} break;
case 12: if( pump_T9[8] < 2){pump_T9[8] =1;} pump_T9[8]++; if(pump_T9[8] >10){pump_T9[8] =0;} break;
}
}
//---------------------------------------------------------------------------------------------
Display = true;
}
}
}else{ ButtonUp = false; } //----------------------------------------------------------- END BUTTON_UP *****
if(digitalRead(BUTTON_DW) == 0){
delay(10);
if(digitalRead(BUTTON_DW) == 0){
if(ButtonDw == false){
ButtonDw = true;
if(Menu == 0){switch(TempPoint){
//case 1 : if(Temp_control > 0) {Temp_control--;}else{Temp_control= 99; } break;
case 1 : if(Humi_control > 0) {Humi_control--;}else{Humi_control= 99; } break;
//case 3 : if(Temp_delay > 0) {Temp_delay --;}else{Temp_delay = 120;} break;
case 2 : if(Humi_delay > 0) {Humi_delay --;}else{Humi_delay = 120;} break; }
}
//-------------------------------------------------------------------------------------------------- Time01 ----
if(Menu == 1){ switch(TimePoint){
case 1 : if( time01[0] > 0) { time01[0]--;}else{time01[0] = 23;} break;
case 2 : if( time01[1] > 0) { time01[1]--;}else{time01[1] = 59;} break;}
}
//-------------------------------------------------------------------------------------------------- Time02 ----
if(Menu == 2){ switch(TimePoint){
case 1 : if( time02[0] > 0) { time02[0]--;}else{time02[0] = 23;} break;
case 2 : if( time02[1] > 0) { time02[1]--;}else{time02[1] = 59;} break;}
}
//-------------------------------------------------------------------------------------------------- Time03 ----
if(Menu == 3){ switch(TimePoint){
case 1 : if( time03[0] > 0) { time03[0]--;}else{time03[0] = 23;} break;
case 2 : if( time03[1] > 0) { time03[1]--;}else{time03[1] = 59;} break;}
}
//-------------------------------------------------------------------------------------------------- Time04 ----
if(Menu == 4){ switch(TimePoint){
case 1 : if( time04[0] > 0) { time04[0]--;}else{time04[0] = 23;} break;
case 2 : if( time04[1] > 0) { time04[1]--;}else{time04[1] = 59;} break;}
}
//-------------------------------------------------------------------------------------------------- Time05 ----
if(Menu == 5){ switch(TimePoint){
case 1 : if( time05[0] > 0) { time05[0]--;}else{time05[0] = 23;} break;
case 2 : if( time05[1] > 0) { time05[1]--;}else{time05[1] = 59;} break;}
}
//-------------------------------------------------------------------------------------------------- Time06 -----
if(Menu == 6){ switch(TimePoint){
case 1 : if( time06[0] > 0) { time06[0]--;}else{time06[0] = 23;} break;
case 2 : if( time06[1] > 0) { time06[1]--;}else{time06[1] = 59;} break;}
}
//-------------------------------------------------------------------------------------------------- Time07 ----
if(Menu == 7){ switch(TimePoint){
case 1 : if( time07[0] > 0) { time07[0]--;}else{time07[0] = 23;} break;
case 2 : if( time07[1] > 0) { time07[1]--;}else{time07[1] = 59;} break;}
}
//-------------------------------------------------------------------------------------------------- Time08 ----
if(Menu == 8){ switch(TimePoint){
case 1 : if( time08[0] > 0) { time08[0]--;}else{time08[0] = 23;} break;
case 2 : if( time08[1] > 0) { time08[1]--;}else{time08[1] = 59;} break;}
}
//-------------------------------------------------------------------------------------------------- Time09 ----
if(Menu == 9){ switch(TimePoint){
case 1 : if( time09[0] > 0) { time09[0]--;}else{time09[0] = 23;} break;
case 2 : if( time09[1] > 0) { time09[1]--;}else{time09[1] = 59;} break;}
}
//------------------------------------------------------------------------------------------
Display = true;
}
}
}else { ButtonDw = false; } ///------------------------------------------------------------- END BUTTON_DW ----
delay(100);
} //***************************************************************************** END while(Exit == false) ****
} //******************************************************************************* END void AutoSet(void) ****
/*#################
###################
###################
#################*/
void AutoMode() { ///------------------------------------------------------------- ------ void AUTO_Mode() #####
DateTime now = RTC.now();
// ******************************************************************************************* Temp ON / OFF ****
// status ON จะปิด สลับ เปิด OFF จะดับหมด
/*
byte tempStatus = digitalRead(relay1);
float t = dht.readTemperature();
if( count_openT == 2 ){
if(millis() - temp_count1 >= (Temp_delay*60000)){
temp_count1 = millis();
count_openT = 0;
}
}
if( count_openT == 0){
if( t > Temp_control ) { digitalWrite(relay1, ON); count_openT = 1; }
}
//Serial.print(millis() - temp_count1); // millis
//Serial.print(" ");
//Serial.print(temp_count1);
//Serial.print(" ");
//Serial.print(count_openT); // นับปั๊ม ปิด-เปิด
//Serial.print(" "); // แบ่งบรรทัด
if( count_openT == 0 ) { temp_count1 = millis(); }
if( count_openT == 1 ) {
if( millis() - temp_count1 >= (Temp_delay*60000) ){
digitalWrite(relay1, OFF);
temp_count1 = millis();
if( t > Temp_control ) {
count_openT = 2;
}else {count_openT = 0; }
}
}else{if( millis() < temp_count1) { temp_count1 = 4294967295 - temp_count1; }}
*/
// -----------------------------------------------------------------------------------------------Humi ON / OFF ----
// on ( ON OFF ON OFF ) pump off ( OFF OFF OFF OFF )
//if ((now.hour()==time01[0] && now.minute() == time01[1])) { // ไม่ถึงเวลาที่กำหนดไม่เช็คค่า
//float h = dht.readHumidity();
byte humiStatus = digitalRead(relay1);
float h = map(analogRead(soil_in),0,1023,0,100);
if( count_openH == 2 ){
if(millis() - humi_count1 >= (Humi_delay*60000)){
humi_count1 = millis();
count_openH = 0;
}
}
if( count_openH == 0){
if( h < Humi_control ) { digitalWrite(relay1, ON); count_openH = 1; }
}
//Serial.print(millis() - humi_count1); // millis
//Serial.print(" ");
//Serial.print(humi_count1);
//Serial.print(" ");
//Serial.print(count_openH); // นับปั๊ม ปิด-เปิด
//Serial.println(" "); // แบ่งบรรทัด
if( count_openH == 0 ) { humi_count1 = millis(); }
if( count_openH == 1 ) {
if( millis() - humi_count1 >= (Humi_delay*60000) ){
digitalWrite(relay1, OFF);
humi_count1 = millis();
if( h < Humi_control ) {
count_openH = 2;
}else {count_openH = 0; }
}
}else{if( millis() < humi_count1) { humi_count1 = 4294967295 -humi_count1; }}
//} // End time set Humidity
//========================================================================================== ALL DAY ทำงานทุกวัน ====
//------------------------------------------------------------------------------------------------------ Mornig ----
if (now.hour() == time01[0] && now.minute() == time01[1] ) {
digitalWrite(relay1,OFF);
//digitalWrite(relay2,OFF);
delay(1000);
for (byte a = 0; a < sizeof(pump_T1) / sizeof(pump_T1[0]) ; a++){
if(relayAll[0] == pump_T1[a] ){digitalWrite(relay2, ON);lcd.setCursor(11,3); lcd.print("*");delay(delay_2 *1000);digitalWrite(relay2, OFF);}
if(relayAll[1] == pump_T1[a] ){digitalWrite(relay3, ON);lcd.setCursor(12,3); lcd.print("*");delay(delay_3 *1000);digitalWrite(relay3, OFF);}
if(relayAll[2] == pump_T1[a] ){digitalWrite(relay4, ON);lcd.setCursor(13,3); lcd.print("*");delay(delay_4 *1000);digitalWrite(relay4, OFF);}
if(relayAll[3] == pump_T1[a] ){digitalWrite(relay5, ON);lcd.setCursor(14,3); lcd.print("*");delay(delay_5 *1000);digitalWrite(relay5, OFF);}
if(relayAll[4] == pump_T1[a] ){digitalWrite(relay6, ON);lcd.setCursor(15,3); lcd.print("*");delay(delay_6 *1000);digitalWrite(relay6, OFF);}
if(relayAll[5] == pump_T1[a] ){digitalWrite(relay7, ON);lcd.setCursor(16,3); lcd.print("*");delay(delay_7 *1000);digitalWrite(relay7, OFF);}
if(relayAll[6] == pump_T1[a] ){digitalWrite(relay8, ON);lcd.setCursor(17,3); lcd.print("*");delay(delay_8 *1000);digitalWrite(relay8, OFF);}
if(relayAll[7] == pump_T1[a] ){digitalWrite(relay9, ON);lcd.setCursor(18,3); lcd.print("*");delay(delay_9 *1000);digitalWrite(relay9, OFF);}
if(relayAll[8] == pump_T1[a] ){digitalWrite(relay10,ON);lcd.setCursor(19,3); lcd.print("*");delay(delay_10*1000);digitalWrite(relay10,OFF);}
}
}
//------------------------------------------------------------------------------------------------------ Evenig ----
if (now.hour() == time02[0] && now.minute() == time02[1] ) {
digitalWrite(relay1,OFF);
//digitalWrite(relay2,OFF);
delay(1000);
for (byte b = 0; b < sizeof(pump_T2) / sizeof(pump_T2[0]) ; b++){
if(relayAll[0] == pump_T2[b] ){digitalWrite(relay2, ON);lcd.setCursor(11,3); lcd.print("*");delay(delay_2 *1000);digitalWrite(relay2, OFF);}
if(relayAll[1] == pump_T2[b] ){digitalWrite(relay3, ON);lcd.setCursor(12,3); lcd.print("*");delay(delay_3 *1000);digitalWrite(relay3, OFF);}
if(relayAll[2] == pump_T2[b] ){digitalWrite(relay4, ON);lcd.setCursor(13,3); lcd.print("*");delay(delay_4 *1000);digitalWrite(relay4, OFF);}
if(relayAll[3] == pump_T2[b] ){digitalWrite(relay5, ON);lcd.setCursor(14,3); lcd.print("*");delay(delay_5 *1000);digitalWrite(relay5, OFF);}
if(relayAll[4] == pump_T2[b] ){digitalWrite(relay6, ON);lcd.setCursor(15,3); lcd.print("*");delay(delay_6 *1000);digitalWrite(relay6, OFF);}
if(relayAll[5] == pump_T2[b] ){digitalWrite(relay7, ON);lcd.setCursor(16,3); lcd.print("*");delay(delay_7 *1000);digitalWrite(relay7, OFF);}
if(relayAll[6] == pump_T2[b] ){digitalWrite(relay8, ON);lcd.setCursor(17,3); lcd.print("*");delay(delay_8 *1000);digitalWrite(relay8, OFF);}
if(relayAll[7] == pump_T2[b] ){digitalWrite(relay9, ON);lcd.setCursor(18,3); lcd.print("*");delay(delay_9 *1000);digitalWrite(relay9, OFF);}
if(relayAll[8] == pump_T2[b] ){digitalWrite(relay10,ON);lcd.setCursor(19,3); lcd.print("*");delay(delay_10*1000);digitalWrite(relay10,OFF);}
}
}
//================================================================================================= TIME SELECT ====
//------------------------------------------------------------------------------------------------------ TIME1 ----
if (now.hour() == time03[0] && now.minute() == time03[1] && now.dayOfTheWeek() == week3) {
digitalWrite(relay1,OFF);
//digitalWrite(relay2,OFF);
delay(1000);
for (byte c = 0; c < sizeof(pump_T3) / sizeof(pump_T3[0]) ; c++){
if(relayAll[0] == pump_T3[c] ){digitalWrite(relay2, ON);lcd.setCursor(11,3); lcd.print("*");delay(delay_2 *1000);digitalWrite(relay2, OFF);}
if(relayAll[1] == pump_T3[c] ){digitalWrite(relay3, ON);lcd.setCursor(12,3); lcd.print("*");delay(delay_3 *1000);digitalWrite(relay3, OFF);}
if(relayAll[2] == pump_T3[c] ){digitalWrite(relay4, ON);lcd.setCursor(13,3); lcd.print("*");delay(delay_4 *1000);digitalWrite(relay4, OFF);}
if(relayAll[3] == pump_T3[c] ){digitalWrite(relay5, ON);lcd.setCursor(14,3); lcd.print("*");delay(delay_5 *1000);digitalWrite(relay5, OFF);}
if(relayAll[4] == pump_T3[c] ){digitalWrite(relay6, ON);lcd.setCursor(15,3); lcd.print("*");delay(delay_6 *1000);digitalWrite(relay6, OFF);}
if(relayAll[5] == pump_T3[c] ){digitalWrite(relay7, ON);lcd.setCursor(16,3); lcd.print("*");delay(delay_7 *1000);digitalWrite(relay7, OFF);}
if(relayAll[6] == pump_T3[c] ){digitalWrite(relay8, ON);lcd.setCursor(17,3); lcd.print("*");delay(delay_8 *1000);digitalWrite(relay8, OFF);}
if(relayAll[7] == pump_T3[c] ){digitalWrite(relay9, ON);lcd.setCursor(18,3); lcd.print("*");delay(delay_9 *1000);digitalWrite(relay9, OFF);}
if(relayAll[8] == pump_T3[c] ){digitalWrite(relay10,ON);lcd.setCursor(19,3); lcd.print("*");delay(delay_10*1000);digitalWrite(relay10,OFF);}
}
}
//------------------------------------------------------------------------------------------------------ TIME2 ----
if (now.hour() == time04[0] && now.minute() == time04[1] && now.dayOfTheWeek() == week4 ) {
digitalWrite(relay1,OFF);
//digitalWrite(relay2,OFF);
delay(1000);
for (byte d = 0; d < sizeof(pump_T4) / sizeof(pump_T4[0]) ; d++){
if(relayAll[0] == pump_T4[d] ){digitalWrite(relay2, ON);lcd.setCursor(11,3); lcd.print("*");delay(delay_2 *1000);digitalWrite(relay2, OFF);}
if(relayAll[1] == pump_T4[d] ){digitalWrite(relay3, ON);lcd.setCursor(12,3); lcd.print("*");delay(delay_3 *1000);digitalWrite(relay3, OFF);}
if(relayAll[2] == pump_T4[d] ){digitalWrite(relay4, ON);lcd.setCursor(13,3); lcd.print("*");delay(delay_4 *1000);digitalWrite(relay4, OFF);}
if(relayAll[3] == pump_T4[d] ){digitalWrite(relay5, ON);lcd.setCursor(14,3); lcd.print("*");delay(delay_5 *1000);digitalWrite(relay5, OFF);}
if(relayAll[4] == pump_T4[d] ){digitalWrite(relay6, ON);lcd.setCursor(15,3); lcd.print("*");delay(delay_6 *1000);digitalWrite(relay6, OFF);}
if(relayAll[5] == pump_T4[d] ){digitalWrite(relay7, ON);lcd.setCursor(16,3); lcd.print("*");delay(delay_7 *1000);digitalWrite(relay7, OFF);}
if(relayAll[6] == pump_T4[d] ){digitalWrite(relay8, ON);lcd.setCursor(17,3); lcd.print("*");delay(delay_8 *1000);digitalWrite(relay8, OFF);}
if(relayAll[7] == pump_T4[d] ){digitalWrite(relay9, ON);lcd.setCursor(18,3); lcd.print("*");delay(delay_9 *1000);digitalWrite(relay9, OFF);}
if(relayAll[8] == pump_T4[d] ){digitalWrite(relay10,ON);lcd.setCursor(19,3); lcd.print("*");delay(delay_10*1000);digitalWrite(relay10,OFF);}
}
}
//----------------------------------------------------------------------------------------------------- TIME3 -----
if (now.hour() == time05[0] && now.minute() == time05[1] && now.dayOfTheWeek() == week5) {
digitalWrite(relay1,OFF);
//digitalWrite(relay2,OFF);
delay(1000);
for (byte e = 0; e < sizeof(pump_T5) / sizeof(pump_T5[0]) ; e++){
if(relayAll[0] == pump_T5[e] ){digitalWrite(relay2, ON);lcd.setCursor(11,3); lcd.print("*");delay(delay_2 *1000);digitalWrite(relay2, OFF);}
if(relayAll[1] == pump_T5[e] ){digitalWrite(relay3, ON);lcd.setCursor(12,3); lcd.print("*");delay(delay_3 *1000);digitalWrite(relay3, OFF);}
if(relayAll[2] == pump_T5[e] ){digitalWrite(relay4, ON);lcd.setCursor(13,3); lcd.print("*");delay(delay_4 *1000);digitalWrite(relay4, OFF);}
if(relayAll[3] == pump_T5[e] ){digitalWrite(relay5, ON);lcd.setCursor(14,3); lcd.print("*");delay(delay_5 *1000);digitalWrite(relay5, OFF);}
if(relayAll[4] == pump_T5[e] ){digitalWrite(relay6, ON);lcd.setCursor(15,3); lcd.print("*");delay(delay_6 *1000);digitalWrite(relay6, OFF);}
if(relayAll[5] == pump_T5[e] ){digitalWrite(relay7, ON);lcd.setCursor(16,3); lcd.print("*");delay(delay_7 *1000);digitalWrite(relay7, OFF);}
if(relayAll[6] == pump_T5[e] ){digitalWrite(relay8, ON);lcd.setCursor(17,3); lcd.print("*");delay(delay_8 *1000);digitalWrite(relay8, OFF);}
if(relayAll[7] == pump_T5[e] ){digitalWrite(relay9, ON);lcd.setCursor(18,3); lcd.print("*");delay(delay_9 *1000);digitalWrite(relay9, OFF);}
if(relayAll[8] == pump_T5[e] ){digitalWrite(relay10,ON);lcd.setCursor(19,3); lcd.print("*");delay(delay_10*1000);digitalWrite(relay10,OFF);}
}
}
//------------------------------------------------------------------------------------------------------ TIME4 ----
if (now.hour() == time06[0] && now.minute() == time06[1] && now.dayOfTheWeek() == week6) {
digitalWrite(relay1,OFF);
//digitalWrite(relay2,OFF);
delay(1000);
for (byte g = 0; g < sizeof(pump_T6) / sizeof(pump_T6[0]) ; g++){
if(relayAll[0] == pump_T6[g] ){digitalWrite(relay2, ON);lcd.setCursor(11,3); lcd.print("*");delay(delay_2 *1000);digitalWrite(relay2, OFF);}
if(relayAll[1] == pump_T6[g] ){digitalWrite(relay3, ON);lcd.setCursor(12,3); lcd.print("*");delay(delay_3 *1000);digitalWrite(relay3, OFF);}
if(relayAll[2] == pump_T6[g] ){digitalWrite(relay4, ON);lcd.setCursor(13,3); lcd.print("*");delay(delay_4 *1000);digitalWrite(relay4, OFF);}
if(relayAll[3] == pump_T6[g] ){digitalWrite(relay5, ON);lcd.setCursor(14,3); lcd.print("*");delay(delay_5 *1000);digitalWrite(relay5, OFF);}
if(relayAll[4] == pump_T6[g] ){digitalWrite(relay6, ON);lcd.setCursor(15,3); lcd.print("*");delay(delay_6 *1000);digitalWrite(relay6, OFF);}
if(relayAll[5] == pump_T6[g] ){digitalWrite(relay7, ON);lcd.setCursor(16,3); lcd.print("*");delay(delay_7 *1000);digitalWrite(relay7, OFF);}
if(relayAll[6] == pump_T6[g] ){digitalWrite(relay8, ON);lcd.setCursor(17,3); lcd.print("*");delay(delay_8 *1000);digitalWrite(relay8, OFF);}
if(relayAll[7] == pump_T6[g] ){digitalWrite(relay9, ON);lcd.setCursor(18,3); lcd.print("*");delay(delay_9 *1000);digitalWrite(relay9, OFF);}
if(relayAll[8] == pump_T6[g] ){digitalWrite(relay10,ON);lcd.setCursor(19,3); lcd.print("*");delay(delay_10*1000);digitalWrite(relay10,OFF);}
}
}
//------------------------------------------------------------------------------------------------------ TIME5 ----
if (now.hour() == time07[0] && now.minute() == time07[1] && now.dayOfTheWeek() == week7) {
digitalWrite(relay1,OFF);
//digitalWrite(relay2,OFF);
delay(1000);
for (byte i = 0; i < sizeof(pump_T7) / sizeof(pump_T7[0]) ; i++){
if(relayAll[0] == pump_T7[i] ){digitalWrite(relay2, ON);lcd.setCursor(11,3); lcd.print("*");delay(delay_2 *1000);digitalWrite(relay2, OFF);}
if(relayAll[1] == pump_T7[i] ){digitalWrite(relay3, ON);lcd.setCursor(12,3); lcd.print("*");delay(delay_3 *1000);digitalWrite(relay3, OFF);}
if(relayAll[2] == pump_T7[i] ){digitalWrite(relay4, ON);lcd.setCursor(13,3); lcd.print("*");delay(delay_4 *1000);digitalWrite(relay4, OFF);}
if(relayAll[3] == pump_T7[i] ){digitalWrite(relay5, ON);lcd.setCursor(14,3); lcd.print("*");delay(delay_5 *1000);digitalWrite(relay5, OFF);}
if(relayAll[4] == pump_T7[i] ){digitalWrite(relay6, ON);lcd.setCursor(15,3); lcd.print("*");delay(delay_6 *1000);digitalWrite(relay6, OFF);}
if(relayAll[5] == pump_T7[i] ){digitalWrite(relay7, ON);lcd.setCursor(16,3); lcd.print("*");delay(delay_7 *1000);digitalWrite(relay7, OFF);}
if(relayAll[6] == pump_T7[i] ){digitalWrite(relay8, ON);lcd.setCursor(17,3); lcd.print("*");delay(delay_8 *1000);digitalWrite(relay8, OFF);}
if(relayAll[7] == pump_T7[i] ){digitalWrite(relay9, ON);lcd.setCursor(18,3); lcd.print("*");delay(delay_9 *1000);digitalWrite(relay9, OFF);}
if(relayAll[8] == pump_T7[i] ){digitalWrite(relay10,ON);lcd.setCursor(19,3); lcd.print("*");delay(delay_10*1000);digitalWrite(relay10,OFF);}
}
}
//------------------------------------------------------------------------------------------------------ TIME6 ----
if (now.hour() == time08[0] && now.minute() == time08[1] && now.dayOfTheWeek() == week8) {
digitalWrite(relay1,OFF);
//digitalWrite(relay2,OFF);
delay(1000);
for (byte j = 0; j < sizeof(pump_T8) / sizeof(pump_T8[0]) ; j++){
if(relayAll[0] == pump_T8[j] ){digitalWrite(relay2, ON);lcd.setCursor(11,3); lcd.print("*");delay(delay_2 *1000);digitalWrite(relay2, OFF);}
if(relayAll[1] == pump_T8[j] ){digitalWrite(relay3, ON);lcd.setCursor(12,3); lcd.print("*");delay(delay_3 *1000);digitalWrite(relay3, OFF);}
if(relayAll[2] == pump_T8[j] ){digitalWrite(relay4, ON);lcd.setCursor(13,3); lcd.print("*");delay(delay_4 *1000);digitalWrite(relay4, OFF);}
if(relayAll[3] == pump_T8[j] ){digitalWrite(relay5, ON);lcd.setCursor(14,3); lcd.print("*");delay(delay_5 *1000);digitalWrite(relay5, OFF);}
if(relayAll[4] == pump_T8[j] ){digitalWrite(relay6, ON);lcd.setCursor(15,3); lcd.print("*");delay(delay_6 *1000);digitalWrite(relay6, OFF);}
if(relayAll[5] == pump_T8[j] ){digitalWrite(relay7, ON);lcd.setCursor(16,3); lcd.print("*");delay(delay_7 *1000);digitalWrite(relay7, OFF);}
if(relayAll[6] == pump_T8[j] ){digitalWrite(relay8, ON);lcd.setCursor(17,3); lcd.print("*");delay(delay_8 *1000);digitalWrite(relay8, OFF);}
if(relayAll[7] == pump_T8[j] ){digitalWrite(relay9, ON);lcd.setCursor(18,3); lcd.print("*");delay(delay_9 *1000);digitalWrite(relay9, OFF);}
if(relayAll[8] == pump_T8[j] ){digitalWrite(relay10,ON);lcd.setCursor(19,3); lcd.print("*");delay(delay_10*1000);digitalWrite(relay10,OFF);}
}
}
//----------------------------------------------------------------------------------------------------- TIME7 ---
if (now.hour() == time09[0] && now.minute() == time09[1] && now.dayOfTheWeek() == week9) {
digitalWrite(relay1,OFF);
//digitalWrite(relay2,OFF);
delay(1000);
for (byte k = 0; k < sizeof(pump_T9) / sizeof(pump_T9[0]) ; k++){
if(relayAll[0] == pump_T9[k] ){digitalWrite(relay2, ON);lcd.setCursor(11,3); lcd.print("*");delay(delay_2 *1000);digitalWrite(relay2, OFF);}
if(relayAll[1] == pump_T9[k] ){digitalWrite(relay3, ON);lcd.setCursor(12,3); lcd.print("*");delay(delay_3 *1000);digitalWrite(relay3, OFF);}
if(relayAll[2] == pump_T9[k] ){digitalWrite(relay4, ON);lcd.setCursor(13,3); lcd.print("*");delay(delay_4 *1000);digitalWrite(relay4, OFF);}
if(relayAll[3] == pump_T9[k] ){digitalWrite(relay5, ON);lcd.setCursor(14,3); lcd.print("*");delay(delay_5 *1000);digitalWrite(relay5, OFF);}
if(relayAll[4] == pump_T9[k] ){digitalWrite(relay6, ON);lcd.setCursor(15,3); lcd.print("*");delay(delay_6 *1000);digitalWrite(relay6, OFF);}
if(relayAll[5] == pump_T9[k] ){digitalWrite(relay7, ON);lcd.setCursor(16,3); lcd.print("*");delay(delay_7 *1000);digitalWrite(relay7, OFF);}
if(relayAll[6] == pump_T9[k] ){digitalWrite(relay8, ON);lcd.setCursor(17,3); lcd.print("*");delay(delay_8 *1000);digitalWrite(relay8, OFF);}
if(relayAll[7] == pump_T9[k] ){digitalWrite(relay9, ON);lcd.setCursor(18,3); lcd.print("*");delay(delay_9 *1000);digitalWrite(relay9, OFF);}
if(relayAll[8] == pump_T9[k] ){digitalWrite(relay10,ON);lcd.setCursor(19,3); lcd.print("*");delay(delay_10*1000);digitalWrite(relay10,OFF);}
}
}
//#######################################################################################################
//#######################################################################################################
} //******************************************************************************************** END AutoMode ****