#include <DHTesp.h>
DHTesp dht;
// Pines
#define DHTPIN 22
#define LED_TEMP 14
#define LED_HUM 15
#define BTN_TEMP 26
#define BTN_HUM 27
// Umbrales
float UMBRAL_TEMP = 45.0;
float HUM_MIN = 25.0;
float HUM_MAX = 60.0;
void setup() {
Serial.begin(115200);
dht.setup(DHTPIN, DHTesp::DHT22);
pinMode(LED_TEMP, OUTPUT);
pinMode(LED_HUM, OUTPUT);
pinMode(BTN_TEMP, INPUT_PULLUP);
pinMode(BTN_HUM, INPUT_PULLUP);
}
void loop() {
TempAndHumidity data = dht.getTempAndHumidity();
float temperatura = data.temperature;
float humedad = data.humidity;
// Validación
if (isnan(temperatura) || isnan(humedad)) {
Serial.println("Error leyendo DHT22");
delay(1000);
return;
}
Serial.print("Temp: ");
Serial.print(temperatura);
Serial.print(" °C | Hum: ");
Serial.print(humedad);
Serial.println(" %");
// --- CONTROL TEMPERATURA ---
if (temperatura > UMBRAL_TEMP) {
digitalWrite(LED_TEMP, HIGH);
} else {
digitalWrite(LED_TEMP, LOW);
}
// --- CONTROL HUMEDAD ---
if (humedad < HUM_MIN || humedad > HUM_MAX) {
digitalWrite(LED_HUM, HIGH);
} else {
digitalWrite(LED_HUM, LOW);
}
// --- BOTONES (PRIORIDAD SOBRE TODO) ---
if (digitalRead(BTN_TEMP) == LOW) {
digitalWrite(LED_TEMP, LOW);
digitalWrite(LED_HUM, LOW);
}
if (digitalRead(BTN_HUM) == LOW) {
digitalWrite(LED_HUM, LOW);
digitalWrite(LED_TEMP, LOW);
}
delay(1000);
}Loading
esp32-devkit-c-v4
esp32-devkit-c-v4