"""
ACTIVIDAD 3: INTRODUCCIÓN A LA PLATAFORMAS DE IoT
DESCRIPCION: En esta actividad se realiza la recolecion de los datos de tem-
peratura del sensor DTH22 con el fin de enviarlos via protocolo
MQTT hacia un BROKER MQTT alojado en EMQX.
"""
#IMPORTACION DE MODULOS
from machine import Pin,I2C
import time
import network
import dht
import sys
from umqtt.simple import MQTTClient
#SIMULANDO LA CONEXION A WIFI PARA ENVIAR DATOS
print("CONEXION VIA WIFI: ")
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect('Wokwi-GUEST', '')
while not sta_if.isconnected():
print(".", end ="")
time.sleep(0.1)
print(" CONEXION EXITOSA")
# INSTANCIA PARA DHT
sensor = dht.DHT22(Pin(15))
#DECLARACION DE VARIABLES PARA LA CONEXION DE MQTT
MQTT_CLIENT_ID = bytes('client_'+'12322','utf-8')
MQTT_BROKER = 'z0c0cb5c.emqx.cloud'
MQTT_USER = 'Act3IPIoT24'
MQTT_PASSWORD = '4ct31p10t24'
#DECLARACION Y ARREGLO DE LOS TOPIC's A ENVIAR A ADAFRUIT
TOPIC_TMP = bytes('temperatura','utf-8')
# CONEXION VIA MQTT CON ADAFRUIT
print("CONEXION AL SERVIDOR MQTT DE EMQX ", end="")
client = MQTTClient(MQTT_CLIENT_ID, MQTT_BROKER, user=MQTT_USER, password=MQTT_PASSWORD)
client.connect()
print(" ")
print("CONEXION A EMQX EXITOSA")
v_temp = 0.01
time.sleep(1)
while True:
sensor.measure() # Lectura del sensor DHT22
temperatura = sensor.temperature()
if v_temp != temperatura:
client.publish(TOPIC_TMP, bytes(str(temperatura),'utf-8'),qos=0)
print("Temperatura enviada al BROKER: "+str(temperatura))
v_temp=temperatura
time.sleep(0.5)