เริ่มต้นใช้งาน ESP32 Cheap Yellow Display (CYD): บอร์ดจอสัมผัสราคาประหยัด

คู่มือการใช้งาน ESP32 Cheap Yellow Display (ESP32-2432S028R) บอร์ด ESP32 ที่มาพร้อมจอสัมผัส 2.4 นิ้ว เหมาะสำหรับสร้าง GUI สำหรับโปรเจกต์ IoT และอุปกรณ์สวมใส่

📅 11 มีนาคม 2026⏱️ 12 นาที🎯 ระดับเริ่มต้น - กลาง

ข้อมูล: ESP32 Cheap Yellow Display (CYD) หรือ ESP32-2432S028R เป็นหนึ่งในบอร์ด ESP32 ที่ได้รับความนิยมสูงสุดในชุมชน Maker ในปี 2026 เนื่องจากราคาถูกและใช้งานง่าย

ภาพรวม ESP32 Cheap Yellow Display (CYD)

🖥️ ESP32 ที่มาพร้อมจอสัมผัส

ESP32 Cheap Yellow Display หรือที่เรียกสั้นๆ ว่า CYD เป็นบอร์ดพัฒนา ESP32 ที่รวมทุกอย่างไว้ในบอร์ดเดียว โดยมีจุดเด่นที่สุดคือ จอสัมผัส 2.4 นิ้วแบบ resistive พร้อมใช้งานทันที

ชื่ออย่างเป็นทางการคือ ESP32-2432S028R ซึ่งมาจาก:

  • 24 = ขนาดจอ 2.4 นิ้ว
  • 32 = ความละเอียด 320 x 240 พิกเซล (QVGA)
  • S = จอประเภท ST7789
  • 028 = จอสัมผัสแบบ resistive
  • R = มีระบบจัดการพลังงาน (Reset/Power control)

ทำไมต้อง ESP32 CYD?

💰

ราคาประหยัด

ราคาประมาณ 300-500 บาท ถูกกว่าซื้อ ESP32 และจอสัมผัสแยกกัน

🔌

พร้อมใช้งาน

ไม่ต้องบัดกรี ไม่ต้องต่อสาย รับประกันว่าทุกอย่างเชื่อมต่อกันถูกต้อง

🎨

สร้าง GUI ได้ง่าย

เหมาะสำหรับสร้างหน้าจอ UI สำหรับโปรเจกต์ IoT และ Automation

📦

ขนาดกระทัดรัด

ออกแบบเป็นบอร์ดเดียว เหมาะกับโปรเจกต์ที่ต้องการความกะทัดรัด

สเปคทางเทคนิค

สเปคหลัก

ส่วนประกอบ รายละเอียด
ไมโครคอนโทรลเลอร์ ESP32-WROOM-32 (Dual-core Xtensa LX6, 240 MHz)
หน่วยความจำ Flash: 4 MB, PSRAM: 520 KB
หน้าจอแสดงผล 2.4 นิ้ว, 320 x 240 พิกเซล (QVGA)
ไดร์เวอร์จอภาพ ST7789 (SPI interface)
จอสัมผัส Resistive touch (XPT2046 controller)
การเชื่อมต่อไร้สาย WiFi 802.11 b/g/n, Bluetooth 4.2 BLE
GPIO ที่ใช้งานได้ ~15 pins (รวม UART, I2C, SPI, PWM)
อุปกรณ์เสริมบนบอร์ด SD card slot, Buzzer, LED indicator, 3x Buttons
แหล่งจ่ายไฟ USB Type-C (5V) หรือ แบตเตอรี่ 3.7V-4.2V

ขา GPIO หลักที่ใช้งานได้

// GPIO หลักที่ใช้สำหรับจอภาพและสัมผัส
#define TFT_MISO     19
#define TFT_MOSI     23
#define TFT_SCLK     18
#define TFT_CS       5
#define TFT_DC       27
#define TFT_RST      -1  // ไม่มีขา RST แยก (ใช้ EN แทน)

#define TOUCH_CS     -1  // ใช้ SPI เดียวกับจอภาพ
#define TOUCH_IRQ    16  // Touch interrupt

// GPIO ที่ใช้งานได้อื่นๆ
#define BUZZER       15
#define LED_BUILTIN  2   // ไฟ LED บนบอร์ด
#define BUTTON_1     0
#define BUTTON_2     35
#define BUTTON_3     14

