物联网开发118 - Micropython ESP32 C3连接Mini MP3 Player 播放器模块

                       

 一、目的

        这一节我们来学习如何使用合宙ESP32 C3,连接Mini MP3 Player 播放器模块。此模块可以看做是一个简易的MP3,可以直接当做MP3来使用。当然我们也可以连接到开发板上,然后通过串口开控制它。下面我们一起来学习一下吧!

二、环境

        ESP32 C3开发板(MicroPython v1.19.1 on 2022-06-18)+ Mini MP3 Player 播放器模块 + 几根杜邦线 + Win10商业版

        ESP32 C3和模块接线方法:


三、模块介绍

        这是一款体积小巧的 M p3 模块,可以直接接驳扬声器。模块配合供电电池、扬声器、按键可以单独使用,也可以通过串口控制,是任何有串口的单片机的一个模块。模块本身集成了Mp3 、 WAV 、 WMA的硬解码。同时简单的串口指令即可完成播放指定的音乐,以及如何播放音乐等功能,无需繁琐的底层操作,使用方便,稳定可靠。

        特点:
1、支持采样率(KHz):8/11.025/12/16/22.05/24/32/44.1 /48
2、24位DAC输出,动态范围支持:90dB,信噪比支持:85dB
3、完全支持FAT16、FAT32文件系统,支持32G(峰值)的TF卡,支
  持32G的U盘、64M字节的NORFLASH
4、多种控制模式可选。IO控制模式、串口模式、AD按键控制模式
5、广播语插播功能,可以暂停正在播放的背景音乐。广告播放完毕
  回到背景音继续播放
6、音频数据按文件夹排序,限多支持100个文件夹,每隔文件夹可以
  分配255首曲目
7、30级音量可调,6级EQ可调

        适用场景:
1、车载导航语音播报
2、公路运输稽查、收费站语音提示
3、火车站、汽车站安全检查语音提示
4、电力、通信、金融营业厅语音提示
5、车辆进、出通道验证语音提示
6、边防检查通道语音提示
7、多路语音告警或设备操作引导语音
8、电动观光车安全行驶语音告示
9、机电设备故障自动报警
10、消防语音报警提示
11、自动广播设备,定时播报

         模块引脚图:

        模块原理图:

         按键原理图:

 产品资料下载:

https://pan.baidu.com/s/1KLn_sSFwyX5YXM5cecE-WA  提取码: tb6m

资料参考(可直接打开):

https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299

JQ-8900-16P资料下载链接:

https://pan.baidu.com/s/1bqSSkDo6rkxGO-HAt7maPw  提取码: eyh2(软件在这份资料里)

四、示例代码

mp3_example.py

打开Thonny IDE,将一下代码拷贝到IDE中,运行:

from machine import Pin,UART
import time

# 创建UART串口
uart = UART(1,baudrate = 9600,tx = 0,rx = 1)
# 创建LED灯对象
led = Pin(12,Pin.OUT)
# 创建按键对象
key = Pin(5,Pin.IN,Pin.PULL_UP)

# 定义事件指令
up = bytearray(b'\x7e\xff\x06\x02\x00\x00\x00\xfe\xf9\xef')  #上一曲
on = bytearray(b'\x7e\xff\x06\x03\x00\x00\x02\xfe\xf6\xef')  #开灯
off = bytearray(b'\x7e\xff\x06\x03\x00\x00\x01\xfe\xf7\xef')  #关灯

# 创建按键函数
def KEY():
    if key.value() == False:  
        time.sleep(0.05)
        if key.value() == True:  # 如果按键值为false,则反转led灯状态
            led.value(not led.value())
            
            if led.value():  # 如果LED灯为真,则发送指令on,反之发off
                uart.write(on)
            else:
                uart.write(off)
            
            while not key.value():
                pass
            
# 创建main函数
def main():
    while True:
        KEY()
        
        
# 程序入口
if __name__ == "__main__":
    main()

演示效果:

        运行上述代码后,蓝色LED灯亮,当按一下按键后,蓝色LED灯熄灭,表示busy,板载红色LED灯亮,同时语音播报:“欢迎回家,灯光已开启”。

        然后当再按一下按键后,蓝色LED灯熄灭,表示busy,板载红色LED灯熄灭,同时语音播报:“期待相遇,灯光已关闭”。

五、环境

        命令介绍:

六、常见问题汇总

 七、串口命令控制

        我们也可以使用USB转TTL转接线,连接我们的电脑和MP3模块。使用串口工具发送命令进行控制。很简单,大家自己试验一下。

八、mp3模块购买地址

https://detail.tmall.com/item_o.htm?id=539104002603&pcdegrade=true&de_count=1&skuId=5044329371616icon-default.png?t=N5K3https://detail.tmall.com/item_o.htm?id=539104002603&pcdegrade=true&de_count=1&skuId=5044329371616

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
2022 / 01/ 30: 新版esptool 刷micropython固件指令不是 esptool.py cmd... 而是 esptool cmd... 即可;另外rshell 在 >= python 3.10 的时候出错解决方法可以查看:  已于2022年发布的: 第二章:修复rshell在python3.10出错 免费内容: https://edu.csdn.net/course/detail/29666 micropython语法和python3一样,编写起来非常方便。如果你快速入门单片机玩物联网而且像轻松实现各种功能,那绝力推荐使用micropython。方便易懂易学。 同时如果你懂C语音,也可以用C写好函数并编译进micropython固件里然后进入micropython调用(非必须)。 能通过WIFI联网(2.1章),也能通过sim卡使用2G/3G/4G/5G联网(4.5章)。 为实现语音控制,本教程会教大家使用tensorflow利用神经网络训练自己的语音模型并应用。为实现通过网页控制,本教程会教大家linux(debian10 nginx->uwsgi->python3->postgresql)网站前后台入门。为记录单片机传输过来的数据, 本教程会教大家入门数据库。  本教程会通过通俗易懂的比喻来讲解各种原理与思路,并手把手编写程序来实现各项功能。 本教程micropython版本是 2019年6月发布的1.11; 更多内容请看视频列表。  学习这门课程之前你需要至少掌握: 1: python3基础(变量, 循环, 函数, 常用库, 常用方法)。 本视频使用到的零件与淘宝上大致价格:     1: 超声波传感器(3)     2: MAX9814麦克风放大模块(8)     3: DHT22(15)     4: LED(0.1)     5: 8路5V低电平触发继电器(12)     6: HX1838红外接收模块(2)     7:红外发射管(0.1),HX1838红外接收板(1)     other: 电表, 排线, 面包板(2)*2,ESP32(28)  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔都飘雪

您的1毛奖励是我创作的源源动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值