logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak programować Waveshare ESP32-C6-LCD-1.47 w Visual Code z ESP-IDF?

p.kaczmarek2 28 Lip 2025 14:57 738 3

TL;DR

  • Waveshare ESP32-C6-LCD-1.47 to mały moduł z 1,47-calowym ekranem TFT ST7789, programowany w Visual Code z ESP-IDF.
  • Konfiguracja polega na instalacji rozszerzeń C/C++ i ESP-IDF, wyborze ESP32-C6 oraz programowaniu przez USB w trybie ekspresowym.
  • Płytka ma rozdzielczość 172×320 pikseli, 4 MB flash, Wi-Fi 6 i Bluetooth 5, a kosztuje około 50 zł.
  • Po poprawnej kompilacji działają demka LVGL, można zmieniać tekst w main.c i uruchomić lv_demo_benchmark oraz własne demo pogodowe.
  • Największe ograniczenie to brak obsługi dotyku, więc część demek traci sens, a lv_demo_music nie kompiluje się u autora.
Wygenerowane przez model językowy.
📢 Słuchaj (AI):
  • Moduł ESP32-C6-LCD-1.47 z wyświetlaczem pokazującym parametry SD i Flash
    ESP32‑C6‑LCD‑1.47 to malutki moduł z 1.47‑calowym wyświetlaczem o rozdzielczości 172×320 pikseli oferujący zgodność z Wi‑Fi 6 (802.11 ax/b/g/n) i Bluetooth 5 (BLE), wyposażony w układ ST7789 oraz pamięć flash 4 MB. Można go kupić za około 50 zł.
    Moduł ESP32-C6-LCD-1.47 obok otwartego pudełka z etykietą produktu
    Na pokładzie znajduje się:
    - dwurdzeniowy ESP32‑C6 RISC‑V – główny do 160 MHz, 512 KB HP‑SRAM + 16 KB LP‑SRAM + 320 KB ROM
    - wbudowane anteny ceramiczne do łączności bezprzewodowej: 2.4 GHz Wi‑Fi 6, Bluetooth 5 (z BLE i Mesh)
    - wyświetlacz: TFT ST7789, 262 K kolorów, podłączony przez 6‑pinowe SPI piny: MOSI GPIO6, SCLK GPIO7, CS GPIO14, DC GPIO15, RST GPIO21, BL GPIO22
    - gniazdo micro‑SD (TF card slot) .
    - port USB-C do programowania/zasilania, LDO ME6217C33M5G 800 mA
    - przyciski BOOT i RESET, wskaźnik RGB LED z panelem akrylowym, GPIO wyprowadzone na złącza szpilkowe
    Mały wyświetlacz ESP32‑C6‑LCD‑1.47 trzymany w dłoni, ekran skierowany do przodu Moduł ESP32 trzymany w dłoni z widocznym portem USB-C i złączami pinowymi Zbliżenie na moduł ESP32-C6-LCD-1.47 z widocznym złączem USB-C i mikrokontrolerem. Zbliżenie na moduł ESP32-C6-LCD-1.47 z widocznym układem i oznaczeniami pinów
    Schemat:
    Schemat elektryczny modułu ESP32-C6-LCD-1.47 z podziałem na sekcje USB, zasilanie, LCD i GPIO

    Konfiguracja środowiska pracy
    Najwygodniej programować jest tą płytkę w Visual Code z dodatkiem ESP-IDF. Instalujemy Visual Code a potem już w samym IDE instalujemy rozszerzenia - C/C++ oraz ESP-IDF.
    Wtyczki ESP‑IDF i PlatformIO IDE w Visual Studio Code Marketplace
    Po dodaniu pluginu ESP-IDF możemy w nim wybrać istniejące SDK lub pobrać je osobno. Wciskamy F1, wklejamy.
    esp-idf: configure esp-idf extension

    Okno poleceń Visual Studio Code z wybranym „ESP-IDF: Configure ESP-IDF Extension”
    Konfigurujemy w trybie ekspresowym - wedle instrukcji z ekranu.
    Ekran powitalny ESP-IDF w Visual Studio Code z wyborem trybu konfiguracji
    Dobieramy najnowszą wersję ESP-IDF, chyba że w instrukcji od producenta jest inaczej opisane.
    Okno konfiguracji rozszerzenia ESP-IDF w Visual Studio Code z polami ścieżek i przyciskiem Instaluj
    Potem wedle kroków od Waveshare:
    Schemat pięciu kroków: Open Demo → Select Board → Configure → Compile → Observe
    Obsługa jest bardzo prosta, wykonujemy kolejno kroki z menu po lewej:
    Widok Visual Studio Code z otwartym projektem ESP-IDF i plikiem źródłowym C
    Wybieramy ESP (C6), sposób programowania (USB), wirtualny port COM (zależy od naszego systemu), itd.
    Ważne też by zrobić pełną rekompilację projektu, przynajmniej za pierwszym razem.
    
    [0/1] Re-running CMake...CMake Error at W:/TOOLS/esp/v5.4.2/esp-idf/tools/cmake/targets.cmake:97 (message):
       IDF_TARGET 'esp32' in CMake cache does not match currently selected IDF_TARGET 'esp32c6'. To change the target, clear the build directory and sdkconfig file, and build the project again.Call Stack (most recent call first):
      W:/TOOLS/esp/v5.4.2/esp-idf/tools/cmake/project.cmake:24 (__target_init)
      CMakeLists.txt:3 (include)
    

    Całość powinna się poprawnie skompilować.
    Widok terminala Visual Studio Code z tabelą użycia pamięci dla ESP32-C6
    Po wgraniu można pobawić się demkami. Edytujemy main.c i wołane tam funkcje:
    Widok kodu źródłowego w Visual Studio Code z funkcją app_main w języku C
    Np. zmieniamy napis:
    Kod C z funkcją Lvgl_Example1 w edytorze Visual Studio Code
    Rezultat:
    Wyświetlacz ESP32‑C6‑LCD‑1.47 z interfejsem testowym parametrów pamięci i sieci

    Inne przykłady od LVGL
    Można też przełączyć na inny przykład, po prostu wywołując odpowiednią funkcję w main:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Tyle, że tu nie mamy obsługi dotyku więc część demek traci swój sens.
    Zbliżenie na ekran modułu ESP32‑C6‑LCD‑1.47 z demem LVGL i komunikatem powitalnym Mały wyświetlacz LCD ESP32-C6 z interfejsem użytkownika przedstawiającym profil
    lv_demo_benchmark to test renderingu kształtów. Na koniec pokazuje rezultaty:
    Wyświetlacz ESP32‑C6‑LCD‑1.47 prezentujący test renderowania kształtów z użyciem biblioteki LVGL Test wydajności interfejsu graficznego na ekranie ESP32-C6-LCD-1.47 z wynikiem 31 FPS Malutki ekran ESP32-C6 z kolorowym testem wyświetlania kształtów i danymi FPS/CPU
    Moduł ESP32-C6 z 1,47-calowym ekranem LCD wyświetlający benchmark UI Wyświetlacz ESP32-C6 1.47 cala pokazujący test renderowania grafiki z informacją FPS i CPU Wyświetlacz ESP32-C6-LCD-1.47 pokazujący wynik testu graficznego z licznikiem FPS i CPU
    ESP32-C6-LCD-1.47 wyświetlający benchmark graficzny LVGL z widocznymi liniami i danymi o wydajności Wyświetlacz LCD 1.47 cala ESP32-C6 pokazujący test renderingu z paskiem FPS Moduł ESP32-C6 z małym ekranem TFT 1,47 cala podczas testu renderowania
    Wyświetlacz 1.47 cala ESP32-C6 z testem obrazu i statystykami FPS/CPU Wyświetlacz ESP32‑C6‑LCD‑1.47 pokazujący grafikę zębatki i metryki FPS/CPU Moduł ESP32-C6-LCD-1.47 z testem renderowania tekstu na ekranie
    Moduł ESP32-C6 z ekranem 1.47 cala wyświetlający test renderowania linii Moduł ESP32-C6-LCD-1.47 wyświetlający test renderowania z wynikami FPS i CPU Moduł ESP32-C6 z benchmarkiem graficznym na ekranie TFT 1.47 cala
    Podsumowanie benchmarka:
    Mały ekran LCD 1.47 cala wyświetla benchmark tekstu z wynikami FPS i zużycia CPU
    To teraz demo lv_demo_stress, czyli prezentacja komponentów UI. Na tak małym ekranie to słabo wygląda.
    Wyświetlacz ESP32‑C6‑LCD‑1.47 z testem renderowania napisów i informacją o FPS/CPU Wyświetlacz LCD 1.47 cala z testowym interfejsem UI i informacją o FPS i CPU Zbliżenie na ekran ESP32-C6-LCD-1.47 z interfejsem listy i wskaźnikiem FPS
    Zostaje lv_demo_music, ale u mnie się nie kompiluje.


    Własne demko pogodowe
    Właczyłem brakującą czcionkę lv_font_montserrat_46 w lv_conf i przygotowałem dla Was proste demko. Jest to sam interfejs bez jego rzeczywistej obsługi, ma to być prosty wyświetlacz pogody. Pokazuje on również ikonkę, która już była w projekt wbudowana.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Rezultat:
    Mały ekran LCD ESP32‑C6 wyświetlający pogodę: 27°C, słonecznie, data 2025.06.06
    I to chyba będzie na tyle....

    Podsumowanie
    Fajny i mały moduł. Szkoda, że tutaj bez obsługi dotyku. W ESP-IDF wygodnie się go programuje. Osobiście myślę by spróbować tego typu moduły umieszczać natynkowo w formie jakiegoś prostego dodatku do termostatu lub innego rodzaju kontroli automatyki budynkowej, ale może wezmę jednak coś z obsługą panelu dotykowego.
    A jak Wy sądzicie, do czego byście wykorzystali ten moduł?

    Fajne? Ranking DIY
    Pomogłem? Kup mi kawę.
    O autorze
    p.kaczmarek2
    Moderator Smart Home
    Offline 
    Inżynier programista z wieloletnim doświadczeniem embedded i full stack developer.
    Specjalizuje się w: embedded, Full-Stack Developer
    p.kaczmarek2 napisał 14575 postów o ocenie 12601, pomógł 654 razy. Jest z nami od 2014 roku.
  • #2 21619573
    TechEkspert
    Redaktor
    Posty: 7165
    Pomógł: 16
    Ocena: 5536
    Bardzo ciekawe nie znałem tego. Pomysł na wykorzystanie całej powierzchni modułu przez wyświetlacz jest dobry, rzeczywiście byłby lepszy gdyby obsługiwał dotyk. Jak na razie jest to dla mnie pierwsze miejsce w kategorii ESP z wyświetlaczem.
  • #3 21619808
    Przybyłek
    Poziom 14  
    Posty: 208
    Pomógł: 1
    Ocena: 43
    >>21619573 Ten moduł występuje także w wersji dotykowej.
  • #4 21621381
    siewcu
    Poziom 35  
    Posty: 3804
    Pomógł: 133
    Ocena: 458
    p.kaczmarek2 napisał:
    jakiegoś prostego dodatku do termostatu lub innego rodzaju kontroli automatyki budynkowej

    Ale po prawdzie to zostaje chyba tylko opcja zegarka, termometru i higrometru, tudzież innej wersji stacji pogodowej. Ma to wbudowany jakiś czujnik światła, żeby wygaszać ekran na noc? Czy trzeba na sztywno(tudzież po NTC) zaprogramować jasność wyświetlacza? Opcję dołożenia czujnika celowo pomijam. No i szkoda, że nie ma dotyku, można by było zrobić całkiem fajny włącznik światła ze zdalnym sterowaniem... Tak, wiem, przekombinowane, ale bezprzewodowy włącznik z wyświetlaniem godziny i temperatury? A gdyby posunąć się już całkiem w głąb automatyki, to może nawet ze sterowaniem ogrzewaniem/klimatyzacją? Dwucyfrowa wartość temperatury powinna się zmieścić, nawet z przyciskami do regulacji lub włącznikiem światła.
📢 Słuchaj (AI):
REKLAMA