/*
Nombre del Archivo: Potenciometro 1º
Autor: Lázaro Salinas
Fecha: 28/04/2025
Objetivo:
Este programa está diseñado para que muestre el valor del voltaje de entra por la pantalla.
*/
#include <Wire.h> // biblioteca para conexión I2C
#include <Adafruit_GFX.h> // biblioteca para gráficos
#include <Adafruit_SSD1306.h> // biblioteca para el controlador del OLED
#define SCREEN_WIDTH 128 // OLED ancho, en pixeles
#define SCREEN_HEIGHT 64 // OLED alto, en pixeles
// crea el objeto OLED con conexión I2C
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
//Lectura de DHT22
#include "DHT.h"
#define pinDatos 16 //GPIO14 = D5
DHT sensorTH (pinDatos, DHT22); //Crea objeto sensorTH
void setup() {
Serial.begin (115200);// inicializa puerto serie
Serial.println ("***** Lectura DHT22 *****");
sensorTH.begin (); //Inicializa pines del sensor
// initialize OLED display with I2C address 0x3C
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Si la conexion I2C con el OLED falla
Serial.println(F("Falla conexión con SSD1306 OLED")); // imprime en monitor serie
while (1);
}
}
void loop() {
//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 (" %");
oled.clearDisplay(); // borra la pantalla
oled.setTextSize(1); // selecciona tamaño de texto
oled.setTextColor(WHITE); // selecciona color de texto
oled.setCursor(1, 1); // posiciona el cursor
oled.print("Temperatura = ");
oled.print(temperatura);
oled.println ("ºC");
oled.print ("Humedad = ");
oled.print (humedad);
oled.println (" %");
oled.display();
delay(1000);
}