การใช้งาน 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
- เปิด Arduino IDE ไปที่ Sketch > Include Library > Manage Libraries
- ค้นหาคำว่า
YX5300 for ESP32 - ติดตั้ง 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) เพื่อควบคุมระดับเสียงได้อีกด้วยครับ!