# Importar las librerías necesarias
from machine import Pin, I2C
import ssd1306
import dht
# Crear los objetos para el OLED y el DHT11
i2c = I2C(-1, scl=Pin(22), sda=Pin(21)) # Iniciar el bus I2C con los pines 22 y 21
oled = ssd1306.SSD1306_I2C(128, 64, i2c) # Crear el objeto OLED con el tamaño 128x64
sensor = dht.DHT11(Pin(26)) # Crear el objeto DHT11 con el pin 26
# Limpiar la pantalla OLED
oled.fill(0)
oled.show()
# Función para mostrar la temperatura y la humedad en el OLED
def mostrar_datos(temp, hum):
oled.fill(0) # Limpiar la pantalla
oled.text("Temperatura:", 0, 0) # Escribir el texto "Temperatura:" en la posición (0,0)
oled.text(str(temp) + " C", 0, 10) # Escribir el valor de la temperatura en grados Celsius en la posición (0,10)
oled.text("Humedad:", 0, 20) # Escribir el texto "Humedad:" en la posición (0,20)
oled.text(str(hum) + " %", 0, 30) # Escribir el valor de la humedad en porcentaje en la posición (0,30)
oled.show() # Mostrar los cambios en la pantalla
# Bucle principal
while True:
try:
sensor.measure() # Medir la temperatura y la humedad con el DHT11
temp = sensor.temperature() # Obtener la temperatura
hum = sensor.humidity() # Obtener la humedad
mostrar_datos(temp, hum) # Llamar a la función para mostrar los datos en el OLED
except Exception as e:
print(e) # Imprimir el error si ocurre alguno