Bem Vindo...

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_CSGPIO 33Chip Select do Touch
TOUCH_IRQGPIO 36Interrupção do Touch
T_SCKGPIO 25Clock SPI (VSPI)
T_MISOGPIO 39MISO SPI (VSPI)
T_MOSIGPIO 32MOSI SPI (VSPI)
BACKLIGHTGPIO 21Controle de Brilho (PWM)

📦 Dependências

Certifique-se de instalar as seguintes bibliotecas no Arduino IDE ou no seu platformio.ini:

  • TFT_eSPI
  • XPT2046_Touchscreen
  • ArduinoJson (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/MAX ou altere as flags no header: TOUCH_SWAP_XY, TOUCH_FLIP_X, TOUCH_FLIP_Y.
  • Em versões recentes do core ESP32, o analogWrite pode 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: