LVGL, perpustakaan grafis yang mendukung sebagian besar UI Cheap Yellow Display

Cheap Yellow Display (secara resmi ESP32-2432S028R) adalah papan pengembang kecil yang memadukan ESP32 dengan layar sentuh 2,8 inci 320x240, slot kartu SD, LED RGB, dan sensor cahaya, semuanya dengan harga kurang dari sepuluh dolar. Perangkat ini menjadi populer pada tahun 2024, dan pada tahun 2026 telah menjadi target standar bagi siapa pun yang menginginkan layar sentuh nyata di meja, dinding, atau depan printer 3D. Perangkat keras hanyalah setengah dari cerita. Setengahnya lagi adalah toolchain desktop yang kami gunakan untuk merancang UI, menulis firmware, dan mendorong build ke papan. Di bawah ini adalah tujuh alat yang paling sering kami gunakan saat bekerja pada proyek CYD, dari piksel berkedip pertama hingga dasbor rumah pintar yang sempurna.

Apa yang harus dicari dalam alat CYD

CYD bersifat unik. Ini menggunakan driver display ILI9341 melalui SPI dan pengontrol sentuhan resistif XPT2046 pada bus SPI terpisah, dan penugasan pin tidak sesuai dengan apa yang diasumsikan oleh sebagian besar tutorial ESP32. Ini berarti alat yang baik untuk pekerjaan CYD memiliki beberapa sifat spesifik.

Semuanya di bawah ini mengumpulkan poin dengan baik pada minimal tiga dari lima hal itu.

Perbandingan cepat

Alat Terbaik untuk Platform Gratis atau berbayar Fitur menonjol
LVGL Lapisan grafis itu sendiri Windows, macOS, Linux Gratis, MIT Menjalankan kode C yang sama di CYD dan simulator desktop
SquareLine Studio Merancang UI secara visual Windows, macOS, Linux Tier pribadi gratis, Pro berbayar Mengekspor kode proyek LVGL C yang bersih
PlatformIO Mengelola build dan library Windows, macOS, Linux Inti gratis, fitur Home berbayar Satu platformio.ini menangani board, dep, dan OTA
Arduino IDE 2 Proyek CYD pertama Windows, macOS, Linux Gratis Board Manager menemukan core ESP32 dalam dua klik
ESP-IDF Pekerjaan firmware mendalam dan tingkat rendah Windows, macOS, Linux Gratis Akses penuh ke driver Espressif dan fitur RTOS
MicroPython Prototyping cepat di Python Windows, macOS, Linux Gratis Live REPL melalui USB, tidak ada langkah kompilasi
ESPHome Dasbor Home Assistant Windows, macOS, Linux Gratis Konfigurasi YAML dikompilasi menjadi firmware, tidak ada C yang diperlukan

Alat-alat

1. LVGL – Terbaik untuk lapisan grafis

LVGL (Light and Versatile Graphics Library) adalah alasan mengapa bekerja dengan CYD menyenangkan. Ini memberi kami tombol, slider, bagan, keyboard, dan animasi yang terlihat modern di layar 320x240, dan berjalan pada hampir setiap mikrokontroler dengan framebuffer. Versi 9 mengencangkan jejak memori dan menyederhanakan API driver display dan input, yang penting dengan anggaran RAM ESP32 yang ketat.

Fitur pembunuh untuk pemula adalah simulator desktop: kode C yang sama yang menjalankan CYD dapat berjalan di dalam jendela SDL di laptop kami, sehingga kami dapat mengulangi tata letak dan interaksi tanpa menyentuh papan. Ketika kami melakukan flash, LVGL pas dengan rapi ke dalam proyek PlatformIO, Arduino, dan ESP-IDF dengan file lv_conf.h yang sama.

Apa pun yang lebih halus daripada demo dua tombol di CYD hampir pasti menggunakan LVGL di balik layar.

Unduh: Situs . GitHub

2. SquareLine Studio – Terbaik untuk merancang UI secara visual

Menulis widget LVGL dengan tangan baik-baik saja untuk layar atau dua. Melampaui itu, kami ingin kanvas. SquareLine Studio adalah editor UI drag-and-drop yang dibangun khusus untuk LVGL: kami tata letak layar, handler event kabel, pilih font, jatuhkan gambar, lalu tekan ekspor untuk mendapatkan proyek LVGL C penuh siap dijatuhkan ke dalam PlatformIO atau Arduino.

Tier pribadi gratis cukup murah hati untuk build CYD hobi, dan ada template CYD yang beredar di komunitas yang menyemai resolusi 320x240 yang benar dan pengaturan driver ILI9341. Tier Pro membuka unlimited screens, widget kustom, dan kemampuan untuk menyimpan aset di kartu SD, yang layak jika kami mulai menjual proyek.

