#import para acceso a red
import network
#Para usar protocolo MQTT
from umqtt.simple import MQTTClient
from machine import Pin, ADC
from time import sleep
#Propiedades para conectar a un cliente MQTT
MQTT_BROKER = "broker.emqx.io"
MQTT_USER = ""
MQTT_PASSWORD = ""
MQTT_CLIENT_ID = ""
MQTT_TOPIC = "gds0641/cbrv"
MQTT_TOPIC_PUBLISH = "gds0641/cbrv/poten"
MQTT_PORT = 1883
#Función para conectar a WiFi
def conectar_wifi():
print("Conectando...", end="")
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect('Wokwi-GUEST', '')
while not sta_if.isconnected():
print(".", end="")
sleep(0.3)
print("WiFi Conectada!")
#Funcion encargada de encender un led cuando un mensaje se lo diga
def llegada_mensaje(topic, msg):
print("Mensaje:", msg)
if msg == b'true':
led.value(1)
if msg == b'false':
led.value(0)
#Funcion para subscribir al broker, topic
def subscribir():
client = MQTTClient(MQTT_CLIENT_ID,
MQTT_BROKER, port=MQTT_PORT,
user=MQTT_USER,
password=MQTT_PASSWORD,
keepalive=0)
client.set_callback(llegada_mensaje)
client.connect()
client.subscribe(MQTT_TOPIC)
print("Conectado a %s, en el topico %s"%(MQTT_BROKER, MQTT_TOPIC))
return client
#Declaro el pin led
led = Pin(4, Pin.OUT)
led.value(0)
#Configurar potenciometro
potenciometro=ADC(Pin(34))
potenciometro.atten(ADC.ATTN_11DB)
potenciometro.width(ADC.WIDTH_10BIT)
#Conectar a wifi
conectar_wifi()
#Subscripción a un broker mqtt
client = subscribir()
#Ciclo infinito
while True:
client.check_msg()
#Leer valor de potenciometro
valor=int(potenciometro.read()*100/1023)
print(valor)
client.publish(MQTT_TOPIC_PUBLISH, str(valor))
sleep(1)