from machine import Pin
from time import sleep
import dht
from servo import Servo
from hcsr04 import HCSR04
# Instancia del actuador
servo_pin = Pin(18) # Instancia del servo según su pin
my_servo = Servo(servo_pin) # Enlace a la clase.
# Instancia de los sensores
ultra_temp = HCSR04(16, 17, 10000) # Sensor para medir temperatura: Trigg, echo
sensor_temp = dht.DHT22(Pin(13)) # Sensor de temperatura
pir = Pin(4, Pin.IN) # Sensor PIR para detectar mano
ultra_gel = HCSR04(5, 6, 10000) # Sensor para dispensar gel: Trigg, echo
# Funciones
def leer_distancia(sensor):
return sensor.distance_cm()
def leer_temperatura():
sensor_temp.measure() # Asegúrate de medir antes de obtener la temperatura
temp = sensor_temp.temperature()
return temp
def dispensar_gel():
my_servo.write_angle(90) # Mueve el servo a 90 grados para dispensar gel
sleep(1.5) # Mantiene el servo en 90 grados durante 1.5 segundos
my_servo.write_angle(0) # Regresa el servo a 0 grados
while True:
distancia_temp = leer_distancia(ultra_temp)
if 2 <= distancia_temp <= 10:
temp = leer_temperatura()
if 35 <= temp <= 37:
print("Temperatura normal:", temp, "°C")
# Mostrar ícono de temperatura normal
elif temp > 37:
print("Fiebre detectada:", temp, "°C")
# Mostrar ícono de fiebre
sleep(1) # Espera antes de la próxima medición
else:
print("Fuera del rango de medición")
sleep(1) # Espera antes de la próxima medición
distancia_gel = leer_distancia(ultra_gel)
if pir.value() == 1: # Si el sensor PIR detecta movimiento
dispensar_gel() # Dispensar gel
sleep(1.5) # Espera para evitar múltiples dispensaciones rápidas