Biblioteca DIYables ESP32 WebApps - Framework Completo de Aplicações Web para ESP32
Biblioteca DIYables ESP32 WebApps
Uma biblioteca ESP32 completa para criar aplicações web baseadas em WebSocket no ESP32. Esta biblioteca oferece vários web apps prontos para usar, para monitorar, controlar e interagir com seus projetos ESP32 por meio de uma interface web moderna.
Com esta biblioteca, você pode interagir com o seu ESP32 por um navegador web no celular ou no PC de uma destas formas:
- Use os web apps prontos entre as 11 aplicações fornecidas, sem nenhum conhecimento de programação web
- Personalize os web apps prontos para atender aos requisitos específicos do seu projeto
- Crie e adicione seus próprios web apps usando a arquitetura flexível do framework

🚀 Recursos
- Arquitetura Modular: Adicione apenas os web apps de que você precisa para otimizar o uso de memória
- Eficiente em Memória: Cada web app pode ser ativado/desativado de forma independente
- Memória Otimizada: Os códigos HTML, JavaScript e CSS são minificados para reduzir o tamanho do código, mantendo a interface e a funcionalidade. O código-fonte original sem minificação está incluído na biblioteca para referência e personalização
- 11 Aplicações Web Prontas: Controle completo do ESP32 sem exigir conhecimento de programação web
- Home Page: Central com links para todas as aplicações web
- Web Monitor: Serial monitor em tempo real no seu navegador via WebSocket
- Web Chat: Interface de chat interativa com o seu Arduino
- Web Digital Pins: Controle e monitore todos os pinos digitais pela interface web
- Web Slider: Controles deslizantes duplos para saídas analógicas/PWM
- Web Joystick: Joystick interativo para controle de robôs e veículos
- Web Analog Gauge: Medidor circular para monitoramento de sensores
- Web Rotator: Controle de disco giratório com modos contínuo/limitado
- Web Temperature: Visualização de termômetro com faixas configuráveis
- Web RTC: Relógio de tempo real com sincronização de horário e tratamento de fuso horário
- Web Table: Tabela de atributo-valor com duas colunas e atualizações em tempo real
- Web Plotter: Visualização e plotagem de dados em tempo real
- Template de Web App Personalizado: Template completo para criar suas próprias aplicações web com comunicação WebSocket em tempo real
- Design Responsivo: Funciona em computadores e dispositivos móveis
- Comunicação em Tempo Real: Baseada em WebSocket para atualizações instantâneas
- Integração Fácil: API simples baseada em callbacks
- Suporte a Vários Apps: Permite adicionar vários web apps ao mesmo tempo
- Integração Automática com a Home Page: O web app adicionado aparece automaticamente como um link na home page
📦 Instalação - Gerenciador de Bibliotecas da Arduino IDE
- Abra a Arduino IDE
- Vá até o ícone Libraries na barra lateral esquerda da Arduino IDE.
- Pesquise "DIYables ESP32 WebApps" e encontre a biblioteca DIYables ESP32 WebApps da DIYables
- Clique no botão Install para instalar a biblioteca.

- Você será solicitado a instalar algumas outras bibliotecas de dependência
- Clique no botão Install All para instalar todas as dependências da biblioteca.

