การใช้งาน IOXESP32 Audio shield กับ ArduinoIDE

การเขียนโปรแกรมสั่งงานโมดูล IOXESP32 Audio shield ด้วย ArduinoIDE

การใช้งานโมดูล IOXESP32 Audio shield เล่นไฟล์เสียงจาก MicroSD Card หรือสตรีมไฟล์เสียงจากอินเตอร์เน็ต ให้ใช้ไลบารี่ IOXESP32Audio ในการเขียนโปรแกรมสั่งงาน

แนะนำให้อ่านบทความด้านล่างนี้ก่อนทำขั้นตอนถัดไป

ติดตั้งไลบารี่ IOXESP32Audio

ติดตั้งไลบารี่ IOXESP32Audio ผ่าน Library Manager ดังนี้

รอจนกว่าจะขึ้น installed (ดังรูป) เป็นอันจบขั้นตอนติดตั้งไลบารี่ IOXESP32Audio

เริ่มต้นใช้งานไลบารี่ IOXESP32Audio

ในขั้นตอนแรกจำเป็นต้อง include ไลบารี่เข้ามาก่อน โดยใช้คำสั่ง

#include <IOXESP32Audio.h>

จากนั้นใน void setup() ให้เรียกใช้คำสั่ง Audio.begin(); เพื่อให้ไลบารี่เริ่มทำงาน

Audio.begin();

โค้ดโปรแกรมภาพรวมเป็นดังนี้

#include <IOXESP32Audio.h>

void setup() {
  Audio.begin();
}

void loop() {
  delay(10);
}

การเล่นเสียงจาก MicroSD Card

รองรับไฟล์ MP3 และไฟล์ WAV ที่ชื่อมีความยาวไม่เกิน 4 ตัวอักษร คัดลอกไฟล์เสียงที่ต้องการลงไปใน MicroSD Card แล้วนำ MicroSD Card ไปเสียบเข้ากับโมดูล IOXESP32 Audio shield

การเขียนโปรแกรมให้เล่นไฟล์เสียงจาก MicroSD Card สามารถทำได้โดยใช้คำสั่ง Audio.play(); มีรูปแบบการใช้งานดังนี้

Audio.play("SD:/โฟลเดอร์เก็บไฟล์/ชื่อไฟล์.mp3");

ตัวอย่างต้องการให้เล่นไฟล์ 1.mp3 ที่อยู่ / ให้เขียนโปรแกรมดังนี้

Audio.play("SD:/1.mp3");

โค้ดโปรแกรมภาพรวมเป็นดังนี้

#include <IOXESP32Audio.h>

void setup() {
  Audio.begin();
  Audio.play("SD:/1.mp3"); // เล่นไฟล์ 1.mp3
}

void loop() {
  delay(10);
}

การสตรีมเสียงจากอินเตอร์เน็ต

จากโค้ดโปรแกรมในส่วนของ เริ่มต้นใช้งานไลบารี่ IOXESP32Audio ให้เพิ่มโค้ดโปรแกรมที่ใช้เชื่อมต่อ WiFi ลงใน void setup() ดังนี้

  WiFi.mode(WIFI_STA);
  WiFi.begin("ชื่อ WiFi", "รหัสผ่าน WiFi");
  Serial.println();

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

การเขียนโปรแกรมให้เล่นไฟล์เสียงจากอินเตอร์เน็ต หรือสตรีมเสียงจากวิทยุออนไลน์ ให้ใช้คำสั่ง Audio.play(); มีรูปแบบการใช้งานดังนี้

Audio.play("ลิ้งไฟล์เสียง");

ตัวอย่างการเขียนโปรแกรมให้สตรีมเสียงจากสถานีวิทยุออนไลน์ COOL Fahrenheit 93 มีลิ้งของสถานีเป็น http://111.223.51.7:8100/; สามารถเขียนโปรแกรมได้ดังนี้

Audio.play("http://111.223.51.7:8100/;"); // COOL Fahrenheit 93

โค้ดโปรแกรมภาพรวมเป็นดังนี้

#include <IOXESP32Audio.h>

void setup() {
  Serial.begin(115200);
  Audio.begin();

  WiFi.mode(WIFI_STA);
  WiFi.begin("ชื่อ WiFi", "รหัสผ่าน WiFi");
  Serial.println();

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Audio.play("http://111.223.51.7:8100/;"); // เล่นไฟล์เสียงที่ http://111.223.51.7:8100/;
}

void loop() {
  delay(10);
}

แปลงข้อความเป็นเสียง

การแปลงข้อความเป็นเสียง หรือ Text-to-Speech (TTS) สามารถทำได้โดยใช้คำสั่ง Audio.play(); มีรูปแบบการใช้งานดังนี้

Audio.play("ข้อความที่ต้องการแปลงเป็นเสียง", "รหัสย่อภาษา 2 ตัวอักษร");

ตัวอย่างการเขียนโปรแกรมให้แปลงข้อความภาษาไทย "สวัสดีชาวโลก" เป็นเสียง สามารถเขียนโปรแกรมได้ดังนี้

Audio.play("สวัสดีชาวโลก", "TH");

ตัวอย่างการเขียนโปรแกรมให้แปลงข้อความภาษาอังกฤษ "Hello, mars !" เป็นเสียง สามารถเขียนโปรแกรมได้ดังนี้

Audio.play("Hello, mars !", "EN");

โค้ดโปรแกรมภาพรวมเป็นดังนี้

#include <IOXESP32Audio.h>

void setup() {
  Audio.begin();
  Audio.play("สวัสดีชาวโลก", "TH"); // แปลงข้อความเป็นเสียง
}

void loop() {
  delay(10);
}

การควบคุมการเล่นเสียง

มีคำสั่งควบคุมการเล่นเสียงเพิ่มเติมดังนี้

Audio.play(); // เล่นเสียงต่อจากจุดเดิม (ใช้คู้กับ Audio.pause();)
Audio.pause(); // หยุดเล่นเสียงชั่วคราว
Audio.resume(); // เล่นเสียงต่อจากจุดเดิม (เหมือนกับคำสั่ง Audio.play();)
Audio.stop(); // หยุดเล่นเสียง

Audio.isPlaying(); // ใช้ตรวจสอบว่ากำลังเล่นไฟล์เสียงอยู่หรือไม่ : คืนค่า true หากเล่นอยู่ และคืนว่า false หากไม่ได้เล่นอยู่

Audio.setVolume(level); // ใช้กำหนดความดังของเสียง กำหนดได้ 0 ถึง 100
Audio.getVolume(); // ใช้อ่านค่าความดังของเสียง : คืนค่าเป็นตัวเลขจำนวนเต็ม 0 ถึง 100

ตัวอย่างการใช้งาน

#include <IOXESP32Audio.h>

void setup() {
  Audio.begin();
  Audio.setVolume(50); // กำหนดให้เสียงดัง 50%
  Audio.play("SD:/1.mp3"); // เล่นไฟล์ 1.mp3
  
  delay(5000); // หน่วงเวลา 5 วินาที
  Audio.pause(); // สั่งให้หยุดเล่นชั่วคราว
  delay(5000); // หน่วงเวลา 5 วินาที
  Audio.stop(); // หยุดเล่นเสียง
  delay(5000); // หน่วงเวลา 5 วินาที
  Audio.play("SD:/1.mp3"); // เล่นไฟล์ 2.mp3
  delay(5000); // หน่วงเวลา 5 วินาที
  Audio.stop(); // หยุดเล่นเสียง
}

void loop() {
  delay(10);
}

Last updated