ESP32-WROOM-32D ve MAX98357A ile Ses Oynatma Uygulaması

Merhaba Sevgili Elfatek Blog Takipçileri,

Ben Melih Can KÖK. Uzun dönem bahar yarı yılı stajım süresince geliştirdiğim ses oynatma projemde hem donanım kurulumundan, hem de yazılım geliştirme sürecinden bahsedeceğim.

ESP32-WROOM-32D Mikrodenetleyicisi ve MAX98357A dijitalden analoga ses dönüştürücüsü kullanarak gerçekleştirdiğim bu uygulama, Bluetooth üzerinden kontrol edilebilen bir ses oynatma sistemi geliştirmeyi hedeflemektedir.

 

Donanım Olarak Kullanılan Malzemeler:

  • 1 adet ESP32-WROOM-32D: Bu güçlü mikrodenetleyici, Wi-Fi ve Bluetooth özelliklerine sahiptir ve bu projede merkezi kontrol ünitesi olarak kullanılmaktadır.
  • 1 adet MAX98357A: Dijitalden analoga ses dönüştürücü (DAC). I2S protokolünü kullanarak dijital ses sinyalini analog ses sinyaline dönüştürür ve bu sinyali hoparlörlere gönderir.
  • 1 adet Hoparlör: Amplifikatörden ses çıkışını almak için kullanılmıştır. (+) ve (-) pinleri bulunmaktadır.
  • 1 adet Breadboard ve 6 adet Erkek-Dişi Jumper Kabloları: Donanım bileşenlerini birbirine bağlamak için kullanılmaktadır.

 

 Fritzing programı yardımıyla çizilen gerekli bağlantı ve pin tablosu aşağıda ektedir..

Dipnot: Bu projede amplifikatörü beslemek için harici 5V güç desteği kullanılmıştır.

ESP32-WROOM-32D mikrodenetleyicisi pin tablosu aşağıda ektedir.

 

Yazılım Olarak Kullanılan Kod Yapısı:

Aşağıdaki Arduino IDE üzerinden yazılmış olan kod parçacığı ESP32 ve MAX98357A modüllerini nasıl bağlayacağınızı ve Bluetooth üzerinden ses oynatmayı nasıl başlatacağınızı gösterir.

———————————————————————————————————————


#include <A2DPVolumeControl.h>

#include <BluetoothA2DP.h>

#include <BluetoothA2DPCommon.h>

#include <BluetoothA2DPSink.h>

#include <BluetoothA2DPSinkQueued.h>

#include <BluetoothA2DPSource.h>

#include <SoundData.h>

#include <config.h>
 

#include “BluetoothA2DPSink.h”

BluetoothA2DPSink a2dp_sink;

void setup() {

    i2s_pin_config_t my_pin_config = {

        .mck_io_num = I2S_PIN_NO_CHANGE,

        .bck_io_num = 27,

        .ws_io_num = 26,

        .data_out_num = 25,

        .data_in_num = I2S_PIN_NO_CHANGE

    };

    a2dp_sink.set_pin_config(my_pin_config);

    a2dp_sink.start(“ELFATEK_MAX98357A_Speaker”);

}

void loop() {

// Ana döngü boş, çünkü ses oynatma işlemi Bluetooth üzerinden otomatik olarak gerçekleşir.
 
}
 
———————————————————————————————————————
 
Bu projede 27, 26 ve 25. pinler kullanılmaktadır. Siz de kendi pin bağlantısını projenize özel ayarlayabilirsiniz.
 
Sonrasında Arduino IDE programında bulunan Tools kısmından Board içine “ESP32 Dev Module” tanımlamanız gerekmektedir.
 
Tanımlanmış örnek görsel aşağıda ektedir.
 
 

Kullanılan Kütüphaneler:

  • BluetoothA2DP: Bu kütüphane, ESP32’nin Bluetooth A2DP (Advanced Audio Distribution Profile) özelliklerini kullanarak kablosuz ses iletimi yapmasını sağlar. Bluetooth üzerinden yüksek kaliteli ses aktarımı yapmayı mümkün kılar.
  • A2DPVolumeControl: Bu kütüphane, Bluetooth üzerinden ses seviyesini kontrol etmek için kullanılır. Sesin istenen seviyede ayarlanmasını sağlar.
  • SoundData: Bu kütüphane, ses verilerini işlemeye yardımcı olur. Bluetooth üzerinden gönderilen ses verilerinin işlenmesini ve oynatılmasını kolaylaştırır.
  • config: Projede kullanılan donanım ve yazılım konfigürasyonlarını içerir. Pin ayarları ve diğer yapılandırmalar burada tanımlanır.

 

Proje için gerekli kütüphane linki:  https://github.com/pschatzmann/ESP32-A2DP

 

Proje Özellikleri:

  • Yüksek Kaliteli Ses: ESP32 mikrodenetleyici ve MAX98357A modülü kullanılarak yüksek kaliteli ses elde edilmiştir.
  • Bluetooth Desteği: Proje, Bluetooth üzerinden kontrol edilebilmekte ve bu sayede kablosuz olarak ses oynatabilmektedir.
  • Dahili Ses Amplifikatörü: MAX98357A modülü, dahili bir ses amplifikatörüne sahiptir ve bu sayede sesi doğrudan hoparlöre iletebilir.
  • Mono Ses Çıkışı: Ses mono modunda çıkmakta, iki kanal tek bir kanalda karıştırılmaktadır.

 

Bu projede, Bluetooth üzerinden yüksek kaliteli ses oynatma işlemlerini gerçekleştirmek için gerekli olan donanım ve yazılım yapılandırmasını ele aldık. Siz de kendi projelerinizde de benzer bir yapı kullanarak kablosuz ses oynatma sistemleri geliştirebilirsiniz.

 

Proje ile ilgili herhangi bir sorunuz olursa benime iletişime geçebilirsiniz.

mcan.kok.1115@gmail.com

https://www.linkedin.com/in/melih-can-k%C3%B6k-249a9b29b/

 

Herkese iyi çalışmalar dilerim ! 😊