Primeiros passos com o Lopaka: crie sua primeira GUI Arduino em 10 minutos
Publicado em Lopaka.app — O construtor de GUI LVGL gratuito e baseado na web para desenvolvedores embarcados
Introdução
Se você já tentou criar uma interface gráfica para um display TFT Arduino, conhece a dor: posicionar cada pixel à mão, chutar coordenadas, gravar no hardware, ver que está errado, ajustar, gravar de novo e repetir o ciclo até querer jogar sua protoboard do outro lado da sala.
Existe um jeito melhor.
Neste tutorial, você vai criar sua primeira GUI Arduino em menos de 10 minutos usando o Lopaka — uma ferramenta gratuita e baseada na web que permite projetar interfaces LVGL com arrastar e soltar e, depois, exporta código C limpo, pronto para o seu projeto Arduino.
Sem downloads. Sem instalações. Sem configuração de ambiente. Basta abrir o navegador e começar a criar.
O que você vai criar
Um display de sensor simples, mas funcional, que mostra:
- Leitura de temperatura com um grande valor numérico
- Indicador de status (OK / Aviso / Erro)
- Um botão para alternar entre Celsius e Fahrenheit
- Uma barra de progresso mostrando o nível da bateria
É o tipo de interface que você encontra em um dispositivosensor portátil, estação meteorológica ou monitor de bateria.
Pré-requisitos
- Um navegador web (Chrome, Firefox, Safari ou Edge)
- Uma placa Arduino com um display TFT (vamos usar Arduino Uno + ILI9341 2.8" como exemplo)
- Familiaridade básica com o Arduino IDE
- Só isso.
Passo 1: Crie seu projeto
- Abra lopaka.app no seu navegador
- Clique em "New Project"
- Selecione sua plataforma: Arduino
- Escolha seu display: ILI9341 (320x240)
- Dê um nome ao seu projeto: "Sensor Display"
- Clique em "Create"
Você verá uma tela de desenho em branco, com um painel de widgets à esquerda e um painel de propriedades à direita. Se for sua primeira vez, o tour de boas-vindas vai guiar você pela interface — reserve 60 segundos para acompanhá-lo ou pule se preferir explorar por conta própria.
Passo 2: Adicione um rótulo de título
- No painel de widgets, arraste um Label para a tela de desenho
- Posicione-o perto do topo, no centro
- No painel de propriedades:
- Text:
Sensor Monitor - Font:
LV_FONT_DEFAULT_24(ou a maior disponível) - Alignment: Center
- Color: White (ou a cor de texto que você preferir)
- Text:
Você deve ver um título grande no topo da pré-visualização do display.
Passo 3: Adicione a exibição de temperatura
- Arraste outro Label para a tela de desenho
- Posicione-o na área superior-média
- Propriedades:
- Text:
25.6°C - Font:
LV_FONT_DEFAULT_36(extragrande) - Alignment: Center
- Color: Verde ou ciano vibrante (algo que se destaque)
- Text:
Essa será sua leitura principal do sensor. No código de produção, você vai atualizar esse valor a partir do seu sensor real.
Passo 4: Adicione um indicador de status
- Arraste um Label abaixo da temperatura
- Propriedades:
- Text:
STATUS: OK - Font:
LV_FONT_DEFAULT_16 - Color: Green
- Text:
Para um indicador mais visual, você também pode adicionar um widget LED (se ele estiver disponível na sua versão do LVGL) ao lado do texto de status.
Passo 5: Adicione o botão de alternância de unidade
- Arraste um Button para a tela de desenho
- Posicione-o abaixo do indicador de status
- Propriedades:
- Button text:
Switch to °F - Width: 160px
- Height: 40px
- Style: Cantos arredondados, cor contrastante
- Button text:
Esse botão permitirá que os usuários alternem entre unidades de temperatura. No seu código Arduino, você conectará o manipulador de eventos do botão para converter e exibir o valor.
Passo 6: Adicione uma barra de progresso da bateria
- Arraste um widget Bar (barra de progresso) para a tela de desenho
- Posicione-o perto da parte inferior
- Propriedades:
- Width: 280px
- Height: 20px
- Value: 75 (em 100)
- Color: Verde (ou amarelo/laranja para valores mais baixos)
- Adicione um pequeno Label acima dele:
Battery: 75%
Passo 7: Estilo e refinamento
Agora deixe com aparência profissional:
- Fundo: Defina o fundo da tela com uma cor escura (cinza-escuro ou azul-marinho) para melhor contraste
- Espaçamento: Garanta margens consistentes entre os elementos (espaços de 10-15px)
- Alinhamento: Centralize todos os elementos de texto
- Cores: Use um esquema de cores consistente — verde para status OK, vermelho para avisos, branco para rótulos
Sua interface deve ficar parecida com isto:
┌─────────────────────────────┐
│ │
│ Sensor Monitor │
│ │
│ 25.6°C │
│ │
│ STATUS: OK │
│ │
│ [ Switch to °F ] │
│ │
│ Battery: 75% │
│ ██████████████░░░░ │
│ │
└─────────────────────────────┘Passo 8: Exporte o código
- Clique no botão "Export" na barra de ferramentas superior
- Selecione Arduino como plataforma de destino
- Escolha o formato de saída (arquivo
.cúnico ou projeto completo) - Clique em "Download"
Você receberá um código C LVGL limpo e legível, que pode inserir diretamente no seu sketch Arduino.
Passo 9: Integre com seu código Arduino
Veja como usar o código exportado:
#include <TFT_eSPI.h>
#include <lvgl.h>
#include "ui_SensorDisplay.h" // Your exported file
TFT_eSPI tft = TFT_eSPI();
void setup() {
// Initialize display
tft.begin();
tft.setRotation(1);
// Initialize LVGL
lv_init();
lv_tft_init();
// Create the UI from Lopaka
ui_SensorDisplay_init();
// Initialize your sensor
dht.begin();
}
void loop() {
// Read sensor
float temp = dht.readTemperature();
// Update the label (use the variable name from exported code)
lv_label_set_text_fmt(ui_TempLabel, "%.1f°C", temp);
// Update battery bar (example value)
lv_bar_set_value(ui_BatteryBar, 75, LV_ANIM_ON);
// Handle button events (auto-wired from Lopaka)
lv_timer_handler();
delay(5);
}Passo 10: Teste no hardware
- Faça upload do sketch para o seu Arduino
- Verifique se o display mostra sua interface corretamente
- Teste a interação com o botão
- Confirme se as leituras do sensor são atualizadas em tempo real
O que vem a seguir?
Você criou sua primeira GUI em menos de 10 minutos. Agora tente:
- Adicionar mais telas: Crie uma página de configurações ou uma visualização de dados históricos
- Widgets personalizados: Adicione medidores, gráficos ou elementos desenhados de forma personalizada
- Compartilhe seu design: Use os links compartilháveis do Lopaka para mostrar seu trabalho a outras pessoas
- Explorar recursos avançados: Animações, estilos e callbacks de eventos
Por que o Lopaka?
- Sem configuração: Roda inteiramente no seu navegador — sem downloads, sem instalações
- Design visual: Veja sua UI enquanto a constrói, sem chutar coordenadas
- Exportação de código limpo: Código C LVGL pronto para produção, não um runtime de caixa-preta
- Compartilhável: Envie seus designs para colegas de equipe ou para a comunidade com um link
- Grátis para começar: Não exige cartão de crédito
Recursos
- Lopaka.app — Comece a criar agora
- Documentação do LVGL — Saiba mais sobre os widgets LVGL
- Bibliotecas TFT Arduino — Configuração do driver de display
- Lopaka no Discord — Entre para a comunidade
Tem dúvidas? Deixe-as nos comentários abaixo ou fale com a gente no Discord. Boas criações!