Arduino Nano ESP32 Controle de Pinos Digitais Web com a Biblioteca DIYables ESP32 WebApps
Visão Geral
Este tutorial aborda a classe DIYablesWebDigitalPinsPage da Biblioteca DIYables ESP32 WebApps. A página apresenta cada pino registrado como um botão no navegador. Os pinos de saída podem ser alternados; os pinos de entrada exibem o estado atual. A configuração dos pinos é feita inteiramente no sketch — o navegador reflete o modo que o sketch definir.

O Que Este Tutorial Aborda
- Habilitar pinos individuais como WEB_PIN_OUTPUT ou WEB_PIN_INPUT
- Ler as mudanças de estado das saídas feitas no navegador por meio de um callback
- Fornecer ao navegador os valores dos pinos de entrada por meio de um callback de leitura
- Enviar atualizações de estado do sketch para os navegadores conectados
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Passos
Siga estas instruções passo a passo:
- Se esta for a primeira vez que você usa o Arduino Nano ESP32, consulte o tutorial sobre como configurar o ambiente de desenvolvimento do Arduino Nano ESP32.
- Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
- Abra a Arduino IDE no seu computador.
- Selecione a placa apropriada (por exemplo, Arduino Nano ESP32) e a porta COM.
- Vá até o ícone Libraries na barra à esquerda da Arduino IDE.
- Pesquise por "DIYables ESP32 WebApps" e encontre a DIYables ESP32 WebApps Library, de DIYables
- Clique no botão Install para instalar a biblioteca.
- Search for DIYables ESP32 WebApps created by DIYables and click the Install button.
- Será solicitado que você instale algumas outras dependências da biblioteca
- Clique no botão Install All para instalar todas as dependências da biblioteca.
- Na Arduino IDE, vá até File Examples DIYables ESP32 WebApps WebDigitalPins, ou copie o código acima e cole-o no editor da Arduino IDE
- Atualize as credenciais do WiFi no sketch:
- Clique no botão Upload na Arduino IDE para fazer o upload do código para o Arduino Nano ESP32
- Abra o Serial Monitor
- A saída do Serial Monitor deve ser parecida com esta:
- Se nada aparecer, pressione o botão de reset da placa.
- Digite o endereço IP do Serial Monitor em um navegador na mesma rede.
- Exemplo: http://192.168.0.2
- A página inicial exibe um card para o aplicativo de pinos digitais:

- Selecione o card Digital Pins para abrir a página de controle dos pinos:

- A página também pode ser acessada diretamente em http://192.168.0.2/web-digital-pins.
- Alterne os pinos de saída clicando nos botões correspondentes. O pino 13 (LED integrado) deve responder imediatamente.
Métodos de Configuração dos Pinos
Os pinos devem ser registrados antes de webAppsServer.begin(). Três padrões são suportados:
Habilitando Pinos Individuais
Habilitando uma Faixa de Pinos de Saída
Habilitando Todos os Pinos
Callbacks
Callback de Escrita (Pinos de Saída)
Chamado quando o navegador alterna um pino de saída:
Callback de Leitura (Pinos de Entrada)
Chamado quando o navegador solicita o estado atual de um pino de entrada:
Enviando o Estado a Partir do Sketch
Quando uma entrada muda de estado fora de uma solicitação do navegador, envie a atualização manualmente:
Controles da Interface Web
- Botão do pino: Clique para alternar um pino de saída entre HIGH e LOW. Verde indica HIGH; vermelho indica LOW.
- All ON: Define todos os pinos de saída registrados como HIGH.
- All OFF: Define todos os pinos de saída registrados como LOW.
- Toggle All: Inverte o estado atual de todos os pinos de saída.
Os pinos de entrada exibem o estado atual sem um botão de alternância — o navegador os atualiza periodicamente via WebSocket.
Solução de Problemas
O estado do pino não muda ao clicar
- Verifique se o callback onPinWrite está registrado antes de webAppsServer.begin()
- Confirme se o pino está registrado com WEB_PIN_OUTPUT
- Verifique no Serial Monitor as mensagens WebSocket recebidas
O pino de entrada mostra o estado errado
- Confirme se o callback onPinRead está registrado
- Adicione um resistor de pull-up ou pull-down para evitar entradas flutuantes
- Verifique se digitalRead() retorna o valor esperado no callback
Página não acessível
- Verifique o endereço IP impresso no Serial Monitor
- Certifique-se de que a porta 80 esteja aberta na rede
- A placa e o dispositivo do navegador devem estar na mesma rede WiFi de 2,4 GHz