#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL2eYOj2k5A"
#define BLYNK_TEMPLATE_NAME "controlador de prueba"
#define BLYNK_AUTH_TOKEN "k6wU7XWYfI0u_uExcQbiriPj3cGcfvgD"
#include "DHT.h"
#include "Wire.h"
#include "LiquidCrystal_I2C.h"
//#include<BlynkSimpleEsp32.h> //Controla la conexion de la ESP 32 con blynk
//#include<WiFi.h> //controla la conexion a internet
//#include<WiFiClient.h> //conecta el esp32 al wifi en modo cliente
#include<WiFi.h>
//#include<WiFiClient.h>
#include<BlynkSimpleEsp32.h> //Controla la conexion de la ESP 32 con blynk
int i;
float referencia=30;
#define PIN_LM35 36 // ESP32 pin GPIO36 (ADC0) connected to LM35
#define pinDatos 4
#define nebulizador 25
#define bomba 26
char blynkacceso [] = BLYNK_AUTH_TOKEN; //Token de autenticacion que vamos a usar para conectarnos a Blynk
char nombrered [] = "Wokwi-GUEST"; //nombre de la red a la que se conectara el ESP32
char clavered [] = ""; //contraseña de red para conxion por wifi del esp32
BlynkTimer temporizador; //Variable para controlar el tiempo de envio de datos a blynk
float humedad;
float temperatura;
DHT sensorTH (pinDatos, DHT22);
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
sensorTH.begin ();
lcd.init();
lcd.backlight();
pinMode(bomba, OUTPUT);
pinMode(nebulizador, OUTPUT);
temporizador.setInterval (5000L, enviodatos);
Blynk.begin (blynkacceso, nombrered, clavered);
}
void loop() {
Blynk.run();
temporizador.run();
// put your main code here, to run repeatedly:
int adcVal = analogRead(PIN_LM35);
float temp = map(adcVal,0,4095,-50,125);
Serial.print("Temperatura= ");
Serial.println(temp);
Serial.println(adcVal);
delay(1000); // this speeds up the simulation
humedad = sensorTH.readHumidity();
temperatura = sensorTH.readTemperature();
Serial.print("Temperatura DTH= ");
Serial.println(temperatura);
Serial.print("Humedad DTH= ");
Serial.println(humedad);
//lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temperatura= ");
lcd.print(temperatura);
lcd.setCursor(0, 1);
lcd.print("Humedad= ");
lcd.print(humedad);
if (temperatura >= referencia){
digitalWrite(bomba, HIGH);
digitalWrite(nebulizador, HIGH);
lcd.setCursor(0, 2);
lcd.print("Nebulizacion ON ");
}
else if (temperatura<= referencia-5){
digitalWrite(bomba, LOW);
digitalWrite(nebulizador, LOW);
lcd.setCursor(0, 2);
lcd.print("Nebulizacion OFF");
}
}
void enviodatos(){
Blynk.virtualWrite (V0,humedad);
Blynk.virtualWrite (V1,temperatura);
}
BLYNK_WRITE(V4)// ESTA FUNCION TRAE LOS DATOS DESDE BLYNK
{
if(param.asInt()==1)
{
digitalWrite(bomba, HIGH);
}
else
{
digitalWrite(bomba, LOW);
}
}
BLYNK_WRITE(V5)// ESTA FUNCION TRAE LOS DATOS DESDE BLYNK
{
if(param.asInt()==1)
{
digitalWrite(nebulizador, HIGH);
}
else
{
digitalWrite(nebulizador, LOW);
}
}
BLYNK_WRITE(V6)// ESTA FUNCION TRAE LOS DATOS DESDE BLYNK
{
referencia= param.asInt();
}
BLYNK_WRITE(V7)// ESTA FUNCION TRAE LOS DATOS DESDE BLYNK
{
referencia= param.asInt();
}