#define BLYNK_TEMPLATE_ID "TMPL25XkG3CK4"
#define BLYNK_TEMPLATE_NAME "IoT"
#define BLYNK_AUTH_TOKEN "xn6tKavdGYRskuUmbywkTgT5r3dy6nSN"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHTesp.h>
const int DHT_PIN = 15; // Pin donde se conecta el sensor DHT22
DHTesp dht; // Inicialización del sensor DHT
const int LED1_PIN = 0; // Pin donde se conecta el LED 1
const int LED2_PIN = 4; // Pin donde se conecta el LED 2
const int LED3_PIN = 16; // Pin donde se conecta el LED 3
const char* ssid = "Wokwi-GUEST"; // Nombre de la red WiFi
const char* password = ""; // Contraseña (Wokwi no requiere)
BlynkTimer timer; // Inicializa el temporizador de Blynk
float temp = 0; // Variable para almacenar la temperatura
float humidity = 0; // Variable para almacenar la humedad
// Función para leer y enviar datos del sensor a Blynk
void sendSensorData() {
TempAndHumidity data = dht.getTempAndHumidity();
if (!isnan(data.temperature) && !isnan(data.humidity)) {
temp = data.temperature;
humidity = data.humidity;
// Enviar datos a Blynk
Blynk.virtualWrite(V0, temp); // Enviar temperatura a Virtual Pin V0
Blynk.virtualWrite(V1, humidity); // Enviar humedad a Virtual Pin V1
// Imprimir en el monitor serial
Serial.print("Temperature: ");
Serial.print(temp);
Serial.print(" °C | Humidity: ");
Serial.print(humidity);
Serial.println(" %");
} else {
Serial.println("Failed to read from DHT sensor!");
}
}
// Función para controlar el LED 1
BLYNK_WRITE(V2) {
int led1State = param.asInt(); // Obtiene el valor del botón (0 o 1)
digitalWrite(LED1_PIN, led1State);
}
// Función para controlar el LED 2
BLYNK_WRITE(V3) {
int led2State = param.asInt(); // Obtiene el valor del botón (0 o 1)
digitalWrite(LED2_PIN, led2State);
}
// Función para controlar el LED 3
BLYNK_WRITE(V4) {
int led3State = param.asInt(); // Obtiene el valor del botón (0 o 1)
digitalWrite(LED3_PIN, led3State);
}
void setup() {
Serial.begin(115200); // Inicializa la comunicación serial
dht.setup(DHT_PIN, DHTesp::DHT22); // Configura el sensor DHT22
// Configurar pines de los LEDs como salida
pinMode(LED1_PIN, OUTPUT);
pinMode(LED2_PIN, OUTPUT);
pinMode(LED3_PIN, OUTPUT);
// Conectar a WiFi
Serial.println();
Serial.print("Connecting to WiFi...");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
// Conectar a Blynk
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, password);
// Configurar temporizador para enviar datos cada 2 segundos
timer.setInterval(2000L, sendSensorData);
}
void loop() {
Blynk.run(); // Ejecutar la conexión de Blynk
timer.run(); // Ejecutar el temporizador
}