Alur kerja yang masuk akal bagi kami: sketsa UI di SquareLine, ekspor, lalu edit manual ui_events.c yang dihasilkan untuk kabel dalam logika Wi-Fi, sensor, atau MQTT.

Unduh: Situs

3. PlatformIO – Terbaik untuk mengelola build dan library

Setelah proyek memiliki lebih dari satu file, PlatformIO membayar sendiri. Ia berjalan sebagai ekstensi di dalam VS Code (dan beberapa editor lainnya), dan menggantikan langkah-langkah build ad-hoc yang mengganggu pekerjaan hobis ESP32 dengan satu platformio.ini yang mendeklarasikan board, framework, library, dan metode upload.

Untuk pekerjaan CYD, polanya adalah: pilih board = esp32dev, tambahkan LVGL dan library display TFT_eSPI atau LovyanGFX sebagai lib_deps, dan jatuhkan User_Setup.h yang benar ke dalam include/ sehingga pin sesuai dengan kabel CYD. Dari sana, satu klik membangun, mengunggah, dan membuka monitor serial. OTA melalui Wi-Fi adalah perubahan satu baris ke upload_protocol, yang merupakan kemenangan kualitas hidup besar untuk papan yang dipasang di belakang bezel.

Versi library disematkan dalam file config, jadi proyek yang dibangun tahun lalu masih dibangun tahun ini. Itu bukan sesuatu yang dapat kami katakan tentang setiap tutorial ESP32.

Unduh: Situs . GitHub

4. Arduino IDE 2 – Terbaik untuk proyek CYD pertama

Arduino IDE 2 (rilis stabil saat ini, bukan 1.x Java lama) adalah tempat sebagian besar orang memulai dengan CYD, dan tidak ada yang salah dengan tinggal. Ia menangani paket board ESP32 melalui Board Manager, mengirimkan editor berbasis Monaco yang cepat dengan autocomplete, dan memiliki monitor serial dan plotter bawaan.

Peramban contoh adalah alat penemuan kelas terbaik untuk pemula: instal library TFT_eSPI, XPT2046_Touchscreen, dan LVGL dan puluhan sketsa yang dapat dijalankan muncul di menu File. Sebagian besar tutorial CYD di YouTube dan GitHub ditulis untuk Arduino, jadi mengikuti saja berjalan tanpa gesekan.

Kami memilihnya ketika kami ingin sketsa file tunggal untuk membuktikan sesuatu berfungsi di hardware, lalu port ke PlatformIO setelah proyek berkembang.

Unduh: Situs

5. ESP-IDF – Terbaik untuk pekerjaan firmware mendalam

Setelah kami melampaui abstraksi Arduino, SDK milik Espressif sendiri menunggu. ESP-IDF memberi kami tugas FreeRTOS, sistem komponen lengkap, manajemen daya mendalam, kontrol dual-core, dan akses ke setiap peripheral yang diekspos ESP32. Inilah yang digunakan produk pengiriman.

Tradeoff adalah verbosity. LED berkedip adalah lebih banyak kode daripada di Arduino, dan driver display CYD tidak bawaan, jadi kami membawa port esp_lcd LVGL atau kawat TFT_eSPI sebagai komponen. Imbalannya adalah bahwa setelah pipa terpasang, kami dapat melakukan hal yang Arduino tidak bisa, seperti refresh display dengan buffer ganda dengan DMA dan framebuffer yang didukung PSRAM.

Kami menggunakannya ketika proyek CYD melibatkan apa pun yang berat jaringan (koeksistensi BLE + Wi-Fi, mesh, TLS), atau ketika kami peduli dengan daya tarik baterai.

Unduh: Situs . GitHub

6. MicroPython – Terbaik untuk prototipe Python

MicroPython menempatkan interpreter Python 3 di ESP32 dengan REPL melalui USB, dan itu mengubah bagaimana kami membuat prototipe. Ketik baris, lihat pixel berubah di CYD. Tidak ada kompilasi, tidak ada siklus flash, tidak ada tunggu.

Cerita grafis sedikit lebih terfragmentasi daripada dengan LVGL C, tetapi LVGL sendiri mengirimkan binding MicroPython, dan build lv_micropython yang disesuaikan untuk CYD tersebar di komunitas. Untuk dashboard yang lebih sederhana, driver st7789py dan xpt2046 cukup untuk menggambar teks, sprite, dan wilayah sentuh dalam beberapa puluh baris.

Kami menggunakannya untuk pengajaran, mainan sekali pakai, dan jenis alat internal di mana kami ingin dapat SSH masuk melalui WebREPL dan mengubah perilaku tanpa rebuild.

Unduh: Situs

7. ESPHome – Terbaik untuk dasbor rumah pintar

