int Pin2=2;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Incluimos librería, lo primero es importar la libreria DHT.h
#include <DHT.h>
//Crear el objeto lcd dirección 0x3F y 16 columnas x 2 filas
LiquidCrystal_I2C lcd(0x27,16,2); //
// Definimos el pin digital donde se conecta el sensor, recordemos que el DHT11 convierte internamente la señal analogica a una de tipo diguital
#define DHTPIN 2
// Dependiendo del tipo de sensor, creamos otra constante para declarar el tipo de sensor que vamos a utilizar.
// Esta libreria tambien se usa para controlar el DHT22, el siguiente luego del DHT11
#define DHTTYPE DHT11
// Inicializamos el sensor DHT11, declaramos el objeto DHT con parametros pin y tipo de DHT
DHT dht(DHTPIN, DHTTYPE);
void setup() {
// Inicializar el LCD
lcd.init();
//Encender la luz de fondo.
lcd.backlight();
// Inicializamos comunicación serie, activamos monitor en serie para la visualizacion de los parametros
Serial.begin(9600);
// Comenzamos el sensor DHT, con la sentencia begin()
dht.begin();
lcd.setCursor(0,0);
lcd.print("C:");
lcd.setCursor(8,0);
lcd.print("F:");
lcd.setCursor(0,1);
lcd.print("H:");
lcd.setCursor(8,1);
lcd.print("Q:");
}
void loop() {
lcd.setCursor(2,0);
lcd.print(dht.readTemperature());
delay(10);
lcd.setCursor(10,0);
lcd.print(dht.readTemperature(true));
delay(10);
lcd.setCursor(2,1);
lcd.print(dht.readHumidity());
delay(10);
// Esperamos 5 segundos entre medidas, esta es una recomendacion del fabricante
delay(5000);
// Leemos la humedad relativa
float h = dht.readHumidity();
// Leemos la temperatura en grados centígrados (valor por defecto)
float t = dht.readTemperature();
// Leemos la temperatura en grados Fahreheit en caso de que queramos ambas unidades de medida
float f = dht.readTemperature(true);
lcd.setCursor(10,1);
lcd.print(dht.computeHeatIndex(t, h, false));
delay(10);
// Comprobamos si ha habido algún error en la lectura
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Error obteniendo los datos del sensor DHT11");
return;
}
// Calcular el índice de calor en Fahreheit
float hif = dht.computeHeatIndex(f, h);
// Calcular el índice de calor en grados centígrados
float hic = dht.computeHeatIndex(t, h, false);
Serial.print("Humedad: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Índice de calor: ");
Serial.print(hic);
Serial.print(" *C ");
Serial.print(hif);
Serial.println(" *F");
}