કોડ શોધો

ESP32 ટ્યુટોરિયલ 39/55 - ESP32 ને બ્લૂટૂથ મ્યુઝિક પ્લેયર તરીકે ઉપયોગ કરવું | SunFounder ની ESP32 IoT લર્નિંગ કિટ

ESP32 ટ્યુટોરિયલ 39/55 - ESP32 ને બ્લૂટૂથ મ્યુઝિક પ્લેયર તરીકે ઉપયોગ કરવું | SunFounder ની ESP32 IoT લર્નિંગ કિટ

આ ટ્યુટોરિયલમાં, આપણે ESP32 ને બ્લૂટૂથ મ્યુઝિક પ્લેયર તરીકે કેવી રીતે ઉપયોગ કરવો તે શોધીશું. ESP32 એક શક્તિશાળી માઇક્રોકંટ્રોલર છે જે Wi-Fi અને બ્લૂટૂથ ક્ષમતાઓને એકીકૃત કરે છે, જે તેને IoT એપ્લિકેશન્સ માટે ઉત્તમ પસંદગી બનાવે છે. આપણે ઓડિયોને ESP32 પર સ્ટ્રીમ કરવા માટે બ્લૂટૂથ A2DP સિંકનો ઉપયોગ કરીશું, જે પછી તેના બિલ્ટ-ઇન DAC દ્વારા આઉટપુટ કરી શકાય છે.

ઓડિયો_મોડ્યુલ

આ હાંસલ કરવા માટે, આપણે બ્લૂટૂથ ઓડિયો સ્ટ્રીમિંગને હેન્ડલ કરવા માટે જરૂરી લાઇબ્રેરીઓ અને રૂપરેખાંકનો સાથે ESP32 સેટ કરીશું. આ ટ્યુટોરિયલના અંત સુધીમાં, તમારી પાસે કાર્યરત બ્લૂટૂથ ઓડિયો પ્લેયર હશે જે તમારા સ્માર્ટફોન અથવા અન્ય બ્લૂટૂથ-સક્ષમ ઉપકરણોથી નિયંત્રિત કરી શકાય છે. વધુ વિગતવાર સમજૂતી માટે, વિડિયો (વિડિયોમાં 00:00 પર) ચોક્કસપણે જુઓ.

સ્પીકર_પિક

હાર્ડવેર સમજાવ્યું

આ પ્રોજેક્ટ માટેના મુખ્ય ઘટકોમાં ESP32 માઇક્રોકંટ્રોલર અને BluetoothA2DPSink લાઇબ્રેરીનો સમાવેશ થાય છે. ESP32 બિલ્ટ-ઇન ડિજિટલ-ટુ-એનાલોગ કન્વર્ટર (DAC) થી સજ્જ છે જે કોઈપણ વધારાના હાર્ડવેર વિના ઓડિયો આઉટપુટની મંજૂરી આપે છે. BluetoothA2DPSink લાઇબ્રેરી બ્લૂટૂથ ઓડિયો સિંક સેટ કરવાની પ્રક્રિયાને સરળ બનાવે છે, જે તમને બ્લૂટૂથ પર ઓડિયો સ્ટ્રીમ્સ પ્રાપ્ત કરવામાં સક્ષમ બનાવે છે.

ESP32 પાસે બહુવિધ GPIO પિન છે જે ઓડિયો આઉટપુટ સહિત વિવિધ હેતુઓ માટે રૂપરેખાંકિત કરી શકાય છે. અમારી સેટઅપમાં, આપણે ડાબા અને જમણા ઓડિયો ચેનલો માટે GPIO25 નો ઉપયોગ કરીશું. લાઇબ્રેરી બ્લૂટૂથ કનેક્શન અને ઓડિયો સ્ટ્રીમિંગને મેનેજ કરવાની કાળજી લે છે, જે અંતર્ગત બ્લૂટૂથ પ્રોટોકોલ્સને બદલે એપ્લિકેશન પર ધ્યાન કેન્દ્રિત કરવાનું સરળ બનાવે છે.

ડેટાશીટ વિગતો

ઉત્પાદક એસ્પ્રેસિફ સિસ્ટમ્સ
ભાગ નંબર ESP32-WROOM-32
લોજિક/IO વોલ્ટેજ 3.3 V
સપ્લાય વોલ્ટેજ 3.0–3.6 V
આઉટપુટ કરંટ (પ્રતિ ચેનલ) 40 mA સુધી
PWM ફ્રીક્વન્સી માર્ગદર્શન 1 KHz - 40 KHz
થર્મલ મર્યાદાઓ 125 °C
પેકેજ QFN48
નોંધો / વેરિઅન્ટ્સ વિવિધ રૂપરેખાંકનો ઉપલબ્ધ છે

 

  • સામાન્ય GPIO પિન ઓડિયો આઉટપુટ માટે ઉપયોગમાં લઈ શકાય છે.
  • નુકસાન ટાળવા માટે યોગ્ય પાવર સપ્લાય (3.3 V) ની ખાતરી કરો.
  • સુધારેલ બ્લૂટૂથ પ્રદર્શન માટે ફર્મવેર અપડેટ રાખો.
  • ઉન્નત બ્લૂટૂથ રેન્જ માટે બાહ્ય એન્ટેનાનો ઉપયોગ કરો.
  • DAC આઉટપુટ મર્યાદાઓથી વાકેફ રહો; ઉચ્ચ ગુણવત્તાવાળા ઓડિયો માટે બાહ્ય DAC નો ઉપયોગ કરો.

વાયરિંગ સૂચનાઓ