Jika CYD akan berada di dinding di sebelah instalasi Home Assistant, ESPHome adalah jalur terpendek ke dasbor yang berfungsi. Alih-alih menulis firmware, kami menulis file YAML yang mendeklarasikan display, touchscreen, switch, sensor, dan halaman UI. ESPHome mengkompilasi ke biner firmware dan mem-flash, lalu menghubungkan semuanya kembali ke Home Assistant secara otomatis.

CYD memiliki dukungan tingkat pertama dalam dokumentasi ESPHome, termasuk penugasan bus SPI yang benar, PWM backlight, dan petunjuk kalibrasi touchscreen. Konfigurasi komunitas mencakup termostat, pengontrol media, dan panel pencahayaan multi-ruangan, dan salah satunya dapat difork dan diedit di dasbor ESPHome melalui browser.

Bagi siapa pun yang menginginkan dasbor rumah pintar yang berfungsi akhir pekan ini daripada proyek pembelajaran firmware, ini adalah jawabannya.

Unduh: Situs . GitHub

Cara memilih yang tepat

Alat yang tepat bergantung pada kemana CYD akan pergi dan seberapa dalam kami ingin pergi. Seseorang yang baru saja mengambil papan dan ingin melihat sesuatu terjadi di layar malam ini harus menginstal Arduino IDE 2, menambahkan core ESP32, dan memuat contoh TFT_eSPI. Ini adalah jarak terpendek ke pixel yang berfungsi.

Untuk proyek dengan UI nyata (menu, layar, animasi, keyboard), jawabannya adalah LVGL untuk rendering, SquareLine Studio untuk tata letak, dan PlatformIO untuk build. Trio itu adalah apa yang paling banyak digunakan proyek CYD halus di GitHub, dan ini adalah kombinasi yang kami rekomendasikan kepada siapa pun yang serius tentang papan.

Developer firmware dengan pandangan kapal produk harus melewati Arduino dan langsung pergi ke ESP-IDF, lalu bawa LVGL sebagai komponen. Itu lebih banyak setup, tetapi itu menghilangkan ceiling.

Hobis dan pendidik yang fokus pada Python mengerjakan lebih banyak hal di MicroPython, terutama untuk workshop anak-anak atau alat internal.

Dan jika CYD ditakdirkan tinggal di dinding dengan Home Assistant di belakangnya, ESPHome melewatkan semua di atas dan memungkinkan kami mendeskripsikan dasbor di YAML dalam sore hari.

FAQ

Apa sebenarnya Cheap Yellow Display? Ini adalah ESP32-2432S028R, modul ESP32-WROOM-32 yang disolder ke papan dengan layar sentuh 2,8 inci 320x240 (driver ILI9341, sentuhan resistif XPT2046), slot kartu SD, LED RGB, sensor cahaya, dan port USB. Ia dijual sekitar delapan hingga dua belas dolar di sebagian besar pasar dan mengambil nama “Cheap Yellow Display” karena run awal dikirimkan di PCB kuning.

Apakah saya harus menggunakan LVGL, atau adakah alternatif? LVGL adalah pilihan paling populer, tetapi bukan satu-satunya. TFT_eSPI dan LovyanGFX keduanya memberi kami primitif cepat (garis, bentuk, sprite, teks) jika kami ingin menggambar UI sendiri. Untuk gauge dan dashboard sederhana itu sudah cukup. LVGL menang segera setelah kami menginginkan widget, animasi, atau keyboard.

Bisakah saya mengembangkan untuk CYD di macOS atau Linux? Ya. Setiap alat dalam artikel ini berjalan secara native di Windows, macOS, dan Linux. Di Linux kami mungkin memerlukan aturan udev sehingga akun pengguna kami dapat berbicara dengan chip USB-to-serial CH340 atau CP2102 di papan, tetapi setup adalah langkah satu kali.

Bagaimana cara mem-flash CYD melalui Wi-Fi alih-alih USB? PlatformIO, Arduino IDE 2, ESP-IDF, dan ESPHome semuanya mendukung update OTA. Pola umum adalah menyertakan library OTA atau komponen dalam firmware, menghubungkan papan ke Wi-Fi, lalu menetapkan metode upload dalam alat untuk menunjuk ke alamat IP papan. Upload pertama melalui USB, semuanya sesudahnya bisa nirkabel.

Apakah SquareLine Studio gratis untuk penggunaan hobi? Tier pribadi gratis dan mencakup sebagian besar proyek CYD hobi. Ini membatasi hal-hal seperti jumlah layar dan resolusi aset, tetapi kode LVGL yang diekspor tidak memiliki batasan runtime. Langganan Pro membuka unlimited screens, aset resolusi lebih tinggi, dan penggunaan komersial.