ESP8266 - Bomba

Este tutorial ensina você a usar o ESP8266 para controlar uma bomba. Adaptando este tutorial, você pode construir um sistema de irrigação, um aquário, um sistema de reabastecimento de água e muito mais.

Vamos aprender duas formas de acionar a bomba: com um relé e com um módulo MOSFET. Um relé só consegue ligar e desligar a bomba. Um módulo MOSFET também consegue ligar e desligar, e ainda pode mudar a velocidade da bomba com PWM, o que significa que você pode bombear mais ou menos água. Ele também funciona sem o som de clique.

Sobre a Bomba de 12V

Pinagem da Bomba

Pinagem da Bomba com ESP8266 NodeMCU
image source: diyables.io

A bomba de 12V normalmente tem dois pinos:

  • O pino Negativo (-) (preto) deve ser conectado ao GND da fonte de alimentação DC
  • O pino Positivo (+) (vermelho) deve ser conectado aos 12V da fonte de alimentação DC

Como Controlar a Bomba usando o ESP8266

Se uma bomba de 12V receber uma fonte de alimentação de 12V, ela funcionará. Para controlar a bomba, é preciso usar um relé entre o ESP8266 e a bomba. O ESP8266 pode então controlar a bomba por meio do relé.

Se você não está familiarizado com relés (pinagem, funcionamento, programação etc.), consulte o tutorial ESP8266 - Relé para mais informações.

Da mesma forma, o tutorial ESP8266 - Módulo MOSFET ensina o básico do módulo MOSFET, caso você ainda não tenha usado um.

Relé vs Módulo MOSFET para Bomba

Ponto Relé Módulo MOSFET
Controle da bomba somente ligar/desligar ligar/desligar e vazão (PWM)
Ruído ao comutar clique silencioso
Tempo de reação lento, em milissegundos muito rápido
Durabilidade os contatos se desgastam com o tempo sem partes móveis
Potência da bomba AC ou DC somente DC
Tensão da bomba dentro da especificação do relé pelo menos cerca de 6V
Isolação sim (bobina / contatos) sim (optoacoplador PC817)
Ideal para bombas AC, ON/OFF simples bombas DC, controle de vazão, comutação muitas vezes

Uma bomba DC de 12V funciona muito bem com o módulo MOSFET, porque você pode deixar o fluxo suave ou forte. Se a sua bomba funciona na rede elétrica AC, o relé é a opção a usar.

Diagrama de Ligação

diagrama de ligação da bomba com ESP8266 NodeMCU

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 Bomba

O código abaixo vai manter a bomba alternando entre LIGADA e DESLIGADA a cada cinco segundos.

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-pump */ #define RELAY_PIN D8 // The ESP8266 pin connected to the IN pin of relay // The setup function runs once on reset or power-up void setup() { // initialize digital pin D8 as an output. pinMode(RELAY_PIN, OUTPUT); } // The loop function repeats indefinitely void loop() { digitalWrite(RELAY_PIN, HIGH); // turn on pump 4 seconds delay(4000); digitalWrite(RELAY_PIN, LOW); // turn off pump 4 seconds delay(4000); }

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.
  • Conecte o seu ESP8266 ao seu computador usando um cabo USB.
  • Abra a Arduino IDE, selecione a placa e a porta apropriadas.
  • 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.
  • Veja o estado da bomba mudando.

Explicação do Código

Confira a explicação linha por linha contida nos comentários do código-fonte!

Confira este tutorial sobre ESP8266 - se o botão for pressionado, ligar a bomba por 10 segundos.

Código ESP8266 para Controlar a Vazão da Bomba com Módulo MOSFET

Esta parte substitui o relé por um módulo MOSFET. O pino D5 do NodeMCU emite PWM, e o duty cycle decide a rapidez com que a bomba gira e quanta água ela move.

Diagrama de Ligação

diagrama de ligação da bomba de água com módulo MOSFET e ESP8266 NodeMCU NodeMCU

This image is created using Fritzing. Click to enlarge image

  • D5 (GPIO14) do NodeMCU → PWM do módulo
  • G (GND) do NodeMCU → GND do módulo
  • + do adaptador 12V → + do módulo
  • Fio vermelho (+) da bomba → + do módulo (junto com o fio + do adaptador)
  • Fio preto (−) da bomba → LOAD do módulo
  • − do adaptador 12V → − do módulo

O motor da bomba é uma bobina. Conecte um diodo de roda livre (1N4007 ou 1N5819) entre os fios da bomba, com o lado listrado (cátodo) no fio + da bomba.

Código ESP8266

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-pump */ const int MOSFET_PIN = D5; // ESP8266 pin D5 connected to the PWM pin of the MOSFET module void setup() { Serial.begin(9600); pinMode(MOSFET_PIN, OUTPUT); analogWrite(MOSFET_PIN, 0); // start with the load OFF } void setLoad(int percent) { int duty = map(percent, 0, 100, 0, 255); // convert 0-100% to 0-255 analogWrite(MOSFET_PIN, duty); Serial.print("Load power: "); Serial.print(percent); Serial.println("%"); } void loop() { // turn the load fully ON, then fully OFF Serial.println("Load: ON"); setLoad(100); delay(2000); Serial.println("Load: OFF"); setLoad(0); delay(2000); // increase the power step by step (PWM) for (int percent = 10; percent <= 100; percent += 10) { setLoad(percent); delay(500); } // decrease the power step by step (PWM) for (int percent = 90; percent >= 0; percent -= 10) { setLoad(percent); delay(500); } delay(1000); }

Como a bomba se comporta: 2 segundos com vazão total, 2 segundos parada, depois a vazão cresce de 10% a 100% e diminui de volta a 0%. Com pouca potência, a bomba pode não conseguir empurrar a água pelo tubo.

Passos Rápidos

  • Faça a configuração da Arduino IDE e do NodeMCU como nos Passos Rápidos do relé acima.
  • Coloque a bomba na água e faça a ligação como no diagrama. Deixe o adaptador de 12V desconectado.
  • Faça o upload do código acima.
  • Conecte o adaptador de 12V e observe a vazão da água.
  • Abra o Serial Monitor a 9600 baud.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
Load: ON Load power: 100% Load: OFF Load power: 0% Load power: 10% Load power: 20% Load power: 30% Load power: 40% Load power: 50% Load power: 60% Load power: 70% Load power: 80% Load power: 90% Load power: 100% Load power: 90% Load power: 80% Load power: 70% Load power: 60% Load power: 50% Load power: 40% Load power: 30% Load power: 20% Load power: 10% Load power: 0%
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2

Note que o módulo MOSFET precisa de uma bomba DC e de uma alimentação de cerca de 6V ou mais. Uma bomba AC deve continuar no relé. Nunca deixe a bomba funcionar a seco.

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!