ESP32 - Botão Alterna Relé
Este tutorial ensina como usar o ESP32 para alternar o estado de um relé entre LIGADO e DESLIGADO quando um botão é pressionado. Mais especificamente:
- Se o botão for pressionado, liga o relé
- Se o botão for pressionado novamente, desliga o relé
- O processo acima se repete continuamente
Os códigos ESP32 incluem código para um botão que alterna um relé sem e com debounce
Podemos estender este tutorial para usar o botão para alternar o estado de um solenoide, ventilador, lâmpada ou atuador... conectando-os ao relé.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre Relé e Botão
Temos tutoriais específicos sobre relé e botão. Cada tutorial contém informações detalhadas e instruções passo a passo sobre pinagem do hardware, princípio de funcionamento, ligação ao ESP32, código ESP32... Saiba mais sobre eles nos links a seguir:
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.
Código ESP32 - Botão Alterna Relé Sem Debounce
Passos Rápidos
- Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 na Arduino IDE.
- Faça a ligação conforme a imagem acima.
- Conecte a placa ESP32 ao seu PC por meio de um cabo USB Type-C
- Abra a Arduino IDE no seu PC.
- Selecione a placa ESP32 correta (por exemplo, ESP32 Dev Module) e a porta COM.
- Copie o código acima e cole-o na Arduino IDE.
- Compile e faça upload do código para a placa ESP32 clicando no botão Upload na Arduino IDE
- Mantenha o botão pressionado por alguns segundos e depois solte-o.
- Veja a mudança no estado do relé
Explicação do Código Linha por Linha
O código ESP32 acima contém explicação linha por linha. Por favor, leia os comentários no código!
No código, relay_state = !relay_state é equivalente ao seguinte código:
※ Nota:
O código acima não tem o código de debounce para o botão. Sem debounce para o botão, podem ocorrer comportamentos inesperados. Veja Por que é necessário debounce para o botão. Fazer o debounce do botão é complicado para iniciantes. Felizmente, a biblioteca ezButton faz o debounce do botão para nós.
Código ESP32 - Botão Alterna Relé Com Debounce
Passos Rápidos
- Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 na Arduino IDE.
- Instale a biblioteca ezButton. Veja Como Fazer
- Copie o código acima e cole-o na Arduino IDE.
- Compile e faça upload do código para a placa ESP32 clicando no botão Upload na Arduino IDE
- Pressione o botão várias vezes
- Veja a mudança no estado do relé