from machine import ADC, Pin
import time
import math
# Configuración de pines
ntc = ADC(Pin(28)) # Sensor NTC conectado a GP28
ldr = ADC(Pin(27)) # Sensor LDR conectado a GP27
led = Pin(15, Pin.OUT) # LED conectado a GP15
# Definir los umbrales de temperatura y luz
TEMP_UMBRAL = 30 # Temperatura máxima en grados Celsius
LUZ_UMBRAL = 30000 # Umbral de luz en lux (valor aproximado de ADC)
# 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 (termistor 10k)
resistencia_ntc = 10000 * (3.3 / voltaje_ntc - 1)
# Calcular temperatura en grados Celsius (fórmula aproximada de BETA)
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
print("Temperatura: {:.2f} °C, Luz: {}".format(temperatura_c, valor_adc_ldr))
# Evaluar condiciones y activar alerta
if temperatura_c > TEMP_UMBRAL or valor_adc_ldr > LUZ_UMBRAL:
led.value(1) # Encender LED (alerta)
else:
led.value(0) # Apagar LED
# Esperar 1 segundo antes de la siguiente lectura
time.sleep(1)