ESP32 Tutorial 39/55 - Verwendung des ESP32 als Bluetooth-Musikplayer | SunFounders ESP32 IoT-Lernkit

ESP32 Tutorial 39/55 - Verwendung des ESP32 als Bluetooth-Musikplayer | SunFounders ESP32 IoT-Lernkit

In diesem Tutorial werden wir untersuchen, wie man den ESP32 als Bluetooth-Musikplayer nutzen kann. Der ESP32 ist ein leistungsstarker Mikrocontroller, der Wi-Fi- und Bluetooth-Funktionen integriert, was ihn zu einer ausgezeichneten Wahl für IoT-Anwendungen macht. Wir werden einen Bluetooth A2DP-Sink verwenden, um Audio an den ESP32 zu streamen, das dann über seinen integrierten DAC ausgegeben werden kann.

audio_modul

Um dies zu erreichen, werden wir das ESP32 mit den notwendigen Bibliotheken und Konfigurationen einrichten, um Bluetooth-Audio-Streaming zu verarbeiten. Am Ende dieses Tutorials werden Sie einen funktionierenden Bluetooth-Audioplayer haben, der von Ihrem Smartphone oder anderen Bluetooth-fähigen Geräten gesteuert werden kann. Für eine detailliertere Erklärung sollten Sie sich das Video (im Video bei 00:00) ansehen.

sprecher_bild

Hardware erklärt

Die Hauptkomponenten für dieses Projekt umfassen den ESP32-Mikrocontroller und die BluetoothA2DPSink-Bibliothek. Der ESP32 ist mit einem integrierten Digital-Analog-Wandler (DAC) ausgestattet, der eine Audioausgabe ohne zusätzliche Hardware ermöglicht. Die BluetoothA2DPSink-Bibliothek vereinfacht den Prozess des Einrichtens eines Bluetooth-Audio-Sinks und ermöglicht es Ihnen, Audio-Streams über Bluetooth zu empfangen.

Der ESP32 hat mehrere GPIO-Pins, die für verschiedene Zwecke konfiguriert werden können, einschließlich Audioausgabe. In unserem Setup verwenden wir GPIO25 für die linken und rechten Audiokanäle. Die Bibliothek kümmert sich um die Verwaltung der Bluetooth-Verbindung und des Audio-Streams, sodass es einfacher ist, sich auf die Anwendung zu konzentrieren, anstatt auf die zugrunde liegenden Bluetooth-Protokolle.

Produktdatenblatt-Details

Hersteller Espressif Systems
Teilenummer ESP32-WROOM-32
Logik/IO-Spannung 3,3 V
Versorgungsspannung 3,0-3,6 V
Ausgangsstrom (pro Kanal) Bis zu 40 mA
PWM-Frequenzrichtlinien 1 kHz - 40 kHz
Thermische Grenzen 125 °C
Paket QFN48
Notizen / Varianten Verschiedene Konfigurationen verfügbar

  • Allgemeine GPIO-Pins können für die Audioausgabe verwendet werden.
  • Stellen Sie eine ordnungsgemäße Stromversorgung (3,3 V) sicher, um Schäden zu vermeiden.
  • Halten Sie die Firmware aktualisiert, um die Bluetooth-Leistung zu verbessern.
  • Verwenden Sie externe Antennen für eine verbesserte Bluetooth-Reichweite.
  • Seien Sie sich der Einschränkungen des DAC-Ausgangs bewusst; verwenden Sie externe DACs für eine höhere Audioqualität.

Verdrahtungsanweisungen

esp32-39_bluetooth_audio_wiring

Um den ESP32 für die Bluetooth-Audio-Wiedergabe zu verdrahten, beginnen Sie damit, den ESP32 mit einer Stromquelle zu verbinden. Verwenden Sie ein USB-Kabel, um ihn mit Ihrem Computer zu verbinden, der die erforderliche Stromversorgung liefert. Verbinden Sie dann die Audioausgabepins: verbinden Sie den linken Audiokanal mit GPIO25 und den rechten Audiokanal mit demselben GPIO25-Pin. Sie können Jumperkabel für diese Verbindungen verwenden.

Da der ESP32 einen integrierten DAC hat, benötigen Sie keine zusätzlichen Komponenten für die Audioausgabe. Stellen Sie jedoch sicher, dass die Erdungsverbindung zwischen dem ESP32 und eventuell verwendeter externer Audioausrüstung gemeinsam ist. Dieses Setup ermöglicht es Ihnen, Audio direkt über Bluetooth an den ESP32 zu streamen.

Code-Beispiele und Anleitung

Der folgende Codeausschnitt initialisiert den Bluetooth A2DP-Sink und richtet die I2S-Konfiguration für die Audioausgabe ein.


// ==> Example to use built in DAC of 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");
}

In dersetup()Zuerst konfigurieren wir die I2S-Einstellungen und legen den Modus auf Master fest und aktivieren den integrierten DAC. Die Abtastrate wird auf 44100 Hz eingestellt, was für die Audi Wiedergabe standardmäßig ist. Der Bluetooth A2DP-Sink wird dann mit einem bestimmten Namen gestartet, damit er von anderen Bluetooth-Geräten erkannt werden kann.

Dasloop()Die Funktion bleibt leer, da die Bluetooth-Bibliothek das Streaming im Hintergrund verwaltet. Sie können den vollständigen Code, der unter dem Artikel geladen ist, für weitere Details einsehen.

Demonstration / Was zu erwarten ist

Sobald das Setup abgeschlossen und der Code hochgeladen ist, schalten Sie den ESP32 ein und suchen Sie nach dem Gerät mit dem Namen "ESP32_Bluetooth" auf Ihrem Bluetooth-fähigen Gerät. Nach der Verbindung sollte jeder Ton, der auf dem verbundenen Gerät abgespielt wird, über den ESP32 gestreamt werden. Sie können eine hochwertige Audioausgabe über den DAC erwarten, solange die Verbindungen korrekt sind und die Stromversorgung stabil ist.

Häufige Fallstricke sind falsches Verdrahten der Audiokabelanschlüsse und unzureichende Stromversorgung. Stellen Sie sicher, dass der ESP32 ordnungsgemäß mit Strom versorgt wird und dass die Erdungsverbindungen sicher sind. Wenn Sie auf Probleme stoßen, überprüfen Sie das Video für Fehlersuche-Tipps (im Video bei :00).

Video-Zeitstempel

  • 00:00 Start
  • 2:12 Einführung
  • 5:22 Verdrahtung erklärt
  • 7:51 Arduino-Code erklärt
  • 10:37 Auswahl des ESP32-Boards und COM-Ports in der Arduino-IDE
  • 12:19 Musik mit ESP32 vom Mobiltelefon abspielen
  • 13:30 Einen leistungsstärkeren Verstärker an den ESP32 anschließen

Bilder

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
Sprache: C++
Kopiert!

Ressourcen & Referenzen

Dateien📁

Keine Dateien verfügbar.