0% acharam este documento útil (0 voto)
21 visualizações15 páginas

MQTT Python Instalacao Programa Exemplo

O documento aborda a implementação do protocolo MQTT em Python, incluindo a instalação da biblioteca paho.mqtt e a configuração de um broker MQTT. Ele apresenta exemplos de programas para publicar e assinar mensagens, além de orientações sobre a criação de tópicos e conexões. Ferramentas como EMQX e MQTTX são mencionadas para monitoramento das conexões.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
21 visualizações15 páginas

MQTT Python Instalacao Programa Exemplo

O documento aborda a implementação do protocolo MQTT em Python, incluindo a instalação da biblioteca paho.mqtt e a configuração de um broker MQTT. Ele apresenta exemplos de programas para publicar e assinar mensagens, além de orientações sobre a criação de tópicos e conexões. Ferramentas como EMQX e MQTTX são mencionadas para monitoramento das conexões.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd

IMPLEMENTAÇÃO DE

MQTT EM PYTHON
Prof. Anderson Terroso
Out/2024
2

AGENDA
Instalação do paho.mqtt
Configurando o Broker MQTT
Programa do Publish em Python
Programa do Publish/Subscriber em
Python
3
MQTT - TOPOLOGIA
CLIENTE
APLICAÇÃO COM “PUBLISHER” E “SUBSCRIBER”
CLIENTE
PUBLISHER SUBSCRIBE
(Publicador R
) (Assinante)
MQTT.publish(“lab318/temp”, MQTT.subscribe(“lab318/
xxxxxx); BROKER temp”);
MQTT.publish(“lab318/umid”, MQTT.subscribe(“lab318/
yyyyyy);
ID = umid”);
TERROSO_PUB
Tópicos:
lab318/temp
lab318/umid

ID =
TERROSO_SUB
Tópicos:
lab318/temp
FERRAMENTAS QUE SERÃO 5

USADAS:
• O Broker usado será o EMQX, existem vários outros, tais como:
BAIXE O
MQTTX QUE É
UMA
FERRAMENTA
ÚTIL PARA
MONITORAR
AS CONEXÕES
E AS
PUBLICAÇÕES
E
ASSINATURAS

https://mqttx.app/
COMO CRIAR UMA NOVA CONEXÃO?
CONFIGURANDO UMA NOVA CONEXÃO.....
Por fim, clique em
“Connect”

1
Nome que será
usado como
ID_MQTT
2

Verifique se os
dados do broker
estão corretos.
CRIE AS “SUBSCRIPTION” – CUIDADO PARA CRIAR O TÓPICO IGUAL
AO USADO NO PROGRAMA DO ESP32 OU ESP8266
Criar novas
“subscription”
CRIANDO UM NOVO TÓPICO.....
Nome do tópico –
igual ao criado no
programa do
ESP32 ou ESP8266

Por fim,
confirma
NÃO ESQUEÇA DE CRIAR DUAS CONEXÕES COM OS MESMOS
TÓPICOS.

Crie os
mesmos
tópicos nas
duas
conexões!
INSTALAÇÃO DO PAHO.MQTT PARA 12

PYTHON

• O Paho
Recomendo instalar a versão 1.5.1 da biblioteca paho.mqtt MQTT é uma
biblioteca em Python
desenvolvida pela Eclipse
pip install paho-mqtt==1.5.1
Foundation, projetada para
implementar o protocolo
MQTT
PROGRAMA BASE PARA CLIENTE MQTT (PUBLISH)
import random def run():
import time client = connect_mqtt()
client.loop_start()
from paho.mqtt import client as publish(client)
mqtt_client
if __name__ == '__main__':
broker = 'broker.emqx.io' run()
port = 1883
topic = "lab318/temp"
client_id = "TERROSO_PUB" client.loop_start(): Inicia o loop,
permitindo que o cliente fique ouvindo
def connect_mqtt(): mensagens do broker.
client = mqtt_client.Client(client_id)
client.connect(broker, port) publish(client): A função publish é
print("Cliente conectado ao Broker chamada, que publica mensagens a
MQTT") cada segundo.
return client

def publish(client):
while True:
time.sleep(1)
valor_temp = random.randint(0, 100)
PROGRAMA BASE PARA CLIENTE MQTT (PUBLISH/SUBSCRIBE)
import random def publish(client):
import time while True:
from paho.mqtt import client as mqtt_client time.sleep(1)
valor_temp = random.randint(0, 100)
broker = 'broker.emqx.io' msg = f"Temperatura: {valor_temp}"
port = 1883 result = client.publish(topic, msg)
topic = "lab318/temp" print(f"Mensagem publicada: {msg}")
client_id = "TERROSO_PUB_SUB"
def subscribe(client):
def on_message(client, userdata, message): client.subscribe(topic)
print(f"Mensagem recebida: print(f"Assinado no tópico: {topic}")
{message.payload.decode()}")
def run():
def connect_mqtt(): client = connect_mqtt()
client = mqtt_client.Client(client_id) subscribe(client)
client.on_message = on_message client.loop_start() # Inicia o loop para
client.connect(broker, port) receber mensagens
print("Cliente conectado ao Broker MQTT") publish(client) # Publica mensagens
return client
Callback: if __name__ == '__main__':
•A função on_message(client, userdata, message) é definida como um callback
para lidar com mensagens recebidas. Quando uma nova mensagem é recebida
run()
no tópico inscrito, essa função é chamada automaticamente.
•Dentro dessa função, a mensagem recebida é decodificada e impressa no
console.
15

MESSAGE.PAYLOAD.DECODE()

message.payload

• message: É um objeto que representa a mensagem recebida. Ele contém


várias propriedades, incluindo payload, que é onde os dados da mensagem
são armazenados.

• payload: É normalmente um objeto bytes, que é a representação binária dos


dados que foram enviados pelo publicador.

decode()

• decode(): O método decode() é utilizado para converter a sequência de


bytes da carga útil em uma string. Por padrão, o método decode() usa a
codificação UTF-8, que é a codificação mais comum para texto.

Você também pode gostar