Projeto Raspberry Pi 3 com Sensor de Fluxo de Água

Neste Projeto Raspberry Pi 3 com Sensor de Fluxo de Água iremos trazer um conteúdo muito interessante e que pode ser inserido em uma grande variedade de projetos, os...

Neste Projeto Raspberry Pi 3 com Sensor de Fluxo de Água iremos trazer um conteúdo muito interessante e que pode ser inserido em uma grande variedade de projetos, os quais, vão desde  aplicações voltadas para jardinagem até grandes processos industriais. Aqui, iremos demonstrar os procedimentos necessários para que você possa realizar medições de vazão com o sensor de fluxo YF-S201 juntamente com uma placa Raspberry PI 3 Modelo B.

 


 

Sensor de Fluxo YF-S201

Os sensores de fluxo de água YF-S201 são dispositivos indicados para projetos onde existe presença de líquidos, os quais, por meio de sua manipulação, possam impactar de maneira significativa nos resultados de um determinado processo.

 

Através dos sensores em questão, podemos verificar uma série de informações a partir da medição do fluxo de água em uma determinado tubulação, como por exemplo, o volume de água circulante e consequentemente, o consumo de água de um estabelecimento, entre outros.

Esse sensor possui um sistema de contagem de pulsos, o qual, é constituído de um pequeno imã em uma das pás da hélice contida dentro de sua estrutura, de modo que, quando a água passa pelo sensor, esta faz a hélice girar. Com a hélice em movimento, toda vez que o imã citado passa em por uma determinada posição, o sensor emite um sinal e em contrapartida, fora da mesma, ele não emite o sinal citado. Sendo assim, podemos chegar à conclusão de que cada giro corresponde a uma quantidade fixa de água.

 


 

Componentes utilizados no projeto

Para reproduzir o Projeto Raspberry Pi 3 com Sensor de Fluxo de Água você precisará dos seguintes componentes:

 

Montagem física do hardware

Veja na figura abaixo o hardware que será utilizado para que seja possível utilizar o sensor de fluxo YF-S201 para realizar medições de fluxo de água, através da placa Raspberry Pi 3 modelo B .

Para que fosse possível utilizarmos o sensor em questão em conjunto com a placa Raspberry pi 3 modelo B, foi necessário que elaborássemos um divisor de tensão, pois, os pulsos provenientes da movimentação da hélice são sinais de 5v. Desta maneira, fizemos um divisor de tensão utilizando resistores de 240Ω e 470Ω para o Projeto Raspberry Pi 3 com Sensor de Fluxo de Água.

 


 

Desenvolvimento do código para o Raspberry Pi

Para desenvolver o código citado, iremos abrir o programa IDLE 3, no qual, iremos criar um novo documento e escrever o seguinte código em Python.

 

Acessando o software para desenvolvimento do código

Nesta seção iremos demonstrar o código responsável pela leitura vazão pelo sensor de fluxo YF-S201.

 

Após a finalização do código, basta pressionar F5 para executa-lo.

 


 

Explicação do código 

Nesta seção iremos explicar o funcionamento de todas as linhas do código apresentado anteriormente

  • Importando as biblioteca para manipulação dos pinos de entrada/saída e do tempo real 

Primeiramente, utilizamos a sentença import para importar as biblioteca que serão utilizadas em nosso Projeto Raspberry Pi 3 com Sensor de Fluxo de Água.

  • Determinando o modo de referência aos pinos utilizados

Em seguida, através da sentença GPIO.setmode() determinamos a maneira como vamos nos referenciar aos pinos da placa Raspberry Pi. Ao utilizarmos GPIO.BOARD como parâmetro, devemos nos referenciar aos pinos, no código, pela ordem em que estão anexados na mesma, por exemplo, utilizando o número 12, para o pino 12 (caso tivessemos utilizado como parâmetro a sentença GPIO.BCM, nos referenciaríamos aos pinos da placa através do número que acompanha a sigla GPIO, no caso do pino 12, seria 18, devido ao fato de o pino 12 ser o GPIO 18).

  • Definindo o modo de operação dos pinos utilizados

Posteriormente, definimos o modo de operação dos pinos da placa Raspbarry Pi, de modo que, configuramos o pino 16 como um pino de entrada digital.

  • Declaração das variáveis auxiliares

As variáveis criadas neste código servem para manipular a quantidade de pulsos que ocorrem por minuto e relacionar os mesmos com as medidas referentes à movimentação do líquido.

Primeiramente, temos uma variável chamada pulsos_por_minuto, a qual, como o próprio nome já diz, armazena os valores referentes à quantidade de pulsos que ocorreram em um minuto. Da mesma forma, a variável tot_pulsos realiza o armazenamento da quantidade total de pulsos ocorridos. Em seguida, temos a variável minutos, que por sua vez, apresenta o número de minutos nos quais o program está rodando. Ao lado desta, temos a variável tempo_novo, que será utilizada para determinarmos os ciclos de 1 minuto e por fim, a variável constante, que nada mais é do que uma constante de proporcionalidade, que deverá ser determinada empiricamente.

 

  • Realizando as leituras inerentes à movimentação do líquido

