//SENSOR DHT22 CON ARDUINO
#include<LiquidCrystal_I2C.h>
#include<Wire.h>
#include <DHT.h>
#define dhtpin 6
#define dhtTipo DHT11
DHT dht(dhtpin,dhtTipo);
LiquidCrystal_I2C lcd(0x27,16,2);
#define rojo 13
#define amarillo 12
#define verde 11
#define azul 10
#define orange 9
#define celeste 8
void setup() {
// put your setup code here, to run once:
lcd.init();
lcd.backlight();
lcd.print("Iniciando...");
dht.begin();
delay(1000);
pinMode(rojo, OUTPUT);//muy seco
pinMode(amarillo, OUTPUT);//seco
pinMode(verde, OUTPUT);//optimo
pinMode(azul, OUTPUT);//muy humedo
pinMode(orange, OUTPUT);//temperatura baja -comodo
pinMode(celeste, OUTPUT);//temperatura alta -comodo
}
void loop() {
// put your main code here, to run repeatedly:
float h=dht.readHumidity();
float t=dht.readTemperature();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Humedad: ");
lcd.print(h);
lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.print(t);
lcd.print("C");
delay(5000);
lcd.clear();
if (h < 20){
digitalWrite(rojo, HIGH);//muy seco
digitalWrite(amarillo, LOW);
digitalWrite(verde, LOW);
digitalWrite(azul, LOW);
lcd.print("H. muy seca");
delay(5000);
digitalWrite(rojo,LOW);
}
else if (h >= 20 and h < 40){
digitalWrite(rojo, LOW);
digitalWrite(amarillo, HIGH);//seco
digitalWrite(verde, LOW);
digitalWrite(azul, LOW);
lcd.print("H.seco");
delay(5000);
digitalWrite(amarillo,LOW);
}
else if (h >= 40 and h < 60 ) {
digitalWrite(rojo, LOW);
digitalWrite(amarillo, LOW);
digitalWrite(verde, HIGH);//optimo
digitalWrite(azul, LOW);
lcd.print("H.optima");
delay(5000);
digitalWrite(verde,LOW);
}
else {
digitalWrite(rojo, LOW);
digitalWrite(amarillo, LOW);
digitalWrite(verde, LOW);
digitalWrite(azul, HIGH);//muy humedo
lcd.print("muy humedo");
delay(5000);
digitalWrite(azul,LOW);
}
lcd.clear();
if (t < 18) { // Temperatura baja
digitalWrite(orange, HIGH);
digitalWrite(celeste, LOW);
lcd.print("T. muy baja");
delay(5000);
digitalWrite(orange,LOW);
} else if (t >= 10 && t <= 30) { // Temperatura cómoda
digitalWrite(orange, LOW);
digitalWrite(celeste, LOW);
lcd.print("T. comoda");
delay(5000);
} else { // Temperatura alta
digitalWrite(orange, LOW);
digitalWrite(celeste, HIGH);
lcd.print("T. muy alta");
delay(5000);
digitalWrite(celeste,LOW);
}
delay(2000);
}