Search Code

Návod pre ESP32 39/55 - Použitie ESP32 ako Bluetooth prehrávača hudby | SunFounder's ESP32 IoT výučbová súprava

Návod pre ESP32 39/55 - Použitie ESP32 ako Bluetooth prehrávača hudby | SunFounder's ESP32 IoT výučbová súprava

V tomto návode si ukážeme, ako využiť ESP32 ako Bluetooth prehrávač hudby. ESP32 je výkonný mikrokontrolér, ktorý integruje Wi-Fi a Bluetooth možnosti, čo z neho robí vynikajúcu voľbu pre IoT aplikácie. Použijeme Bluetooth A2DP sink na streamovanie audia do ESP32, ktoré potom môže byť výstupované cez jeho vstavaný DAC.

audio_module

Aby sme to dosiahli, nastavíme ESP32 s potrebnými knižnicami a konfiguráciami na spracovanie Bluetooth audio streamovania. Na konci tohto návodu budete mať funkčný Bluetooth audio prehrávač, ktorý možno ovládať z vášho smartfónu alebo iných zariadení s podporou Bluetooth. Podrobnejšie vysvetlenie nájdete vo videu (vo videu o 00:00).

speaker_pic

Vysvetlenie hardvéru

Hlavné komponenty pre tento projekt zahŕňajú mikrokontrolér ESP32 a knižnicu BluetoothA2DPSink. ESP32 je vybavený vstavaným digitálno-analógovým prevodníkom (DAC), ktorý umožňuje audio výstup bez akéhokoľvek dodatočného hardvéru. Knižnica BluetoothA2DPSink zjednodušuje proces nastavenia Bluetooth audio sinku, čo vám umožňuje prijímať audio streamy cez Bluetooth.

ESP32 má viacero GPIO pinov, ktoré možno nakonfigurovať na rôzne účely, vrátane audio výstupu. V našom nastavení použijeme GPIO25 pre ľavý a pravý audio kanál. Knižnica sa stará o správu Bluetooth pripojenia a audio streamovania, čo uľahčuje zameranie sa na aplikáciu namiesto základných Bluetooth protokolov.

Podrobnosti z datasheetu

Výrobca Espressif Systems
Označenie dielu ESP32-WROOM-32
Logické/IO napätie 3,3 V
Napájacie napätie 3,0–3,6 V
Výstupný prúd (na kanál) Až 40 mA
Odporúčaná PWM frekvencia 1 kHz - 40 kHz
Tepelné limity 125 °C
Puzdro QFN48
Poznámky / varianty Dostupné rôzne konfigurácie

 

  • Bežné GPIO piny možno použiť na audio výstup.
  • Zabezpečte správne napájanie (3,3 V), aby nedošlo k poškodeniu.
  • Udržiavajte firmvér aktualizovaný pre lepší výkon Bluetooth.
  • Použite externé antény na zvýšenie dosahu Bluetooth.
  • Buďte si vedomí obmedzení DAC výstupu; pre vyššiu kvalitu audia použite externé DAC.

Pokyny na zapojenie

esp32-39_bluetooth_audio_wiring

Na zapojenie ESP32 pre Bluetooth audio prehrávanie začnite pripojením ESP32 k zdroju napájania. Použite USB kábel na pripojenie k počítaču, ktorý poskytne potrebné napájanie. Ďalej pripojte audio výstupné piny: pripojte ľavý audio kanál na GPIO25 a pravý audio kanál na rovnaký pin GPIO25. Na tieto pripojenia môžete použiť prepojovacie vodiče.

Keďže ESP32 má vstavaný DAC, nepotrebujete žiadne ďalšie komponenty na audio výstup. Uistite sa však, že uzemnenie je spoločné medzi ESP32 a akýmkoľvek externým audio zariadením, ktoré by ste mohli použiť. Toto nastavenie vám umožní streamovať audio priamo do ESP32 cez Bluetooth.

Príklady kódu a vysvetlenie

Nasledujúci úryvok kódu inicializuje Bluetooth A2DP sink a nastaví I2S konfiguráciu pre audio prehrávanie.


// ==> Príklad na použitie vstavaného DAC 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");
}

Vo funkcii setup() najprv nakonfigurujeme I2S nastavenia, pričom špecifikujeme režim ako master a povolíme vstavaný DAC. Vzorkovacia frekvencia je nastavená na 44100 Hz, čo je štandard pre audio prehrávanie. Bluetooth A2DP sink sa potom spustí so zadaným názvom, čo umožní jeho rozpoznanie inými Bluetooth zariadeniami.

Funkcia loop() zostáva prázdna, pretože Bluetooth knižnica spracováva streamovanie na pozadí. Kompletný kód načítaný nižšie pod článkom si môžete pozrieť pre ďalšie podrobnosti.

Demonštrácia / Čo očakávať

Po dokončení nastavenia a nahraní kódu zapnite ESP32 a vyhľadajte zariadenie s názvom "ESP32_Bluetooth" na vašom zariadení s podporou Bluetooth. Po pripojení sa akýkoľvek audio prehrávaný na pripojenom zariadení bude streamovať cez ESP32. Môžete očakávať vysokokvalitný audio výstup cez DAC, pokiaľ sú pripojenia správne a napájanie je stabilné.

Bežné problémy zahŕňajú nesprávne zapojenie audio výstupných pinov a nedostatočné napájanie. Uistite sa, že ESP32 je správne napájané a že uzemňovacie pripojenia sú bezpečné. Ak narazíte na problémy, pozrite si video s tipmi na riešenie problémov (vo videu o 00:00).

Časové značky videa

  • 00:00 Začiatok
  • 2:12 Úvod
  • 5:22 Vysvetlenie zapojenia
  • 7:51 Vysvetlenie Arduino kódu
  • 10:37 Výber dosky ESP32 a COM portu v Arduino IDE
  • 12:19 Prehrávanie hudby pomocou ESP32 z mobilného telefónu
  • 13:30 Pripojenie výkonnejšieho zosilňovača k ESP32

Images

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
Language: 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() {
}

Resources & references

Files📁

No files available.