from machine import Pin
import dht      # Sensor de temperatura y humedad
import time
import network
import ujson
from umqtt.simple import MQTTClient

############ CONFIGURACIÓN DE MQTT ###########
# Parámetros del servidor MQTT
MQTT_CLIENT_ID = "TFM IND4.0 2024" 
MQTT_BROKER = "io.adafruit.com" 
MQTT_USER = "oscarantonio_cedeno130" 
MQTT_PASSWORD = "aio_Wdpt48pouCTCnDA3Cv9rTLCin9ch"

print("Conectando a Red WiFi", end="")
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect('Wokwi-GUEST', '')
while not wifi.isconnected():
    print(".", end="")
    time.sleep(0.1)
print(" ¡Conectado a Red Wifi!") 

print("Conectando al servidor de comunicación MQTT... ", end="") 
mqtt_client = MQTTClient(MQTT_CLIENT_ID, MQTT_BROKER, user=MQTT_USER, password=MQTT_PASSWORD) 
mqtt_client.connect() 
print("¡Conectado en MQTT!") 
###############################################

# Configuración de pines para el DHT1
sensor1 = dht.DHT22(Pin(19))
# Configuración de pines para el DHT2
sensor2 = dht.DHT22(Pin(18))

prev_weather1 = ""
prev_weather2 = ""

while True:
    # Lectura de temperatura del DHT1
    sensor1.measure()
    temp1 = sensor1.temperature()
    humidity1 = sensor1.humidity()

    # Lectura de temperatura del DHT2
    sensor2.measure()
    temp2 = sensor2.temperature()
    humidity2 = sensor2.humidity()

    if temp1 != prev_weather1:
        print("Temperatura Sensor 1")
        mqtt_topic = "oscarantonio_cedeno130/feeds/temp_sensor1"
        mensaje = ujson.dumps(
            temp1,
        )
        print(mensaje)
        mqtt_client.publish(mqtt_topic, mensaje)
        prev_temp = temp1

    if humidity1 != prev_weather1:
        print("Humedad Sensor 1")
        mqtt_topic = "oscarantonio_cedeno130/feeds/humidity_sensor1"
        mensaje = ujson.dumps(
            humidity1
        )
        print(mensaje)
        mqtt_client.publish(mqtt_topic, mensaje)
        prev_humidity = humidity1

    if temp2 != prev_weather2:
        print("Temperatura Sensor 2")
        mqtt_topic = "oscarantonio_cedeno130/feeds/temp_sensor2"
        mensaje = ujson.dumps(
            temp2
        )
        print(mensaje)
        mqtt_client.publish(mqtt_topic, mensaje)
        prev_temp = temp2

    if humidity2 != prev_weather2:
        print("Humedad Sensor 2")
        mqtt_topic = "oscarantonio_cedeno130/feeds/humidity_sensor2"
        mensaje = ujson.dumps(
            humidity2
        )
        print(mensaje)
        mqtt_client.publish(mqtt_topic, mensaje)
        prev_humidity = humidity2

    time.sleep(5)