Search Code

ESP32 Eğitimi 39/55 - ESP32'yi Bluetooth Müzik Çalar Olarak Kullanma | SunFounder'ın ESP32 IoT Öğrenme Kiti

ESP32 Eğitimi 39/55 - ESP32'yi Bluetooth Müzik Çalar Olarak Kullanma | SunFounder'ın ESP32 IoT Öğrenme Kiti

Bu eğitimde, ESP32’yi bir Bluetooth müzik çalar olarak nasıl kullanacağımızı keşfedeceğiz. ESP32, Wi-Fi ve Bluetooth yeteneklerini entegre eden güçlü bir mikrodenetleyicidir ve bu da onu IoT uygulamaları için mükemmel bir seçim haline getirir. ESP32’ye ses akışı sağlamak için bir Bluetooth A2DP alıcısı kullanacağız ve bu ses, ESP32’nin yerleşik DAC’i aracılığıyla çıkış verilebilir.

ses_modülü

Bunu başarmak için, ESP32’yi Bluetooth ses akışını işlemek üzere gerekli kütüphaneler ve yapılandırmalarla kuracağız. Bu eğitimin sonunda, akıllı telefonunuzdan veya diğer Bluetooth özellikli cihazlardan kontrol edilebilen çalışan bir Bluetooth ses çalarınız olacak. Daha ayrıntılı bir açıklama için videoyu mutlaka izleyin (videoda 00:00’da).

hoparlör_resmi

Donanım Açıklaması

Bu projenin ana bileşenleri ESP32 mikrodenetleyicisi ve BluetoothA2DPSink kütüphanesini içerir. ESP32, herhangi bir ek donanım olmadan ses çıkışına izin veren yerleşik bir Dijital-Analog Dönüştürücü (DAC) ile donatılmıştır. BluetoothA2DPSink kütüphanesi, bir Bluetooth ses alıcısı kurma sürecini basitleştirir ve Bluetooth üzerinden ses akışları almanızı sağlar.

ESP32, ses çıkışı dahil çeşitli amaçlar için yapılandırılabilen birden fazla GPIO pinine sahiptir. Kurulumumuzda, sol ve sağ ses kanalları için GPIO25’i kullanacağız. Kütüphane, Bluetooth bağlantısını ve ses akışını yönetmeyi üstlenir; bu da altta yatan Bluetooth protokollerinden ziyade uygulamaya odaklanmayı kolaylaştırır.

Veri Sayfası Ayrıntıları

Üretici Espressif Systems
Parça numarası ESP32-WROOM-32
Mantık/G/Ç voltajı 3,3 V
Besleme voltajı 3,0–3,6 V
Çıkış akımı (kanal başına) 40 mA’ya kadar
PWM frekansı kılavuzu 1 KHz - 40 KHz
Termal sınırlar 125 °C
Paket QFN48
Notlar / varyantlar Çeşitli yapılandırmalar mevcuttur

 

  • Ses çıkışı için ortak GPIO pinleri kullanılabilir.
  • Hasarları önlemek için doğru güç kaynağını (3,3 V) sağlayın.
  • Geliştirilmiş Bluetooth performansı için donanım yazılımını güncel tutun.
  • Gelişmiş Bluetooth menzili için harici antenler kullanın.
  • DAC çıkış sınırlamalarının farkında olun; daha yüksek kaliteli ses için harici DAC’ler kullanın.

Bağlantı Talimatları

esp32-39_bluetooth_audio_wiring

ESP32’yi Bluetooth ses çalma için bağlamak için, önce ESP32’yi bir güç kaynağına bağlayın. Gerekli gücü sağlayacak olan bilgisayarınıza bağlamak için bir USB kablosu kullanın. Ardından, ses çıkış pinlerini bağlayın: sol ses kanalını GPIO25’e ve sağ ses kanalını aynı GPIO25 pinine bağlayın. Bu bağlantılar için jumper kabloları kullanabilirsiniz.

ESP32’nin yerleşik bir DAC’i olduğundan, ses çıkışı için ek bileşenlere ihtiyacınız yoktur. Ancak, ESP32 ile kullanabileceğiniz herhangi bir harici ses ekipmanı arasında toprak bağlantısının ortak olduğundan emin olun. Bu kurulum, Bluetooth üzerinden doğrudan ESP32’ye ses akışı yapmanızı sağlayacaktır.

Kod Örnekleri ve Açıklama

Aşağıdaki kod parçacığı, Bluetooth A2DP alıcısını başlatır ve ses çalma için I2S yapılandırmasını ayarlar.


// ==> ESP32’nin yerleşik DAC’ini kullanma örneği

#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");
}

setup() fonksiyonunda, önce I2S ayarlarını yapılandırır, modu ana olarak belirtir ve yerleşik DAC’i etkinleştiririz. Örnekleme hızı, ses çalma için standart olan 44100 Hz olarak ayarlanır. Bluetooth A2DP alıcısı daha sonra belirtilen bir adla başlatılır ve diğer Bluetooth cihazları tarafından tanınmasını sağlar.

loop() fonksiyonu boş kalır, çünkü Bluetooth kütüphanesi akışı arka planda yönetir. Daha fazla ayrıntı için makalenin altında yüklenen tam kodu kontrol edebilirsiniz.

Gösterim / Ne Beklemeli

Kurulum tamamlandığında ve kod yüklendiğinde, ESP32’yi açın ve Bluetooth özellikli cihazınızda “ESP32_Bluetooth” adlı cihazı arayın. Bağlandıktan sonra, bağlı cihazda çalınan herhangi bir ses ESP32 üzerinden akış sağlamalıdır. Bağlantılar doğru ve güç kaynağı stabil olduğu sürece DAC aracılığıyla yüksek kaliteli ses çıkışı bekleyebilirsiniz.

Yaygın tuzaklar arasında ses çıkış pinlerinin yanlış bağlanması ve yetersiz güç kaynağı bulunur. ESP32’nin düzgün şekilde beslendiğinden ve toprak bağlantılarının güvenli olduğundan emin olun. Herhangi bir sorunla karşılaşırsanız, sorun giderme ipuçları için videoyu kontrol edin (videoda 00:00’da).

Video Zaman Damgaları

  • 00:00 Başlangıç
  • 2:12 Giriş
  • 5:22 Bağlantı açıklaması
  • 7:51 Arduino Kodu açıklaması
  • 10:37 Arduino IDE’de ESP32 kartı ve COM portu seçme
  • 12:19 Cep telefonundan ESP32 kullanarak müzik çalma
  • 13:30 ESP32’ye daha güçlü amplifikatör bağlama

Görseller

esp32-39_bluetooth_audio_wiring
esp32-39_bluetooth_audio_wiring
speaker_pic
speaker_pic
audio_module
audio_module
840-ESP32 Tutorial 39/55- Arduino code for playing audio via bluetooth
Dil: C++

// ==> 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() {
}

Kaynaklar ve referanslar

Dosyalar📁

Dosya mevcut değil.