BLOG - Sistemas Embarcados

Este blog tem como autores os participantes do projeto Smart Campus e alunos das disciplinas: Sistemas Embarcados(Engenharia de Controle e Automação) e Plataformas de prototipação para Internet das Coisas (Especialização Lato Sensu em Internet das Coisas). O objetivo é a divulgação de trabalhos em desenvolvimento no campus que envolvam a utilização de conceitos de sistemas embarcados, internet das coisas, telemetria e outras tecnologias para a resolução de problemas da indústria, meio ambiente, cidades inteligentes, fazendas inteligentes, ....
Coordenação: Prof. Marcos Chaves

[ LOGIN ] [ Autores ]

numero de postagens:1

Controle de corrente alternada de uma rede bifásica usando NODE-RED e Mosquitto

Descrição do Projeto:

  • Objetivo: Criar um ambiente IoT para analisar o consumo em Amper de uma circuito bisafico.
  • Componentes-chave: Node-RED, PostgreSQL e Mosquitto.
  • Node-RED: Uma plataforma de desenvolvimento visual para conectar dispositivos IoT e serviços web.
  • PostgreSQL: Um sistema de gerenciamento de banco de dados relacional para armazenar dados coletados.
  • Mosquitto: Um broker MQTT (Message Queuing Telemetry Transport) para troca de mensagens entre os dispositivos IoT.

      

      

  Explicando o codigo realizado no esp32

  1. Inclui as bibliotecas necessárias:
    • WiFi: para estabelecer uma conexão Wi-Fi.
    • PubSubClient: para conectar-se e publicar dados em um servidor MQTT.
    • EmonLib: uma biblioteca para medição de energia elétrica.
  2. Define as constantes para a conexão Wi-Fi e servidor MQTT, incluindo o nome da rede Wi-Fi (WIFI_SSID), senha (WIFI_PASSWORD), endereço do servidor MQTT (MQTT_SERVER), porta (MQTT_PORT) e os tópicos MQTT para publicação dos dados de corrente (MQTT_TOPIC1 e MQTT_TOPIC2).
  3. Define os pinos do sensor de corrente conectados ao ESP32 (SENSOR1_PIN e SENSOR2_PIN).
  4. Define o objeto EnergyMonitor para cada fase (emon1 e emon2) usando a biblioteca EmonLib. Configura a taxa de calibração para 90.91 (verificar a calibração apropriada para o seu sistema).
  5. Inicia a conexão Wi-Fi usando as credenciais fornecidas (WIFI_SSID e WIFI_PASSWORD).
  6. Aguarda até que a conexão Wi-Fi seja estabelecida.
  7. Configura o cliente MQTT (mqttClient) para se conectar ao servidor MQTT especificado (MQTT_SERVER) e na porta especificada (MQTT_PORT).
  8. Inicia a medição de corrente para cada fase usando os pinos dos sensores de corrente e a taxa de calibração definida anteriormente.
  9. O loop principal começa:
    • Verifica se o cliente MQTT está conectado. Se não estiver, chama a função reconnect() para reconectar.
    • Chama mqttClient.loop() para manter a comunicação com o servidor MQTT.
    • Calcula a corrente eficaz (RMS) para cada fase usando emon1.calcIrms() e emon2.calcIrms(), especificando o período de amostragem em microssegundos (1480 para 60Hz, 1860 para 50Hz).
    • Cria uma string de payload formatada com os valores de corrente.
    • Publica os valores de corrente nos respectivos tópicos MQTT usando mqttClient.publish().
    • Imprime os valores de corrente no monitor serial.
    • Aguarda um intervalo de 3 segundos antes de repetir o loop.
  10. A função reconnect() é chamada quando a conexão MQTT é perdida ou não foi estabelecida. Ela tenta reconectar ao servidor MQTT, gerando um ID de cliente único e tentando a conexão novamente. Se a conexão for bem-sucedida, a mensagem "connected" é exibida no monitor serial. Caso contrário, a função aguarda 5 segundos antes de tentar novamente.

Esse código em particular é projetado para medir corrente elétrica em duas fases usando sensores de corrente não invasivos, calcular a corrente eficaz (RMS) e publicar os valores em um servidor MQTT. 

         Executores:

                    Ezequiel Guedes Lima Junior

                    Sandro Caires.

 

[ID:171] Autor: - Criado em: 2023-07-02 12:39:29 - [ Compartilhar ]