#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
int LED = 17;
#define ANCHO_PANTALLA 128 // OLED ancho, en pixeles
#define ALTO_PANTALLA 64 // OLED alto, en pixeles
Adafruit_SSD1306 display(ANCHO_PANTALLA, ALTO_PANTALLA, &Wire, -1);
#include "DHT.h"
#define pinDatos 5 //GPIO14 = D5
DHT sensorTH (pinDatos, DHT22); //Crea objeto sensorTH
void setup() {
pinMode(LED, OUTPUT);
Serial.begin (9600);
Serial.println ("***** Lectura DHT22 *****");
sensorTH.begin (); //Inicializa pines del sensor
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Si la
Serial.println(F("Falla conexión con SSD1306 OLED")); // imprime
while (1);
}
}
void loop() {
delay(2000);
//Lee valores de temperatura y humedad
float humedad = sensorTH.readHumidity();
float temperatura = sensorTH.readTemperature();
//Mostrar valores leídos
Serial.print ("Temperatura = ");
Serial.print (temperatura);
Serial.println (" ºC");
Serial.print ("Humedad = ");
Serial.print (humedad);
Serial.println (" %");
if (temperatura >= 26){
digitalWrite(LED, HIGH);
}
else {
digitalWrite(LED, LOW);
}
delay(500); // espera 2 segundo para la inicialización
display.clearDisplay(); // borra la pantalla
display.setTextSize(1); // selecciona tamaño de texto
display.setTextColor(WHITE);
if (temperatura >= 24){
display.setCursor(36, 20);
display.println("Temperatura ");
display.setCursor(54, 40);
display.print("Alta ");
display.display();
}
else{
display.setCursor(36, 10);
display.print("Temperatura ");
display.setCursor(50, 20);
display.print(temperatura);
display.print((char)247); // codigo del caracter para grados
display.println ("C");
display.setCursor(44, 40);
display.print("Humedad ");
display.setCursor(50, 50);
display.print(humedad);
display.println (" %"); // selecciona texto a imprimir
display.display();
}
}