//--------------------------------------------------------------------------------------//
//Autor:GONZALO ANTERO SALAZAR ARENAS---------------------------------------------------//
//Programa:T02_dht22_termometer.ino-----------------------------------------------------//
//Realizar un programa que muestre un termómetro con los 4 leds de la shield + el led---//
// bicolor. El funcionamiento será el siguiente:----------------------------------------//
//- Si la temperatura es <= 16 no se encenderá ningún led-------------------------------//
//-Cada vez que la temperatura suba 2 grados se encerderá un led de los cuatro ---------//
//(max 24º todos encendidos).-----------------------------------------------------------//
//-Si la temperatura es >24º debe parpadear el led bicolor rojo.------------------------//
//--------------------------------------------------------------------------------------//
#include "DHTesp.h" 
#include <LiquidCrystal_PCF8574.h>
LiquidCrystal_PCF8574 lcd(0x27); 
DHTesp dht; 
int dhtPin = 26; 
float temp=0.0; 
#define D1 12
#define D2 13
#define D3 5
#define D4 23
#define rojo 18
void setup()
{
pinMode(D1,OUTPUT);
pinMode(D2,OUTPUT);
pinMode(D3,OUTPUT);
pinMode(D4,OUTPUT);
pinMode(rojo,OUTPUT);
lcd.begin(16, 2); 
lcd.setBacklight(255); 
lcd.setCursor(0,0); 
dht.setup(dhtPin, DHTesp::DHT22);
}
void loop() {
temp = dht.getTemperature();
if(temp<=16){
digitalWrite(D1,LOW);
digitalWrite(D2,LOW);
digitalWrite(D3,LOW);
digitalWrite(D4,LOW);
}
if(temp>=18&&temp<20){
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
digitalWrite(D3,LOW);
digitalWrite(D4,LOW);  
}
if(temp>=20&&temp<22){
digitalWrite(D1,HIGH);
digitalWrite(D2,HIGH);
digitalWrite(D3,LOW);
digitalWrite(D4,LOW);  
}
if(temp>=22&&temp<24){
digitalWrite(D1,HIGH);
digitalWrite(D2,HIGH);
digitalWrite(D3,HIGH);
digitalWrite(D4,LOW);  
}
if(temp==24){
digitalWrite(D1,HIGH);
digitalWrite(D2,HIGH);
digitalWrite(D3,HIGH);
digitalWrite(D4,HIGH);  
}
if(temp>24){
digitalWrite(D1,HIGH);
digitalWrite(D2,HIGH);
digitalWrite(D3,HIGH);
digitalWrite(D4,HIGH);  
digitalWrite(rojo,HIGH);
}
}