este es mi avance, use las librerías time y timealarms pero me sale un error de compilacion, lo pongo al final. AYUDAaaaaaa!!!!
#include <Time.h>
#include <TimeAlarms.h>
#include <LiquidCrystal.h> //Llamamos a la libreria para controlar el LCD incluida en el IDE de Arduino
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Definimos los pines asignados al LCD según el esquema de conexión
#include "DHT.h"//Llamamos a la libreria de los sensores DHT instalada previamente
#define DHTPIN 7
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
int Temp=23;
// Símbolo de grado (º).
byte grau[8] = {
B11100,
B10100,
B11100,
B00000,
B00000,
B00000,
B00000,
B00000
};
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
int bomba1=6;
int bomba2=9;
int calefaccion=13;
int refrigeracion=8;
void setup () {
Wire.begin(); // Inicia el puerto I2C
RTC.begin(); // Inicia la comunicación con el RTC
//RTC.adjust(DateTime(__DATE__, __TIME__)); // Establece la fecha y hora
Serial.begin(9600); // Establece la velocidad de datos del puerto serie
dht.begin();// Inicia o LCD 16x2.
lcd.begin(16, 2);//Iniciamos el sensor
pinMode(calefaccion,OUTPUT);
pinMode(refrigeracion,OUTPUT);
pinMode(bomba1,OUTPUT);
pinMode(bomba2,OUTPUT);
lcd.createChar(3, grau);
Alarm.timerRepeat(900, Repeats);//repite cada 15minutos (60*15)
}
void loop(){
DateTime now = RTC.now(); // Obtiene la fecha y hora del RTC
float hum = dht.readHumidity();
float temp = dht.readTemperature();//Establecemos dos variables, una para la temperatura en ºC y otra para la humedad relativa en %
if (isnan(hum) || isnan(temp)) {
Serial.println("Error al Leer Sensor DHT¡");
return;//Con la funcion isnan controlamos que el valor recibido del sensor sea un número, sino dara error
}
Serial.print(now.year(), DEC); // Año
Serial.print('/');
Serial.print(now.month(), DEC); // Mes
Serial.print('/');
Serial.print(now.day(), DEC); // Dia
Serial.print(' ');
Serial.print(now.hour(), DEC); // Horas
Serial.print(':');
Serial.print(now.minute(), DEC); // Minutos
Serial.print(':');
Serial.print(now.second(), DEC); // Segundos
Serial.print(" Humedad: ");
Serial.print(hum);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(temp);
Serial.println(" *C ");
lcd.begin(16, 2);
//Indicamos el LCD que usamos: 16 caracteres y 2 lineas
lcd.setCursor(0,0);
//Situamos el cursor en la posicion 0 de la primera linea
lcd.write("T:");
lcd.setCursor(2,0);
lcd.print(temp);
lcd.write(3);//simbolo de los grados º
lcd.write("C");
lcd.setCursor(0,1);
lcd.write("H:");
lcd.setCursor(2,1);
lcd.print(hum);
lcd.write("%");
{
if (temp >=Temp+3){
digitalWrite(8,HIGH);
}
else{
digitalWrite(8,LOW);
}
}
{
if(temp <= Temp-3){
digitalWrite(calefaccion,HIGH);
}
else{
digitalWrite(calefaccion,LOW);
}
}
delay(1000); // La información se actualiza cada 1 seg.
}
void Repeats(){
if(digitalRead(bomba1)==HIGH){
digitalWrite(bomba1,LOW);
digitalWrite(bomba2,HIGH);
}
else{
digitalWrite(bomba1,HIGH);
digitalWrite(bomba2,LOW);
}
}
// FIN
Error que sale en arduino al compilar:
Arduino:1.6.5 (Windows 8.1), Placa:"Arduino Uno"
In file included from invernadero_3_con_hora_tempo.ino:1:0:
C:\Program Files (x86)\Arduino\libraries\Time/Time.h:79:39: error: expected unqualified-id before '/' token
#define dayOfWeek(time) ((( time / SECS_PER_DAY + 4) % DAYS_PER_WEEK)+1) // 1 = Sunday
^
C:\Program Files (x86)\Arduino\libraries\RTClib/RTClib.h:24:13: note: in expansion of macro 'dayOfWeek'
uint8_t dayOfWeek() const;
^
C:\Program Files (x86)\Arduino\libraries\Time/Time.h:79:39: error: expected ')' before '/' token
#define dayOfWeek(time) ((( time / SECS_PER_DAY + 4) % DAYS_PER_WEEK)+1) // 1 = Sunday
^
C:\Program Files (x86)\Arduino\libraries\RTClib/RTClib.h:24:13: note: in expansion of macro 'dayOfWeek'
uint8_t dayOfWeek() const;
^
C:\Program Files (x86)\Arduino\libraries\Time/Time.h:79:39: error: expected ')' before '/' token
#define dayOfWeek(time) ((( time / SECS_PER_DAY + 4) % DAYS_PER_WEEK)+1) // 1 = Sunday
^
C:\Program Files (x86)\Arduino\libraries\RTClib/RTClib.h:24:13: note: in expansion of macro 'dayOfWeek'
uint8_t dayOfWeek() const;
^
C:\Program Files (x86)\Arduino\libraries\Time/Time.h:79:39: error: expected ')' before '/' token
#define dayOfWeek(time) ((( time / SECS_PER_DAY + 4) % DAYS_PER_WEEK)+1) // 1 = Sunday
^
C:\Program Files (x86)\Arduino\libraries\RTClib/RTClib.h:24:13: note: in expansion of macro 'dayOfWeek'
uint8_t dayOfWeek() const;
^
Error de compilación
This report would have more information with
"Show verbose output during compilation"
activala desde Archivo > Preferencias