from machine import Pin, ADC, PWM, I2C #Se importa de la libreria al comando  ADC, PWM, I2C
from utime import sleep, sleep_ms # Se importa de la libreria al comando utime
from dht import DHT22 # Se importa de la libreria al comando DHT22
from ssd1306 import SSD1306_I2C # Se importa de la libreria al comando SSD1306

alto = 64 # Altura de la pantalla OLED en píxeles
ancho = 128 # Ancho de la pantalla OLED en píxeles

i2c=I2C(0, scl=Pin(22), sda=Pin(21)) # 'scl' y 'sda' son los pines de reloj (22) y datos (21) respectivamente para la comunicación I2C
oled = SSD1306_I2C(ancho, alto, i2c) # Crea una instancia de la pantalla OLED SSD1306 con el tamaño especificado y el bus I2C configurado
dht= DHT22(Pin(15)) #Crea un una instancia de la pantalla OLED SSD1306 con el tamaño especificado y el bus I2C configurado

print(i2c.scan(), "conectada") # Se imprime la lista de direcciones junto con el mensaje "conectada"

while True: #Se crea el bucle de las variables
  dht.measure() #Ejecuta la medición del sensor DHT
  tem = dht.temperature()# Almacena la temperatura medida en la variable 'tem'
  hum = dht.humidity() #Almacena la humedad medida en la variable 'hum'

  oled.fill(0) #Pone todo el fondo de color negro (valor 0)
  oled.pixel( 64, 60, 1) # Dibuja un pixel blanco en la posición especificada(1 es el color blanco)
  oled.vline(0, 0, 20, 1) # Dibuja una linea vertical de color blanco (1) desde la posición (0,0) hasta (0, 20)
  oled.vline(120, 0, 20, 1) # Dibuja una linea vertical de color blanco (1) desde la posición (120,0) hasta (120,20)
  oled.hline(0, 0, 120, 1) # Dibuja una linea horizontal de color blanco (1) desde la posición (0,0) hasta (120,0)
  oled.hline(0, 20, 120, 1) # Dibuja una linea horizontal de color blanco (1) desde la posición (0,20) hasta (120,20)
  oled.text("Datos", 10, 10,1) # Muestra el texto "Datos" en las coordenadad (10, 10) en la pantalla OLED
  oled.text("Tem", 0, 30, 1) # Muestra el texto "Tem" en las coordenadas (0, 30)en la pantalla OLED
  oled.text("Hum", 0, 40, 1) # Muestra el valor de "Hum" en las coordenadas (0, 40) en la pantalla OLED
  oled.text(str(tem), 60, 30, 1) # Muestra el valor de 'Tem' (temperatura) en las coordenadas (60, 30) en la pantalla OLED
  oled.text(str(hum), 60, 40, 1) # Muestra el valor de 'hum' (humedad) en las coordenadas (60, 40) en la pantalla OLED
  oled.show() #Muestra todo lo que se ha dibujado en la pantalla OLED
$abcdeabcde151015202530354045505560fghijfghij
$abcdeabcde151015202530354045505560fghijfghij