esp32-39_bluetooth_audio_wiring

બ્લૂટૂથ ઓડિયો પ્લેબેક માટે ESP32 ને વાયર કરવા માટે, પહેલા ESP32 ને પાવર સ્રોત સાથે કનેક્ટ કરો. તેને તમારા કમ્પ્યુટર સાથે કનેક્ટ કરવા માટે USB કેબલનો ઉપયોગ કરો, જે જરૂરી પાવર પ્રદાન કરશે. આગળ, ઓડિયો આઉટપુટ પિન કનેક્ટ કરો: ડાબી ઓડિયો ચેનલને GPIO25 સાથે અને જમણી ઓડિયો ચેનલને તે જ GPIO25 પિન સાથે કનેક્ટ કરો. આ કનેક્શન્સ માટે તમે જમ્પર વાયરનો ઉપયોગ કરી શકો છો.

ESP32 પાસે બિલ્ટ-ઇન DAC હોવાથી, ઓડિયો આઉટપુટ માટે તમારે કોઈ વધારાના ઘટકોની જરૂર નથી. જો કે, ખાતરી કરો કે ESP32 અને તમે ઉપયોગ કરી શકો તેવા કોઈપણ બાહ્ય ઓડિયો સાધનો વચ્ચે ગ્રાઉન્ડ કનેક્શન સામાન્ય છે. આ સેટઅપ તમને બ્લૂટૂથ દ્વારા સીધા ESP32 પર ઓડિયો સ્ટ્રીમ કરવાની મંજૂરી આપશે.

કોડ ઉદાહરણો અને વોકથ્રુ

નીચેનો કોડ સ્નિપેટ બ્લૂટૂથ A2DP સિંક શરૂ કરે છે અને ઓડિયો પ્લેબેક માટે I2S રૂપરેખાંકન સેટ કરે છે.


// ==> ESP32 ના બિલ્ટ-ઇન DAC નો ઉપયોગ કરવાનું ઉદાહરણ

#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() ફંક્શનમાં, આપણે પહેલા I2S સેટિંગ્સ રૂપરેખાંકિત કરીએ છીએ, મોડને માસ્ટર તરીકે સ્પષ્ટ કરીએ છીએ અને બિલ્ટ-ઇન DAC સક્ષમ કરીએ છીએ. સેમ્પલ રેટ 44100 Hz પર સેટ છે, જે ઓડિયો પ્લેબેક માટે પ્રમાણભૂત છે. બ્લૂટૂથ A2DP સિંક પછી નિર્દિષ્ટ નામ સાથે શરૂ કરવામાં આવે છે, જે તેને અન્ય બ્લૂટૂથ ઉપકરણો દ્વારા ઓળખી શકાય તેવું બનાવે છે.

loop() ફંક્શન ખાલી રહે છે, કારણ કે બ્લૂટૂથ લાઇબ્રેરી પૃષ્ઠભૂમિમાં સ્ટ્રીમિંગને હેન્ડલ કરે છે. વધુ વિગતો માટે તમે લેખની નીચે લોડ કરેલો સંપૂર્ણ કોડ ચકાસી શકો છો.

પ્રદર્શન / શું અપેક્ષા રાખવી

એકવાર સેટઅપ પૂર્ણ થઈ જાય અને કોડ અપલોડ થઈ જાય, પછી ESP32 ચાલુ કરો અને તમારા બ્લૂટૂથ-સક્ષમ ઉપકરણ પર "ESP32_Bluetooth" નામનું ઉપકરણ શોધો. કનેક્ટ થયા પછી, કનેક્ટેડ ઉપકરણ પર વગાડવામાં આવતું કોઈપણ ઓડિયો ESP32 દ્વારા સ્ટ્રીમ થવું જોઈએ. જ્યાં સુધી કનેક્શન્સ સાચા છે અને પાવર સપ્લાય સ્થિર છે ત્યાં સુધી તમે DAC દ્વારા ઉચ્ચ-ગુણવત્તાવાળા ઓડિયો આઉટપુટની અપેક્ષા કરી શકો છો.

સામાન્ય મુશ્કેલીઓમાં ઓડિયો આઉટપુટ પિનનું ખોટું વાયરિંગ અને અપૂરતો પાવર સપ્લાય શામેલ છે. ખાતરી કરો કે ESP32 યોગ્ય રીતે પાવર થયેલ છે અને ગ્રાઉન્ડ કનેક્શન્સ સુરક્ષિત છે. જો તમને કોઈ સમસ્યા આવે, તો મુશ્કેલીનિવારણ ટિપ્સ માટે વિડિયો જુઓ (વિડિયોમાં 00:00 પર).

વિડિયો ટાઇમસ્ટેમ્પ્સ

  • 00:00 શરૂઆત
  • 2:12 પરિચય
  • 5:22 વાયરિંગ સમજાવ્યું
  • 7:51 આર્ડુઇનો કોડ સમજાવ્યો
  • 10:37 આર્ડુઇનો IDE માં ESP32 બોર્ડ અને COM પોર્ટ પસંદ કરવું
  • 12:19 મોબાઇલ ફોનથી ESP32 નો ઉપયોગ કરીને મ્યુઝિક વગાડવું
  • 13:30 ESP32 સાથે વધુ શક્તિશાળી એમ્પ્લીફાયર કનેક્ટ કરવું

છબીઓ

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
ભાષા: 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() {
}

સંસાધનો અને સંદર્ભો

ફાઇલો📁

કોઈ ફાઇલો ઉપલબ્ધ નથી.