/*
Programa que configura la fecha y hora de un módulo RTC DS1307
con Arduino UNO
por: Gerald Lanzas
fecha: 16 de mayo, 2024
*/
//Declaración de librerias.
#include <LiquidCrystal_I2C.h>
#include "uRTCLib.h"
#include <DHT.h>
//Configuracion de la pantalla LCD
LiquidCrystal_I2C lcd(0x27,16,2);
//Declarion de veriables.
const int rele=2;
const int led_ONOFF=4;
const int valvula_ONOFF=5;
#define DHTTYPE DHT22
const int DHTPin = 3
dht.(DHTPin, DHTTYPE);
float humedad;
float temperatura;
// creando el modulo rtc para la libreria uRTCLib;
uRTCLib rtc(0x68);
char daysOfTheWeek[7][12] = {"Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado"};
void setup() {
//Inializar el LCD
lcd.init();
//Encender la luz de fondo.
lcd.backlight();
lcd.print("sistema");
//Configuracion de puertos de E/S digital
pinMode(rele,OUTPUT);
pinMode(led_ONOFF,OUTPUT);
pinMode(valvula_ONOFF,OUTPUT);
//Configuración puerto serial
Serial.begin(9600);
delay(3000); // tiempo de espera para conectar puerto serial
URTCLIB_WIRE.begin();
dht.begin(); //configuracion de la cimunicacion del sensor
// Seteo de la Hora y Fecha
rtc.set(0, 59, 11, 3, 16, 5, 24);
// rtc.set(segundos, minutos, horas, dias_semana, dias_mes, mes, año)
// donde (0= domingo, 6=Sabado)
//Modulo ON/OFF
digitalWrite(led_ONOFF,HIGH);
}
void loop() {
//Modulo RTC
rtc.refresh();
Serial.print("Fecha y Hora: ");
Serial.print(rtc.day());
Serial.print('/');
Serial.print(rtc.month());
Serial.print('/');
Serial.print(rtc.year());
Serial.print(" (");
Serial.print(daysOfTheWeek[rtc.dayOfWeek()]);
Serial.print(") ");
Serial.print(rtc.hour());
Serial.print(':');
Serial.print(rtc.minute());
Serial.print(':');
Serial.println(rtc.second());
// Modulo DHT 22
delay(2000); //Configuracion de 2 segundos de espera del modulo
//Lectura de la temperatura y Humedad
humedad= dht.readHumidity();
temperatura= dht.readTemperature();
// Imprimiendo los valores de temperatura y humedad
Serial.print("Humedad: ");
Serial.print(humedad);
Serial.println("%t");
Serial.print("Temperatura: ");
Serial.print(temperatura);
Serial.println("*C");
// Bloque de control
if(rtc.hour() == 11 && rtc.minute() == 59 && rtc.second() == 20)
{
{
Serial.println("Riego=Activado");
digitalWrite(rele, HIGH);
}
}
if(rtc.hour() == 11 && rtc.minute() == 59 && rtc.second() == 50)
{
Serial.println("Riego=Apagado");
digitalWrite(rele, LOW);
}
}