Arquivo da categoria: Automação

Controle de Fluxo de Água com Arduino – Parte 3

Neste terceiro post da série sobre o desenvolvimento do Controle de Fluxo de Água com Arduino vamos abordar a parte eletrônica do projeto definindo quais recursos utilizaremos incluindo o Arduino escolhido para a tarefa. Vamos lá?

Recapitulando as principais funcionalidades desta solução:

  • Controlar o fluxo da água (abrir/fechar passagem);
  • Definir o quanto de água vai passar enquanto estiver aberto;
  • Apresentar no display o volume de água escolhido;
  • Sinalizar quando toda a água passou.

Primeiro Esboço do Circuito

O primeiro esboço apresentado trouxe uma visão macro da solução. A partir dele, apresentado na Figura 1, sabemos que precisaremos de alguns recursos:

  • (A) Fonte de Alimentação;
  • (B.1) Arduino;
  • (B.2) Encoder Rotatório;
  • (B.3) Display de 7 Segmentos com 4 dígitos;
  • (B.4) Buzzer;
  • (B.5) LED indicativo de alimentação.
  • (C) Uma placa que leva e traz os sinais de controle da solenoide e contador de fluxo e também a alimentação.
Figura 1 – Rascunho do Projeto PurificControl.

Para acomodar todos os módulos e componentes vamos elaborar uma PCB (Printed Circuit Board, ou Placa de Circuito Impresso em tradução livre). A esta placa vamos disponibilizar conectores dupont fêmea para acomodar o arduino, o display e o encoder. Os outros componentes serão soldados diretamente à placa.

Escolha do modelo do Arduino

O projeto poderia ser desenvolvido com qualquer modelo de microcontrolador como PIC, ARM, 8051 ou o próprio AVR do Arduino. A escolha da plataforma Arduino se deu pela sua simplicidade e facilidade de criar protótipos e pela disponibilidade no mercado para encontrar as placas e bibliotecas relacionadas com ela.

O além das funcionalidades já apresentadas nos posts anteriores seria preciso escolher um Arduino que fosse suficiente acoplamento dos módulos e outros componentes , fosse pequeno para evitar minimar ao máximo o espaço físico ocupado e fácil de reprogramar quando preciso. Como resultado, decidi utilizar o Arduino Nano por cumprir todos os requisitos. Na Figura 2 temos uma foto do Arduino Nano com os pinos já soldados. Muitas vezes quando compramos este modelos eles não vem com os estes pinos soldados.

Arduino Nano
Figura 2 – Arduino Nano.

As funcionalidades e disponibilidade deste modelo são similares por utilizar o mesmo microcontrolador, o ATMEGA328.

Display de 7 Segmentos com 4 Dígitos

A principal funcionalidade definida para este projeto é a possibilidade do usuário definir o quanto de água ele gostaria liberar do purificador. Para isso foi preciso escolher qual interface utilizaríamos para apresentar o valor selecionado por ele.

Entre as possibilidades tínhamos: Display LCD 16×2

  1. Display LCD 16×2: uma opção interessante por suportar caracteres alfanuméricos.
  2. Display LCD com matriz de pontos: possibilitaria criar o próprio layout com mais detalhes se preciso.
  3. Display de 7 Segmentos: um display de 7 segmentos composto com 4 dígitos possibilita mostrar o número de 0 à 9999.

A terceira opção, Display de 7 Segmentos com 4 dígitos, foi escolhida por que é a opção suficiente para o propósito: apresentar ao usuário o quanto de água se quer. Outros pontos também contribuíram com a escolha:

  1. Existe um módulo já com estes displays baseado no circuito integrado TM1637 que facilita todo o controle dos displays.
  2. Para este módulo há uma (ou mais) bibliotecas para facilitar ainda mais seu uso.
  3. O tamanho do dígito é bem maior do que os caracteres do Display LCD 16×2, por exemplo.

A Figura 3 mostra este módulo, e nela podemos ver que ele utiliza apenas 4 pinos sendo 2 de comunicação e 2 de alimentação. Isso possibilita uma economia de pinos digitais se comparado com a ligação direta de um display com os 7 pinos diretamente.

Figura 3 – Módulo com 4 displays de 7 segmentos e controlador TM1637.

Encoder Rotatório (Rotary Encoder)

Para que o usuário entrasse com o valor que deseja que o purificador liberasse era preciso uma interface fácil de manipular. Inicialmente foi pensado em um teclado matricial mas a ideia foi deixada de lado pelo espaço físico que ocuparia. Outra possibilidade seria o uso do celular com bluetooth ou mesmo WiFi, porém serial necessário estar sempre com o celular em mãos para utilizar o purificador.

