"ivan soto rivera"
import network # Módulo para manejar la conexión WiFi
import time # Módulo para pausas de tiempo
from machine import Pin # Importa la clase Pin para manejar pines GPIO
import dht # Módulo para usar sensores DHT (temperatura y humedad)
import ujson # Versión liviana de json para codificar/decodificar datos JSON
from umqtt.simple import MQTTClient # Cliente MQTT para enviar/recibir mensajes a través de la red
# MQTT Server Parameters
MQTT_CLIENT_ID = "micropython-weather-demo" # Identificador único del cliente MQTT
MQTT_BROKER = "broker.mqttdashboard.com" # Dirección del servidor MQTT
MQTT_USER = "" # Usuario para autenticación (vacío aquí)
MQTT_PASSWORD = "" # Contraseña para autenticación (vacío aquí)
MQTT_TOPIC = "wokwi-weather" # Tópico en el que se publicarán los datos(aquise cambio a DHT22IvanS.R para la conexion a mi dispositivo)
sensor = dht.DHT22(Pin(15)) # Crea una instancia del sensor DHT22 conectado al pin GPIO 15
print("Connecting to WiFi", end="") #Esta conectando a Wi-fi
sta_if = network.WLAN(network.STA_IF) # Obtiene la interfaz WiFi (modo estación)
sta_if.active(True) # Activa la interfaz WiFi
sta_if.connect('Wokwi-GUEST', '') # Conecta a la red WiFi sin contraseña
while not sta_if.isconnected(): # Espera hasta que haya conexión
print(".", end="") # Imprime puntos mientras espera
time.sleep(0.1) # Pausa de 100 ms entre intentos
print(" Connected!") # Confirma que se conectó al WiFi
print("Connecting to MQTT server... ", end="") #Esta conectando a Wi-fi
client = MQTTClient(MQTT_CLIENT_ID, MQTT_BROKER, user=MQTT_USER, password=MQTT_PASSWORD) # Crea un cliente MQTT
client.connect() # Se conecta al broker MQTT
print("Connected!") # Confirma conexión al servidor MQTT
prev_weather = "" # Guarda la última lectura enviada para comparar
while True: # Bucle infinito para monitorear el clima
print("Measuring weather conditions... ", end="")
sensor.measure() # Toma una nueva medición del sensor
message = ujson.dumps({ # Crea un mensaje JSON con temperatura y humedad
"temp": sensor.temperature(),
"humidity": sensor.humidity(),
})
if message != prev_weather: # Verifica si los datos han cambiado
print("Updated!")
print("Reporting to MQTT topic {}: {}".format(MQTT_TOPIC, message)) # Muestra en consola lo que se enviará
client.publish(MQTT_TOPIC, message) # Publica el mensaje en el tópico MQTT
prev_weather = message # Actualiza la lectura previa
else:
print("No change") # Si no hay cambio, no publica nada nuevo
time.sleep(1) # Espera 1 segundo antes de repetir