浏览量: 266 次浏览

MP3播放器模块

2020年2月2日 0 作者 Nie Hen

在需要使用语音的情况下就需要使用mp3播放模块 ,联合扬声器以及控制器,在控制下发出相应的声音信号。

enter description here

储存卡

文件夹命名需要是mp3,放置在SD卡根目录下。
而mp3文件命名需要是4位数字,例如”0001.mp3″,放置在mp3文件夹下。
如需中英文命名,可以添加在数字后,例如”0001hello.mp3″或者”0001后来.mp3″。
enter description here

模块引脚图

enter description here
enter description here

接线图

enter description here

enter description here
(其中模块RX 接arduino 1 ,TX接线arduino的 0 )

参考

函数说明

mp3_play (); 开始播放。 mp3_play (5); 播放第5首。
mp3_next (); 播放下一首 mp3_prev (); 播放上一首
mp3_set_volume (uint16_t volume); 0~30音量设置,可以设置大音量,不过喇叭会破音。 mp3_set_EQ (); 设置音效
mp3_pause ();暂停。 mp3_stop ();停止播放
mp3_random_play ();随机播放。 mp3_single_loop (boolean state);单曲循环。
delay为播放时间长短。如果不使用delay,得持续给MP3模块信号,才会持续播放。

扬声器要连接要加个2K的电阻 不然会有噪音

示例代码

不过需要DFPlayer_Mini_Mp3.h (在下面GitHub链接) 以及同目录下的音频文件 (命名符合要求)


\#include <SoftwareSerial.h>//软串口头文件名 #include <DFPlayer_Mini_Mp3.h>//MP3头文件名 void setup () { Serial.begin (9600);//串口波特率,9600 mp3_set_serial(Serial);//定义MP3串口为Arduino串口。 mp3_set_volume(30);//设置音量。 } void loop () { mp3_play (1);//播放第一首。 delay (6000);//播放6秒。 mp3_next ();//播放下一首。 delay (6000);//播放6秒。 mp3_prev ();//上一曲 delay (6000);//播放6秒。 mp3_play (3);//播放第3首。 delay (6000);//播放6秒。 }

参考

esp8266 mp3player

使用的串口通信
只需要将使用的引脚改为 esp8266的 RX和TX即可
模块正极连接 vin(5v)
MP3的rx连接nodemcu的tx
MP3的tx连接nodemcu的 rx

tx后面可以加电阻或者不加 rx后面不加电阻

在烧入程序之后 能够播放音频,利用callback函数 控制播放的音频
每次控制它播放 才会启动 播放完一首之后会自动关闭。

提前制定好规则 使用mqtt发送数值 规定好那个数字对应的mp3文件 与文件夹中的文件相对应
调用时只需要向esp8266 使用的主题发送指令即可

完整代码

GitHub链接