//Bibliotecas
#include "WiFi.h"
#include "ESP32Time.h" // Librerias que se deben descargar previamente
//Datos de la red WIFI
const char* ssid = "xxxxxx"; // Nombre de su Red WIFI
const char* password = "xxxxxxx"; // Clave de su Red WIFI
//Configuracion del servidor NTP
const char* ntpServer = "pool.ntp.org"; //Servidor NTP
const long gmtOffset_sec = -5*3600; //Desplazamiento GMT
const int daylightOffset_sec = 0; //Compensacion de luz diurna
// Hora de inicio y fin programado por cada rele
String Inicio_rele4 = "18:30:00"; String fin_rele4 = "21:30:00";
String Inicio_rele3 = "18:30:01"; String fin_rele3 = "21:30:01";
String Inicio_rele2 = "18:30:02"; String fin_rele2 = "21:30:02";
String Inicio_rele1 = "18:30:03"; String fin_rele1 = "21:30:03";
int rele4 = 17; int rele3 = 18; int rele2 = 19; int rele1 = 23;
int boton1 = 27; int estado_bot1 = 1;
ESP32Time rtc;
void setup() {
// Monitor Serie
Serial.begin(115200);
pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
pinMode(rele3, OUTPUT);
pinMode(rele4, OUTPUT);
pinMode(boton1, INPUT_PULLUP);
// Conexion a la red
Serial.print("Conectando a la red ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi conectado");
// Configuracion de la hora
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
}
void loop() {
Serial.println(rtc.getTime("%A, %B %d %Y %H:%M:%S")); //Funcion para imprimir la fehca y hora
String hora=rtc.getTime();
//Serial.println(hora);
if (hora == Inicio_rele4){ // si es la hora de activar el Rele
digitalWrite(rele4, HIGH);
Serial.println("Activado Rele4 Alarma ******* ON ******");
}
if (hora == fin_rele4){
digitalWrite(rele4, LOW);
Serial.println("Apagar Rele4 Alarma ******* OFF ******");
}
if (hora == Inicio_rele3){ // si es la hora de activar el Rele
digitalWrite(rele3, HIGH);
Serial.println("Activado Rele3 Alarma ******* ON ******");
}
if (hora == fin_rele3){
digitalWrite(rele3, LOW);
Serial.println("Apagar Rele3 Alarma ******* OFF ******");
}
if (hora == Inicio_rele2){ // si es la hora de activar el Rele
digitalWrite(rele2, HIGH);
Serial.println("Activado Rele2 Alarma ******* ON ******");
}
if (hora == fin_rele2){
digitalWrite(rele2, LOW);
Serial.println("Apagar Rele2 Alarma ******* OFF ******");
}
if (hora == Inicio_rele1){ // si es la hora de activar el Rele
digitalWrite(rele1, HIGH);
Serial.println("Activado Rele1 Alarma ******* ON ******");
}
if (hora == fin_rele1){
digitalWrite(rele1, LOW);
Serial.println("Apagar Rele1 Alarma ******* OFF ******");
}
estado_bot1=digitalRead(boton1); // lee el estado del boton 27
if (estado_bot1 == 0){
digitalWrite(rele4, LOW); digitalWrite(rele3, LOW);
digitalWrite(rele2, LOW); digitalWrite(rele1, LOW);
Serial.println("TODOS ******* OFF ******");
delay(1000);
estado_bot1=digitalRead(boton1);
if (estado_bot1 == 0){
digitalWrite(rele4, HIGH); digitalWrite(rele3, HIGH);
digitalWrite(rele2, HIGH); digitalWrite(rele1, HIGH);
Serial.println("TODOS ******* ON ******");
Serial.print(Inicio_rele4);Serial.print(" <- Rele 4 -> ");Serial.println(fin_rele4);
Serial.print(Inicio_rele3);Serial.print(" <- Rele 3 -> ");Serial.println(fin_rele3);
Serial.print(Inicio_rele2);Serial.print(" <- Rele 2 -> ");Serial.println(fin_rele2);
Serial.print(Inicio_rele1);Serial.print(" <- Rele 1 -> ");Serial.println(fin_rele1);
}
}
delay(990);
}