#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL25ho4Ko3Z"
#define BLYNK_TEMPLATE_NAME "Proyecto 1 edanza"
#define BLYNK_AUTH_TOKEN "XY20NAl4QvtgnkIDE32MBmOQRp8dL6Xw"
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#include <BlynkSimpleEsp32.h>
#include <WiFi.h>
#include <WiFiClient.h>
#define DHTPIN 15
#define DHTTYPE DHT22
BlynkTimer timer;
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
const float GAMMA = 0.7;
const float RL10 = 50.0;
LiquidCrystal_I2C lcd(0x27, 20, 4);
DHT dht(DHTPIN, DHTTYPE);
float temperatura;
float humedadambiente;
float lux;
bool Ventilador;
bool bomba; // definir variable bomba
bool luces;
void eventotemporizado()
{
Blynk.virtualWrite(V0, temperatura); // Escribir en el pi virtual 0 el valor de temperatura
Blynk.virtualWrite(V1, humedadambiente);
Blynk.virtualWrite(V2, lux);
Blynk.virtualWrite(V3, Ventilador);
Blynk.virtualWrite(V4, bomba);
Blynk.virtualWrite(V5, luces);
}
void setup() {
pinMode(DHTPIN, INPUT);
dht.begin();
pinMode(19, OUTPUT);
pinMode(18, OUTPUT);
pinMode(17, OUTPUT);
Serial.begin(115200);
lcd.init();
lcd.backlight();
timer.setInterval(3000L, eventotemporizado);
Blynk.begin(auth, ssid, pass);
}
void loop(){
Blynk.run();
timer.run();
temperatura = dht.readTemperature();
humedadambiente = dht.readHumidity();
int analogValue = analogRead(A5);
float voltage = analogValue / 4095.0 * 5.0;
float resistance = 2000.0 * voltage / (1.0 - voltage / 5.0);
lux = pow(RL10 * 1e3 * pow(10.0, GAMMA) / resistance, (1.0 /
GAMMA));
Serial.print("Tempetaratura: ");
Serial.println(temperatura);
Serial.print("Humedad Ambiente: ");
Serial.println(humedadambiente);
Serial.print("Luminosidad: ");
Serial.println(lux);
lcd.setCursor(0,0);
lcd.print("Temperature: ");
lcd.print(temperatura);
lcd.setCursor(0,1);
lcd.print(" Humidity: ");
lcd.print(humedadambiente);
lcd.setCursor(0,2);
lcd.print("Light intensity: ");
lcd.print(lux);
if (temperatura >= 28)
{
digitalWrite(19, HIGH);
Ventilador = HIGH;
Serial.println("Rele Ventilador: Activado");
}
else if(temperatura <= 23){
digitalWrite(19, LOW);
Ventilador = LOW;
Serial.println("Rele Ventilador: Desactivado");
}
if (humedadambiente >= 70){
digitalWrite(18, HIGH);
bomba = HIGH;
Serial.println("Rele Humificador: Activado");
}
else if(humedadambiente < 70){
digitalWrite(18, LOW);
bomba = LOW;
Serial.println("Rele Humificador: Desactivado");
}
if (lux <= 100){
digitalWrite(17, LOW);
luces = LOW;
Serial.println("Rele Luminosidad: Desactivado");
}
else if(lux > 300){
digitalWrite(17, HIGH);
luces = HIGH;
Serial.println("Rele Luminosidad: Activado");
}
}