ESP32 Projeto com Sensor de Fluxo de Água para Monitoramento via WiFi

O ESP32 Projeto com Sensor de Fluxo é um sistema de verificação desenvolvido com o intuito de analisar o fluxo de água em um determinado local em específico e...

O ESP32 Projeto com Sensor de Fluxo é um sistema de verificação desenvolvido com o intuito de analisar o fluxo de água em um determinado local em específico e possibilitar a sua verificação através de uma conexão WiFi entre o seu celular e o ESP32, por exemplo.

Sistema de monitoramento de dados ESP32 com Sensor de Fluxo

Sistema de monitoramento de dados ESP32 com Sensor de Fluxo

A fácil visualização dos dados proporciona além de tudo um melhor controle do consumo de água em residências e indústrias, evitando gastos excessivos e nos policiando cotidianamente quanto a nossa utilização deste bem tão precioso que é a água.

Além de podermos visualizar os dados através da tela de smartphones, também é possível abrir junto ao computador um arquivo .txt criado junto ao micro cartão SD incluso no projeto, o qual salva os dados e evita que estes precisam ser salvos na EEPROM.

 

ESP32 NodeMCU

O ESP32 é um Microcontrolador cada vez mais presente na maioria dos projetos e que se diferencia dos tradicionais Arduinos principalmente na sua tensão de nível lógico, já que seu nível lógico é de 3,3V e não 5V como no Arduino.

ESP32 NodeMCU e Arduino

ESP32 NodeMCU e Arduino

Como a maioria dos sensores são produzidos para funcionar com tensões de 5V, muitas vezes é necessária a inclusão de um divisor de tensão ou de um Conversor de Nível Lógico para o perfeito funcionamento do projeto.

Podendo conectar-se com outros dispositivos tanto através de uma rede sem fio WiFi quanto através do Bluetooth, o ESP32 é um produto que expande bastante a sua capacidade de aplicação nos mais diversificados projetos.

O ESP32 é o chip base que controla o funcionamento do módulo NodeMCU, uma placa responsável pela expansão dos pinos de saída através das barras de pino, uma conexão direta junto ao computador via cabo através do conector Micro USB e possibilidade de alimentações superiores aos 3,3V padrão através de reguladores de tensão.

 

Existe diferença entre o ESP32 e o ESP32 Nodemcu?

Sim, esta diferença é simples de explicar, o ESP32 é o chip controlador que possibilita as comunicações sem fio e comutação de dados enquanto que o ESP32 Nodemcu é o módulo que se baseia neste chip controlador e agrega algumas funções a mais citadas anteriormente.

ESP32 x ESP32 NodeMCU

ESP32 x ESP32 NodeMCU

 

ESP32 Projeto – Sensor de Fluxo de Água

O sensor de Fluxo de Água com Arduino é um produto bastante utilizado nas mais diversas aplicações de sistemas de monitoramento para controle de gastos, por exemplo, e pode ser empregado tanto em ambientes industriais quanto residenciais.

Maiores informações sobre o funcionamento do sensor de fluxo de água você encontra no artigo que segue abaixo:

Sensor de Fluxo de Água Arduino como Sensor de Vazão para Projetos

Normalmente, o Sensor de Fluxo de Água possui especificações de uso próximas aos 5V, porém para a realização deste projeto verificamos a fundo o seu sistema de funcionamento e através da necessidade de utilizar um nível lógico de 3,3V descobrimos que ele é compatível também com tensões menores de 4,5V.

Ao estudar a fundo o sistema de funcionamento do Sensor de Efeito Hall, verificou-se a sua alimentação poderia trabalhar com tensões de aproximadamente 3V, o que possibilitaria trabalharmos com o sensor de Fluxo de água através dos 3,3V necessários para leitura do ESP32.

Após submeter ambos os produtos a um teste de funcionamento verificou-se a possibilidade de realizar tal procedimento.

 

ESP32 Projeto – Módulo Relógio Tempo Real RTC DS1307

Utilizado como ferramenta para verificação de dados referente à data e o horário, o Módulo RTC proporciona ao seu projeto uma estabilidade de informações quanto a estas duas variáveis. Maiores informações quanto a utilização do Módulo RTC DS1307 você encontra no Artigo abaixo:

