"""Criar um modo em que o sistema aumenta o intervalo entre medições quando a temperatura e a umidade estão dentro da faixa normal.
Objetivo: relacionar consumo de energia e frequência de aquisição de dados.
Aplicação: representar estratégias usadas em dispositivos IoT alimentados por bateria."""
from machine import Pin, PWM
from time import sleep, ticks_ms, ticks_diff
import dht
sensor = dht.DHT22(Pin(15))
def modo_economico(temperatura, umidade):
"""
Altera o intervalo de medições de acordo com as
condições de temperatura e umidade
"""
if 17 <= temperatura < 30 and 35 <= umidade < 70:
return 60
else:
return 2
while True:
try:
sensor.measure()
temperatura = sensor.temperature()
umidade = sensor.humidity()
if umidade < 35:
estado = "TEMPO SECO"
quantidade_alertas += 1
elif umidade < 70:
estado = "NORMAL"
else:
estado = "MUITO ÚMIDO"
quantidade_alertas += 1
print()
print(
"Temperatura: {:.1f} °C | "
"Umidade: {:.1f} % | "
"Estado: {}".format(temperatura, umidade,estado)
)
#modo econômico
intervalo_medicao = modo_economico(temperatura, umidade)
if intervalo_medicao == 60:
print("Modo econômico ativado")
else:
print("Modo econômico desativado")
print("Próxima medição em:", intervalo_medicao, "segundos")
except OSError as erro:
print("Erro na leitura do sensor:", erro)
intervalo_medicao = 5
sleep(intervalo_medicao)