#include "DHT.h"
#define led 8
#define led2 7
#define DHTPIN 2
//#define DHTTYPE DHT11
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const float TEMP_THRESHOLD_C = 30.0;
const float HUM_THRESHOLD_PCT = 50.0;
float h,t, f;
void temperatura() {
delay(2000); //esperar 2 segundos, sensor lento
h = dht.readHumidity(); // Humedad
t = dht.readTemperature(); // Temp en Celsius (default)
f = dht.readTemperature(true);// Temp Fahrenheit (isFahrenheit = true)
// Checar si la lectura es correcta
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.print(f);
Serial.print(F("°F Heat index: "));
Serial.print(hic);
Serial.print(F("°C "));
Serial.print(hif);
Serial.println(F("°F"));
}
void verificaCalor() {
Serial.print(t);
if (t > TEMP_THRESHOLD_C)
digitalWrite(led, HIGH);
else
digitalWrite(led,LOW);
}
void verificaHumedad() {
Serial.print(h);
if (h >= HUM_THRESHOLD_PCT)
digitalWrite(led2, HIGH);
else
digitalWrite(led2,LOW);
}
void setup() {
// Conexión serial para el monitor de la pantalla
Serial.begin(9600);
Serial.println(F("DHTxx test!"));
dht.begin();
pinMode(led, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop() {
temperatura();
verificaCalor();
verificaHumedad();
}