ESP8266 - Botão - Relé
Este tutorial ensina você a usar o ESP8266 e um botão para controlar o relé. Ao conectar o relé a uma trava solenoide, lâmpada, fita LED, motor ou atuador..., podemos usar um botão para controlá-los. Vamos aprender duas aplicações diferentes:
Aplicação 1 - O estado do relé é sincronizado com o estado do botão. Em detalhes:
- O ESP8266 liga o relé enquanto o botão está sendo pressionado.
- O ESP8266 desliga o relé quando o botão NÃO está sendo pressionado.
Aplicação 2 - O estado do relé é alternado a cada vez que o botão é pressionado. Mais especificamente:
- Se o ESP8266 detectar que o botão foi pressionado (mudando do estado HIGH para o estado LOW), ele vai LIGAR o relé se ele estiver DESLIGADO, ou DESLIGAR o relé se ele estiver LIGADO.
- Soltar o botão não afeta o estado do relé.
Na Aplicação 2, precisamos fazer o debounce do botão para garantir que ele funcione corretamente. Vamos ver por que isso é importante comparando como o relé se comporta quando usamos o código do ESP8266 com e sem o debounce do botão.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre Relé e Botão
Se você não está familiarizado com relé e botão (incluindo pinagem, funcionamento e programação), os tutoriais a seguir podem ajudar:
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.
Aplicação 1 - O estado do relé está em sincronia com o estado do botão
Código ESP8266
Passos Rápidos
Para começar com o ESP8266 no Arduino IDE, siga estes passos:
- Confira o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for a sua primeira vez usando o ESP8266.
- Faça a ligação dos componentes conforme mostrado no diagrama.
- Conecte a placa ESP8266 ao seu computador usando um cabo USB.
- Abra o 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 um ESP8266 ao seu computador com um cabo USB.
- Abra o Arduino IDE e selecione a placa e a porta corretas.
- Copie o código e abra-o no Arduino IDE.
- Clique no botão Upload no Arduino IDE para compilar e fazer o upload do código para o ESP8266.

- Pressione o botão e segure-o por alguns segundos.
- Confira a mudança no estado do relé.
Você verá que o estado do relé está em sincronia com o estado do botão.
Explicação do Código
Confira a explicação linha por linha contida nos comentários do código-fonte!
Aplicação 2 - Botão alterna o Relé
Código ESP8266 - Botão Alterna o Relé Sem Debounce
Explicação do Código
Você pode encontrar a explicação nas linhas de comentário do código do ESP8266 acima.
No código, a expressão relay_state = !relay_state é equivalente ao seguinte código:
Passos Rápidos
- Copie o código e abra-o no Arduino IDE.
- Faça o upload do código para o ESP8266.
- Pressione e solte o botão várias vezes.
- Confira a mudança no estado do relé.
Você pode notar que o relé liga ou desliga toda vez que você pressiona o botão, mas isso pode nem sempre acontecer da mesma forma. Às vezes ele pode alternar rapidamente várias vezes com apenas uma pressão do botão, ou pode não alternar de forma alguma (alternar duas vezes muito rápido, o que não dá para ver a olho nu).
⇒ Para resolver esse problema, precisamos fazer o debounce do botão.
Código ESP8266 - Botão Alterna o Relé Com Debounce
Fazer o debounce de um botão pode ser desafiador para iniciantes. Felizmente, a biblioteca ezButton torna isso fácil.
Por que o debounce é necessário? Veja o tutorial ESP8266 - Debounce de Botão para mais informações.
Passos Rápidos
- Instale a biblioteca ezButton. Consulte o Como Fazer para ver as instruções.
- Copie o código e abra-o com o Arduino IDE.
- Clique no botão Upload no Arduino IDE para fazer o upload do código para o ESP8266.
- Pressione e solte o botão várias vezes.
- Confira a mudança no estado do relé.
Você vai notar que o relé liga ou desliga apenas uma vez sempre que você pressiona o botão.