ESP32 チュートリアル 39/55 - ESP32 を Bluetooth 音楽プレーヤーとして使用する | SunFounder の ESP32 IoT 学習キット
このチュートリアルでは、ESP32をBluetooth音楽プレーヤーとして活用する方法を探ります。ESP32はWi-FiとBluetooth機能を統合した強力なマイコンであり、IoTアプリケーションにとって優れた選択肢です。Bluetooth A2DPシンクを使用してESP32に音声をストリーミングし、その後、内部のDACを通じて出力することができます。
オーディオモジュール
これを達成するために、Bluetoothオーディオストリーミングを処理するために必要なライブラリと設定を使ってESP32をセットアップします。このチュートリアルの終わりまでには、スマートフォンやその他のBluetooth対応デバイスから制御可能な動作するBluetoothオーディオプレーヤーが手に入るでしょう。より詳細な説明については、動画をチェックしてください(動画は:00で)。
スピーカーの画像
ハードウェアの説明
このプロジェクトの主なコンポーネントには、ESP32マイクロコントローラとBluetoothA2DPSinkライブラリが含まれています。ESP32は、追加のハードウェアなしで音声出力を可能にする内蔵のデジタル-アナログコンバータ(DAC)を搭載しています。BluetoothA2DPSinkライブラリは、Bluetoothオーディオシンクの設定プロセスを簡素化し、Bluetooth経由でオーディオストリームを受信できるようにします。
ESP32には、さまざまな目的に設定できる複数のGPIOピンがあり、オーディオ出力にも利用できます。私たちの設定では、左と右のオーディオチャンネルにGPIO25を使用します。このライブラリはBluetooth接続とオーディオストリーミングの管理を行うため、基盤となるBluetoothプロトコルに気を取られずにアプリケーションに集中することが容易になります。
データシートの詳細
| 製造業者 |
エスプレッシフシステムズ |
| パート番号 |
ESP32-WROOM-32 |
| ロジック/入出力電圧 |
3.3 V |
| 供給電圧 |
3.0-3.6 V |
| 出力電流(チャネルごと) |
最大40 mA |
| PWM周波数ガイドライン |
1 kHz - 40 kHz |
| 熱的制限 |
125 °C |
| パッケージ |
QFN48 |
| ノート / バリアント |
さまざまな構成が利用可能です |
- 一般的なGPIOピンは音声出力に使用できます。
- 適切な電源(3.3 V)を確保して、損傷を避けてください。
- Bluetoothのパフォーマンスを向上させるために、ファームウェアを更新してください。
- 外部アンテナを使用してBluetoothの範囲を拡大してください。
- DACの出力制限に注意してください。より高品質なオーディオには外部DACを使用してください。
配線手順
esp32-39_bluetooth_audio_wiringESP32をBluetoothオーディオ再生用に配線するには、まずESP32を電源に接続します。USBケーブルを使用してコンピュータに接続し、必要な電力を供給します。次に、オーディオ出力ピンを接続します:左オーディオチャネルをGPIO25に、右オーディオチャネルも同じGPIO25ピンに接続します。これらの接続にはジャンパーワイヤーを使用できます。
ESP32には内蔵DACがあるため、音声出力に追加のコンポーネントは必要ありません。ただし、ESP32と使用する可能性のある外部音響機器の間でグラウンド接続が共通であることを確認してください。この設定により、Bluetoothを介してESP32に直接音声をストリーミングすることができます。
コード例とウォークスルー
以下のコードスニペットは、Bluetooth A2DP シンクを初期化し、オーディオ再生のための I2S 設定を構成します。
// ==> 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");
}
このsetup()最初にI2S設定を構成し、モードをマスターとして指定し、内蔵DACを有効にします。サンプルレートは44100 Hzに設定されており、これはオーディオ再生の標準です。次に、指定された名前でBluetooth A2DPシンクを開始し、他のBluetoothデバイスに認識されるようにします。
テloop()関数は空のままで、Bluetoothライブラリがバックグラウンドでストリーミングを処理します。詳細については、記事の下に読み込まれた完全なコードを確認できます。
デモンストレーション / 期待すること
セットアップが完了し、コードがアップロードされたら、ESP32の電源を入れ、Bluetooth対応デバイスで「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
speaker_pic
audio_module
esp32-39_bluetooth_audio_wiring
840-ESP32 Tutorial 39/55- Arduino code for playing audio via bluetooth
言語: C++