Módulo RTC DS1307 com Display 16×2 I2C – Relógio Arduino com Despertador

Como já expresso anteriormente, a necessidade de utilizar 5V de alguns produtos é inegável e nestes casos ao utilizá-los no ESP32 é necessária a inclusão de um conversor. Ao utilizarmos o Módulo RTC DS1307, porém nos deparamos com uma característica diferenciada própria da comunicação I2C que é a sua capacidade de trabalho com tensões também de 3,3V.

Desta maneira, podemos utilizar o Módulo RTC diretamente no ESP32 sem problema, porém mesmo que o sinal lógico fique nos 3,3V do ESP, a alimentação do módulo ainda deve ser feita através dos 5V do Microcontrolador, obtidos através da porta Vin.

 

ESP32 Projeto – Mini SD Card Arduino para Cartão Micro SD

O módulo Mini SD Card é o responsável pela leitura do cartão SD, produto o qual armazenará as informações do projeto, as datas e fluxo total por dia, tudo isto através de um Arquivo txt.

Diferente dos demais componentes elencados anteriormente, o Módulo Leitor de Cartão Micro SD possui uma alimentação e um nível lógico estabilizado nos 3,3V, sendo desenvolvido para uso específico em microcontroladores com esta tensão de comunicação e funcionamento.

 

Pinos do Mini SD Card

A conexão e a pinagem do Módulo para Cartão Micro SD é bastante simples e conta com apenas 6 conexões, das quais duas são para a alimentação de 3,3V. Veja um pouco mais sobre os pinos que constituem este produto:

Pinos de conexão do Mini SD Card

Pinos de conexão do Mini SD Card

3,3V – Fornece energia ao módulo e deve ser conectado ao pino 3,3V no ESP.

CS – O Pino CS (Slave Select) é utilizado pelo ESP32 para ativar e desativar dispositivos específicos junto ao barramento SPI.

MOSI – O pino MOSI (Master Out Slave In) é o pino de entrada SPI do Mini SD Card.

CLK – O Serial Clock é utilizado para sincronizar a transmissão de dados entre o ESP e o Módulo através dos pulsos de clock.

MISO – O pino MISO (Master In Slave Out) é o pino de saída SPI do Mini SD Card.

GND – Deve ser conectado ao terra do ESP.

 

Preparando o Cartão Micro SD

Antes de utilizarmos o Cartão Micro SD e inseri-lo no Módulo para comunicação junto ao ESP é necessário realizar a formatação do mesmo para os formatos FAT16 ou FAT32.

Caso tenha comprado um cartão SD recentemente é possível que este já esteja pré-formatado com um sistema de arquivo FAT, porém é recomendado que se faça a formatação assim mesmo, até se existir um cartão antigo que já esteja neste formato.

Para realizar a formatação do Cartão, recomenda-se a utilização do aplicativo oficial da Associação SD, disponível para Download AQUI.

Área de Trabalho do Software SD Card Formatter

Área de Trabalho do Software SD Card Formatter

Após formatar o cartão SD precisamos criar um arquivo txt para salvar os dados lidos pelo Sensor de Fluxo de Água e para ser aberto através do software para isto. Caso optássemos por criar um arquivo via código sempre que reiniciasse o sistema seria criado outro arquivo e consequentemente sobreposto.

 

Como criar um arquivo txt?

Para criar um arquivo txt, vamos entrar na pasta do cartão SD e ao clicarmos com o botão direito em qualquer lugar dentro da pasta iremos até o item Novo e ao lado em Documento de Texto como mostra na imagem abaixo.

Como criar arquivo txt do ESP32 Projeto com Sensor de Fluxo

Como criar arquivo txt do ESP32 Projeto com Sensor de Fluxo

Após isto e com o arquivo criado vamos alterar este para o mesmo nome citado no código Arduino, que no nosso caso é o seguinte:

Nome do Arquivo txt do ESP32 Projeto com Sensor de Fluxo

Nome do Arquivo txt do ESP32 Projeto com Sensor de Fluxo

Com todos estes passos prontos, partimos para o desenvolvimento elétrico e posteriormente ao desenvolvimento do software do ESP32 Projeto com Sensor de Fluxo.

 

