ESP8266 - Botão - LED
Este tutorial ensina você a usar o ESP8266 e um botão para controlar o LED. Vamos aprender duas aplicações diferentes:
Aplicação 1 - O estado do LED é sincronizado com o estado do botão. Em detalhes:
- O ESP8266 acende o LED enquanto o botão está sendo pressionado.
- O ESP8266 apaga o LED quando o botão NÃO está sendo pressionado.
Aplicação 2 - O estado do LED é 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 ACENDER o LED se ele estiver APAGADO, ou APAGAR o LED se ele estiver ACESO.
- Soltar o botão não afeta o estado do LED.
Na Aplicação 2, precisamos fazer o debounce do botão para garantir que ele funcione corretamente. Vamos descobrir por que isso é importante comparando como o LED 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) |
Buy Note: Use the LED Module for easier wiring. It includes an integrated resistor.
Sobre LED e Botão
Se você não está familiarizado com LED 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 LED 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 alteração no estado do LED.
Você verá que o estado do LED 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 LED
Código ESP8266 - Botão Alterna o LED 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 led_state = !led_state equivale 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 LED.
Você pode observar que o estado do LED é alternado toda vez que o botão é pressionado. No entanto, esse comportamento pode nem sempre ser consistente. Às vezes, o estado do LED pode ser alternado rapidamente várias vezes em uma única pressão do botão, ou pode não alternar de forma alguma (alternando duas vezes em rápida sucessão, o que pode ser difícil de ver a olho nu).
⇒ Para resolver esse problema, precisamos fazer o debounce do botão.
Código ESP8266 - Botão Alterna o LED 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 LED.
Você verá que o estado do LED é alternado exatamente uma vez a cada vez que o botão é pressionado.