A solução encontrada com a característica de simplicidade e que seria suficiente para a solução foi o uso de um Encoder Rotatório. Este dispositivo, apresentado na Figura 4, onde podemos ver que o manipulador de giro e os 5 pinos, sendo 2 para detecção da direção do giro; 1 deles é um botão do tipo push button normalmente aberto ativado ao pressionar o manipulador de giro; e 2 para alimentação.

Figura 4 – Encoder Rotatório com botão.

Como podemos ver na Figura 4 o encoder é similar a um potenciômetro, porém não se trata de um resistor variável e não tem os limites de rotação podendo ser girado livremente nos dois sentidos. Com ele é possível detectar qual a direção o usuário girou e contar os passos do gito. Ao girar você consegue sentir cada passo simular ao scroll de um mouse, que também é um tipo encoder rotatório.

No nosso projeto a cada passo do giro horário aumentaria 10ml sendo o valor acumulado exibido no display no limite até 9999ml. Similarmente no giro anti-horário diminuiria o valor no limite até 0ml. Após selecionar o volume de água o botão do encoder servirá para liberar o fluxo de água.

Válvula Solenoide

Para poder responder a solicitação de liberação do fluxo de água temos que controlar a válvula solenoide. A válvula escolhida é apresentada na Figura 5, que é uma válvula normalmente fechada, ou seja, enquanto não houver corrente em seus contatos de alimentação ela permanece com o fluxo de água fechado.

Figura 5 – Válvula Solenoide 12Vcc.

Foi escolhida uma válvula de 12Vcc para utilizar a mesma alimentação do circuito como um todo e manter o mínimo de risco possível visto que inicialmente não foi planejado o acomodamento da parte hidráulica ou eletrônica em uma caixas apropriadas.

Como a válvula é 12Vcc/600mA não é possível ativá-la pelos pinos digitais do Arduino e por isso foi preciso elaborar um driver de corrente transistorizado, apresentado na Figura 6.

Figura 6 – Driver transistorizado para a válvula solenoide.

Na Figura 6(A) podemos ver o simples uso do transistor TIP31 como chave. Na Figura 6(B) vemos como os componentes ficarão interligados de acordo com seus terminais e pinagem.

Como trata-se de um transistor NPN ele mantém a junção Coletor-Emissor aberta até que a base seja polarizada positivamente. Como estamos controlando uma carga indutiva o diodo em paralelo evita que o transistor queime por geração de uma alta tensão inversa pelo indutor.

No circuito é possível ver que o pino D5 do Arduino deverá ficar conectado ao resistor que polariza a base do transistor. Com este pino indo a nível lógico alto, o transistor passa a conduzir e assim leva ao GND o pino da solenoide conectada a ele.

Fonte de Alimentação

Para alimentar o circuito como um todo foi decidido utilizar uma fonte de alimentação, ao invés de optar por baterias. Esta decisão se dá pelo necessidade de manter o sistema funcionando constantemente, ou pelo máximo de tempo possível.

A fonte utilizada deverá fornecer pelo menos 12Vcc com uma corrente mínima de 2A para garantir o bom funcionamento a atender à necessidade dos componentes e módulos.

Esta fonte será conectada à placa utilizando um jack padrão DC005-T20 a qual contará com uma etapa de conversão DC-DC com reguladores de tensão para fornecer 5Vcc, para os módulos que necessitarem como o Display de 7 Segmentos e o sensor de fluxo YF-S201, e uma opção de regulação de tensão para 12Vcc o que vai garantir a tensão necessária para a solenoide.

A Figura 7 apresenta a etapa de conversão DC-DC contanto com um regulador 7805 e 7812, para 5Vcc e 12Vcc respectivamente. O jumper J2 vai permitir o uso ou não do regulador 7812 podendo desabilitar caso a fonte já seja 12Vcc.

Figura 7 – Etapa de Conversão DC-DC com reguladores de tensão.

A Visão Completa do Esquemático

A visão geral do esquemático da placa principal pode ser vista na Figura 8 e na Figura 9 temos o esquemático da placa auxiliar. Ambas serão interconectadas por um cabo com conectores RJ-45.

Figura 8 – Esquemático da placa principal.
Figura 9 – Esquemático da placa auxiliar.

O arquivo do esquemático pode ser baixado neste link.

