Search Code

ESP32 பயிற்சி 39/55 - ESP32 ஐ புளூடூத் இசை இயக்கியாக பயன்படுத்துதல் | SunFounder இன் ESP32 IoT கற்றல் கிட்

ESP32 பயிற்சி 39/55 - ESP32 ஐ புளூடூத் இசை இயக்கியாக பயன்படுத்துதல் | SunFounder இன் ESP32 IoT கற்றல் கிட்

இந்த டுடோரியலில், ESP32 ஐ புளூடூத் இசை பிளேயராக எவ்வாறு பயன்படுத்துவது என்பதை ஆராய்வோம். ESP32 என்பது Wi-Fi மற்றும் புளூடூத் திறன்களை ஒருங்கிணைக்கும் ஒரு சக்திவாய்ந்த மைக்ரோகண்ட்ரோலர் ஆகும், இது IoT பயன்பாடுகளுக்கு சிறந்த தேர்வாக அமைகிறது. ESP32 க்கு ஆடியோவை ஸ்ட்ரீம் செய்ய புளூடூத் A2DP சிங்க்கைப் பயன்படுத்துவோம், பின்னர் அதை அதன் உள்ளமைக்கப்பட்ட DAC வழியாக வெளியிடலாம்.

audio_module

இதை அடைய, புளூடூத் ஆடியோ ஸ்ட்ரீமிங்கைக் கையாள தேவையான நூலகங்கள் மற்றும் உள்ளமைவுகளுடன் ESP32 ஐ அமைப்போம். இந்த டுடோரியலின் முடிவில், உங்கள் ஸ்மார்ட்போன் அல்லது பிற புளூடூத்-இயக்கப்பட்ட சாதனங்களிலிருந்து கட்டுப்படுத்தக்கூடிய ஒரு செயல்படும் புளூடூத் ஆடியோ பிளேயர் உங்களிடம் இருக்கும். மேலும் விரிவான விளக்கத்திற்கு, வீடியோவைப் பார்க்க மறக்காதீர்கள் (வீடியோவில் 00:00 இல்).

speaker_pic

வன்பொருள் விளக்கம்

இந்த திட்டத்திற்கான முக்கிய கூறுகளில் ESP32 மைக்ரோகண்ட்ரோலர் மற்றும் BluetoothA2DPSink நூலகம் ஆகியவை அடங்கும். ESP32 ஆனது உள்ளமைக்கப்பட்ட டிஜிட்டல்-டு-அனலாக் மாற்றி (DAC) பொருத்தப்பட்டுள்ளது, இது கூடுதல் வன்பொருள் இல்லாமல் ஆடியோ வெளியீட்டை அனுமதிக்கிறது. BluetoothA2DPSink நூலகம் புளூடூத் ஆடியோ சிங்க்கை அமைப்பதற்கான செயல்முறையை எளிதாக்குகிறது, இது புளூடூத் வழியாக ஆடியோ ஸ்ட்ரீம்களைப் பெற உங்களை அனுமதிக்கிறது.

ESP32 ஆனது பல GPIO பின்களைக் கொண்டுள்ளது, அவை ஆடியோ வெளியீடு உட்பட பல்வேறு நோக்கங்களுக்காக உள்ளமைக்கப்படலாம். எங்கள் அமைப்பில், இடது மற்றும் வலது ஆடியோ சேனல்களுக்கு GPIO25 ஐப் பயன்படுத்துவோம். நூலகம் புளூடூத் இணைப்பு மற்றும் ஆடியோ ஸ்ட்ரீமிங்கை நிர்வகிப்பதைக் கவனித்துக்கொள்கிறது, இது அடிப்படை புளூடூத் நெறிமுறைகளைக் காட்டிலும் பயன்பாட்டில் கவனம் செலுத்துவதை எளிதாக்குகிறது.

டேட்டாஷீட் விவரங்கள்

உற்பத்தியாளர் Espressif Systems
பகுதி எண் 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 Arduino குறியீடு விளக்கம்
  • 10:37 Arduino 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() {
}

வளங்கள் மற்றும் மேற்கோள்கள்

கோப்புகள்📁

கோப்புகள் கிடைக்கவில்லை.