Produtos Utilizados no ESP32 Projeto Sensor de Fluxo

NodeMCU ESP32 Iot com WiFi e Bluetooth – 38 Pinos;

Sensor de Fluxo de Água G 1/2 1-30 l/min;

Módulo Relógio Tempo Real RTC – DS1307;

Mini SD Card Arduino / Mini Leitor Micro SD Card;

Protoboard 830 pontos para montagem de projetos;

Jumpers.

 

Esquema de Ligação do ESP32 Projeto com Sensor de Fluxo

O esquema de ligação do ESP32 Projeto com Sensor de Fluxo conta com a inclusão de um Mini SD Card e de um Módulo RTC. Lembrando que para a utilização do Mini SD Card é necessário também a inclusão de um Micro Cartão SD junto ao mesmo.

Vale diferenciar apenas a alimentação do Módulo RTC que deve ser feita através do pino 5V e os pinos de ambos os módulos que devem ser feitas nos específicos pinos de comunicação.

Esquema de Ligação ESP32 Projeto com Sensor de Fluxo

Esquema de Ligação ESP32 Projeto com Sensor de Fluxo

Com o esquema de ligação montado, chegou a hora de programarmos o ESP32 com o código desenvolvido abaixo.

 

Código de Funcionamento do ESP32 Projeto com Sensor de Fluxo

O código de funcionamento do ESP32 Projeto com Sensor de Fluxo foi projeto para realizar a verificação em tempo real do fluxo de líquidos e enviá-los via sistema WiFi para a tela do celular.

Com um sistema de funcionamento continuado e através do Módulo RTC, sempre chegar às 23:59:59 o valor total de água que passou pelo Sensor será gravado no Arquivo txt e será reinicializada a contagem.

Além de salvar os valores no cartão de memória, o valor total consumido por dia também será exibido na tela do dispositivo WiFi conectado. Porém vale ter cuidado com um detalhe, sempre que o ESP32 se reinicializar, os valores obtidos pela leitura do Sensor de Fluxo do dia em questão serão zerados.

O código completo do ESP32 Projeto com Sensor de Fluxo você encontra abaixo:

Com o código acima, conseguimos então, realizar a leitura dos dados referentes ao sensor de fluxo e visualizá-los através de um IP junto ao Navegador. Para descobrirmos qual o IP específico iremos digitar no navegador seguiremos os seguintes passos:

Após conectar o ESP32 ao computador e gravarmos o código, iremos abrir o monitor serial e verificar que este estará exibindo valores dos litros por segundo que passam pelo sistema naquele exato momento, normalmente serão valores zerados.

Após, é necessário realizar um reset no ESP32 através do botão EN localizado em sua parte superior, por vezes irá aparecer o seguinte erro:

Este é um erro de inicialização devido ao alto fluxo de dados, porém pode ser resolvido dando reset novamente junto ao ESP32 NodeMCU, com o êxito deste passo poderemos visualizar as seguinte informações:

Tela de inicialização do ESP32 Projeto com Sensor de Fluxo

Tela de inicialização do ESP32 Projeto com Sensor de Fluxo

Nesta tela podemos observar circulado o IP e o local o qual pode-se observá-lo. Com este link, iremos abrir o navegador e digitar no local de acesso do mesmo. Ao acessar o IP já teremos o retorno de fluxo total de líquidos que circulou no Sensor de Fluxo de Água desde a inicialização, veja um print da tela do navegador:

Tela do navegador com dados do Sensor de Fluxo

Tela do navegador com dados do Sensor de Fluxo

Agora basta ficar de olho nos dados e verificar o consumo de líquidos de sua residência em tempo real.

 

Conclusão

O ESP32 Projeto com Sensor de Fluxo é uma excelente solução para quem deseja monitorar a quantidade de água que se gasta em sua residência ou empresa diretamente do seu smartphone ou computador, evitando problemas de vazamento, gastos excessivos ou até mesmo a falta de água em sistemas hidráulicos.

Através do presente projetos muitas ações podem ser desenvolvidas, pode-se incluir uma relé para acionamento e desligamento de válvulas solenoides assim como também é possível acionar sistemas secundários de fornecimento de água caso esta acabe.

