การใช้งาน IOXESP32 Audio shield ทำลำโพงบลูทูธ

ใช้บอร์ด IOXESP32 ร่วมกับโมดูล IOXESP32 Audio shield ทำลำโพงบลูทูธ เขียนโปรแกรมด้วย ArduinoIDE

บอร์ด IOXESP32 ใช้ไอซีไมโครคอนโทรลเลอร์ ESP32 รองรับการเชื่อมต่อผ่านบลูทูธด้วยเทคโนโลยีบลูทูธ 4.2 สามารถรับเสียงเพลงจากบลูทูธแล้วส่งเข้า IOXESP32 Audio shield เพื่อส่งเสียงออกลำโพงได้ เขียนโปรแกรมสั่งงานด้วย ArduinoIDE

ดูวีดีโอสาธิตการทำงานได้ที่ https://youtu.be/bzBUKASrz_Q

สั่งซื้ออุปกรณ์ที่เกี่ยวข้องทั้งหมดได้ที่ https://www.artronshop.co.th/product/tag/ioxesp32

เตรียมฮาร์ดแวร์

ขอให้อ่านบทความต่อไปนี้เพื่อจัดเตรียมฮาร์ดแวร์ให้พร้อมเขียนโปรแกรมสั่งงานต่อไป

pageการต่อ IOXESP32 Audio shield เข้ากับบอร์ด IOXESP32pageการเตรียม IOXESP32 Audio shield ให้พร้อมเขียนโปรแกรมสั่งงาน

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

ไลบารี่ esp32_bt_music_receiver พัฒนาโดย Phil Schatzmann แห่ง www.pschatzmann.ch ออกแบบใช้งานได้ง่าย และรองรับกับฮาร์ดแวร์ที่หลากหลาย ด้วยการแก้ไขโค้ดโปรแกรมตัวอย่างเพียงเล็กน้อย ก็สามารถใช้งานร่วมกับโมดูล IOXESP32 Audio shield ได้เลย

เริ่มต้น ให้เข้าไปดาวน์โหลดไลบารี่ esp32_bt_music_receiver ได้ที่ https://github.com/pschatzmann/esp32_bt_music_receiver

เมื่อเข้าไปที่ลิ้งดังกล่าวแล้ว ให้กดปุ่ม Code แล้วกด Download ZIP

จะได้ไฟล์ esp32_bt_music_receiver-master.zip มา เปิดไฟล์ด้วยโปรแกรม WinRAR หรือ WinZIP หรือ 7-Zip จะเจอโฟลเดอร์ esp32_bt_music_receiver-master ให้คลายไฟล์ออกมา แล้วนำโฟลเดอร์ esp32_bt_music_receiver-master ไปใส่ใน Documents\Arduino\libraries

เปิดโปรแกรม ArduinoIDE ขึ้นมา แล้วกดไปที่ Sketch > Include Library ค้นหา esp32_bt_music_receiver หากพบ แสดงว่าติดตั้งไลบารี่สำเร็จแล้ว

อัพโหลดโค้ดโปรแกรม

เปิดโปรแกรม ArduinoIDE ขึ้นมา สร้างโปรเจคใหม่ แล้วคัดลอกโค้ดโปรแกรมต่อไปนี้ลงไป

#include <Arduino.h>
#include <esp32_bt_music_receiver.h>

BlootoothA2DSink a2d_sink;

void setup() {
  static const i2s_config_t i2s_config = {
      .mode = (i2s_mode_t) (I2S_MODE_MASTER | I2S_MODE_TX),
      .sample_rate = 44100,
      .bits_per_sample = (i2s_bits_per_sample_t)16,
      .channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT,
      .communication_format = (i2s_comm_format_t) (I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_LSB),
      .intr_alloc_flags = 0, // default interrupt priority
      .dma_buf_count = 8,
      .dma_buf_len = 64,
      .use_apll = false
  };
  a2d_sink.set_i2s_config(i2s_config);
  
  static const i2s_pin_config_t pins = {
    .bck_io_num = 27,
    .ws_io_num =  26,
    .data_out_num = 25,
    .data_in_num = I2S_PIN_NO_CHANGE
  };
  a2d_sink.set_pin_config(pins);

  a2d_sink.start("IOXESP32"); // ตั้งชื่อบลูทูธเป็น IOXESP32
}

void loop() {
  delay(1000);
}

สามารถแก้ไขชื่อบลูทูธที่แสดงได้โดยแก้ไขบรรทัดที่ 28

เชื่อมต่อบอร์ด IOXESP32 เข้ากับเครื่องคอมพิวเตอร์ ที่โปรแกรม ArduinoIDE ให้เลือกบอร์ด เลือกพอร์ตให้ถูกต้อง แล้วอัพโหลดโปรแกรมลงบอร์ด IOXESP32 ได้เลย

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

หลังจากอัพโหลดโปรแกรมเรียบร้อยแล้ว สามารถใช้โทรศัพท์มือถือ หรือคอมพิวเตอร์เชื่อมต่อได้เลย

ทดสอบรับสัญญาณเสียงจากโทรศัพท์มือถือ

ขั้นตอนนี้เป็นการใช้โทรศัพท์มือถือเชื่อมต่อไปที่บอร์ด IOXESP32 เพื่อให้บอร์ดส่งเสียงออกมา

โทรศัพท์มือถือแต่ละรุ่นจะมีขั้นตอนการเชื่อมต่ออุปกรณ์บลูทูธที่แตกต่างกัน แต่มีขั้นตอนที่คล้ายกัน บทความนี้ใช้โทรศัพท์มือถือ OPPO A9 2020 ในการทดสอบ

เปิด Notification Bar ขึ้นมา จากนั้นกดค้างที่สัญลักษณ์บลูทูธ

กดสวิตช์เพื่อเปิดใช้งานบลูทูธ (1) แล้วกดปุ่มค้นหา (2) รอซักครู่ ชื่อบลูทูธที่ตั้งไว้จะแสดงขึ้นมา ให้กดที่ชื่อบลูทูธเพื่อเชื่อมต่อ (3)

เมื่อเชื่อมต่อสำเร็จ จะมีข้อความแจ้ง (ดังรูป)

จากนั้นสามารถใช้แอพพลิเคชั่นต่าง ๆ เล่นเสียงเพลง หรือวีดีโอเพื่อทดสอบได้เลย (ตัวอย่างใช้ Youtube ในการทดสอบ)

Last updated