DUDA COMO TRABAJAR CON DOS SENSORES A LA VEZ

Hola muy buenas, estoy intentando calcular los parametros de temperatura y lluvia en Arduino, los tengo en dos codigos diferentes, la temperatura calcula cada hora y la acumula durante cada una de las 24 horas del dia y realiza una serie de cálculos como temperatura media, máxima y minima, y paralelamente kiero calcular la lluvia durante todo el día que cae para acumularla mensualmente.

Mi problema es el siguiente el sensor de temepratura debe realizar cada hora sin embargo el de lluvia debe acerlo siempre y cuando el balancín se mueva y el reed switch cuente pulsos, no se como hacer para realizar las lecturas correctamente.

CODIGO PLUVIOMETRO

const byte pinPluviometro = 3; // Definición del pin donde conectarás el Pluviómetro
bool Pluviometro; // Estado actual del switch del pluviometro
bool PluviometroAnt = LOW; // Estado anterior del switch del pluviometro
unsigned int cuentaPrecipitacion = 0; // Contador de precipitaciones
unsigned int cuentaPrecipitacionAnt = 0; // Valor anterior del contador de precipitaciones
// solo para presentar cuando haya cambios
float Precipitacion; // variable que lleva los mm de agua caídos

void setup() {

Serial.begin(9600);
pinMode(pinPluviometro, INPUT); //el pin pluviometro será una entrada

}
void loop() {

Pluviometro = digitalRead(pinPluviometro); // Leeremos de la entrada digital el valor de pluviómetro

if (Pluviometro == HIGH && PluviometroAnt == LOW){ // solo voy a considera un cambio 0->1 en el Pluviometro
cuentaPrecipitacion =cuentaPrecipitacion + 1; //Contamos pulsos
}

PluviometroAnt = Pluviometro; // esto actualiza el estado anterior de Pluviometro
if (cuentaPrecipitacion != cuentaPrecipitacionAnt) {
Precipitacion = cuentaPrecipitacion * 0.1; // CADA PULSO QUE SE LEA EQUIVALE A 0.1 mm, MULTIPLICO PARA OBTENER EL VALOR REAL
Serial.print(“LLUVIA REGISTRADA = “);
Serial.print(Precipitacion);
Serial.println(” mm”);
cuentaPrecipitacionAnt = cuentaPrecipitacion;
}
}

CODIGO SENSOR HUMEDAD Y TEMPERATURA

#include <dht.h>
#include <Time.h>
#define dht_apin A0 //DEFINIMOS QUE EL PIN A0 SERA LA ENTRADA DE DATOS ANALOGICOS DE NUESTRO SENSOR DE HUMEDAD
dht DHT;
double Tmax=0.00; //inicializamos una variable
double Tmin=100.00; //inicializamos la variable
double Tmedia=0.00;// inicializamos la variable
double KT=0.162; //VALOR CONSTANTE PARA REGIONES DE INTERIOR
double Rs;
double ETo;
double EToMes=0.00;
double Kc=0.00;
///////////////////////////////////////////VALORES QUE DEBEMOS MODIFICAR MENSUALMENTE////////////////////////////////////////////////

double Ro=34.7; //ESTE VALOR SE LO TENDREMOS QUE VARIAR MENSUALMENTE

////////////////////////////////////////////SETUP//////////////////////////////////////////////////
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
setTime(00,00,00,01,07,2016);//INICIALIZAMOS LA HORA
delay(500);//Delay to let system boot
Serial.println(“SENSOR DE HUMEDAD Y TEMPERATURA DHT11\n\n”);
delay(1000);//Wait before accessing Sensor

}//end “setup()”