Não esqueça de deixar o seu comentário abaixo com as experiências obtidas no desenvolvimento deste projeto, suas dificuldades e melhorias desenvolvidas.

 

Categorias
ESP32

Mecânico de Manutenção com Experiência em Sistemas Embarcados, Automação e Desenvolvimento de Projetos; Graduado nos Cursos de Matemática - URI e Física - UFFS.
31 Número de Comentários
  • Camilla
    8 julho 2020 at 16:48
    Deixe seu Comentário

    Olá, é possível realizar esse projeto no NodeMCU ESP8266?

    • Matheus Gebert Straub
      24 julho 2020 at 17:35
      Deixe seu Comentário

      Boa Tarde Camila! Infelizmente nunca realizei este mesmo projeto com o ESP8266, porém acredito que através das devidas adaptações, seja possível realizar sem problemas o projeto.

  • Rogério
    23 julho 2020 at 19:53
    Deixe seu Comentário

    O sensor de fluxo é preciso, ou pode enganar contabilizando o ar que passa por ele?

    • Matheus Gebert Straub
      29 julho 2020 at 10:38
      Deixe seu Comentário

      Bom Dia Rogério! Infelizmente, caso tenha circulação de ar nos canos, este irá gerar imprecisões na verificação, uma vez que não consegue diferenciar.

  • alisson luan daga
    31 agosto 2020 at 11:52
    Deixe seu Comentário

    Olá, para utilizar este circuito utilizando uma alimentação externa. Posso utilizar quantos volts na entrada VIN, utilizando o cabo conectado ao ESP, tudo funciona OK, mas quando eu o alimento com um 7805 através da porta VIN, ele tem problemas de conexão.

    • Matheus Gebert Straub
      8 outubro 2020 at 16:23
      Deixe seu Comentário

      Boa Tarde Alisson! A alimentação via Vin do ESP32 deve ser feita com 5V, porém vale lembrar que além da alimentação, temos outro produto que também utiliza 5V para funcionar.

  • Gabriel
    3 setembro 2020 at 11:29
    Deixe seu Comentário

    Parabéns pelo projeto!!!

    Gostaria de saber, se seria possível acionar manualmente o dispositivo, para eu determinar o momento de leitura.
    Podendo assim receber e gravar as informações de cada medição.

    • Matheus Gebert Straub
      8 outubro 2020 at 09:20
      Deixe seu Comentário

      Bom Dia Gabriel! Tal incremento é possível através das devidas alterações no código e inclusão do dispositivo de acionamento, porém não tenho nada pronto neste momento que possa lhe auxiliar.

  • AISLAN
    8 setembro 2020 at 13:36
    Deixe seu Comentário

    Quais os GPIOS utilizados para ligar o módulo RTC? O meu ESP32 tem uma pinagem diferente da mostrada na figura””Esquema de Ligação ESP32 Projeto com Sensor de Fluxo”.

    Desde já agradeço a atenção! Ótimo tutorial!

  • Aislan Galdino dos Santos
    14 setembro 2020 at 08:24
    Deixe seu Comentário

    Qual a pinagem utilizada na ligação entre o módulo SD e o ESP32?

    • Matheus Gebert Straub
      8 outubro 2020 at 09:05
      Deixe seu Comentário

      Bom dia Aislan! O esquema de ligação com os pinos utilizados e a ligação completa você encontra neste mesmo link através do Subtítulo “Esquema de Ligação do ESP32 Projeto com Sensor de Fluxo”.

  • josimar
    7 outubro 2020 at 11:43
    Deixe seu Comentário

    Olá poderia disponibilizar a lib wifiap.h não estou conseguindo encontrar na net.

  • CarlosCarrera
    19 outubro 2020 at 17:59
    Deixe seu Comentário

    Saudações
    To apanhando na pinagem, o meu é 30 pinos estou tentando referenciar com o de 38 mas nao esta dando certo, vc poderia colocar a pinagem.
    Obrigado.

  • Murilo Juscinski
    18 novembro 2020 at 17:56
    Deixe seu Comentário

    Boa tarde, quais seriam as entradas para usar essa mesma programação em um ESP32 LoRA? Teria como usar essa mesma programação em um esp32 LoRa?

    • Matheus Gebert Straub
      27 novembro 2020 at 12:36
      Deixe seu Comentário

      Bom Dia Murilo! Existem diferentes modelos de ESP32 Lora, para cada um deles pode ser necessária alguma alteração diferente.

  • gabriela
    29 novembro 2020 at 19:19
    Deixe seu Comentário

    Bom dia boa tarde boa noite.
    Quando eu abro o monitor serial aparecem vários caracteres aleatórios, tipo “??//&&55$$33@@#$%ˆ”
    Voces sabem por que?
    Obrigada

    • Matheus Gebert Straub
      3 março 2021 at 18:20
      Deixe seu Comentário

      Olá Gabriela! É possível que o problema esteja na configuração do Baud Rate, normalmente determinamos um no código para estabelecer os parâmetros de comunicação e quando abrimos o monitor serial, o valor configurado deve ser o mesmo do código, que neste caso é 115200, elemento o qual pode verificar no monitor serial com a nomenclatura velocidade.

  • JOSE MANACI GADELHA MAIA
    7 janeiro 2021 at 09:27
    Deixe seu Comentário

    Excelente tutorial. Parabéns! Poderia substituir o sensor de água por um sensor de corrente não invasivo 100a Sct-013? Mediria energia? Tem algum link que mostre esta utilização? Obg.

    • Matheus Gebert Straub
      4 março 2021 at 11:44
      Deixe seu Comentário

      Olá Jose! Infelizmente não desenvolvi nenhum projeto com este sensor de corrente até o momento, porém o incluirei em minha lista para trabalhar com ele em breve.

  • Gustavo martins
    24 março 2021 at 00:27
    Deixe seu Comentário

    Boa noite, gostaria de saber se tem como controlar uma placa mp3 utilizando o ESP32 fazendo com que ao selecionar uma determinada função em um display touch automaticamente comece a tocar uma música já determinada

    • Matheus Gebert Straub
      26 março 2021 at 09:14
      Deixe seu Comentário

      Olá Gustavo! É possível desenvolver um projeto semelhante a este com o ESP32, se torna um pouco mais complexo com a inclusão do display touch, mas com a devida programação e os dispositivos certos, acredito que seja possível desenvolver algo.

  • gabriel farias dos santos
    7 maio 2022 at 11:41
    Deixe seu Comentário

    Olá parabéns pelo projeto, qual o nome do programa utilizado para esquematizar o circuito ?

    • Daniel Lemos da Rosa
      20 maio 2022 at 14:47
      Deixe seu Comentário

      Boa tarde Gabriel, o fritzing ou algum editor de imagem.

  • KAIQUE
    20 maio 2022 at 07:48
    Deixe seu Comentário

    GOSTARIA DE SABER SE VOCE VENDE ESSE PROJETO MONTADO E JÁ PROGRAMADO?

  • Antonio Chaves
    25 maio 2022 at 20:51
    Deixe seu Comentário

    Olá Daniel, muito boa essa aplicação, tenho um painel que usa hidrômetros, irei refazer utilizando o ESp32, parabéns.

  • Arthur
    11 maio 2024 at 14:31
    Deixe seu Comentário

    Eu estava tentando fazer esse projeto e não consigo acesso a essas bibliotecas. Existe uma versão atualizada delas que possam ser utilizadas?

    • Victor
      4 junho 2024 at 09:34
      Deixe seu Comentário

      Opa Arthur, tudo bem?
      Você pode instalar manualmente cada biblioteca pelo gerenciador de bibliotecas da Arduino IDE.

      Na IDE mais comum você vai no menu de cima em: “Ferramentas -> Gerenciador de Biblioteca”.
      Depois basta digitar o nome de cada biblioteca em “Refine sua busca…” e apertar enter, instalar uma por uma.

      Já na nova IDE, no menu lateral no terceiro ícone abre o gerenciador de bibliotecas e basta pesquisar e instalar uma a uma.

    Deixe seu Comentário

    *

    *

    Sobre nós

    Hoje a Usinainfo é um dos maiores ecommerces de Ferramentas, Peças para Eletrônica, Componentes Eletrônicos, Sensores e Arduino do Brasil, contando com uma grande diversidade de produtos na linha de eletrônica.

    Sugestões

    Artigos Relacionados