Assistente de Mesa em Esp32 CYD
O Mesk V1.0 é um firmware avançado para ESP32 que transforma um display TFT touch em um dashboard multifuncional de mesa. O painel conta com relógio NTP, previsão do tempo, índice KP (aurora/geomagnético), focus timer, bloco de notas e leitor RSS local — tudo configurável de forma simples através de um servidor Web embutido.
📌 Visão Geral da Interface
- Clock & Date: Sincronização automática via NTP com suporte a fusos POSIX.
- Weather: Exibe temperatura, precipitação, vento, índice UV e horário do nascer/pôr do sol via Open-Meteo.
- Status Network: Monitor de IP, sinal WiFi, uptime e controle rápido de conexão.
- Focus Timer: Timer de produtividade com presets configuráveis e alertas visuais.
- Leitor RSS: Feed de notícias local com cache e gerenciamento web.
- Sleep Mode: Expressões animadas (sleep expressions) para economia de energia quando a tela reduz o brilho.
- Home Customizável: 4 slots de widgets dinâmicos (Week, Timer, Rain, Outdoor, KP, UV, Wind, Sun).
🛠️ Hardware & Pinagem
Componentes Utilizados
- Microcontrolador: ESP32 (Ex: ESP32 Dev Module)
- Display: TFT SPI compatível com
TFT_eSPI(Ex: 240x320 ILI9341) - Touch Controller: XPT2046
Mapeamento de Pinos (SPI & Touch)
| Função | Pino ESP32 | Observação |
|---|---|---|
| TOUCH_CS | GPIO 33 | Chip Select do Touch |
| TOUCH_IRQ | GPIO 36 | Interrupção do Touch |
| T_SCK | GPIO 25 | Clock SPI (VSPI) |
| T_MISO | GPIO 39 | MISO SPI (VSPI) |
| T_MOSI | GPIO 32 | MOSI SPI (VSPI) |
| BACKLIGHT | GPIO 21 | Controle de Brilho (PWM) |
📦 Dependências
Certifique-se de instalar as seguintes bibliotecas no Arduino IDE ou no seu platformio.ini:
TFT_eSPIXPT2046_TouchscreenArduinoJson(v6)- Bibliotecas Nativas do core ESP32:
WiFi,HTTPClient,WiFiClientSecure,WebServer,Preferences,FS
🌐 Configuração via Web Server
Após inicializar e conectar ao Wi-Fi, abra o IP informado no Monitor Serial (http://<seu-ip>/):
- Painel Principal (
/): Altere cidade, coordenadas (Lat/Long), unidades (Métrica/Imperial), tema de cores, widgets da Home e fusos horários. - Gerenciador RSS (
/rss): Atualize a URL do feed de notícias e force a atualização instantânea (/rss/refresh).
⚡ Arquitetura & Detalhes Técnicos
- Multithreading: Operações de rede HTTP/HTTPS rodam em uma tarefa dedicada (
networkTask) no segundo núcleo, garantindo que a UI não trave durante requisições. - Watchdog Timer: Configurado em 30s (
esp_task_wdt) para reiniciar automaticamente a placa em caso de travamentos de loop. - Otimização de Memória: A leitura do índice KP (NOAA) analisa apenas o final do payload JSON, evitando estouro de RAM no parse.
🔍 Troubleshooting
- O projeto usa
WiFiClientSecure.setInsecure(). Se houver quedas de memória Heap, reduza o uso de Sprites no TFT ou utilize fontes locais de HTTP. - Ajuste os valores de calibração
TOUCH_*_MIN/MAXou altere as flags no header:TOUCH_SWAP_XY,TOUCH_FLIP_X,TOUCH_FLIP_Y. - Em versões recentes do core ESP32, o
analogWritepode oscilar. Substitua o controle de backlight pelo canal LEDC (ledcSetup,ledcAttachPin,ledcWrite).
🗺️ Roadmap de Melhorias
- [ ] Modo Access Point (AP) com Captive Portal para configuração inicial de Wi-Fi sem código.
- [ ] Transição do backlight para controle dedicado via LEDC PWM.
- [ ] Armazenamento seguro/criptografado das credenciais na NVS via
Preferences. - [ ] Diagrama de montagem e esquemático elétrico detalhado no repositório.

Nenhum comentário: