import machine
import utime
import dht
# Inicialització dels relés
rele_1 = machine.Pin(14, machine.Pin.OUT)
rele_2 = machine.Pin(12, machine.Pin.OUT)
# Configura el sensor DHT22
pin_dades = machine.Pin(2)
sensor = dht.DHT22(pin_dades)
# Variables per als llindars de temperatura i humitat
llindar_temp = 25 # Per exemple, 25 graus Celsius
llindar_wet = 40 # Per exemple, 40% d'humitat
# Llista per guardar les últimes lectures
historial_temp = []
historial_hum = []
# Funció per calcular la mitjana
def calcula_mitjana(llista):
suma = sum(llista)
return suma / len(llista)
while True:
# Llegeix el sensor DHT22
sensor.measure()
temperatura = sensor.temperature()
humitat = sensor.humidity()
# Actualitza les llistes d'historial
historial_temp.append(temperatura)
historial_hum.append(humitat)
# Limita les llistes a les últimes 60 lectures
if len(historial_temp) > 60:
historial_temp.pop(0)
if len(historial_hum) > 60:
historial_hum.pop(0)
# Calcula les mitjanes
temp_mitjana = calcula_mitjana(historial_temp)
hum_mitjana = calcula_mitjana(historial_hum)
# Controla el relé 1 segons el llindar de temperatura
if temp_mitjana < llindar_temp:
rele_1.value(1) # Activa el relé 1
else:
rele_1.value(0) # Desactiva el relé 1
# Controla el relé 2 segons el llindar d'humitat
if hum_mitjana < llindar_wet:
rele_2.value(1) # Activa el relé 2
else:
rele_2.value(0) # Desactiva el relé 2
print(f"Temperatura mitjana: {temp_mitjana} °C")
print(f"Humitat mitjana: {hum_mitjana} %")
utime.sleep(10) # Posa una pausa de 10 segons entre les lectures