#define BLYNK_TEMPLATE_ID "TMPL2Tm_XhHQH"
#define BLYNK_TEMPLATE_NAME "prueba 1"
#define BLYNK_AUTH_TOKEN "B0uIHveQCbtct7PdCvJFeEaa7OnhbtVs"
#include <DHTesp.h>
#include <BlynkSimpleEsp32.h>
#define DHTPIN 13
#define LED_PIN 25
#define SENSOR_PIN 12 // Pin para el sensor MQ135 simulado
DHTesp sensorIOT;
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
// Variables para simular el sensor MQ135
int mq135Value = 0;
bool increasing = true;
int increment = 10; // Incremento/decremento lineal del valor del sensor
void setup() {
pinMode(LED_PIN, OUTPUT);
Serial.begin(115200);
sensorIOT.setup(DHTPIN, DHTesp::DHT22); // Inicializar el sensor DHT
Blynk.begin(auth, ssid, pass);
timer.setInterval(2000L, sendSensorData); // Enviar datos del DHT y del MQ135 simulado cada 2 segundos
}
BLYNK_WRITE(V3) {
int buttonState = param.asInt();
if (buttonState == 1) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
}
void sendSensorData() {
float temperature = sensorIOT.getTemperature();
float humidity = sensorIOT.getHumidity();
// Incrementar o disminuir el valor simulado del MQ135 de manera lineal
if (increasing) {
mq135Value += increment;
if (mq135Value >= 1000) {
increasing = false;
}
} else {
mq135Value -= increment;
if (mq135Value <= 0) {
increasing = true;
}
}
Blynk.virtualWrite(V0, temperature); // Enviar temperatura a Blynk
Blynk.virtualWrite(V1, humidity); // Enviar humedad a Blynk
Blynk.virtualWrite(V2, mq135Value); // Enviar valor simulado del MQ135 a Blynk
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C, Humidity: ");
Serial.print(humidity);
Serial.print("%, MQ135 Value: ");
Serial.println(mq135Value);
}
void loop() {
Blynk.run();
timer.run();
}