จุดเด่นและข้อจำกัด

✅ จุดเด่น

  • ราคาถูกมาก: เมื่อเทียบกับการซื้อ ESP32 แยก + จอ TFT แยก + จอสัมผัสแยก
  • พร้อมใช้งาน: ไม่ต้องบัดกรี ไม่ต้องต่อสาย เหมาะสำหรับผู้เริ่มต้น
  • ชุมชนขนาดใหญ่: มี Library และตัวอย่างโค้ดมากมายบน GitHub
  • ขนาดกระทัดรัด: เหมาะสำหรับโปรเจกต์ที่ต้องการติดตั้งในพื้นที่จำกัด
  • มี SD Card Slot: เก็บข้อมูลหรือโหลดรูปภาพได้
  • รองรับ LVGL: สร้าง GUI สวยๆ ได้ง่ายด้วย Library ยอดนิยม

⚠️ ข้อจำกัด

  • จอสัมผัสแบบ Resistive: ไม่รองรับ Multi-touch และต้องกดแรงพอสมควร
  • ขา GPIO จำกัด: หลายขาถูกใช้สำหรับจอภาพแล้ว เหลือ GPIO ใช้งานน้อย
  • ไม่มี Battery Charging Circuit: ถ้าใช้แบตเตอรี่ต้องหาวงจรชาร์จเอง
  • ความละเอียดจอต่ำ: 320x240 อาจน้อยเกินไปสำหรับ GUI ซับซ้อน
  • ไม่รองรับ Capacitive Touch: ไม่สามารถใช้นิ้วเบาๆ เหมือนมือถือได้

สิ่งที่ต้องเตรียม

อุปกรณ์ Hardware

  • ESP32 Cheap Yellow Display (CYD) - ราคา ~300-500 บาท
  • สาย USB Type-C - สำหรับจ่ายไฟและอัปโหลดโค้ด
  • SD Card (MicroSD) 8GB+ - ถ้าต้องการบันทึกข้อมูล
  • แบตเตอรี่ Li-Ion 3.7V - ถ้าต้องการพกพา

ซอฟต์แวร์ที่ต้องใช้

  • Arduino IDE 2.x หรือPlatformIO

    แนะนำให้ใช้ Arduino IDE สำหรับผู้เริ่มต้น

  • USB Driver (CH340/CH341) - สำหรับ Windows 7/8/10
  • TFT_eSPI Library - สำหรับควบคุมจอภาพ
  • LVGL Library - ถ้าต้องการสร้าง GUI สวยๆ (ไม่บังคับ)

การติดตั้งและเริ่มต้น

ขั้นตอนที่ 1: ติดตั้ง Arduino IDE

ดาวน์โหลดและติดตั้ง Arduino IDE เวอร์ชันล่าสุดจาก arduino.cc

ขั้นตอนที่ 2: เพิ่ม Board Support สำหรับ ESP32

  1. เปิด Arduino IDE และไปที่ File → Preferences
  2. ในช่อง "Additional Board Manager URLs" เพิ่ม:
    https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
  3. ไปที่ Tools → Board → Boards Manager
  4. ค้นหา "esp32" และติดตั้ง "esp32 by Espressif Systems"

ขั้นตอนที่ 3: ติดตั้งไลบรารี TFT_eSPI

  1. ไปที่ Sketch → Include Library → Manage Libraries
  2. ค้นหา "TFT_eSPI"
  3. ติดตั้งไลบรารี "TFT_eSPI" โดย Bodmer
  4. สำคัญ: หลังติดตั้ง ต้องแก้ไข User Setup ดูขั้นตอนถัดไป

ขั้นตอนที่ 4: แก้ไขการตั้งค่า TFT_eSPI

⚠️ ขั้นตอนสำคัญ: ต้องแก้ไขไฟล์การตั้งค่า TFT_eSPI ให้ตรงกับ ESP32 CYD

เปิดไฟล์การตั้งค่า:

  • Windows: Documents/Arduino/libraries/TFT_eSPI/User_Setup_Select.h
  • Mac: ~/Documents/Arduino/libraries/TFT_eSPI/User_Setup_Select.h
  • Linux: ~/Arduino/libraries/TFT_eSPI/User_Setup_Select.h

