#include <DHT.h>
#include<LiquidCrystal_I2C.h>
#define pinDHT 15
#define tipDHT DHT22
DHT sensordht22(pinDHT,DHT22);
LiquidCrystal_I2C pantalla(0x27,20,4);
float temperatura;
float humedadambiente;
const float GAMMA = 0.7;
const float RL10 = 50;
int interruptor;
void setup() {
// put your setup code here, to run once:
pinMode(14,OUTPUT);
pinMode(25,INPUT); // CONFIGURO EL PIN 25 DE LA ESP32 COMO ENTRADA.
pinMode(26,OUTPUT); // Configuro el pin 26 de la ESP32 como salida.
pinMode(27,OUTPUT); // Configuro el pin 27 de la ESP32 como salida.
pinMode(5,INPUT); // Configuro el pin 5 como entrada.
pinMode(15,INPUT); // COnfiguro el pin 15 como entrada.
sensordht22.begin();
pantalla.init();
pantalla.backlight();
Serial.begin(115200);
//Serial.println("Hello, ESP32!");
}
void loop()
{
int analogValue = analogRead(25);
float voltage = analogValue / 4096. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
temperatura=sensordht22.readTemperature(); // Leer la temperatura del sensor
humedadambiente=sensordht22.readHumidity(); // Leer la humedad ambiente del sensor
Serial.println("Temperatura:");
Serial.println(temperatura);
Serial.println("Humedad Ambiente");
Serial.println(humedadambiente);
Serial.println("luminosidad:");
Serial.println(lux);
delay(2000);
pantalla.setCursor(0,0);
pantalla.print("Temperatura:");
pantalla.setCursor(13,0);
pantalla.print(temperatura);
pantalla.setCursor(0,1);
pantalla.print("Humedad:");
pantalla.setCursor(8,1);
pantalla.print(humedadambiente);
pantalla.setCursor(0,2);
pantalla.print("Luminosidad:");
pantalla.setCursor(13,2);
pantalla.print(lux);
if (temperatura >= 30)
{
digitalWrite (26,HIGH);// ACTIVO LA SALIDA PARA LA VENTILACION.
}
else if ( temperatura <= 24)
{
digitalWrite (26,LOW); // DESACTIVO LA SALIDA DE VENTILACION.
}
if (humedadambiente >= 65)
{
digitalWrite(27,HIGH);
}
else if (humedadambiente<=60)
{
digitalWrite(27,LOW);
}
if(lux<=50000)
{
digitalWrite(14,HIGH); // ACTIVAR ILUMINACION.
}
else if (lux>=55000)
{
digitalWrite(14,LOW);
}
}