/*
Instrucciones de conexión de la pantalla
0.96 inch SSD1306 OLED display
Pin --> ESP32
Vin --> 3.3V
GND --> GND
SCL --> GPIO 22
SDA --> GPIO 21
*/
#include "DHT.h" // Sensor para lectura de humedad y temperatura
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
#define DHTpin 33 // Para lectura de humedad y temperatura
#define DHTTYPE DHT22
DHT dht(DHTpin, DHTTYPE);
void setup() {
Serial.begin(115200);
// Iniciamos el sensor DHT11
dht.begin();
// configura la pantalla para recibir datos
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("Error en la conexión de la pantalla SSD1306"));
for(;;);
}
// establece el color del texto como blanco sobre fondo negro
display.setTextColor(WHITE);
}
void loop() {
int humedad = dht.readHumidity();
float temperatura = dht.readTemperature();
// clear display
display.clearDisplay();
// Muestra la temperatura
display.setTextSize(1); display.setCursor(0,0);
display.print("Temperatura");
display.setTextSize(3); display.setCursor(0,10);
display.print(temperatura,1);
display.setTextSize(2); display.cp437(true); display.write(167);
display.setTextSize(3);
display.print("C");
// muestra la humedad
display.setTextSize(1); display.setCursor(0, 55);
display.print("Humedad");
display.setTextSize(2); display.setCursor(50, 50);
display.print(humedad);
display.print("%");
display.display();
delay(1000);
}