/*Programación del sensor de temperatura y humedad digital DHT-11.
Incluimos las librerías necesarias:
Programa --> Incluir librería --> Administrar bibliotecas.*/
#include <DHT.h>
//Definición del pin digital al que va conectado el sensor dht-11, se ha seleccionado el nº 2.
#define dht11Pin 2
DHT sensor(dht11Pin, DHT22);
int contadorT, contadorH = 0;
float sumaT, sumaH, mediaT, mediaH;
int i;
#define ledT 3
#define ledH 5
void setup()
{
Serial.begin(9600); //Establecemos la comunicación por puerto serial a 9600 baudios.
sensor.begin(); //Inicializamos el sensor.
pinMode(ledT, OUTPUT);
pinMode(ledH, OUTPUT);
}
void loop()
{
//Declaración de dos variables de tipo enteras que almacenen los valores de temperatura y de humedad.
int temperatura, humedad;
//Tanto .readTemperature() como .readHumidity() son métodos de la librería DHT.h y se utilizan sólo para los sensores de este tipo.
temperatura = sensor.readTemperature();
humedad = sensor.readHumidity();
sumaT = 0;
sumaH = 0;
contadorT = 0;
contadorH = 0;
for(i = 0; i < 25; i++)
{
sumaT = sumaT + temperatura;
sumaH = sumaH + humedad;
contadorT++;
contadorH++;
}
mediaT = sumaT/contadorT;
mediaH = sumaH /contadorH;
Serial.print(mediaT);
Serial.print("\t");
Serial.println(mediaH);
/*
Serial.print("T: ");
Serial.print(temperatura);
Serial.print(" [ºC]");
Serial.print("\t");
Serial.print("H ");
Serial.print(humedad);
Serial.println(" [%]");
delay(2000); //Realizamos lecturas cada 2 segundos.
*/
//
if(temperatura > 20)
{
digitalWrite(ledT, HIGH);
}
else
{
digitalWrite(ledT, LOW);
}
if(humedad > 80)
{
digitalWrite(ledH, HIGH);
}
else
{
digitalWrite(ledH, LOW);
}
//delay(10000); //Asociado a la media.
delay(250);
}