from machine import ADC, Pin
import time
import math
# Configuración de pines
ntc = ADC(Pin(28)) # Pin GP28 para el NTC
ldr = ADC(Pin(27)) # Pin GP27 para el LDR
led = Pin(15, Pin.OUT) # Pin GP15 para el LED
# Definir los umbrales de temperatura y luz
TEMP_UMBRAL = 30 # Umbral de temperatura en grados Celsius (ajustar según necesidad)
LUZ_UMBRAL = 30000 # Umbral de luz en lux (ajustar según necesidad)
# Bucle principal de monitoreo
while True:
# Leer valor del ADC del NTC
valor_adc_ntc = ntc.read_u16()
# Convertir valor ADC a voltaje
voltaje_ntc = valor_adc_ntc * 3.3 / 65535
# Calcular resistencia del NTC
resistencia_ntc = 10000 * (3.3 / voltaje_ntc - 1)
# Calcular temperatura en Celsius usando la ecuación aproximada
temperatura_c = 1 / (1 / (25 + 273.15) + (1 / 3950) * math.log(resistencia_ntc / 10000)) - 273.15
# Leer valor del ADC del LDR
valor_adc_ldr = ldr.read_u16()
# Mostrar lecturas en consola para depuración
print("Temperatura: {:.2f} °C, Luz: {}".format(temperatura_c, valor_adc_ldr))
# Evaluar condiciones y activar alerta (encender LED)
if temperatura_c > TEMP_UMBRAL or valor_adc_ldr < LUZ_UMBRAL:
led.value(1) # Encender LED
else:
led.value(0) # Apagar LED
# Esperar antes de la siguiente lectura
time.sleep(1)