Agora sabemos como interconectar as partes do circuito e como elas se relacionam. Vamos ver como ficará nossa PCB, então não perca o próximo post.

Inscreva-se para receber novidades!

* indica campo obrigatótio

Próximos posts desta série:

  • Parte 4 – Circuito Impresso
  • Parte 5 – Conclusão.

Controle de Fluxo de Água com Arduino – Parte 2

Este é o segundo post de uma série relacionados o desenvolvimento do Controle de Fluxo de Água com Arduino. Neste post vou mostrar como montei a parte hidráulica. Mãos a obra!

Instalação Padrão de um Purificador

A instalação de purificadores de forma geral é muito simples. Você precisa de um ponto de água disponível e, se seu purificador gelar a água, uma tomada. É interessante que esses prerrequisitos estejam próximo onde ficará o purificador ou você precisará fazer “adaptações”, como foi o meu caso.

Para o meu modelo de purificador Latina PN535 é necessário apenas a ligação do ponto de água utilizando o adaptador que vem junto com ele próprio para redução da bitola de entrada do purificador. Não há qualquer outro procedimento além desse, a não ser colocar a unidade que filtra.

Conexões para o Projeto

Como meu objetivo era controlar o fluxo com a contagem de volume eu necessitei modificar a instalação padrão para não precisar mexer diretamente no purificador, o que seria bem mais trabalho e realmente não sei se daria certo.

Para para alcançar o objetivo eu precisava resolver dois problemas. O primeiro que era preciso bloquear a passagem de água e só liberar de acordo com um comando do Arduino. O segundo problema é que eu precisava saber o quanto de água saiu do purificador.

Para minha felicidade há soluções simples e relativamente baratas para os dois casos. O primeiro é possível sanar utilizando uma válvula solenoide, comum em máquinas de lavar roupas. Como eu queria algo mais simples do que as utilizadas em máquinas de lavar roupas procurei uma que fosse 12Vcc de alimentação. Para o segundo problema foi possível utilizar o sensor YF-S201. Que é um sensor que possibilita medir um fluxo de líquido ou gás. Ambos estão apresentados na Figura 1. Além de serem fáceis de serem encontrados também são de baixo custo, não mais que R$ 50,00 cada um.

Figura 1 – Primeiro modelo de conexões hidráulicas.

Apesar de ter definido como os problemas seriam resolvido algo ainda não estava ideal. E se faltasse energia? Nesse caso, com a configuração definida na Figura 1, eu ficaria sem água!

Modelo Hidráulico Definitivo

Para resolver o problema da falta de água em caso de falta de energia elétrica eu resolvi criar um caminho alternativo para a água. Este caminho seria liberado manualmente em caso de falta de energia.

Para isso utilizei uma torneira de passagem que em modo de operação normal ficaria fechada constantemente e caso faltasse energia seria preciso fechar a válvula do purificador e abrir esta torneira de passagem.

Na Figura 2 é possível ver o fluxo principal da água, que chega em (A) e passa pelo sensor de fluxo (B) e é liberada ou bloqueada pela solenoide (C) de acordo com o comando do usuário e chega ao purificador pela conexão de saída (D). A torneira de passagem que gera o caminho alternativo é apresentada em (E) e, quando aberta, gera um caminho pela mangueira (F) fazendo a água chegar diretamente na saída (D) independente da solenoide.

Figura 2 – Modelo hidráulico definitivo.

Agora que solucionamos os problemas hidráulicos de controle da água vamos criar o projeto eletrônico. Como será nossa automação completa? Não perca o próximo post.

Inscreva-se para receber novidades!

* indica campo obrigatótio

Próximos posts desta série:

Controle de Fluxo de Água com Arduino – Parte 1

Este é o primeiro de uma série de posts relacionados o desenvolvimento do Controle de Fluxo de Água com Arduino. Espero que você aprenda e se divirta com os caminhos para a criação deste protótipo. Vamos lá!

É com nossas experiências do dia-a-dia que devemos nos inspirar para termos ideias de projetos realmente úteis. Afinal, fazer algo sem utilidade não faz sentido algum! Neste post conto uma breve história de como desenvolvi o projeto de controle de fluxo de água com
Arduino e porque decidi investir meu tempo no projeto.

Motivações

A utilização de purificadores de água é algo comum de ser observado hoje me dia. Muitos de nós não queremos pagar caro pelos robustos e pesados garrafões de água mineral e ainda ter que ficar mantendo um, ou mais, de reserva em casa.

