Sprzęt

Samouczek ESP32 LVGL: Tworzenie interfejsu dotykowego

Zbuduj interfejs dotykowy dla ESP32 z LVGL, zaprojektuj go wizualnie w przeglądarce, podejrzyj na żywo i wyeksportuj gotowy do wgrania kod C. Przyjazny dla początkujących przewodnik.

ED Ed
esp32 lvgl ui tutorial touchscreen esp-idf arduino
ZAKTUALIZOWANO 2026-05-29
01 /12

Omówienie

To przyjazny dla początkujących samouczek ESP32 LVGL. Po jego zakończeniu będziesz wiedzieć, jak wizualnie zaprojektować interfejs dotykowy dla ESP32 (bez ręcznego pisania setek linii kodu C dla LVGL), jak podejrzeć go na żywo w przeglądarce i jak wyeksportować gotowy do wgrania kod dla projektu ESP-IDF, Arduino lub PlatformIO.

Jeśli szukałeś edytora UI dla ESP32 lub klarownego poradnika ESP32 LVGL, ten dokument przeprowadza przez cały proces za pomocą PicoPixel — wizualnego edytora LVGL działającego w przeglądarce. Bez instalacji, bez karty kredytowej.

02 /12

Dlaczego warto używać edytora wizualnego do interfejsów ESP32?

Tworzenie interfejsu dotykowego dla ESP32 w tradycyjny sposób jest powolne. Ręcznie piszesz kod C dla LVGL, aby umieścić każdy widget, ustawiasz kolory i rozmiary, wgrywasz to na płytkę, wpatrujesz się w wyświetlacz, przesuwasz kilka pikseli i znów wgrywasz. Każda mała zmiana oznacza kolejną podróż w obie strony do sprzętu.

Edytor wizualny odwraca ten proces. Przeciągasz widgety LVGL na obszar roboczy, stylujesz je klikając, widzisz wynik natychmiast — a potem eksportujesz kod C, gdy jesteś zadowolony. Czas poświęcasz na projektowanie, a nie na rekompilację.

NOTE

PicoPixel jest ukierunkowany na LVGL 8.x. Eksportowany kod korzysta ze standardowych wywołań API LVGL 8.x bez żadnego własnościowego środowiska uruchomieniowego, więc można go wdrożyć w dowolnym projekcie ESP32 obsługującym już LVGL 8.x. (Obsługa LVGL v9 jest planowana.)

03 /12

Czego potrzebujesz

Nie potrzebujesz wiele, żeby podążać za tym poradnikiem:

  • Płytka ESP32 z wyświetlaczem, każdy wariant ESP32, który potrafi uruchomić LVGL, zadziała (więcej na temat konkretnych płytek poniżej).
  • Wybrany łańcuch narzędzi firmware: ESP-IDF, Arduino lub PlatformIO, z LVGL 8.x już dodanym oraz działającymi sterownikami wyświetlacza i dotyku.
  • Bezpłatne konto PicoPixel — wszystko w tym poradniku odbywa się w przeglądarce.
TIP

Jeśli LVGL nie działa jeszcze na Twojej płytce, najpierw spraw, aby na ekranie pojawiła się prosta etykieta „hello world" za pomocą biblioteki wyświetlacza (TFT_eSPI, LovyanGFX lub ESP LCD panel API). Gdy pojawi się jakikolwiek tekst LVGL, jesteś gotowy, by dodać prawdziwy interfejs.

04 /12

Krok 1 - Ustaw rozmiar wyświetlacza

Otwórz edytor i rozpocznij nowy projekt. Pierwszą rzeczą, którą musisz ustawić prawidłowo, jest rozdzielczość — tak, by Twój projekt pasował do fizycznego ekranu piksel po pikselu.

Wybierz preset pasujący do Twojego wyświetlacza:

  • 320×240, najczęstsze małe panele TFT SPI (ST7789, ILI9341).
  • 240×240, okrągłe wyświetlacze jak GC9A01.
  • 480×320, 480×480 lub 800×480, większe i kwadratowe panele.

Ustawienie tego od samego początku oznacza, że to, co projektujesz, jest dokładnie tym, co pojawia się na urządzeniu.

05 /12

Krok 2 - Projektuj metodą przeciągnij i upuść

Teraz przyjemna część. Przeciągaj widgety LVGL z palety na obszar roboczy: przyciski, etykiety, suwaki, łuki, przełączniki, wykresy, listy rozwijane i wiele więcej (ponad 30 typów widgetów). Pozycjonuj je, a następnie używaj paneli bocznych, aby wizualnie ustawiać kolory, czcionki, odstępy i zaokrąglone narożniki. Na tym etapie — żadnego kodu C.

