ヘッダをスキップし本文へ
ヘッダ画像

はじめに

簡単にメロディを演奏するアプリは「ESP8266でメロディを奏でるには 」でご紹介しました。今回はさらに本格的にmp3での音楽など録音されたものを再生してみます。

DFPlayer

DFPlayerというSDカードに記録されたMP3の音楽ファイルを演奏してくれる部品が安価で販売されています。 これを利用してESP8266と接続し、WiFi経由でリモートからのコントロールで必要な音源の再生を行います。

さまざまな利用目的が考えられますが、Nゲージ鉄道模型運転システムで、 発車アナウンスなどの臨場感を出したり、 最近はやりの発車メロディを鳴らしてみたりという目的を考えてます。

ハードと回路

回路

回路は簡単です。 DFPlayerはシリアルインターフェイスを持っていますので、 ソフトウェアシリアルを利用してESP8266と接続します。

ESP8266のDFPlayer回路

具体的には設定しだいですが、ESP8266のRx(D1)とDfplayerのTx、ESP8266のTx(D2)とDfplayerのRx、 それにあとは電源だけです。

スピーカーはDFPlayerのSPK_1とSPK_2に接続しておいて下さい。

音源の準備

音源はmp3またはwavのファイルとして準備して下さい。 また、32GBまでの容量のマイクロSDカードを準備して、次の手順に従ってファイルを保存します。

フォルダ構造

デバイスの直下に「mp3」というフォルダを作ります。そしてその中に「0001」から連番で「.mp3」 の接尾の付いたMP3ファイルを格納します。 この番号を指定することで、ダイレクトに音源を指定することができます。

スケッチ

このスケッチでの大まかな仕様は次のようになります。

プレイヤーサーバーとして待ち受けます。

「/play/1/」で1番めの曲を演奏します。

「/volume/20/」で音量を20にセットします。最初は15で演奏されます。最大は30です。

「/stop/」で演奏を停止します。

dfplayer.ino

解説

ソース説明
#include必要なライブラリを呼び出します。
#define実行環境を設定します。
SoftwearSerial ソフトシリアルオブジェクトを作成します。
KmHttp HT(..)Httpオブジェクトを作成します。
mp3_set_serial()ドライバにシリアルをアサインします。
mp3_set_volume()音量の初期値をセットします。
HT.begin()サーバーを開始します。
HT.request()サーバーとしてアクセスを待ち合わせます。
next()次の曲を演奏します。
mp3_play(..)指定した番号の曲を演奏します。
mp3_stop()演奏を停止します。
mp3_next()次の曲を演奏します。
mp3_prev()前の曲を演奏します。
mp3_volume()音量をセットします。
HT.send(...)メッセージを返信します。
スケッチの解説

ライブラリ

上記スケッチにはこのライブラリが必要ですので、事前にライブラリをセットアップしてください。

ESP関連は通常に利用できます。独自ライブラリは次のようにしてダウンロードできます。

DFplayerライブラリは こちらからダウンロードして下さい。

gitからクローンすると「.github」フォルダができ、コンパイルの際にワーニングがでます。 必要に応じて消して下さい。

git clone https://github.com/m0kimura/KmHttp.git
上記フォルダ構成をgithubからインストールします。

初めての方はESP8266の入門講座をお読み下さい。