Tutorial ESP32 39/55 - Menggunakan ESP32 sebagai Pemutar Musik Bluetooth | Kit Pembelajaran IoT ESP32 dari SunFounder
Dalam tutorial ini, kita akan mempelajari cara memanfaatkan ESP32 sebagai pemutar musik Bluetooth. ESP32 adalah mikrokontroler yang kuat yang mengintegrasikan kemampuan Wi-Fi dan Bluetooth, menjadikannya pilihan yang sangat baik untuk aplikasi IoT. Kita akan menggunakan sink A2DP Bluetooth untuk mengalirkan audio ke ESP32, yang kemudian dapat dikeluarkan melalui DAC internalnya.
Untuk mencapai hal ini, kita akan mengatur ESP32 dengan pustaka dan konfigurasi yang diperlukan untuk menangani streaming audio Bluetooth. Di akhir tutorial ini, Anda akan memiliki pemutar audio Bluetooth yang berfungsi yang dapat dikendalikan dari ponsel cerdas atau perangkat berkemampuan Bluetooth lainnya. Untuk penjelasan yang lebih rinci, pastikan untuk menonton video (di video pada 00:00).
Penjelasan Perangkat Keras
Komponen utama untuk proyek ini termasuk mikrokontroler ESP32 dan pustaka BluetoothA2DPSink. ESP32 dilengkapi dengan Konverter Digital-ke-Analog (DAC) internal yang memungkinkan keluaran audio tanpa perangkat keras tambahan. Pustaka BluetoothA2DPSink menyederhanakan proses pengaturan sink audio Bluetooth, memungkinkan Anda menerima aliran audio melalui Bluetooth.
ESP32 memiliki banyak pin GPIO yang dapat dikonfigurasi untuk berbagai keperluan, termasuk keluaran audio. Dalam pengaturan kami, kami akan menggunakan GPIO25 untuk saluran audio kiri dan kanan. Pustaka menangani pengelolaan koneksi Bluetooth dan streaming audio, sehingga memudahkan untuk fokus pada aplikasi daripada protokol Bluetooth yang mendasarinya.
Detail Datasheet
| Produsen | Espressif Systems |
|---|---|
| Nomor bagian | ESP32-WROOM-32 |
| Tegangan logika/IO | 3,3 V |
| Tegangan suplai | 3,0–3,6 V |
| Arus keluaran (per saluran) | Hingga 40 mA |
| Panduan frekuensi PWM | 1 KHz - 40 KHz |
| Batas termal | 125 °C |
| Kemasan | QFN48 |
| Catatan / varian | Berbagai konfigurasi tersedia |
- Pin GPIO umum dapat digunakan untuk keluaran audio.
- Pastikan suplai daya yang tepat (3,3 V) untuk menghindari kerusakan.
- Jaga firmware tetap diperbarui untuk kinerja Bluetooth yang lebih baik.
- Gunakan antena eksternal untuk jangkauan Bluetooth yang lebih baik.
- Perhatikan batasan keluaran DAC; gunakan DAC eksternal untuk kualitas audio yang lebih tinggi.
Instruksi Pengkabelan

Untuk menghubungkan ESP32 untuk pemutaran audio Bluetooth, mulailah dengan menghubungkan ESP32 ke sumber daya. Gunakan kabel USB untuk menghubungkannya ke komputer Anda, yang akan menyediakan daya yang diperlukan. Selanjutnya, sambungkan pin keluaran audio: sambungkan saluran audio kiri ke GPIO25 dan saluran audio kanan ke pin GPIO25 yang sama. Anda dapat menggunakan kabel jumper untuk koneksi ini.
Karena ESP32 memiliki DAC internal, Anda tidak memerlukan komponen tambahan untuk keluaran audio. Namun, pastikan koneksi ground sama antara ESP32 dan peralatan audio eksternal apa pun yang mungkin Anda gunakan. Pengaturan ini akan memungkinkan Anda untuk mengalirkan audio langsung ke ESP32 melalui Bluetooth.
Contoh Kode & Panduan
Cuplikan kode berikut menginisialisasi sink A2DP Bluetooth dan mengatur konfigurasi I2S untuk pemutaran audio.
// ==> Contoh untuk menggunakan DAC internal ESP32
#include "BluetoothA2DPSink.h"
BluetoothA2DPSink a2dp_sink;
void setup() {
const i2s_config_t i2s_config = {
.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX | I2S_MODE_DAC_BUILT_IN),
.sample_rate = 44100,
.bits_per_sample = (i2s_bits_per_sample_t)16,
.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT,
};
a2dp_sink.set_i2s_config(i2s_config);
a2dp_sink.start("ESP32_Bluetooth");
}
Dalam fungsi setup(), pertama-tama kita mengonfigurasi pengaturan I2S, menentukan mode sebagai master dan mengaktifkan DAC internal. Laju sampel diatur ke 44100 Hz, yang merupakan standar untuk pemutaran audio. Sink A2DP Bluetooth kemudian dimulai dengan nama tertentu, memungkinkannya dikenali oleh perangkat Bluetooth lainnya.
Fungsi loop() tetap kosong, karena pustaka Bluetooth menangani streaming di latar belakang. Anda dapat memeriksa kode lengkap yang dimuat di bawah artikel untuk detail lebih lanjut.
Demonstrasi / Apa yang Diharapkan
Setelah pengaturan selesai dan kode diunggah, nyalakan ESP32 dan cari perangkat bernama "ESP32_Bluetooth" di perangkat berkemampuan Bluetooth Anda. Setelah terhubung, audio apa pun yang diputar di perangkat yang terhubung akan mengalir melalui ESP32. Anda dapat mengharapkan keluaran audio berkualitas tinggi melalui DAC selama koneksi benar dan suplai daya stabil.
Kesalahan umum termasuk pengkabelan pin keluaran audio yang salah dan suplai daya yang tidak memadai. Pastikan ESP32 diberi daya dengan benar dan koneksi ground aman. Jika Anda mengalami masalah, periksa video untuk tips pemecahan masalah (di video pada 00:00).
Stempel Waktu Video
- 00:00 Mulai
- 2:12 Pendahuluan
- 5:22 Penjelasan pengkabelan
- 7:51 Penjelasan Kode Arduino
- 10:37 Memilih papan ESP32 dan port COM di Arduino IDE
- 12:19 Memutar musik menggunakan ESP32 dari ponsel
- 13:30 Menghubungkan amplifier yang lebih kuat ke ESP32
// ==> Example to use built in DAC of ESP32
// R,L connect to GPIO25
#include "BluetoothA2DPSink.h"
BluetoothA2DPSink a2dp_sink;
void setup() {
const i2s_config_t i2s_config = {
.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX | I2S_MODE_DAC_BUILT_IN),
.sample_rate = 44100, // corrected by info from bluetooth
.bits_per_sample = (i2s_bits_per_sample_t)16, //the DAC module will only take the 8bits from MSB
.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT,
.communication_format = (i2s_comm_format_t)I2S_COMM_FORMAT_STAND_MSB,
.intr_alloc_flags = 0, // default interrupt priority
.dma_buf_count = 8,
.dma_buf_len = 64,
.use_apll = false
};
a2dp_sink.set_i2s_config(i2s_config);
a2dp_sink.start("ESP32_Bluetooth");
}
void loop() {
}
Common Course Links
Common Course Files
Sumber daya & referensi
-
DokumentasiESP32 Tutorial 39/55 - SunFounder doc page for Bluetooth music playerdocs.sunfounder.com
Berkas📁
Tidak ada file tersedia.