from wifi_lib import conecta
from umqttsimple import MQTTClient
import broker
import dht
from machine import Pin, ADC
import time
print("Configurando componentes...")
# Configuração do DHT22 no pino GPIO 15
sensor_dht = dht.DHT22(Pin(15))
# Configuração do LDR no pino analógico GPIO 34
ldr = ADC(Pin(34)) # Definindo o pino 34 como entrada analógica para o LDR
ldr.atten(ADC.ATTN_11DB) # Ajusta a leitura para a faixa de 0 a 3.3V (4096 valores)
print("Conectando ao Wi-Fi...")
station = conecta("Wokwi-GUEST", "")
if not station.isconnected():
print("Falha na conexão")
else:
time.sleep(5)
print("Conectado ao Wi-Fi")
time.sleep(5)
print("Conectando ao HiveMQ...")
client = MQTTClient(broker.mqtt_client_id,
broker.mqtt_server,
broker.mqtt_port,
broker.mqtt_user,
broker.mqtt_password)
client.connect()
while True:
try:
# Leitura do DHT22 (Temperatura e Umidade)
sensor_dht.measure()
temp = sensor_dht.temperature()
hum = sensor_dht.humidity()
# Leitura do LDR (Luminosidade)
ldr_value = ldr.read() # Lê o valor analógico do LDR (0 a 4095)
# Publica as medições no broker MQTT
client.publish("estufa/medida/umidade", str(hum))
client.publish("estufa/medida/temperatura", str(temp))
client.publish("estufa/medida/luminosidade", str(ldr_value))
# Exibe os valores no terminal
print(f"Temperatura: {temp}°C | Umidade: {hum}% | Luminosidade: {ldr_value}")
except OSError as e:
print("Falha na leitura do sensor:", e)
time.sleep(2)
station.disconnect()