from machine import Pin, ADC, PWM, I2C
from utime import sleep, sleep_ms
from dht import DHT22
from ssd1306 import SSD1306_I2C
# Definición de las dimensiones de la pantalla OLED
alto = 64
ancho = 128
# Configuración del bus I2C para la pantalla OLED
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
oled = SSD1306_I2C(ancho, alto, i2c) # Inicializa la pantalla OLED con el bus I2C
dht = DHT22(Pin(15)) # Inicializa el sensor de temperatura y humedad DHT22 en el pin 15
print(i2c.scan(), "conectada") # Escanea y muestra los dispositivos conectados al bus I2C
while True:
# Realiza una medición de temperatura y humedad con el sensor DHT22
dht.measure()
tem = dht.temperature() # Obtiene la temperatura medida
hum = dht.humidity() # Obtiene la humedad medida
# Limpia la pantalla OLED antes de mostrar nueva información
oled.fill(0)
# Dibuja elementos en la pantalla OLED
oled.pixel(64, 60, 1) # Dibuja un píxel en la posición (64, 60)
oled.vline(0, 0, 20, 1) # Dibuja una línea vertical desde (0, 0) con altura 20
oled.vline(120, 0, 20, 1) # Dibuja otra línea vertical desde (120, 0) con altura 20
oled.hline(0, 0, 120, 1) # Dibuja una línea horizontal desde (0, 0) con longitud 120
oled.hline(0, 20, 120, 1) # Dibuja otra línea horizontal desde (0, 20) con longitud 120
# Muestra el texto en la pantalla OLED
oled.text("Datos", 10, 10, 1) # Escribe "Datos" en la posición (10, 10)
oled.text("Tem:", 0, 30, 1) # Escribe "Tem:" en la posición (0, 30)
oled.text("Hum:", 0, 40, 1) # Escribe "Hum:" en la posición (0, 40)
oled.text(str(tem), 60, 30, 1) # Escribe la temperatura medida en la posición (60, 30)
oled.text(str(hum), 60, 40, 1) # Escribe la humedad medida en la posición (60, 40)
oled.show() # Actualiza la pantalla para mostrar los cambios realizados