void loop(){

//////////////////////////////////////////PROGRAMA TOTAL//////////////////////////////////////////////
for (int k=1; k<=8; k++){

if(k==1){
Serial.println(" MARZO “);
Ro=27.5;
Kc=0.3;
}else if(k==2){
Serial.println(” ABRIL “);
Ro=34.7;
Kc=0.3;
}else if(k==3){
Serial.println(” MAYO ");
Ro=39.6;
Kc=0.5;
}

///… el resto de meses

/////////////////////////////////////////CÁLCULO DE VALORES POR MES//////////////////////////////////////////
for(int j=1; j<31; j++){

Serial.print(" DIA ");
Serial.println(j);
EToMes=EToMes+ETo; //acumulamos los valores de Evapotranspiración para calcular su valor mensual
Serial.println(EToMes);//acumulando la ETo

for(int i=0; i<24; i++){ //DIARIAMENTE CALCULAREMOS VALORES DE HUMEDAD Y TEMPERATURA CADA HORA (CADA 3.600.000 ms)
DHT.read11(dht_apin);

time_t t = now();

Serial.print("Fecha : ");
Serial.print(day(t));
Serial.print(+ “/”) ;
Serial.print(month(t));
Serial.print(+ “/”) ;
Serial.print(year(t));
Serial.print( " ") ;
Serial.print(“Hora : “);
Serial.print(hour(t));
Serial.print(+ “:”) ;
Serial.print(minute(t));
Serial.print(”:”) ;
Serial.println(second(t));

Serial.print("HUMEDAD RELATIVA DEL INVERNADERO = “);
Serial.print(DHT.humidity);
Serial.print(”% ");
Serial.print("TEMPERATURA = ");
Serial.print(DHT.temperature);
Serial.println(“C “);
Tmedia=DHT.temperature+Tmedia;
// Serial.println(“SUMA DE TEMPERATURAS”);
// Serial.println(Tmedia);
Serial.println(””);

//////////////////////CALCULO DE LAS TEMPERATURAS MAXIMAS Y MINIMAS/////////////////////////
if(DHT.temperature>=Tmax){
Tmax=DHT.temperature;
}
if(DHT.temperature<=Tmin){
Tmin=DHT.temperature;
}
delay(100); //ESTE DELAY SERÁ DE 60 MINUTOS (ES DECIR 3.600.000 ms) para monitorizar los valores de HUMEDAD y DE TEMPERATURA CADA HORA

}//end for i

/* if(DHT.temperature >= 29.00){
digitalWrite(13, HIGH);
}else{
digitalWrite(13, LOW);
}
*/

//RESULTADOS POR PANTALLA//
Tmedia=Tmedia/24;
Serial.print("La temperatura media diaria fue de : ");
Serial.println(Tmedia);

Serial.print(“TMAX DIARIA = “);
Serial.print(Tmax);
Serial.print(” TMIN DIARIA = “);
Serial.print(Tmin);
Serial.print(”\n”) ;
Serial.print(“RADIACION SOLAR EXTRATERRESTRE DE : “);
Serial.print(Ro0.408);
Serial.println("/n mm/dia ");
Serial.print("RADIACION SOLAR INCIDENTE DE : ");
Rs=Ro
KTsqrt(Tmax-Tmin);
Serial.print(Rs);
Serial.println("/n mm/dia ");
Serial.print("LA EVAPOTRANSPIRACION DE ESTE ´DIA ES DE : ");
ETo=0.0135
(Tmedia+17.78)*Rs;
Serial.print(ETo);
Serial.println(”/n mm/dia “);
delay(100);
Tmedia=0;
Tmax=0;
Tmin=100;
Serial.println(””);
///////////////////////////////////////////////////////////
} //end for j
Serial.print(“LA EVAPOTRANSPIRACION DEL MES FUE DE : “);
Serial.print(EToMes);
Serial.println(” mm/mes “);
EToMes=0;
Serial.println(””);
}// end for k
}// end loop()

Agradecería que me explicarais como poder realizar la lectura que quiero y verla por serial

Un saludo uchas gracias

No entiendo el motivo de hacer un doble post. Si todos leemos todo.
Elige cual quieres que deje porque uno lo voy a borrar.