Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Atividade: Comunicação MQTT

📝 Descrição do Projeto

Este projeto demonstra a implementação do protocolo MQTT (Message Queuing Telemetry Transport) utilizando o framework ESP-IDF em uma placa ESP32-C6. O objetivo da atividade foi estabelecer uma comunicação bidirecional (Publicação e Assinatura) entre o microcontrolador e um Broker local configurado em uma máquina com sistema operacional Fedora.

🛠️ Tecnologias e Ferramentas

  • Hardware: ESP32-C6-DevKitM-1.
  • Framework: ESP-IDF v5.2.2 (ou superior).
  • Broker: Mosquitto MQTT instalado localmente no Fedora.
  • Cliente de Teste: MQTTX para monitoramento e envio de comandos.
  • Linguagem: C.

🚀 Configuração do Ambiente

1. Broker Mosquitto (Fedora)

O broker foi configurado no Fedora para aceitar conexões externas e permitir acesso anônimo. Arquivo de configuração (/etc/mosquitto/mosquitto.conf):

listener 1883 0.0.0.0
allow_anonymous true

2. Firewall do Sistema

A porta 1883/tcp foi liberada no firewall do Fedora para permitir a comunicação vinda do ESP32:

sudo firewall-cmd --add-port=1883/tcp --permanent
sudo firewall-cmd --reload

💻 Implementação do Firmware

O firmware utiliza a biblioteca oficial esp-mqtt. A lógica principal baseia-se em:

  1. Conexão automática à rede Wi-Fi através do componente protocol_examples_common.
  2. Inicialização do cliente MQTT apontando para o IP do Host (192.168.1.7).
  3. Evento CONNECTED: Publica uma mensagem de status em ifpb/c6/status e se inscreve no tópico ifpb/c6/comando.
  4. Evento DATA: Captura mensagens enviadas pelo Broker e as exibe no monitor serial.

Trecho do Event Handler (Recebimento de Dados):

case MQTT_EVENT_DATA:
    ESP_LOGI(TAG, "MENSAGEM RECEBIDA DO MQTTX!");
    printf("Tópico: %.*s\r\n", event->topic_len, event->topic);
    printf("Dados: %.*s\r\n", event->data_len, event->data);
    break;

📊 Resultados e Validação

A atividade foi validada com sucesso:

  • Monitor Serial: O ESP32 logou a conexão e exibiu os payloads JSON enviados via MQTTX.
  • MQTTX: Recebeu a confirmação "ESP32 Ativo" assim que o hardware foi reiniciado.
  • Infraestrutura: O Broker Mosquitto no Fedora gerenciou corretamente as sessões de ambos os clientes na mesma sub-rede.

📂 Estrutura de Arquivos

  • main/: Código fonte e lógica do protocolo.
  • idf_component.yml: Gerenciamento de dependências.
  • .gitignore: Configurado para ignorar as pastas build/ e .vscode/.

Aluno: Rodrigues
Disciplina: IoT Instituição: IFPB

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages