Deskbuddy
Painel inteligente para mesa com ESP32 e touchscreen, firmware, web e instalador em um só repo.
git clone https://github.com/fernando-moretes/tool-deskbuddy.gitOuvir guia
gerado ao ouvirGerado apenas no primeiro play
Com tecnologia Amazon Polly + OmniVoice
Deskbuddy é um firmware C++ para o ESP32-2432S028R (Cheap Yellow Display) que transforma uma placa de touchscreen barata em um painel de mesa com clima, índice KP, notas, feeds de notícias e configuração por Wi-Fi, tudo sem solda extra.
O que é e por que existe
O ESP32-2432S028R é uma das placas mais baratas com display colorido e toque disponíveis no mercado, menos de US$ 10 na maioria dos fornecedores. O problema é que o ecossistema de firmware para ela é fragmentado: a biblioteca TFT_eSPI exige configuração manual de pinos, os exemplos online raramente combinam toque, Wi-Fi e dados externos ao mesmo tempo, e montar algo utilizável do zero leva horas.
Deskbuddy resolve isso entregando um firmware completo e opinativo. Ele inicializa, conecta ao Wi-Fi via portal captivo (WiFiManager), busca dados de APIs públicas: Open-Meteo para clima, sunrise-sunset.org para horários solares, NOAA para atividade geomagnética, Quotable para frases e Hacker News Algolia para manchetes de tecnologia, e renderiza tudo em páginas tocáveis.
A interface web local (servida pelo próprio ESP32) permite ajustar notas, tema, widgets, localização e brilho sem recompilar. O repositório também inclui um workflow de GitHub Actions que compila o firmware e publica um instalador Web Serial no GitHub Pages, tornando o flash acessível diretamente pelo navegador sem instalar nenhuma ferramenta.
Funcionalidades principais
arduino_secrets.h ignorado pelo Git.main.User_Setup.h pré-configurado para o CYD, elimina a etapa mais comum de falha ao usar TFT_eSPI com essa placa.Como o sistema funciona
Fluxo completo desde o flash até os dados ao vivo no display.
- arduino-cli · build
- Web Serial · Installer
- GitHub Actions · build-and-pages
- GitHub Pages · web/ installer
- Deskbuddy · Firmware (C++)
- WiFiManager · captive portal
- Local Web UI · (browser settings)
- ILI9341 TFT · 240×320
- XPT2046 · Touch
- Open-Meteo · Weather
- sunrise-sunset.org · Solar times
- NOAA · KP Index
- Quotable · Quotes
- HN Algolia · Tech headlines
O passo mais comum de falha: User_Setup.h
A biblioteca TFT_eSPI usa um arquivo de configuração global que fica dentro da pasta da própria biblioteca, não no projeto. Se você compilar sem substituir esse arquivo pelo User_Setup.h deste repositório, o display ficará branco. Copie o arquivo antes de compilar, veja o passo 4 do guia de instalação abaixo.
Instalação e uso
- 1
Clone o repositório
Execute
git clone https://github.com/fernando-moretes/tool-deskbuddy.gite entre na pasta do projeto. - 2
Configure as credenciais Wi-Fi
Copie o arquivo de exemplo e edite com seu SSID e senha:
cp arduino_secrets.example.h arduino_secrets.h. O arquivoarduino_secrets.hestá no.gitignore, suas credenciais não serão commitadas. - 3
Instale as bibliotecas Arduino
No Arduino IDE ou via
arduino-cli, instale:TFT_eSPI,ArduinoJson,XPT2046_TouchscreeneWiFiManager. Instale também o pacote de placas ESP32 se ainda não tiver. - 4
Substitua o User_Setup.h da TFT_eSPI
Copie o
User_Setup.hdeste repositório para dentro da pasta da biblioteca instalada. No macOS com arduino-cli:cp User_Setup.h ~/Documents/Arduino/libraries/TFT_eSPI/User_Setup.h. Esse arquivo define os pinos corretos para o CYD (ILI9341_2_DRIVER, HSPI, pinos de toque XPT2046). - 5
Selecione a placa e compile
No Arduino IDE, selecione a placa
ESP32-2432S028R CYD, partition schemeHuge APP (3MB No OTA/1MB SPIFFS)e velocidade de upload115200. Compile e faça o upload para a placa via USB. - 6
Configure o Wi-Fi no dispositivo
Se o Wi-Fi não estiver configurado, abra a página
Setupno display e toque no card Wi-Fi. O dispositivo cria um access point chamadoDeskbuddy Setup. Conecte-se a ele pelo celular ou computador e escolha a rede desejada. - 7
Encontre o IP e acesse a interface web
Abra o monitor serial a 115200 baud para ver os logs de boot e o endereço IP atribuído. Acesse esse IP no navegador para ajustar notas, tema, widgets, localização, timers e brilho sem recompilar.
# 1. Clone
git clone https://github.com/fernando-moretes/tool-deskbuddy.git
cd Deskbuddy
# 2. Credenciais Wi-Fi
cp arduino_secrets.example.h arduino_secrets.h
# Edite arduino_secrets.h com seu SSID e senha
# 3. Instale o pacote de placas ESP32 e as bibliotecas
arduino-cli core install esp32:esp32
arduino-cli lib install "TFT_eSPI" "ArduinoJson" "XPT2046_Touchscreen" "WiFiManager"
# 4. Substitua o User_Setup.h da TFT_eSPI (OBRIGATÓRIO)
cp User_Setup.h ~/Documents/Arduino/libraries/TFT_eSPI/User_Setup.h
# 5. Compile
arduino-cli compile \
--fqbn esp32:esp32:esp32 \
--build-property "build.partitions=huge_app" \
.
# 6. Upload (ajuste a porta conforme seu sistema, ex: /dev/cu.usbserial-*)
arduino-cli upload \
--fqbn esp32:esp32:esp32 \
--port /dev/cu.usbserial-0001 \
.
# 7. Monitor serial para ver o IP atribuído
arduino-cli monitor --port /dev/cu.usbserial-0001 --config baudrate=115200CI, GitHub Pages e o instalador Web Serial
O workflow .github/workflows/build-and-pages.yml faz duas coisas a cada push na branch main: compila o firmware com arduino-cli e publica o conteúdo da pasta web/ no GitHub Pages. O resultado é um instalador Web Serial acessível pelo navegador que grava o binário diretamente na placa via USB, sem instalar Arduino IDE, sem drivers adicionais no Windows (exceto o já incluído no Chrome/Edge).
O binário gerado é salvo em firmware/deskbuddy-esp32-2432s028r-cyd.bin. O instalador web lê esse arquivo e usa a Web Serial API para fazer o flash. Isso torna a distribuição do firmware consideravelmente mais simples: qualquer pessoa com a placa e um cabo USB pode flashar a versão mais recente abrindo uma URL.
Para quem quiser modificar o firmware e distribuir a própria versão, basta fazer um fork, ajustar o código, e o CI cuida do resto, compila e publica automaticamente. Não há segredos de build além do arduino_secrets.h, que é local e ignorado pelo Git.
Perguntas frequentes
O display fica branco após o upload. O que fazer?
Quase certamente o User_Setup.h da biblioteca TFT_eSPI não foi substituído. Copie o arquivo deste repositório para a pasta da biblioteca instalada e recompile.
Funciona em outras placas ESP32 com display?
O firmware foi testado especificamente no ESP32-2432S028R (CYD). Outras placas com ILI9341 podem funcionar, mas exigirão ajustes nos pinos dentro do User_Setup.h e possivelmente no código de toque.
As APIs externas exigem chave?
Não. Open-Meteo, sunrise-sunset.org, NOAA KP, Quotable e Hacker News Algolia são todas públicas e sem autenticação nos endpoints usados pelo Deskbuddy.
Como atualizo o firmware sem reconectar o USB?
OTA não está habilitado neste fork (o partition scheme Huge APP sacrifica a partição OTA para dar mais espaço ao firmware). O instalador Web Serial via GitHub Pages é o caminho mais prático para re-flash.
Para quem é este projeto
Deskbuddy é um projeto de hardware/firmware bem delimitado: resolve um problema concreto (transformar uma placa barata em algo utilizável) com um conjunto fixo de dependências e APIs sem chave. Se você tem um ESP32-2432S028R na gaveta ou quer um painel de mesa funcional sem montar um stack do zero, este repositório entrega exatamente isso, firmware compilável, configuração de pinos já resolvida, portal Wi-Fi, interface web local e CI com instalador no navegador. Não é um framework extensível nem uma biblioteca; é um produto de firmware opinativo para hardware específico. Quem quiser adaptar para outra placa ou adicionar widgets precisará entrar no código C++, mas a estrutura é clara o suficiente para isso.
Deep dives de arquitetura, AWS, IA e mercado: direto no seu email. Grátis.
Sem spam · cancele quando quiser