Kilka rzeczy wartych uwagi podczas budowania:

  • Wiele ekranów. Dodaj tyle ekranów, ile potrzebujesz i połącz między nimi nawigację — świetne do menu, stron ustawień i dashboardów.
  • Dotyk od samego początku. Widgety reagują na dotknięcia, a kontenery się przewijają, więc możesz projektować prawdziwe interakcje dotykowe, a nie tylko statyczne układy.
  • Czcionki i obrazy są elementami pierwszej klasy. Tekst i grafika na urządzeniu wbudowanym muszą zostać przekonwertowane do formatu, który LVGL może przechowywać. PicoPixel zajmuje się tym za Ciebie — szczegóły dotyczące utrzymywania małego rozmiaru czcionek znajdziesz w przewodniku po czcionkach, a jeśli chcesz animowanych widgetów z wieloma stanami, zajrzyj do przewodnika po sprite'ach.
TIP

Rozpoczęcie od szablonu jest często szybsze niż praca od zera — otwórz go, zmień tekst i kolory, a masz gotowy punkt startowy.

06 /12

Krok 3 - Podgląd na żywo

Zanim dotkniesz sprzętu, kliknij podgląd. PicoPixel uruchamia prawdziwy silnik LVGL skompilowany do WebAssembly bezpośrednio w Twojej przeglądarce — to, co widzisz, to autentyczne renderowanie LVGL, a nie makieta ani przybliżenie.

Dotykaj przycisków, przeciągaj suwaki, przewijaj i sprawdzaj nawigację między ekranami. Naprawianie problemów z układem tutaj zajmuje sekundy; naprawianie ich na urządzeniu kosztuje cykl wgrywania. Możesz nawet udostępnić link do podglądu współpracownikowi lub klientowi w celu uzyskania opinii.

07 /12

Krok 4 - Eksportuj gotowy do produkcji kod C

Gdy projekt wygląda tak jak chcesz, wyeksportuj go. Otrzymasz jeden plik picopixel_lvgl_ui.zip zawierający czysty, standardowy kod C dla LVGL 8.x:

  • ui.c / ui.h, punkt wejścia z funkcjami ui_init() i ui_tick().
  • screens.c / screens.h, Twoje ekrany i ich układ.
  • styles, fonts, images, actions i vars, wszystko, czego używa Twój projekt, wygenerowane automatycznie.
  • README.md, opis eksportu w prostym języku (omówiony w kroku 5).

Brak własnościowych zależności i brak biblioteki uruchomieniowej PicoPixel do dodania — to czyste LVGL, które działa tak samo niezależnie od tego, czy korzystasz z ESP-IDF, Arduino czy PlatformIO.

08 /12

Krok 5 - Dodaj interfejs do swojego projektu ESP32

Rozpakuj eksport do swojego projektu (większość osób umieszcza go w folderze ui/). Następnie w swoim firmware musisz zrobić tylko dwie rzeczy: wywołać ui_init() raz po skonfigurowaniu LVGL i sterowników wyświetlacza/dotyku, oraz wywołać ui_tick() w głównej pętli.

W szkicu w stylu Arduino wygląda to tak:

cpp
#include <lvgl.h>
#include "ui/ui.h"          // exported by PicoPixel

void setup() {
  lv_init();
  // ... initialize your display + touch drivers here ...
  ui_init();                // builds the UI you designed
}

void loop() {
  lv_timer_handler();       // let LVGL render and handle input
  ui_tick();                // keep PicoPixel's screens updated
  delay(5);
}

Aby przełączać ekrany w czasie działania (na przykład gdy przycisk zostanie wciśnięty), wywołaj loadScreen() z ekranem, który chcesz wyświetlić. To cała integracja — skompiluj, wgraj, a interfejs na Twoim ESP32 będzie wyglądał dokładnie tak, jak widziałeś w przeglądarce.

TIP

Wolisz, żeby asystent AI zintegrował wszystko? Przekaż wyeksportowany zip — wraz z plikiem README.md — asystentowi kodowania, takiemu jak Claude Code, GitHub Copilot lub Codex. Plik ten opisuje strukturę projektu, publiczne API i ustawienia lv_conf.h potrzebne Twoim widgetom, dzięki czemu asystent może dodać interfejs do Twojego projektu i zbudować go za Ciebie.

09 /12

Które płytki ESP32 działają?

