"""Receber pelo Monitor Serial os limites de temperatura usados para classificar o ambiente como normal, atenção ou temperatura elevada.
Objetivo: permitir que o sistema seja ajustado sem alterar o código-fonte.
Aplicação: testar diferentes faixas de operação para salas, laboratórios ou estufas."""
from machine import Pin
from time import sleep
import dht
#Componentes
sensor = dht.DHT22(Pin(15))
#Início
print()
print("SISTEMA DE MONITORAMENTO CLIMÁTICO")
#Seleção do ambiente
while True:
print("Selecione o tipo de ambiente:")
print("1 - Sala")
print("2 - Laboratório")
print("3 - Estufa")
print()
opcao = input("Digite a opção: ")
if opcao == "1":
ambiente = "Sala"
break
elif opcao == "2":
ambiente = "Laboratório"
break
elif opcao == "3":
ambiente = "Estufa"
break
else:
print()
print("Opção inválida!")
print("Digite 1, 2 ou 3.")
print()
#Limites
while True:
try:
print()
print("Ambiente selecionado:", ambiente)
print()
limite_normal = float(input("Limite entre NORMAL e ATENÇÃO (°C): "))
limite_elevada = float(input("Limite entre ATENÇÃO e ELEVADA (°C): "))
if limite_normal >= limite_elevada:
print()
print("ERRO!")
print("O primeiro limite deve ser menor "
"que o segundo.")
else:
break
except ValueError:
print()
print("ERRO: digite apenas valores numéricos.")
print()
print("CONFIGURAÇÃO DO SISTEMA")
print("Ambiente:", ambiente)
print("NORMAL: temperatura < {:.1f} °C".format(limite_normal))
print("ATENÇÃO: {:.1f} °C até {:.1f} °C".format(limite_normal, limite_elevada))
print("ELEVADA: temperatura > {:.1f} °C".format(limite_elevada))
print()
#Monitoramento
while True:
try:
sensor.measure()
temperatura = sensor.temperature()
# umidade = sensor.humidity()
print("Ambiente:", ambiente)
print("Temperatura: {:.1f} °C".format(temperatura))
#Temperatura Normal
if temperatura < limite_normal:
print("Situação: NORMAL")
print()
#Temperatura em Atenção
elif temperatura <= limite_elevada:
print("Situação: ATENÇÃO")
print()
#Temperatura Elevada
else:
print("Situação: TEMPERATURA ELEVADA")
print()
except OSError as erro:
print("Erro na leitura do DHT22:", erro)
sleep(2)