from machine import Pin, ADC, I2C
from time import sleep
from i2c_lcd import I2cLcd
# --- Configuración LCD I2C ---
i2c = I2C(1, scl=Pin(22), sda=Pin(21), freq=400000)
devices = i2c.scan()
if len(devices) == 0:
print("No se encontró LCD I2C")
else:
lcd_addr = devices[0]
print(f"LCD encontrado en dirección: {hex(lcd_addr)}")
lcd = I2cLcd(i2c, lcd_addr, 2, 16)
# --- Configuración del potenciómetro ---
sensor = ADC(Pin(34))
sensor.atten(ADC.ATTN_11DB)
sensor.width(ADC.WIDTH_10BIT)
# --- LED que simula la bomba ---
led = Pin(2, Pin.OUT)
UMBRAL_HUMEDAD = 30
def leer_humedad():
valor = sensor.read()
humedad = int((valor / 1023) * 100)
return humedad
while True:
humedad = leer_humedad()
lcd.clear()
lcd.putstr(f"Humedad: {humedad}%")
if humedad < UMBRAL_HUMEDAD:
led.on()
lcd.move_to(0, 1)
lcd.putstr("Bomba: ACTIVADA")
print(f"[MQTT] Humedad {humedad}% | Bomba ACTIVADA")
else:
led.off()
lcd.move_to(0, 1)
lcd.putstr("Bomba: APAGADA ")
print(f"[MQTT] Humedad {humedad}% | Bomba APAGADA")
sleep(2)