from wifi_lib import conecta
import time
from umqtt.simple import MQTTClient
import dht
from machine import Pin
import random 

# Configurações de rede Wi-Fi
ssid = "Wokwi-GUEST"
password = ""

# Conectando ao Wi-Fi
station = conecta(ssid, password)

# Configurações MQTT
mqtt_client_id = "clientId-5hMLc44WVs-Wokwi"
mqtt_server = "broker.mqttdashboard.com"
mqtt_port = 1883
mqtt_user = ""
mqtt_password = ""
topic = "smartcity/sensores"

def recebi(topico, msg):
    print(topico)
    print(msg)

# Inicializando o cliente MQTT
try:
    client = MQTTClient(mqtt_client_id, 
        mqtt_server, 
        mqtt_port,
        mqtt_user,
        mqtt_password)
    client.connect()
    client.set_callback(recebi)
    client.subscribe("smartcity/sensores")
    client.subscribe("smartcity/sensores-node-red")
    
    print("Conectado ao Broker MQTT")
except Exception as e:
    print(f"Falha na conexão com o Broker MQTT: {e}")

# Iniciando leitura de sensor e envio MQTT
sensor = dht.DHT11(Pin(4))  

sensor.measure()
temp = sensor.temperature()
humidity = sensor.humidity()

# Enviando dados para o broker MQTT
for i in range (3*60):
    temp = random.uniform(10.0, 30.0)  # Gera um valor de temperatura entre 10.0 e 30.0 graus Celsius
    humidity = random.uniform(10.0, 80.0)  # Gera um valor de umidade entre 10% e 80%
    
    msg = f'Temperatura: {temp:.2f}C, Umidade: {humidity:.2f}%'
    print(f'Dados enviados: {msg}')
    client.publish("smartcity/sensores-node-red", msg)
    time.sleep(1)