#include "DHTesp.h"
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define ANCHO 128
#define ALTO 64
#define OLED_RESET 4
Adafruit_SSD1306 oled(ANCHO, ALTO, &Wire, OLED_RESET);
/*Declaración de variables Leds */
int LedTempVerde = 18;
int LedTempRojo = 19;
int LedHumedadVerde = 12;
int LedHumedadRojo = 13;
const int DHT_PIN = 25;
DHTesp dhtSensor;
void setup() {
Wire.begin();
oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
/*Configuración de Pines Leds */
pinMode(LedTempVerde,OUTPUT);
pinMode (LedTempRojo,OUTPUT);
pinMode (LedHumedadVerde,OUTPUT);
pinMode (LedHumedadRojo,OUTPUT);
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp: " + String(data.temperature, 1) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");
/* Encender Leds Temperatura*/
if (data.temperature < 40.0) {
digitalWrite(LedTempVerde, HIGH);
digitalWrite(LedTempRojo, LOW);
Serial.println("Led Verde Temp Encendido");
}else {
digitalWrite(LedTempRojo, HIGH);
digitalWrite(LedTempVerde, LOW);
Serial.println("Led Rojo Temp Encendido");
}
/* Encender Leds Humedad*/
if (data.humidity < 70.0) {
digitalWrite(LedHumedadVerde, HIGH);
digitalWrite(LedHumedadRojo, LOW);
Serial.println("Led Verde Humedad Encendido");
}else {
digitalWrite(LedHumedadRojo, HIGH);
digitalWrite(LedHumedadVerde, LOW);
Serial.println("Led Rojo Humedad Encendido");
}
oled.clearDisplay();
oled.setTextColor(WHITE);
oled.setCursor(0, 0);
oled.setTextSize(2);
oled.print("Tem: " + String(data.temperature, 1) + "C");
oled.setCursor(0, 32);
oled.setTextSize(2);
oled.print("Hum: " + String(data.humidity, 1) + " %");
oled.display();
delay(1000);
}