#include <DHTesp.h>
#include <TM1637TinyDisplay.h>
// INSTANCIAR SENSORES Y ACTUADORES
DHTesp DHT_PIN; // Sensor DHT22
TM1637TinyDisplay display(33, 32); // Display TM1637 PIN 33 CLK, PIN 32 DIO
// DEFINICION DE PINES
const int sensorDHT22 = 13; // OUT (SDA)
const int lampCalefaccion = 27;
const int ventilador = 26;
void setup()
{
Serial.begin(115200);
pinMode(lampCalefaccion, OUTPUT);
pinMode(ventilador, OUTPUT);
DHT_PIN.setup(sensorDHT22, DHTesp::DHT22);
display.setBrightness(15); // Brillo del display
delay(100);
}
void loop()
{
controlTemperatura();
controlHumedad();
mostrarMonitorS();
}
//////////////////////////////////////////////////////////////////
void controlTemperatura()
{
// Mostrar temperatura en display
float temp = DHT_PIN.getTempAndHumidity().temperature;
String TEMPERATURA = String(temp, 0) + "oC";
display.showString(TEMPERATURA.c_str());
delay(2000);
// Encendido de ventilador y lampara
if (temp <= 15)
{
digitalWrite(lampCalefaccion, HIGH);
digitalWrite(ventilador, LOW);
Serial.println("⚠️ Temperatura por debajo de 15°C");
Serial.println("Calefacción encedida");
}
else if (temp >=25)
{
digitalWrite(lampCalefaccion, LOW);
digitalWrite(ventilador, HIGH);
Serial.println("⚠️ Temperatura por encima de 25°C");
Serial.println("Ventilador encedido");
}
Serial.println("------------------------------------");
}
void controlHumedad()
{
// Mostrar humedad en display
float hum = DHT_PIN.getTempAndHumidity().humidity;
String HUMEDAD = String(hum, 0);
display.showString(HUMEDAD.c_str());
delay(2000);
}
void mostrarMonitorS()
{
// Mostrar temp y humedad en monitor serial
TempAndHumidity data = DHT_PIN.getTempAndHumidity();
Serial.println("Temp: " + String(data.temperature, 1) + "°C");
Serial.println("Humedad: " + String(data.humidity, 1) + "%");
}