🔧 Dependências
Esta biblioteca requer o seguinte:
- Biblioteca DIYables_ESP32_WebServer (para suporte a WebSocket)
🎯 Início Rápido
Para instruções de configuração detalhadas e exemplos de código, consulte:
- Documentação de Referência da API - Documentação completa da API
- Tutoriais de Exemplo - Guias completos para cada aplicação web:
- Exemplo Web Chat - Interface de chat interativa com o Arduino
- Exemplo Web Monitor - Serial monitor em tempo real pelo navegador web
- Exemplo Web Plotter - Visualização e plotagem de dados em tempo real
- Exemplo Web Digital Pins - Controle e monitoramento de pinos digitais
- Exemplo Web Slider - Controles deslizantes duplos para saídas analógicas/PWM
- Exemplo Web Joystick - Joystick virtual para controle direcional
- Exemplo Web Analog Gauge - Medidor circular profissional para monitoramento de sensores
- Exemplo Web Rotator - Controle interativo de disco giratório para servo motores/motores de passo
- Exemplo Web Temperature - Display visual de termômetro para monitoramento de temperatura
- Exemplo Web RTC - Relógio de tempo real com sincronização de horário pela web e tratamento de fuso horário
- Exemplo Web Table - Tabela de dados com duas colunas e atualizações de atributo-valor em tempo real
- Template CustomWebApp - Template completo para criar suas próprias aplicações web personalizadas
- Exemplo Multiple Web Apps - Guia de integração completo combinando todos os recursos
📱 Aplicações Web
1. Home Page (`/`)
- Central de navegação
- Links para todas as aplicações web
- Apenas os apps ativados/adicionados são exibidos na home page
- Exibição do status da conexão
- Design responsivo
2. Web Monitor (`/web-monitor`)
- Serial monitor no navegador
- Comunicação bidirecional em tempo real
- Marcação de horário e contagem das mensagens
- Entrada de comandos com histórico
3. Web Plotter (`/web-plotter`)
- Visualização e plotagem de dados em tempo real
- Suporte a várias séries de dados (até 8 linhas)
- Eixo Y com escala automática ou faixas fixas
- Títulos de gráfico e rótulos de eixo personalizáveis
- Streaming via WebSocket para latência mínima
- Perfeito para monitoramento de sensores e depuração
4. WebChat (`/chat`)
- Interface de chat interativa
- Respostas em linguagem natural
- Controle de LED por comandos de chat
- Interações divertidas e educativas
5. Web Digital Pins (`/web-digital-pins`)
- Controle individual dos pinos (pinos 0-13)
- Cada pino pode ser ativado no modo INPUT ou OUTPUT
- Apenas os pinos ativados são exibidos na interface web
- Monitoramento de pinos de entrada e saída
- Operações em lote (Todos ON/OFF, Alternar)
- Feedback em tempo real do estado dos pinos
6. Web Slider (`/web-slider`)
- Controles deslizantes duplos (0-255)
- Controle de saída PWM
- Botões de valores predefinidos
- Opções de controle sincronizado
7. Web Joystick (`/web-joystick`)
- Controle interativo de joystick com suporte a toque/mouse
- Valores de coordenadas X/Y (-100 a +100)
- Feedback de posição em tempo real
- O retorno automático ao centro pode ser ativado/desativado pelo código do ESP32
- Perfeito para controle de robôs e veículos
8. Web Analog Gauge (`/web-gauge`)
- Display de medidor circular profissional para monitoramento de sensores em tempo real
- Faixa de valores, unidades e precisão configuráveis
- Animação suave do ponteiro com feedback visual
- Zonas coloridas (verde, amarelo, vermelho) para indicar o status
- Tratamento automático de configuração - defina a faixa uma só vez no construtor
- Perfeito para sensores de pressão, monitoramento de tensão e leituras analógicas
9. Web Rotator (`/web-rotator`)
- Controle interativo de disco giratório com feedback visual
- Dois modos de operação: Contínuo (0-360°) e Limitado (faixa personalizada)
- Feedback do ângulo em tempo real com rotação suave
- Suporte a toque e mouse para desktop e celular
- Design profissional com gradiente cônico e indicador de posição
- Perfeito para servo motores, motores de passo e controle rotacional
10. Web Temperature (`/web-temperature`)
- Display visual de termômetro com monitoramento de temperatura em tempo real
- Faixa de temperatura e unidades configuráveis (°C, °F, K)
- Visualização interativa do termômetro com animação estilo mercúrio
- Tratamento automático de configuração - defina a faixa uma só vez no construtor
- Atualizações de valores em tempo real via WebSocket
- Perfeito para sensores de temperatura e monitoramento ambiental
11. Web RTC (`/web-rtc`)
- Exibição do relógio de tempo real tanto do RTC do ESP32 quanto do horário do dispositivo cliente
- Sincronização de horário com um clique do navegador web para o RTC do ESP32
- Indicador visual da diferença de horário mostrando a precisão da sincronização em minutos
- Formato de horário em duas linhas com exibição AM/PM de 12 horas e data completa
- Atualizações em tempo real via WebSocket para sincronização de horário instantânea
- Interface moderna com gradiente e layout responsivo em estilo de cartões
- Sincronização com fuso horário usando o horário local do dispositivo
- Suporte a RTC integrado especificamente para o ESP32
- Monitoramento do status da conexão com indicadores visuais de WebSocket
- Solicitações automáticas de horário ao carregar a página para exibição imediata
- Perfeito para marcação de horário, registro de dados, agendamento e automação baseada em tempo
12. Web Table (`/web-table`)
- Tabela de dados com duas colunas com pares atributo-valor para exibição organizada de dados
- Atualizações de valores em tempo real via WebSocket para atualização instantânea dos dados
- Estrutura de tabela configurável definida uma só vez na função setup() do ESP32
- Atualizações dinâmicas de valores durante a execução, sem recarregar a página
- Design moderno e responsivo com efeitos de hover e feedback visual
- Monitoramento do status da conexão com indicadores visuais de WebSocket
- Tratamento de estado vazio com mensagens amigáveis quando não há dados disponíveis
- Atualização manual com um botão de atualização dedicado
- Tipos de dados flexíveis com suporte a strings, números e valores formatados
- Armazenamento eficiente em memória com número máximo de linhas configurável (padrão: 20)
- Solicitações automáticas de dados ao carregar a página para preencher a tabela imediatamente
- Perfeito para monitoramento de sensores, status do sistema, exibição de configuração e dashboards em tempo real
13. Template CustomWebApp (`/custom`)
- Template completo para criar suas próprias aplicações web personalizadas
- Comunicação WebSocket em tempo real com filtragem automática de mensagens
- Design profissional baseado em classes com sistema APP_IDENTIFIER encapsulado
- Template amigável para iniciantes com mensagens de texto simples entre a web e o Arduino
- Reconexão automática para conexões WebSocket confiáveis
- Design responsivo para celular funcionando em celulares, tablets e computadores
- Orientações para evitar conflitos no desenvolvimento de vários apps personalizados
- Estrutura de arquivos modular com HTML, lógica do ESP32 e integração com a biblioteca separados
- Framework extensível - modifique o template para criar aplicações sofisticadas
- Pronto para integração - funciona perfeitamente com os outros DIYables ESP32 WebApps
- Perfeito para interfaces IoT personalizadas, dashboards de sensores, painéis de controle de dispositivos e projetos educacionais
🧩 Arquitetura Modular
Otimização de Memória: A biblioteca DIYables ESP32 WebApps tem um design modular que permite incluir apenas as aplicações web de que você realmente precisa, reduzindo bastante o uso de memória no seu Arduino.
Principais Benefícios:
- Integração Seletiva: Adicione ao projeto apenas os web apps necessários
- Eficiente em Memória: Cada web app é independente e opcional
- Escalável: Comece pequeno e adicione mais recursos conforme a necessidade
- Desempenho Otimizado: Menos apps ativos = melhor desempenho
Como Funciona:
Flexibilidade em Tempo de Execução:
- Gerenciamento Dinâmico: Adicione ou remova apps durante a execução usando addApp() e removeApp()
- Carregamento Condicional: Carregue apps conforme o hardware ou a configuração
- Apps Personalizados: Crie aplicações web personalizadas herdando de DIYablesWebAppPageBase
- Sem Recompilação: Altere os apps disponíveis sem recompilar
🔌 Referência da API
Para a documentação completa da API, incluindo todas as classes, métodos e exemplos de uso, veja:
📋 Exemplos
A biblioteca inclui tutoriais de exemplo completos:
- Exemplo Web Chat - Interface de chat interativa com o Arduino
- Exemplo Web Monitor - Serial monitor em tempo real pelo navegador web
- Exemplo Web Plotter - Visualização e plotagem de dados em tempo real
- Exemplo Web Digital Pins - Controle e monitoramento de pinos digitais
- Exemplo Web Slider - Controles deslizantes duplos para saídas analógicas/PWM
- Exemplo Web Joystick - Joystick virtual para controle direcional
- Exemplo Web Analog Gauge - Medidor circular profissional para monitoramento de sensores
- Exemplo Web Rotator - Controle interativo de disco giratório para servo motores/motores de passo
- Exemplo Web Temperature - Display visual de termômetro para monitoramento de temperatura
- Exemplo Web RTC - Relógio de tempo real com sincronização de horário pela web e tratamento de fuso horário
- Exemplo Web Table - Tabela de dados com duas colunas e atualizações de atributo-valor em tempo real
- Template CustomWebApp - Template completo para criar suas próprias aplicações web personalizadas
- Exemplo Multiple Web Apps - Guia de integração completo combinando todos os recursos
Cada tutorial de exemplo inclui:
- Instruções de configuração passo a passo
- Diagramas de conexão do hardware
- Exemplos de código completos
- Guias de solução de problemas
- Ideias de projetos e dicas de integração
🌐 URLs da Interface Web
Depois de conectado ao WiFi, acesse as aplicações em:
- Home: http://[IP_ADDRESS]/
- Web Chat: http://[IP_ADDRESS]/chat
- Web Monitor: http://[IP_ADDRESS]/web-monitor
- Web Plotter: http://[IP_ADDRESS]/web-plotter
- Web Digital Pins: http://[IP_ADDRESS]/web-digital-pins
- Web Slider: http://[IP_ADDRESS]/web-slider
- Web Joystick: http://[IP_ADDRESS]/web-joystick
- Web Analog Gauge: http://[IP_ADDRESS]/web-gauge
- Web Rotator: http://[IP_ADDRESS]/web-rotator
- Web Temperature: http://[IP_ADDRESS]/web-temperature
- Web RTC: http://[IP_ADDRESS]/web-rtc
- Web Table: http://[IP_ADDRESS]/web-table
- Custom App: http://[IP_ADDRESS]/custom (ao usar o template CustomWebApp)
💡 Dicas de Uso
- Otimização de Memória: Use a arquitetura modular - adicione apenas os web apps de que você precisa para economizar memória
- Conexão WiFi: Garanta um sinal WiFi forte para uma comunicação WebSocket estável
- Segurança dos Pinos: Sempre verifique as capacidades dos pinos antes de conectar dispositivos externos
- Fonte de Alimentação: Use uma fonte de alimentação adequada para os dispositivos conectados
- Compatibilidade com Navegadores: Funciona melhor com navegadores modernos (Chrome, Firefox, Safari, Edge)
- Amigável para Celular: Todas as interfaces são responsivas e funcionam em dispositivos móveis
- Comece Pequeno: Comece com 1-2 web apps e adicione mais recursos conforme o projeto crescer
🔍 Solução de Problemas
Problemas de Conexão WiFi
- Verifique o SSID e a senha
- Verifique a intensidade do sinal WiFi
- Garanta que a rede seja de 2.4GHz (5GHz não é suportada)
Problemas de Conexão WebSocket
- Verifique as configurações de firewall
- Confira o endereço IP no navegador
- Tente atualizar a página web
- Verifique o Serial Monitor em busca de mensagens de erro
Problemas de Desempenho
- Otimização de Memória: Remova os web apps não utilizados para liberar RAM e memória Flash
- Carregamento Seletivo: Use a arquitetura modular para incluir apenas a funcionalidade necessária
- Limite a frequência de atualização para dados de alta frequência
- Use atrasos apropriados em loop()
- Monitore o uso de memória em aplicações de longa duração
📚 Uso Avançado
Gerenciamento Dinâmico de Apps
A biblioteca permite adicionar e remover aplicações web em tempo de execução:
Aplicações Web Personalizadas
Crie seus próprios web apps herdando de DIYablesWebAppPageBase:
Páginas HTML Personalizadas
Você pode modificar os arquivos HTML no diretório src/html/ para personalizar a aparência e a funcionalidade da interface web.
Vários Clientes WebSocket
A biblioteca suporta várias conexões WebSocket simultâneas, permitindo que vários usuários controlem o mesmo Arduino.
Integração com Outras Bibliotecas
Integre facilmente com bibliotecas de sensores, controle de servo, drivers de motor e outras bibliotecas do ESP32.
📄 Licença
Esta biblioteca é lançada sob a Licença MIT. Consulte o arquivo LICENSE para mais detalhes.
Feliz programação com a Biblioteca DIYables ESP32 WebApps! 🎉