from network import WLAN, STA_IF
from machine import Pin, ADC
from umqtt.simple import MQTTClient
from time import sleep_us
from json import loads
# Importações
rede = WLAN(STA_IF) # Definições do tipo de rede
rede.active(True) # Ativa a rede
if not rede.isconnected(): # Enquanto a rede não estiver conectada
rede.connect("Wokwi-GUEST","") # Conecte na rede do Wokwi
tentativas = 0 # Começa um contador de 20 tentativas até conectar a rede
while not rede.isconnected() and tentativas <= 20: # Loop de tentativas
sleep_ms(200) # Dá um tempo
tentativas += 1 # Atualiza o contador
passo = Pin(14, Pin.OUT) # Configuração do motor de passo 1: passo
direcao = Pin(27, Pin.OUT) # Configuração do motor de passo 1: direção
step = Pin(13, Pin.OUT) # Configuração do motor de passo 2: passo
direction = Pin(12, Pin.OUT) # Configuração do motor de passo 2: direção
topico = b'ifrs/auto/marombas/angulos' # Define a msg do tópico
def fofoqueiro (t, p): # Função para tópico e payload (conteúdo)
if t == topico: # Caso o t seja igual ao tópico
# ??????
else: # Caso contrário
print (t, p) # Printe o t e o p
ir = MQTTClient('27012010', 'broker.hivemq.com') # Gerencia a conexão com o broker
ir.set_callback(fofoqueiro) # Quando receber uma msg, executa isso
ir.connect() # Conecta ao brocker
ir.subscribe(topico) # Se inscreve no tópico
while True:
ir.check_msg() # Vê se o brocker enviou alguma msg
direcao.on()
for i in range(200):
passo.on()
sleep_us(2500)
passo.off()
direction.on()
for i in range(200):
step.on()
sleep_us(2500)
step.off()
ir.publish(topico, b'Ok') # Pública o tópico
ir.disconnect() # Desconecta o brocker