# Este programa es diseñado por Wilson Perez y NML
from machine import Pin, ADC
import utime
import dht
# Configuración del sensor DHT11 conectado al pin D13
sensor_dht = dht.DHT11(Pin(13)) # Usamos el pin GPIO D13 para el DHT11
# Configuración del ADC para medir la temperatura con el sensor de temperatura analógico
sensor_temp = ADC(Pin(34)) # Sensor de temperatura conectado al pin 34
sensor_temp.atten(ADC.ATTN_11DB) # Configuración del ADC para rango completo
sensor_temp.width(ADC.WIDTH_12BIT) # Configuración de resolución de 12 bits
ledRojo = Pin(21, Pin.OUT) # LED rojo conectado al pin 21
# Función que imprime un mensaje de advertencia si la temperatura es peligrosa
def advertencia_temperatura(temperatura):
if temperatura > 40:
print("¡ALERTA! La temperatura es peligrosa para el router o switch. Temperatura actual: {}°C".format(temperatura))
elif temperatura > 35:
print("Advertencia: La temperatura está elevada. Temperatura actual: {}°C".format(temperatura))
while True:
# Leer los valores de temperatura y humedad del sensor DHT11
try:
sensor_dht.measure() # Leer los datos del sensor
temp_dht = sensor_dht.temperature() # Temperatura en grados Celsius
hum_dht = sensor_dht.humidity() # Humedad relativa en porcentaje
print("Temperatura (DHT11):", temp_dht, "°C")
print("Humedad (DHT11):", hum_dht, "%")
except OSError as e:
print("Error al leer del sensor DHT11:", e)
# Medir la temperatura usando el sensor analógico
medicion = float(sensor_temp.read()) # Leer el valor del sensor de temperatura analógico
conversion = round(medicion * 42 / 4096, 2) # Convertir la lectura ADC a temperatura en °C
print("Esta es la Temperatura de la Universidad (sensor analógico): ", conversion)
# Llamar a la función de advertencia para el sensor de temperatura analógico
advertencia_temperatura(conversion)
# Activar el LED rojo si la temperatura excede los 30°C
if conversion > 30:
ledRojo.value(1) # Encender el LED si la temperatura es mayor a 30°C
else:
ledRojo.value(0) # Apagar el LED si la temperatura es menor o igual a 30°C
# Esperar antes de hacer otra lectura
utime.sleep(2) # Esperar 2 segundos antes de leer los valores nuevamente