Por fim, criamos um loop infinito através da sentença while (True), de modo que, dentro deste, temos um conjunto de estruturas condicionais if e while. Em um primeiro momento, nos atualizamos a variável tempo_novo com um valor referente a um minuto após o tempo atual, ou seja, fazemos com que a variável em questão armazene uma informação de tempo sobre um instante futuro. Além disso, zeramos a variável pulsos_por_minuto para que, a cada ciclo, possamos ter um novo valor (repare que não ocorre um reset na variável tot_pulsos).

Posteriormente, utilizamos uma estrutura condicional while, de modo que seu conteúdo permanecerá em execução até que o tempo atual ultrapasse o tempo contido na variável tempo_novo (1 minuto à frente do instante de tempo em que o programa começou a ser executado). Durante este ciclo, utilizamos uma estrutura condicional if(), na qual, caso o valor no pino 16 seja diferente de zero, isto é, caso ocorra um pulso, devemos incrementar as variáveis pulsos_por_minuto e tot_pulsos em 1 unidade.

Caso a condição acima não seja satisfeita, quer dizer que o sensor de presença não está detectando nada e como consequência está disponibilizando nível lógico 0 no pino 12 e portanto, o relé deve ser desligado através da sentença GPIO.output(12,1), que por sua vez, coloca nível lógico alto no terminal do mesmo.

Por fim, imprimimos os valores encontrados em cada ciclo, ambos com duas casas decimais.

 


 

Considerações Finais

Este Projeto Raspberry Pi 3 com Sensor de Fluxo de Água foi mais um conteúdo que preparamos com bastante cuidado para você. Esperamos que tenha gostado deste post e lembre-se de deixar suas dúvidas, críticas e sugestões nos comentários abaixo.

Conheça toda Linha Arduino e Acessórios do Site da UsinaInfo.

Categorias
Raspberry Pi

Engenheiro eletricista graduado com ênfase em Controle e Automação pela Universidade Federal do Espírito Santo - UFES e Técnico em Eletrotécnica pelo Instituto Federal do Espírito Santo - IFES. Parceiro do site UsinaInfo.
15 Número de Comentários
  • sergio venâncio
    2 outubro 2018 at 00:27
    Deixe seu Comentário

    Ola

    Como faço para ligar 6 sensores deste ao mesmo tempo?

    Att.

    Sérgio

  • sMarcos nunes jr
    7 fevereiro 2019 at 08:01
    Deixe seu Comentário

    Em todo projeto devemos examinar todas as possibilidades,à exaustão. Considere que em determinado momento o fluxo de fluido cesse e o imã pare e, frente do sensor (um contato reed,creio) por um determinado.tempo. Esta situação não causariga uma contagem errônea ?

    • Equipe Usinainfo
      23 abril 2019 at 14:07
      Deixe seu Comentário

      Bom dia Marcos!
      Basicamente o funcionamento é este, porém o projeto é desenvolvido de maneira que identifica os pulsos gerados pelo equipamento, ou seja, identifica a mudança de estado da onda quadrada para alteração dos dados.

  • rodrigo reis
    27 março 2019 at 01:13
    Deixe seu Comentário

    Tem como ligar uma válvula solenoide pra cortar o fluxo dependendo da quantidade de litros?

    • Equipe Usinainfo
      16 abril 2019 at 20:23
      Deixe seu Comentário

      Boa tarde Rodrigo.
      Tem sim, basta incluir ao código a variável que define o limite da contagem para acionamento da válvula.

  • William
    16 setembro 2019 at 09:22
    Deixe seu Comentário

    Conteúdo muito bom, bem explicado, mas fiquei com dúvida na linha abaixo:

    while time.time() <= tempo_novo:
    Realmente não entendi essa parte do código, o que significa “&amp”

    • Equipe Usinainfo
      4 outubro 2019 at 17:47
      Deixe seu Comentário

      Boa Tarde William!
      Pedimos desculpa pelo ocorrido, infelizmente ocorreu um bug durante o cadastro do código.
      O correto neste linha é o seguinte: “while time.time() >= tempo_novo:”.
      Corrigimos o artigo também, obrigado pelo feedback.

  • Alexandre
    11 novembro 2019 at 15:10
    Deixe seu Comentário

    Parabéns pelo trabalho bro! Qualquer coisa apita

  • Diego Oliveira
    18 junho 2020 at 21:12
    Deixe seu Comentário

    Parabéns pelo conteúdo, tenho umas dúvidas.
    Na linha:
    while time.time() >= tempo_novo:
    Acredito que a variável tempo_novo é o limite do laço, então acho que o sinal deveria ser trocado, não?
    while time.time() <= tempo_novo:

    O último parágrafo, fala sobre um sensor de presença e pinos não utilizados no código, acredito que deve ser de outro artigo.

    Se eu estiver enganado me desculpem.

  • alexabdre
    10 outubro 2020 at 18:06
    Deixe seu Comentário

    Se você alterar a pressão terá que alterar a a constante correto ? Teria uma forma de calcular a litragem independente da pressão ?

    • Matheus Gebert Straub
      13 outubro 2020 at 17:18
      Deixe seu Comentário

      Boa Tarde Alexandre! A princípio nunca li nada sobre isto, o produto trabalha com um sistema mecânico que conta o número de voltas de uma hélice interna e converte este valor através da constante especificada no código.

  • allan jhonny AJ
    13 maio 2021 at 21:09
    Deixe seu Comentário

    como eu faço para o sensor, Sensor de Fluxo de Água YF-S401?
    desde já agradeço!!!

  • 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