Ponieważ PicoPixel eksportuje standardowy kod C dla LVGL, działa on na praktycznie każdym ESP32, który potrafi uruchomić LVGL 8.x. Krótki przewodnik po wariantach:

  • ESP32-S3, najlepszy wybór dla większości projektów z wyświetlaczami: dwurdzeniowy z PSRAM i sporym zapasem dla rozbudowanych interfejsów.
  • ESP32 (oryginalny) / ESP32-S2, odpowiedni do prostszych interfejsów; pilnuj budżetu pamięci.
  • ESP32-C3 / C6, lekkie jednordzeniowe chipy RISC-V, dobre do mniejszych interfejsów.
  • ESP32-P4, najpotężniejszy chip Espressif z dedykowanym GPU do płynnych interfejsów w wysokiej rozdzielczości. Eksport PicoPixel był testowany na płytkach ESP32-P4 od Waveshare i Guition.

Popularne gotowe płytki — LILYGO T-Display-S3, M5Stack Core2/CoreS3, płytki wyświetlaczy Waveshare i Sunton, Espressif ESP32-S3-BOX oraz budżetowy „Cheap Yellow Display" — wszystkie działają, podobnie jak popularne sterowniki ST7789, ILI9341, GC9A01 (okrągły) i ILI9488.

10 /12

Utrzymywanie lekkiego interfejsu w pamięci

Wbudowane wyświetlacze mają znacznie mniej pamięci niż telefon czy laptop, dlatego odrobina uwagi sprawia, że interfejs jest szybki i oszczędny:

  • Dobierz odpowiedni rozmiar czcionki. Każda czcionka jest przechowywana w określonym rozmiarze pikselowym, a duże zestawy znaków (szczególnie chiński, japoński i koreański) szybko zajmują dużo miejsca. Przewodnik po czcionkach pokazuje, jak zawierać tylko znaki, których faktycznie używasz.
  • Dostosuj głębię koloru do wyświetlacza. Panel 16-bitowy nie potrzebuje obrazów 32-bitowych — wybór właściwej głębi zmniejsza rozmiar zasobów.
  • Używaj ponownie zamiast duplikować. Zbuduj widget raz i używaj go na różnych ekranach i w różnych projektach.
11 /12

Często zadawane pytania

Czy PicoPixel działa z ESP32?

Tak. Generuje standardowy kod C dla LVGL, który działa z ESP-IDF, Arduino i PlatformIO na każdym wariancie ESP32 obsługującym LVGL 8.x. Eksport był testowany na sprzęcie ESP32-P4.

Którą wersję LVGL obsługuje?

LVGL 8.x. Eksportowany kod używa API LVGL 8.x, więc nie mieszaj go z wywołaniami LVGL 9.x. (Obsługa v9 jest planowana.)

Czy muszę pisać jakiś kod C?

Tylko małą ilość kodu łączącego w kroku 5 — wywołania ui_init() i ui_tick(). Sam interfejs jest projektowany wizualnie i generowany automatycznie.

Czy jest bezpłatny?

Tak. PicoPixel jest bezpłatny do użytku osobistego i hobbystycznego bez wymagania karty kredytowej. Użytek komercyjny zaczyna się od $17/mies. ($204/rok).

12 /12

Kolejne kroki

Znasz już pełną ścieżkę od pomysłu do wgranego interfejsu: ustaw rozdzielczość, projektuj metodą przeciągnij i upuść, podejrzyj na żywo, wyeksportuj i zintegruj. Co dalej:

CZYTAJ DALEJ

Idziemy dalej.

Jak używać zwierzaków w PicoPixel thumbnail
PICOPIXEL

Jak używać zwierzaków w PicoPixel

Zwierzak to gotowy animowany sprite z wieloma trybami, które możesz wyzwalać przy dowolnym warunku. Wybierz go z katalogu, dodaj do projektu i podłącz tak, aby reagował na to, co robi urządzenie: pobieranie danych, przegrzewanie, przegląd kodu, cokolwiek.

pets · sprites · picopixel
Jak używać szablonów PicoPixel, UI kitów i pełnych aplikacji thumbnail
PICOPIXEL

Jak używać szablonów PicoPixel, UI kitów i pełnych aplikacji

Znajdź szablony PicoPixel, UI kity, przykłady, sprite'y, widgety i pliki pełnych aplikacji, a potem otwieraj, pobieraj, importuj, dostosowuj i eksportuj je jako kod C LVGL dla swojego urządzenia.

templates · ui-kits · full-apps
Praca z widgetem LVGL Animated Image thumbnail
LVGL

Praca z widgetem LVGL Animated Image

Jak działa widget LVGL animated image: prześlij sekwencję klatek o tym samym rozmiarze, ustaw czas trwania i pętlę, a potem odtwarzaj animacje klatka po klatce na wyświetlaczu.

lvgl · animated-image · animimg