import dht
import machine
import time
# Configura el pin de dades del sensor d'humitat i temperatura (GPIO 4)
pin_dades = machine.Pin(4)
sensor = dht.DHT22(pin_dades)
# Configura els pins de control dels relés (GPIO 14 i GPIO 27)
rele1 = machine.Pin(14, machine.Pin.OUT)
rele2 = machine.Pin(27, machine.Pin.OUT)
# Variables de llindar
llindar_temp = 25
llindar_wet = 50
historial = []
def calcular(valors):
total = sum(valors)
mitjana = total / len(valors)
maxim = max(valors)
minim = min(valors)
return mitjana, maxim, minim
while True:
sensor.measure()
temperatura = sensor.temperature()
humitat = sensor.humidity()
segon_inicial = time.time()
historial.append((segon_inicial, temperatura, humitat))
if len(historial) == 60:
print("Reiniciant")
historial = []
if len(historial) % 12 == 0 and len(historial) > 0:
temperatures = [lectura[1] for lectura in historial]
humitats = [lectura[2] for lectura in historial]
temperatura_mitjana, temperatura_maxima, temperatura_minima = calcular(temperatures)
humitat_mitjana, humitat_maxima, humitat_minima = calcular(humitats)
print("Temperatura mitjana:", temperatura_mitjana, "°C")
print("Temperatura màxima:", temperatura_maxima, "°C")
print("Temperatura mínima:", temperatura_minima, "°C")
print("Humitat mitjana:", humitat_mitjana, "%")
print("Humitat màxima:", humitat_maxima, "%")
print("Humitat mínima:", humitat_minima, "%")
if temperatura_mitjana < llindar_temp:
rele1.value(1)
else:
rele1.value(0)
if humitat_mitjana < llindar_wet:
rele2.value(1)
else:
rele2.value(0)
time.sleep(5)