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
Busca:
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
- 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.
- 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).
- Define os pinos do sensor de corrente conectados ao ESP32 (SENSOR1_PIN e SENSOR2_PIN).
- 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).
- Inicia a conexão Wi-Fi usando as credenciais fornecidas (WIFI_SSID e WIFI_PASSWORD).
- Aguarda até que a conexão Wi-Fi seja estabelecida.
- Configura o cliente MQTT (mqttClient) para se conectar ao servidor MQTT especificado (MQTT_SERVER) e na porta especificada (MQTT_PORT).
- Inicia a medição de corrente para cada fase usando os pinos dos sensores de corrente e a taxa de calibração definida anteriormente.
- 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.
- 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 ]