Configurando Conectividade 4G LTE para IIoT com MQTT
Introdução
O 4G LTE HAT para Raspberry Pi fornece conectividade celular confiável e de alta velocidade, tornando-o essencial para aplicações de IoT industrial (IIoT) e remotas. Com o MQTT, um protocolo de mensagens leve, os dispositivos podem se comunicar com eficiência por redes celulares, mesmo em locais isolados. Usando comandos AT para configuração, ele simplifica o processo de conectar dispositivos IoT à rede. Essa combinação de 4G LTE e MQTT melhora a transmissão de dados em tempo real, permitindo soluções de IIoT escaláveis com recursos de gerenciamento remoto.
Pré-requisitos
Requisitos de Hardware
| Raspberry Pi 5 | Raspberry Pi 4G LTE CAT4 HAT |
|---|---|
![]() | ![]() |
Requisitos de Software
Drivers e ferramentas de comunicação
Se você ainda não instalou os drivers e ferramentas de comunicação relevantes, consulte primeiro o guia
Mosquitto Explorer
Usaremos o broker Mosquitto, especificamente o broker de testes disponível em https://test.mosquitto.org , que does not require a username or password. Para maior conveniência, é recomendado instalar o Mosquitto diretamente no seu PC para fins de teste.
Usando comandos AT Vamos nos conectar ao Broker MQTT
Passo 1: Configurar o modo de recebimento
AT+QMTCFG="recv/mode",0,0,1
Passo 2: Abrir uma rede para o cliente MQTT
AT+QMTOPEN=0,"test.mosquitto.org",1883
Passo 3: Verificar o status da conexão MQTT (opcional)
AT+QMTOPEN?
Passo 4: Conectar um cliente ao servidor Mosquitto MQTT
AT+QMTCONN=0,"clientExample"
Observe que o ID do cliente deve ser único, portanto, certifique-se de gerar um bem exclusivo. O broker público do Mosquitto não requer nome de usuário ou senha para acesso.
Passo 5: Publicar uma mensagem em um tópico
AT+QMTPUBEX=0,0,0,0,"test/topic",30
quando > aparecer digite a mensagem e pressione ctrl+z
> This is test data, hello MQTT.
Abra o Mosquitto Explorer e insira o tópico para o qual você publicou. Você verá as atualizações aparecerem lá.
Passo 6: Assinar um tópico
AT+QMTSUB=0,1,"test/topic",2
Abra o Mosquitto Explorer e insira o tópico e a mensagem que você deseja publicar a partir do módulo 4G.
Você verá então a mensagem publicada sendo assinada com sucesso no lado do módulo 4G.
Passo 7: Cancelar a assinatura de um tópico
AT+QMTUNS=0,2,"test/topic"
Passo 8: Desconectar o cliente do servidor MQTT
AT+QMTDISC=0
Implementação em Código Python
Passo 1. Preparar o Diretório e o Ambiente Virtual
- Abra um terminal no seu Raspberry Pi.
- Crie uma nova pasta de projeto e navegue até ela:
mkdir mqtt_EX
cd mqtt_EX
- Configure um ambiente virtual Python:
python3 -m venv --system-site-packages env
- Ative o ambiente virtual:
source env/bin/activate
- Instale as bibliotecas necessárias:
pip install pyserial
Passo 2. Preparar o Script Python
-
Abra o Thonny Python IDE (pré-instalado no Raspberry Pi).
-
Crie um novo arquivo no Thonny e cole o código fornecido no editor.
-
Atualize o parâmetro usb_port para corresponder à porta serial do seu Raspberry Pi para o 4G HAT. Normalmente, pode ser
/dev/ttyUSB2ou/dev/ttyUSB3. Exemplo:
usb_port = "/dev/ttyUSB2"
- Salve o arquivo como test_mqtt.py na pasta mqtt_EX.
import serial
import time
# Serial port configuration
SERIAL_PORT = '/dev/ttyUSB2' # Adjust based on your setup
BAUD_RATE = 9600
def send_at_command(ser, command, delay=1):
"""
Sends an AT command to the Quectel module and waits for a response.
"""
ser.write((command + '\r\n').encode())
time.sleep(delay)
response = ser.read_all().decode()
print(f"Command: {command}\nResponse: {response}")
return response
def main():
# Open serial connection
ser = serial.Serial(SERIAL_PORT, BAUD_RATE, timeout=5)
if not ser.is_open:
ser.open()
try:
# Configure MQTT receive mode
send_at_command(ser, 'AT+QMTCFG="recv/mode",0,0,1')
# Open MQTT connection
send_at_command(ser, 'AT+QMTOPEN=0,"test.mosquitto.org",1883')
send_at_command(ser, 'AT+QMTOPEN?') # Check connection status
# Connect to the MQTT broker
send_at_command(ser, 'AT+QMTCONN=0,"clientExample"')
# Subscribe to the topic
send_at_command(ser, 'AT+QMTSUB=0,1,"test/topic_subscribe",2')
print("Publishing and subscribing. Press Ctrl+C to stop.")
while True:
try:
# Publish a message
send_at_command(ser, 'AT+QMTPUBEX=0,0,0,0,"test/topic_publish",30')
send_at_command(ser, 'This is test data, hello MQTT.', delay=0.5)
# Read incoming messages
print("Checking for subscribed topic messages...")
incoming = ser.read_all().decode()
if incoming:
print(f"Received: {incoming}")
# Delay between operations
time.sleep(2)
except KeyboardInterrupt:
print("Exiting loop...")
break
# Unsubscribe from the topic
send_at_command(ser, 'AT+QMTUNS=0,2,"test/topic_subscribe"')
# Disconnect from the broker
send_at_command(ser, 'AT+QMTDISC=0')
finally:
# Close serial connection
ser.close()
if __name__ == '__main__':
main()
Passo 3. Executar o Script
- Abra um terminal e certifique-se de que você está no diretório do projeto:
cd mqtt_EX
- Ative o ambiente virtual:
source env/bin/activate
- Execute o script usando Python:
python test_mqtt.py
- A saída
Recursos
- [PDF Book] Guia de Aplicação MQTT
Suporte Técnico & Discussão de Produto
Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

