ESP8266 - Válvula de Água/Líquido
Este tutorial ensina você a usar um ESP8266 e uma válvula solenoide para controlar o fluxo de líquidos como água, cerveja e óleo. A mesma técnica pode ser aplicada para controlar o fluxo de gás.
A válvula pode ser aberta e fechada por meio de um relé ou de um módulo MOSFET. Os dois só abrem a válvula totalmente ou a fecham totalmente, porque uma válvula solenoide não deve ser acionada com PWM. O módulo MOSFET, porém, comuta sem clique, comuta mais rápido e não tem contatos metálicos que se desgastam. Este tutorial cobre as duas opções.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre a Válvula de Água/Líquido
Pinagem da Válvula de Água/Líquido

Uma válvula solenoide normalmente tem dois terminais:
- O pino Positivo (+) (vermelho) deve ser conectado a uma fonte de alimentação de 12V DC
- O pino Negativo (-) (preto ou outra cor) deve ser conectado ao GND de uma fonte de alimentação DC
Como a Válvula de Água/Líquido funciona
Normalmente, a válvula fica na posição fechada. Quando 12V DC são fornecidos aos dois terminais, a válvula abre e permite a passagem de água/líquido.
※ Nota:
- Em certos tipos de válvula, uma disposição interna de vedação exige uma pressão mínima para abrir a válvula depois que os 12V DC são aplicados. Essa pressão pode ser gerada pelo fluxo do líquido.
- Além disso, em algumas válvulas, o líquido só consegue fluir em uma direção.
Como Controlar a Válvula Solenoide de Água/Líquido usando o ESP8266
Se a válvula receber 12V, ela abrirá. Para controlar a válvula, é preciso usar um relé entre o ESP8266 e a válvula. O ESP8266 pode então controlar a válvula solenoide por meio do relé.
Se você não está familiarizado com relés (pinagem, como funcionam, como programá-los etc.), você pode aprender sobre eles no tutorial ESP8266 - Relé.
Você também pode usar um módulo MOSFET no lugar do relé. Para conhecer seus pinos e como ele comuta uma carga de 12V, veja o tutorial ESP8266 - Módulo MOSFET.
Relé vs Módulo MOSFET para Válvula de Água/Líquido
| Item | Relé | Módulo MOSFET |
|---|---|---|
| Controle da válvula | abrir/fechar | abrir/fechar (sem PWM para uma válvula) |
| Som | um clique a cada vez | sem clique |
| Velocidade de comutação | lenta (milissegundos) | muito rápida |
| Desgaste | os contatos do relé se desgastam | sem contatos móveis |
| Tipo de válvula | válvula AC ou DC | somente válvula DC |
| Alimentação da válvula | qualquer, conforme a especificação do relé | cerca de 6V ou mais |
| Isolação | sim, bobina separada dos contatos | sim, pelo optoacoplador PC817 |
| Bom para | válvulas AC, projetos simples | válvulas DC, comutação silenciosa ou frequente |
Para uma válvula de 12V DC, as duas peças fazem o mesmo trabalho de abrir e fechar. Escolha o módulo MOSFET se você quer silêncio ou se a válvula comuta muitas vezes por dia. Escolha o relé se a válvula funciona em AC.
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.
Código ESP8266 para Controlar a Válvula de Líquido
O código abaixo liga a válvula de água por cinco segundos e depois a desliga por cinco segundos
Passos Rápidos
Para começar com o ESP8266 na Arduino IDE, siga estes passos:
- Confira o tutorial como configurar o ambiente para ESP8266 na Arduino IDE se esta for a sua primeira vez usando o ESP8266.
- Faça a ligação dos componentes como mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra a Arduino IDE no seu computador.
- Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
- Saída do sensor no Serial Monitor
- Conecte o seu ESP8266 ao seu computador usando um cabo USB.
- Abra a Arduino IDE, selecione a placa e a porta corretas.
- Copie o código acima e abra-o na Arduino IDE.
- Clique no botão Upload na Arduino IDE para enviar o código ao ESP8266.
- Verifique a saída do sensor de fluxo de água no Serial Monitor.
Explicação do Código
Confira a explicação linha por linha contida nos comentários do código-fonte!
Como Controlar a Válvula de Água/Líquido com o Módulo MOSFET
Aqui tiramos o relé e colocamos um módulo MOSFET no lugar dele. A válvula continua apenas abrindo ou fechando, mas agora faz isso sem clique.
O relé e o módulo MOSFET usam pinos diferentes nesta página. O relé está no D8, e o módulo MOSFET está no D5 (GPIO14). Por isso, cada ligação tem o seu próprio código.
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
| Lado NodeMCU / 12V | Módulo MOSFET |
|---|---|
| D5 (GPIO14) | PWM |
| G (GND) | GND |
| + do adaptador 12V | + |
| Fio + da válvula | + (compartilhado com o + do adaptador) |
| Fio − da válvula | LOAD |
| − do adaptador 12V | − |
A válvula tem uma bobina dentro, então ela precisa de um diodo de roda livre (1N4007 ou 1N5819) entre os seus dois fios. A faixa (cátodo) deve ficar voltada para o fio + da válvula.
Código ESP8266
O código funciona da mesma forma que o código do relé: HIGH liga a válvula (aberta) e LOW a desliga (fechada). A válvula abre por 5 segundos e fecha por 5 segundos, repetidamente. Nada é impresso no Serial Monitor.
Uma válvula deve receber somente LIGADO total ou DESLIGADO total, nunca PWM. É por isso que esta página não usa o código de fade com PWM do tutorial do módulo MOSFET.
Passos Rápidos
- Faça a ligação dos componentes como mostrado no diagrama acima.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra a Arduino IDE e escolha a placa e a porta COM, como nos Passos Rápidos do relé acima.
- Copie o código acima e clique no botão Upload.
- Alimente a válvula. Ela abre por 5 segundos, depois fecha por 5 segundos, e repete sem parar.
※ Nota:
O módulo MOSFET só consegue comutar DC, e precisa de uma alimentação da válvula de pelo menos cerca de 6V. Para uma válvula AC, use o relé.