แก้ไขบรรทัดนี้ (เอาเครื่องหมาย // ออก):

// ใน User_Setup_Select.h
#include <User_Setups/Setup25_TTGO_T_Display.h>

หรือสร้างไฟล์ User_Setup.h ขึ้นมาเอง:

// ใน User_Setup.h

// ตั้งค่าให้ใช้กับ ESP32 CYD
#define ST7789_DRIVER
#define TFT_WIDTH  240
#define TFT_HEIGHT 320

#define TFT_MISO 19
#define TFT_MOSI 23
#define TFT_SCLK 18
#define TFT_CS    5
#define TFT_DC   27
#define TFT_RST  -1

#define LOAD_GLCD   // Font 1
#define LOAD_FONT2  // Font 2
#define LOAD_FONT4  // Font 4
#define LOAD_FONT6  // Font 6
#define LOAD_FONT7  // Font 7
#define LOAD_FONT8  // Font 8
#define LOAD_GFXFF  // FreeFonts

#define SMOOTH_FONT

ขั้นตอนที่ 5: เลือก Board และอัปโหลด

  1. เชื่อมต่อ ESP32 CYD เข้ากับคอมพิวเตอร์ด้วยสาย USB-C
  2. ใน Arduino IDE: Tools → Board → esp32 → ESP32 Dev Module
  3. เลือก Tools → Port (เลือกพอร์ตที่เชื่อมต่อ)
  4. ตั้งค่าอื่นๆ:
    • Upload Speed: 921600
    • CPU Frequency: 240MHz (WiFi/BT)
    • Flash Frequency: 80MHz
    • Flash Mode: QIO
    • Partition Scheme: Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
  5. กดปุ่ม Upload (→) หรือ Ctrl+U

ไลบรารีที่แนะนำ

นอกจาก TFT_eSPI แล้ว ยังมีไลบรารีอื่นๆ ที่เป็นประโยชน์สำหรับ ESP32 CYD:

📺 TFT_eSPI (ขอบเขตจำเป็น)

ไลบรารีหลักสำหรับควบคุมจอภาพ TFT และ Touch

Graphics Fast

🎨 LVGL (Light and Versatile Graphics Library)

สร้าง GUI สวยๆ แบบ Professional รองรับ Animation และ Widgets

GUI Advanced

📂 LittleFS / SPIFFS

ระบบไฟล์สำหรับเก็บข้อมูล รูปภาพ และการตั้งค่า

File System

🌐 WiFiManager

สร้างหน้าจอเชื่อมต่อ WiFi ผ่าน Captive Portal ง่ายๆ

WiFi

โปรเจกต์แรก: Hello World

มาเริ่มต้นด้วยโค้ดง่ายๆ ที่แสดงข้อความบนจอ ESP32 CYD กัน:

esp32_cyd_hello_world.ino
#include <TFT_eSPI.h>
#include <SPI.h>

// สร้าง object สำหรับจอภาพ
TFT_eSPI tft = TFT_eSPI();

void setup() {
  // เริ่มต้น Serial Monitor (สำหรับ Debug)
  Serial.begin(115200);
  Serial.println("ESP32 CYD - Hello World");

  // เริ่มต้นจอภาพ
  tft.init();
  tft.setRotation(1);  // หมุนจอ 90 องศา (แนวนอน)
  tft.fillScreen(TFT_BLACK);  // เคลียร์หน้าจอสีดำ

  // แสดงข้อความ Hello World
  tft.setTextColor(TFT_WHITE, TFT_BLACK);  // ตัวอักษรสีขาว พื้นหลังสีดำ
  tft.setTextSize(2);  // ขนาดตัวอักษร

  // แสดงข้อความที่ตำแหน่งกลางจอ
  tft.drawString("Hello World!", 60, 100);
  tft.setTextSize(1);
  tft.drawString("ESP32 Cheap Yellow Display", 50, 130);
  tft.drawString("CynoIoT Platform", 80, 150);

  // วาดกรอบสี่เหลี่ยม
  tft.drawRect(10, 10, 220, 300, TFT_BLUE);
  tft.drawRect(12, 12, 216, 296, TFT_GREEN);

  Serial.println("Display initialized!");
}

void loop() {
  // วนลูปเพื่อกระพริบไฟ LED บนบอร์ด
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
}

คำอธิบายโค้ด

  • TFT_eSPI tft: สร้าง object สำหรับควบคุมจอภาพ
  • tft.init(): เริ่มต้นการทำงานของจอภาพ
  • tft.setRotation(1): หมุนจอ 90 องศา (0=ปกติ, 1=90°, 2=180°, 3=270°)
  • tft.fillScreen(TFT_BLACK): เติมสีพื้นหลังทั้งหมด
  • tft.drawString("text", x, y): แสดงข้อความที่ตำแหน่ง x, y
  • tft.drawRect(x, y, w, h, color): วาดกรอบสี่เหลี่ยม

ทดสอบการใช้งานจอสัมผัส

esp32_cyd_touch_test.ino
#include <TFT_eSPI.h>
#include <SPI.h>

TFT_eSPI tft = TFT_eSPI();

void setup() {
  Serial.begin(115200);
  tft.init();
  tft.setRotation(1);
  tft.fillScreen(TFT_BLACK);

  // แสดงข้อความให้ผู้ใช้กดจอสัมผัส
  tft.setTextColor(TFT_WHITE, TFT_BLACK);
  tft.setTextSize(2);
  tft.drawString("Touch Test", 70, 100);
  tft.setTextSize(1);
  tft.drawString("Touch anywhere!", 65, 130);

  Serial.println("Touch the screen...");
}

void loop() {
  // ตรวจสอบว่ามีการกดจอสัมผัสหรือไม่
  uint16_t x, y;
  if (tft.getTouch(&x, &y)) {
    // แปลงค่าพิกัดจากจอแนวตั้งเป็นแนวนอน
    // เนื่องจากเราใช้.setRotation(1)
    uint16_t temp = x;
    x = y;
    y = 240 - temp;

    Serial.print("Touch at: ");
    Serial.print(x);
    Serial.print(", ");
    Serial.println(y);

    // แสดงพิกัดที่กดบนจอ
    tft.fillScreen(TFT_BLACK);
    tft.setTextColor(TFT_GREEN, TFT_BLACK);
    tft.setTextSize(2);
    tft.drawString("X: " + String(x), 30, 100);
    tft.drawString("Y: " + String(y), 30, 130);

    // วาดวงกลมที่ตำแหน่งที่กด
    tft.fillCircle(x, y, 10, TFT_RED);

    delay(500);  // รอเล็กน้อยเพื่อป้องกันการตรวจสอบซ้ำ
  }
}

เชื่อมต่อกับ CynoIoT Platform

ESP32 CYD สามารถเชื่อมต่อกับ CynoIoT Platform เพื่อสร้าง Dashboard IoT ได้ง่ายๆ:

🌟 ขั้นตอนการเชื่อมต่อ

  1. สมัครบัญชี CynoIoT: ไปที่ cynoiot.com และสมัครใช้งานฟรี
  2. สร้าง Device: ใน Dashboard สร้าง Device ใหม่ และจด Device ID และ API Key
  3. ติดตั้งไลบรารี CynoIoT: ดาวน์โหลดจาก GitHub หรือใช้ Library Manager
  4. เขียนโค้ด: ใช้ไลบรารี CynoIoT เพื่อส่งข้อมูลจากเซ็นเซอร์ไปยัง Platform
  5. สร้าง Dashboard: ใน CynoIoT Platform สร้างหน้าจอแสดงผลข้อมูลแบบ Real-time

ตัวอย่างโค้ดเชื่อมต่อ CynoIoT

esp32_cyd_cynoiot.ino
#include <TFT_eSPI.h>
#include <WiFi.h>
// #include <CynoIoT.h>  // ติดตั้งไลบรารี CynoIoT ก่อน

TFT_eSPI tft = TFT_eSPI();

// ตั้งค่า WiFi
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";

// ตั้งค่า CynoIoT
const char* deviceId = "YOUR_DEVICE_ID";
const char* apiKey = "YOUR_API_KEY";

// CynoIoT cynoiot(deviceId, apiKey);

void setup() {
  Serial.begin(115200);
  tft.init();
  tft.setRotation(1);
  tft.fillScreen(TFT_BLACK);

  // แสดงข้อความเชื่อมต่อ WiFi
  tft.setTextColor(TFT_WHITE, TFT_BLACK);
  tft.setTextSize(2);
  tft.drawString("Connecting...", 50, 100);

  // เชื่อมต่อ WiFi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("\nWiFi connected!");
  tft.fillScreen(TFT_BLACK);
  tft.setTextColor(TFT_GREEN, TFT_BLACK);
  tft.drawString("WiFi Connected!", 40, 100);

  // เชื่อมต่อ CynoIoT
  // cynoiot.connect();
  // tft.drawString("CynoIoT Ready!", 50, 130);

  delay(2000);
}

void loop() {
  // อ่านค่าเซ็นเซอร์ (ตัวอย่าง: จำลองค่าอุณหภูมิ)
  float temperature = random(200, 300) / 10.0;
  float humidity = random(400, 800) / 10.0;

  // แสดงผลบนจอ
  tft.fillScreen(TFT_BLACK);
  tft.setTextColor(TFT_WHITE, TFT_BLACK);
  tft.setTextSize(2);
  tft.drawString("Temperature:", 30, 60);
  tft.drawString(String(temperature) + " C", 80, 90);
  tft.drawString("Humidity:", 50, 130);
  tft.drawString(String(humidity) + " %", 80, 160);

  // ส่งข้อมูลไป CynoIoT
  // cynoiot.send("temperature", temperature);
  // cynoiot.send("humidity", humidity);

  Serial.print("Temp: ");
  Serial.print(temperature);
  Serial.print(" C, Humidity: ");
  Serial.print(humidity);
  Serial.println(" %");

  delay(5000);  // ส่งข้อมูลทุก 5 วินาที
}

ไอเดียโปรเจกต์สำหรับ ESP32 CYD

นี่คือไอเดียโปรเจกต์ที่น่าสนใจสำหรับ ESP32 Cheap Yellow Display:

🏠

Smart Home Controller

สร้างหน้าจอควบคุมอุปกรณ์ในบ้าน เช่น ไฟ เครื่องปรับอากาศ ม่านไฟฟ้า

ระดับ: กลาง
🌡️

Weather Station Display

แสดงข้อมูลอุณหภูมิ ความชื้น และพยากรณ์อากาศจาก API

ระดับ: เริ่มต้น
🎵

Music Player Controller

ควบคุมเพลงจาก Spotify หรือ Home Assistant ผ่านจอสัมผัส

ระดับ: กลาง - ขั้นสูง
📊

IoT Data Monitor

แสดงกราฟข้อมูลเซ็นเซอร์แบบ Real-time จาก CynoIoT

ระดับ: กลาง

Digital Clock & Calendar

นาฬิกาดิจิทัลพร้อมปฏิทิน อัปเดตเวลาผ่าน NTP

ระดับ: เริ่มต้น
🎮

Retro Game Emulator

เล่นเกมเก่าๆ เช่น Snake, Tetris, หรือ Pong

ระดับ: ขั้นสูง
🔐

Smart Lock Interface

หน้าจอควบคุมประตูอัจฉริยะ พร้อมปุ่ม PIN Code

ระดับ: กลาง
🌱

Garden Monitor

แสดงความชื้นในดิน อุณหภูมิ และกำหนดการรดน้ำ

ระดับ: เริ่มต้น

สรุป

สิ่งที่คุณได้เรียนรู้

  • ESP32 Cheap Yellow Display (CYD) คืออะไรและทำไมถึงได้รับความนิยม
  • สเปคทางเทคนิคและความสามารถของบอร์ด
  • วิธีการติดตั้งและตั้งค่า Arduino IDE สำหรับ ESP32 CYD
  • การใช้งานไลบรารี TFT_eSPI สำหรับแสดงผลบนจอ
  • การอ่านค่าจอสัมผัสและตอบสนองต่อการกด
  • การเชื่อมต่อกับ CynoIoT Platform
  • ไอเดียโปรเจกต์ที่สามารถทำได้ด้วย ESP32 CYD

ขั้นตอนถัดไป

🎉 ขอบคุณที่อ่าน!
หวังว่าบทความนี้จะช่วยให้คุณเริ่มต้นใช้งาน ESP32 CYD ได้อย่างมั่นใจ
หากมีคำถามหรือปัญหา สามารถสอบถามได้ที่ CynoIoT Community

CynoIoT

แพลตฟอร์ม IoT ที่ช่วยให้คุณสร้าง ตรวจสอบ และควบคุมอุปกรณ์ IoT ได้ง่ายๆ

ติดต่อเรา

  • Email: contact@cynoiot.com
  • Line: @cynoiot

© 2026 CynoIoT. All rights reserved.