# Importando os módulos necessários
from machine import Pin, I2C, ADC, PWM
import time
from dht import DHT22
# Configurando o sensor DHT22
ambiente = DHT22(Pin(15))
# Configurando o pino do potenciômetro
potenciometro = ADC(Pin(34))
# Configurando os pinos dos relés
rele_NO = Pin(19, Pin.OUT) # Relé conectado ao terminal NO (Normalmente Aberto)
rele_NC = Pin(18, Pin.OUT) # Relé conectado ao terminal NC (Normalmente Fechado)
# Configurando o pino do buzzer
buzzer_pin = Pin(25) # Escolha o pino adequado para o buzzer
buzzer = PWM(buzzer_pin)
buzzer.duty(0) # Inicializando o ciclo de trabalho do buzzer como 0
buzzer.freq(1) # Definindo uma frequência inaudível durante a inicialização
def potenciometro_para_temperatura(valor_potenciometro):
# Mapear a faixa de leitura do potenciômetro (0-65535) para a faixa de temperatura (-40 a 80)
temperatura = (valor_potenciometro / 65535) * 481
return temperatura
def ajustar_reles(temp_ref, temperatura_atual):
if temperatura_atual >= temp_ref:
rele_NO.value(1)
rele_NC.value(0)
buzzer.freq(660) # Definindo frequência para o buzzer
buzzer.duty(50) # Definindo o ciclo de trabalho (50%)
else:
rele_NO.value(0)
rele_NC.value(1)
buzzer.duty(0) # Desligando o buzzer
# Loop principal
while True:
# Medir a temperatura atual pelo sensor DHT22
ambiente.measure()
temperatura_atual = ambiente.temperature()
# Ler o valor do potenciômetro e converter para temperatura de referência
valor_potenciometro = potenciometro.read()
temp_ref = potenciometro_para_temperatura(valor_potenciometro)
# Ajustar os relés com base na temperatura de referência e na temperatura atual
ajustar_reles(temp_ref, temperatura_atual)
# Aguardar um tempo para evitar leituras muito rápidas
time.sleep(1)