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

Detecção de Vazamento de Gás

A aplicação de Internet das Coisas (IoT) consiste em um sistema completo para detecção de vazamento de gás, utilizando um dispositivo NodeMCU (como o ESP32 ou ESP8266) para o envio e recebimento de comandos de um servidor na nuvem. Esse sistema envolve o desenvolvimento do backend, do dashboard e a integração com um banco de dados.

No backend, foi utilizada uma arquitetura baseada em nuvem para receber e processar os comandos enviados pelos dispositivos NodeMCU. Para isso, foi criada uma API (Interface de Programação de Aplicativos) que recebe os dados de detecção de vazamento e realiza o processamento necessário. Essa API pode ser desenvolvida utilizando tecnologias como Node.js, Python ou outras linguagens de programação adequadas para o contexto.

Os dispositivos NodeMCU são configurados para monitorar constantemente a presença de gás no ambiente. Eles estão equipados com sensores de gás capazes de detectar concentrações perigosas e, quando identificado um vazamento, enviam um sinal para o servidor na nuvem através de uma conexão de internet sem fio (Wi-Fi). Essa comunicação pode ser realizada utilizando o protocolo como MQTT.

O servidor na nuvem recebe os dados dos dispositivos NodeMCU e realiza o processamento necessário. Isso pode incluir a análise dos níveis de concentração de gás, a verificação de alarmes, o acionamento de notificações para os usuários e outras ações pertinentes ao sistema de detecção de vazamento de gás.

Além do backend, foi desenvolvido um dashboard para apresentar as informações coletadas de forma visual e amigável aos usuários. Esse dashboard pode ser acessado por meio de um aplicativo móvel ou de uma interface web, permitindo que os usuários monitorem em tempo real os níveis de gás, recebam alertas e visualizem históricos de detecção de vazamento.

Para garantir a persistência e o armazenamento dos dados, integramos um banco de dados ao sistema. O banco de dados é responsável por armazenar as informações coletadas pelos dispositivos NodeMCU e permitir consultas e análises posteriores. Nesse projeto, o sistema de gerenciamento de banco de dados que será utilizado é o MySQL.

Em resumo, o desenvolvimento dessa aplicação de IoT para detecção de vazamento de gás envolve a criação de um backend baseado em nuvem, a configuração dos dispositivos NodeMCU para envio de dados, a integração com um banco de dados para armazenamento das informações e a criação de um dashboard para visualização dos dados pelos usuários. Essa solução permite o monitoramento em tempo real, o recebimento de alertas e o controle eficiente de possíveis vazamentos de gás.

PROJETO

1. Introdução

A detecção de vazamentos de gás é de extrema importância para garantir a segurança dos ambientes domésticos e prevenir acidentes graves, como explosões e incêndios. Por isso, o objetivo deste projeto é simular a detecção de vazamento de gás natural e GLP em uma cozinha de restaurante, utilizando uma ESP32 e um potenciômetro.

2. Materiais 

  • ESP32:  Ideal para projetos de IoT (Internet das Coisas). Foi utilizado para ler os dados do potenciômetro e enviar as informações do vazamento de gás.
  • Potenciômetro: Um dispositivo simples que foi usado como simulador de vazamento de gás. Ele permitiu o controle manual da quantidade de "vazamento" simulada.
  • Instância EC2 do servidor Ubuntu: É uma máquina virtual fornecida pela Amazon Web Services (AWS), com sistema operacional Ubuntu instalado. Foi utilizada para hospedar o servidor que recebeu os dados enviados pelo ESP32.
  • Banco de dados RDS MySQL: É um serviço de banco de dados relacional também oferecido pela AWS. Foi usado para armazenar os dados do vazamento de gás, e permitiu o acesso e análise posterior.
  • Protocolo de comunicação MQTT: É um protocolo leve de mensagens usado para comunicação entre dispositivos IoT. Foi utilizado para a troca de dados entre o ESP32 e o servidor.
  • Aplicação e Dashboard no Node-RED: O Node-RED é uma plataforma de desenvolvimento visual que facilita a criação de fluxos de dados para IoT. Foi usado para criar uma aplicação e um dashboard que recebeu os dados do vazamento de gás, e os exibiu de forma intuitiva e permitiu a monitorização em tempo real.

3. Configuração

4. Desenvolvimento do Código no ESP32

A programação foi feita por meio do Arduino IDE, e seguiu os seguintes passos:

Inclusão das bibliotecas necessárias para a configuração e conexão Wi-Fi, e para a comunicação MQTT:

Definição das constantes:

Função setup: faz a conexão com a rede Wi-Fi e a configuração do servidor MQTT

Função loop():

  • Lê os valores analógicos dos pinos conectados aos potenciômetros, que simulam os níveis de vazamento de gás.
  • Calcula a porcentagem de vazamento de gás com base nos valores lidos.
  • Converte os valores em strings.
  • Exibe os valores lidos no monitor serial para fins de depuração.
  • Publica os valores dos níveis de gás nos respectivos tópicos MQTT.
  • Aguarda 1 segundo antes de repetir o loop.

5. Configuração e Desenvolvimento no Node-RED

No Node-RED, foi criado um  fluxo para receber os dados MQTT do ESP32, configurado os nós MQTT para receber e processar os dados corretamente, e desenvolvido os nós necessários para exibir as informações do vazamento de gás em um dashboard.

Depois, os dados foram armazenados no banco de dados MySQL.

Na primeira parte, o fluxo começa com um nó "mqtt in", que é responsável por receber mensagens do tópico MQTT. O valor da mensagem recebida é armazenado na variável "sensorValuegas_natural" presente na primeira função “Turn On LED”.

Nessa função, há uma estrutura condicional "if-else" que verifica se o valor do sensor (sensorValuegas_natural), e é utilizada para controlar dispositivo de LED referente ao gás natural. Se o valor for maior que 20% do  Limite Inferior de Explosividade, o LED da dashboard será acionado.

Na segunda parte, acontece o mesmo, mas a mensagem é armazenada na variável “sensorValuegas_petroleo”. E, caso ultrapasse 25% do limite inferior de explosividade, o segundo LED é acionado.

Além disso, para cada variável, há um gráfico de linha que mostra a variação da porcentagem de gás com o tempo, e um medidor de vazamento de gás em porcentagem.

Esse trecho de código basicamente extrai os valores recebidos pelos nós MQTT, e os armazena em uma variável chamada gas_natural e gas_petroleo e, em seguida, atribui esses valores à propriedade msg.gas_natural e msg.gas_petroleo Em seguida, os objetos msg modificados retornam para continuar o fluxo no Node-RED e são inseridos no banco de dados.

Na primeira parte desse trecho, são selecionados os dados referentes às porcentagem de gás natural e GLP para serem plotadas no gráfico que exibe a variação dessas duas variáveis com o tempo. Na segunda parte, são selecionados todos os valores do banco de dados para serem exibidos em uma tabela. E, a última parte, deleta dados do banco de dados.

6. Conclusão

Por fim, esses dados foram exibidos de forma clara em uma dashboard.

 

 

 

 

 

 

 

 

 

[ID:131] Autor: - Criado em: 2023-05-20 02:27:04 - [ Compartilhar ]