#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <dht.h>
#define DHT22_PIN 5
#define DHTTYPE DHT22 // Tipo de sensor DHT
dht DHT;
LiquidCrystal_I2C lcd(0x27, 16, 2); // Dirección I2C 0x27, 16 columnas y 2 filas
int buttonPin = 11;
int buttonState = 0;
void setup() {
lcd.init(); // Inicializar LCD
lcd.backlight(); // Encender retroiluminación
lcd.setCursor(0,0);
lcd.print("Temp: ");
lcd.setCursor(0,1);
lcd.print("Humedad: ");
Serial.begin(9600);
}
void loop() {
delay(2000); // Esperar un momento para que el sensor se estabilice
int chk = DHT.read22(DHT22_PIN);
float temperatura = DHT.temperature; // Leer temperatura en grados Celsius
float humedad = DHT.humidity; // Leer humedad relativa
float temp_promedio = 0;
float humedad_promedio = 0;
for (int i = 0; i < 30; i++) {
delay(2000); //// Esperar un momento para que el sensor se estabilice
Serial.print("Humedad: ");
Serial.print(DHT.temperature);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(DHT.humidity);
Serial.println(" *C ");
delay(2000);
int chk = DHT.read22(DHT22_PIN);
temp_promedio += DHT.temperature; //// Sumar temperatura a la variable de promedio
humedad_promedio += DHT.humidity; //// Sumar humedad a la variable de promedio
}
temp_promedio = temp_promedio / 30; //// Calcular promedio de temperatura
humedad_promedio = humedad_promedio / 30; //// Calcular promedio de humedad
float tempF = temperatura * 1.8 + 32.0;
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
if(temperatura < 10 && temperatura > 0){
digitalWrite(10, HIGH);
}
if(temperatura < 30 && temperatura > 10){
digitalWrite(9, HIGH);
}
if(temperatura < 50 && temperatura > 30){
digitalWrite(8, HIGH);
}
lcd.setCursor(7,0);
lcd.print(temperatura);
lcd.print(" C ");
lcd.setCursor(9,1);
lcd.print(humedad);
lcd.print(" % ");
}
void temp(){
if (buttonPin == 0) { //// Si la unidad de temperatura es Celsius
Serial.println(" *F ");
Serial.print(DHT.temperature);
Serial.print(DHT.humidity);
} else { //// Si la unidad de temperatura es Fahrenheit
Serial.println(" *C ");
Serial.print(DHT.temperature);
Serial.print(DHT.humidity);
}
}