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:
Monitoramento de Consumo de Água em Residências
INTRODUÇÃO
Com o aumento da conscientização sobre a escassez de recursos hídricos e a importância da conservação de água, o monitoramento do consumo de água em residências tornou-se uma prioridade, com os avanços tecnológicos da Internet das Coisas (IoT), é possível implementar sistemas inteligentes de monitoramento que permitem uma gestão mais eficiente desse recurso vital. Nesse contexto, o uso de dispositivos como o ESP32, combinado com protocolos de comunicação eficientes, como o MQTT (Message Queuing Telemetry Transport), e plataformas de desenvolvimento visual, como o Node-RED, tem desempenhado um papel fundamental.
O ESP32 é um microcontrolador com recursos de conectividade Wi-Fi e Bluetooth. Com ele, é possível coletar dados em tempo real dos medidores de água instalados nas residências e transmiti-los para um servidor central usando o protocolo MQTT. O ESP32 pode ser programado para medir o consumo com base nas leituras dos medidores. Além disso, ele pode ser configurado para enviar alertas em tempo real, caso haja vazamentos.
O MQTT é um protocolo de comunicação leve e de baixo consumo de energia, projetado especificamente para ambientes de IoT. Sua eficiência e capacidade de lidar com redes de dispositivos distribuídos fazem dele a escolha ideal para o monitoramento de consumo de água em residências.
O Node-RED é uma plataforma de desenvolvimento visual que simplifica a criação de fluxos de dados IoT, é possível criar painéis de controle intuitivos e personalizados para visualizar os dados de consumo de água em tempo real. Ele oferece uma ampla gama de ferramentas e nós pré-construídos que facilitam a integração entre o ESP32, o MQTT e outros sistemas de monitoramento. Com o Node-RED, é possível configurar alertas e notificações personalizadas, permitindo que os usuários sejam informados sobre vazamentos, incentivando a conservação e a detecção precoce de problemas.
O monitoramento de consumo de água em residências usando MQTT, Node-RED e ESP32 proporciona uma visão detalhada e em tempo real do consumo de água em cada residência, essa abordagem permite a identificação de padrões de uso, a detecção de anomalias e a implementação de estratégias eficientes de conservação. Além disso, os dados coletados podem ser usados para análises a longo prazo, permitindo que as concessionárias de água tomem decisões baseadas em evidências para otimizar o fornecimento de água e promover a sustentabilidade.Essa integração representa um avanço significativo na gestão eficiente dos recursos hídricos, essa abordagem inteligente possibilita um monitoramento preciso, uma resposta rápida a vazamentos e uma conscientização dos usuários sobre seu consumo, contribuindo para a preservação dos recursos naturais e o desenvolvimento de comunidades sustentáveis.
MATERIAIS E MÉTODOS
- ESP32
- 3 Potênciometros (Simulçao do sensor de vazão)
- Arduino IDE
- Node-RED
- AWS - EC2
- MySQL
No início do projeto para o monitoramento de consumo de água em residências foi feito uma análise detalhada dos objetivos. Isso envolveu a identificação dos parâmetros relevantes a serem monitorados, como volume consumido, bem como a definição das funcionalidades desejadas e dos objetivos a serem alcançados. Em seguida, foi realizada a configuração do ambiente de desenvolvimento na plataforma Node-RED, ela foi utilizada para desenvolver a interface de usuário e configurar as regras de monitoramento e notificação.
O MQTT, foi adotado para estabelecer a comunicação entre o ESP32 e o servidor central, permitindo a transmissão rápida e confiável dos dados de medição, como o consumo, das residências para o servidor de monitoramento. No lado do servidor, foram configurados os componentes necessários, como um servidor MQTT e um banco de dados, para receber e armazenar os dados de consumo de água, sendo responsável por receber os dados enviados pelos ESP32s nas residências, já o banco de dados, como o MySQL, foi utilizado para armazenar os dados e permitir análises sobre um padrão de consumo para obter um gerenciamento eficaz no consumo de água. Dessa forma, o monitoramento de consumo de água em residências, utilizando essas ferramentas proporcionou uma solução eficaz para acompanhar e controlar o uso desse recurso vital, promovendo a conscientização e incentivando a conservação de água nas residências.
RESULTADOS
As variáveis e constantes definem as informações de rede, como o nome da rede Wi-Fi (ssid) e a senha (password), o endereço do servidor MQTT (mqttServer) e as credenciais de autenticação (mqttUser e mqttPassword). Além disso, existem tópicos MQTT para cada sensor específico, como chuveiro, torneira da cozinha e irrigação do jardim.
A função setup() é chamada uma vez no início do programa e é responsável por realizar as configurações iniciais:
Nessa função, é realizada a inicialização da comunicação serial (Serial.begin) para exibir mensagens de depuração. Em seguida, é feita a conexão com a rede Wi-Fi usando as informações fornecidas (ssid e password).
Após a conexão Wi-Fi, a função tenta se conectar ao servidor MQTT. A conexão é estabelecida usando o método client.connect(), passando o nome do cliente (ESP32Client), o nome de usuário (mqttUser) e a senha (mqttPassword). Se a conexão for bem-sucedida, uma mensagem é exibida na porta serial indicando que o ESP32 está conectado ao servidor MQTT. Caso contrário, uma mensagem de falha é exibida junto com o estado atual da conexão.
A função loop() é chamada repetidamente após o setup() e é responsável por coletar os dados dos sensores e enviá-los para o servidor MQTT:
Nessa função, os valores dos sensores são lidos usando a função analogRead(). Esses valores são mapeados para faixas de medição específicas usando a função map(), convertendo-os em valores de consumo de água real. Em seguida, são criadas strings contendo os valores de consumo de água para cada sensor, as mensagens de depuração são exibidas na porta serial para verificar os valores dos sensores. Por fim, os valores de consumo de água são publicados nos respectivos tópicos MQTT usando o método client.publish(). Os valores são convertidos em arrays de caracteres usando o método c_str() antes de serem publicados.
- Nó "Tabela Consumo": Exibe um medidor do consumo (L) em uma interface gráfica.
- Nó "Gráfico Consumo": Exibe um gráfico de linha na interface gráfica para visualizar os dados do consumo ao longo do tempo.
- Nó "function": Executa uma função JavaScript personalizada.
- Nó "ui_text": Exibe um texto na interface gráfica.
- Nó "mqtt out": Envia mensagens para um tópico MQTT específico.
- Nó "mqtt in": Recebe mensagens de um tópico MQTT específico.
- Nó "ui_group": Agrupa visualmente outros nós relacionados na interface gráfica.
Na região da direita lida com as conexões responsáveis pela conexão do banco de dados. Os nós "mqtt in" estão configurados para receber os dados dos sensores nos tópicos "esp32/chuveiro" , "esp32/torneirac" e "esp32/irrigacao". Os nós "function" ("Chuveiro", "Torneira da Cozinha" e "Irrigação do Jardim") extraem os valores dos sensores dos dados recebidos e os adicionam à mensagem. O nó "join" combina as mensagens recebidas dos sensores em um único objeto.
O nó "function" ("SELECT") cria a instrução SQL de seleção, e o nó "mysql" executa essa instrução e retorna os dados da tabela. O nó "change" é usado para formatar os dados retornados em um formato adequado para exibição no gráfico. O nó "ui_chart" exibe os dados formatados em um gráfico na interface do usuário.
Nas seguintes imagens estão ilustrados o monitoramento de cada sensor de um respectivo local da residência, além disso, o sistema utiliza um LED para indicar se o monitoramento está acontecendo, caso haja consumo sem estar com o sistema ligado, pode detectar que esteja com algum problema e assim resolvendo o quanto antes. Com LED vermelho significa que o sistema está desligado e com LED verde o sistema está funcionando.
Como os dados são armazenados no banco de dados, o fluxo inclui uma funcionalidade para visualizar os últimos 10 registros em um gráfico de linha e em uma tabela. A funcionalidade do dashboard é exibi-los em tempo real em um gráfico e tabela por meio das ferramentas como ESP32 e Node-RED.
Conclusão
Em conclusão, o projeto de monitoramento de consumo de água em residências trouxe benefícios significativos para o controle e conscientização do uso desse recurso vital. Através da utilização de um dispositivo ESP32 e sensores adequados, foi possível coletar dados precisos sobre o consumo de água em diferentes pontos da residência.
A integração com o Node-RED e o banco de dados MySQL permitiu a criação de um painel de controle intuitivo, que possibilitou aos moradores visualizarem de forma clara e acessível as informações sobre seu consumo de água. Gráficos, tabelas e outras representações visuais contribuíram para uma melhor compreensão dos padrões de consumo e a identificação de possíveis áreas de otimização. Os moradores puderam identificar vazamentos, ajustar seus hábitos de consumo e tomar medidas para reduzir o desperdício de água.
[ID:168] Autor: - Criado em: 2023-06-28 01:41:53 - [ Compartilhar ]