Os filtros por sua vez são práticos e os preços variam de acordo com suas funcionalidades. Alguns são apenas para água natural, outros tem opção de água fria e gelada também. Outras características como aviso de troca do filtro e facilidade de limpeza são diferenciais que alguns fabricantes oferecem.

Os purificadores funcionam, genericamente, liberando o fluxo quando você gira uma válvula ou pressiona um botão. Na Figura 1 temos exemplos, um Latina com válvula de giro e o Consul com botão. O giro permite manter o fluxo aberto até que seja girado no sentido contrário. O botão geralmente mantém aberto enquanto estiver pressionado. Claro que dependendo do purificador esse comportamento pode mudar.

Dois modelos de purificadores de água.
Figura 1 – Exemplos de purificadores de água.

Apesar das vantagens que os purificadores oferecem eles sempre poderão melhorar, e talvez você esteja se perguntando como?

Eu particularmente utilizo em minha casa um purificador do mais simples que me servia com perfeição até que um dia eu esqueci uma garrafa de água enchendo e inundei a cozinha inteira! Antes de ler o livro O Design do Dia-a-dia tomei o problema como sendo da minha memória ou distração mas abrindo a mente o problema realmente é do projeto do purificador. Sugiro a leitura do livro para entender mais essa linha de pensamento.

Este caso ocorreu algumas vezes ao longo de uns 2 anos (a última foi recente) e poderia ser realmente grave se alguém se machucasse gravemente escorregando porque não viu o chão molhado ou se eu saísse de casa deixando o filtro ligado e inundasse o prédio ou a casa!

Outro motivo, e não menos importante, é que, com o tempo a válvula de passagem de água pode quebrar. A Figura 2(B) mostra a válvula para um purificador de marca Latina e o botão, Figura 2(B). Como o material da válvula é plástico, após o uso contínuo ela racha e começam os vazamentos e há a necessidade de troca.

Figura 2 – Botão (A) e válvula (B) de um purificador Latina.

Com o projeto sugerido mesmo a válvula quebrando um pequeno desastre doméstico pode ser evitado uma vez que será utilizada outro tipo de controle de passagem de água.

A Ideia do Controle de Fluxo de Água com Arduino

Por conta deste ocorrido decidi desenvolver uma automação para meu purificador. Precisaria de algo que evitasse que o problema ocorresse novamente. Poderia simplesmente modificar e adicionar uma válvula de pressão para me forçar a ficar ao lado dele até que o uso findasse, mas que graça teria isso! 😀

Foi então que fiz o primeiro rascunho do projeto Controle de Fluxo de Água com Arduino denominado PurificControl. Na Figura 3 temos o esboço do projeto dividido em três partes: Figura 3(A), (B) e (C) .

Na Figura 3(A) é apresentada a fonte de alimentação que necessariamente deve ser 12Vcc por, pelo menos, 1A.

Rascunho do projeto de Controle de Fluxo de Água com Arduino.
Figura 3 – Rascunho do Projeto PurificControl.

A fonte conectada à placa principal apresentada na Figura 3(B) pelo conector A.1. Nesta placa temos um Arduino Nano (B.1), que será o controlador do projeto. O Encoder Rotatório (B.2) será utilizado como interface de controle do usuário para definir o quando de água ele vai querer liberar e um módulo Display Serial 7 Segmentos (B.3) vai apresentar este valor e o quanto já foi liberado. O Buzzer B.4 deve emitir um som quando o volume de água pré-definido sair pelo purificador. O LED (B.5) serve apenas para apresentação visual de alimentação na placa.

A placa apresentada na Figura 3(C) serve para realizar a conexão de um sensor de fluxo de água (C.1) uma válvula solenoide (C.2). A solenoide vai controlar a passagem da água para o purificador enquanto o sensor contará o quanto já passou. Em C.3 temos um conector RJ-45 que vai interconectar as placas B e C.

Mas porquê não juntar tudo numa placa só? O meu filtro não está fisicamente próximo do ponto de água onde ele está conectado e é neste ponto de água que precisei montar a estrutura hidráulica com a válvula solenoide e o sensor de fluxo. Por isso decidi utilizar conectores RJ-45 para aproveitar cabos de rede para conexão das partes e deixar o mais organizado possível mesmo se tratado de um projeto caseiro.

Vamos ficando por aqui neste primeiro post. O próximo será relacionado com o projeto hidráulico. O que é necessário para realizar teste controle de fluxo? Não perca.

Inscreva-se para receber novidades!

* indica campo obrigatótio

Próximos posts desta série: