Posted in

การใช้งาน ESP32 ร่วมกับโมดูลเล่นเพลง MP3 (YX5300 / YX6300)

การใช้งาน ESP32 ร่วมกับโมดูลเล่นเพลง MP3 (YX5300 / YX6300)

บทความนี้จะสอนวิธีการใช้งานโมดูลเล่นเพลง YX5300 / YX6300 Serial MP3 Player ร่วมกับบอร์ด ESP32 โดยใช้ Arduino IDE คุณจะได้เรียนรู้วิธีการต่อวงจร การจัดการไฟล์ใน MicroSD Card และการเขียนโค้ดเพื่อเล่นไฟล์เสียง .mp3 หรือ .wav ตามที่คุณต้องการ


รู้จักกับโมดูล YX5300 / YX6300

YX5300 / YX6300 เป็นโมดูลเล่นเพลงราคาประหยัดที่สื่อสารผ่านพอร์ต Serial (UART) สามารถเชื่อมต่อกับไมโครคอนโทรลเลอร์ เช่น ESP32, ESP8266 หรือ Arduino เพื่อสั่งงานให้เล่นเพลงที่เก็บไว้ใน MicroSD Card ได้ด้วยการส่งคำสั่ง Serial ง่ายๆ


🔌 การต่อวงจร YX5300 กับ ESP32

การเชื่อมต่อทำได้ง่ายมาก เนื่องจากใช้เพียงสายสัญญาณ Serial สองเส้น (RX และ TX):

YX5300 / YX6300 ESP32 GPIO
TX GPIO 16 (UART 2 RX)
RX GPIO 17 (UART 2 TX)
VCC VIN (5V)
GND GND

💡 คำแนะนำ: หากโค้ดทำงานไม่ถูกต้อง (ไม่เล่นเพลง) ให้ลองสลับสาย RX และ TX ดูครับ บางครั้งฉลากบนโมดูลอาจจะระบุมาสลับกัน


💾 การเตรียม MicroSD Card

โมดูลรองรับ MicroSD Card สูงสุด 32GB และต้องฟอร์แมตเป็น FAT32 เท่านั้น

โครงสร้างไฟล์ที่ถูกต้อง (สำคัญมาก):

เพื่อให้โมดูลเข้าถึงไฟล์ได้ คุณต้องตั้งชื่อโฟลเดอร์เป็นตัวเลข 2 หลัก และชื่อเพลงเริ่มด้วยตัวเลข 3 หลัก ดังนี้:

  • โฟลเดอร์: 01, 02, … (สูงสุด 99 โฟลเดอร์)
  • ชื่อไฟล์: 001song.mp3, 002music.wav (สูงสุด 255 เพลงต่อโฟลเดอร์)

📚 การติดตั้ง Library

  1. เปิด Arduino IDE ไปที่ Sketch > Include Library > Manage Libraries
  2. ค้นหาคำว่า YX5300 for ESP32
  3. ติดตั้ง Library โดย bluejunimo

💻 โค้ดตัวอย่างการเล่นเพลง (Test Play)

ใช้โค้ดด้านล่างนี้เพื่อทดสอบว่า ESP32 สามารถสั่งให้โมดูลเล่นเพลงแรกใน MicroSD Card ได้หรือไม่:


#include <YX5300_ESP32.h>

// กำหนดขาสำหรับสื่อสาร Serial กับ YX5300
#define RX 16
#define TX 17

// สร้างออบเจกต์ mp3
YX5300_ESP32 mp3;

void setup() {
  // เริ่มต้นการเชื่อมต่อกับโมดูล YX5300
  mp3 = YX5300_ESP32(Serial2, RX, TX);
  
  // เปิดโหมด Debug เพื่อดูสถานะการส่งคำสั่งผ่าน Serial Monitor
  Serial.begin(115200);
  mp3.enableDebugging();

  // สั่งให้เล่นเพลงแรกที่อยู่ในโฟลเดอร์ 01
  // ตรวจสอบให้มั่นใจว่าไฟล์ชื่อ 001xxx.mp3 อยู่ในโฟลเดอร์ 01
  mp3.playTrack(1);
}

void loop() {
  // ไม่ต้องใส่โค้ดใน loop สำหรับการทดสอบนี้
}

✨ บทสรุป

โมดูล YX5300 / YX6300 เป็นตัวเลือกที่ยอดเยี่ยมสำหรับโปรเจกต์ที่ต้องการเสียงประกอบ เช่น หุ่นยนต์ที่พูดได้, กล่องดนตรีอัจฉริยะ หรือระบบแจ้งเตือนด้วยเสียง คุณสามารถนำไปประยุกต์ต่อยอดโดยการเพิ่มปุ่มกดสำหรับเปลี่ยนเพลง หรือใช้ตัวต้านทานปรับค่าได้ (Potentiometer) เพื่อควบคุมระดับเสียงได้อีกด้วยครับ!