乐鑫Esp32学习之旅11 入门 乐鑫esp-adf 音频框架开发,造一个蓝牙耳机,实现切换歌曲,获取歌曲信息等功能。(附带Demo)


  • 本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。

1、 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 “Hellow World”。
2、 巧用eclipes编辑器,官方教程在在Windows下搭建esp32开发环境,打印 “Hellow World”。
3、 认识基本esp32的GPIO接口,开始点亮您的第一盏 LED和中断回调实现按键功能 。
4、体会esp32的强大的定时器功能, 实现定时2s闪烁一盏LED灯。
5、接触实践esp32的pwm宽度脉冲功能, 实现呼吸效果闪烁一盏LED灯。
6、smartConfig和微信airKiss在esp32的实现,一键配网轻松快捷连接路由器。
7、利用GPIO中断做一个按键的短按和长按的回调事件,再也无须担心触发源。
8、esp32上实现本地 UDP 客户端和服务端角色,在局域网内实现通讯。
9、esp32上实现本地 TCP 客户端和服务端角色,可断线重连原路返回数据。
10、乐鑫esp32 SDK编程利用rmt驱动ws2812七彩灯,实现彩虹渐变效果。
11、入门 乐鑫esp-adf 音频框架开发,esp32造一个蓝牙耳机,实现切换歌曲,获取歌曲信息等功能。
12、开源一个微信公众号airkiss配网esp32以及局域网发现功能的工程,分享一个airkiss配网小工具。
13、esp32 内置 dns 服务器,无需外网访问域名返回指定网页。
14、esp32 sdk编程实现门户强制认证,连接esp32热点之后,自动强制弹出指定的登录界面。
15、认识本地离线语音唤醒识别框架 esp-skainet ,实现较低成本的硬件语音本地识别控制。
16、学习本地语音唤醒离线识别框架 esp-skainet ,如何修改唤醒词? 如何自定义命令词?如何做意图动作?
17、全网首发,乐鑫esp32 sdk直连京东微联·小京鱼 · IoT开放平台,实现叮咚音响语音智能控制。
18、入门京东微联·小京鱼的控制面板H5开发,读懂vue语法,做自己的控制页面。
19、重磅开源,如何在微信小程序上ble蓝牙配网esp32,blufi的那些事!
20、一篇好文,开发过程中编译esp32固件太大,无法正常启动?教你如何自定义分区表partitions.csv。
21、 esp32蓝牙配网blufi的高度封装,集成简单、使用简单、容易上手,提高开发效率!
22、讨论下程序员 “青春饭” 那些事,分享在esp32实现多种加密算法md5 |AES CBC-ECB| Sha1 | Sha256 等!
23、安信可 esp32-a1s 音频开发板移植最新 esp-adf 音频框架,小试牛刀如何实现在线文字转语音播放。
25、分享在 esp32 SDK实现冷暖光色温平滑调节的封装,轻松集成到您的项目去。


在这里插入图片描述

一、前言;


    距离上篇 esp32 的文章发表有一个月了,在群里应该有人知道我付费某些工程被别人“喷到”什么样了。但事情过了有段时间了,我不管他人怎么说了,我依然不忘初心做自己的事情,写自己的笔记,也希望可以帮助其他人。

    这几周最让我关注的是 香港激进分子事件,作为中华子孙,都忘了前一百年香港是怎么被外国侵犯的,如今的自由、和平生活过得太舒服了;竟然去侮辱国徽,去霸占地铁入口阻碍交通导致一位孕妇惊吓入院,真应了网友一句话:“这种人要是在大陆,被打得认不出爹娘!” 对待为什么香港没用出动暴力解决,推荐大家看看这文章:https://mp.weixin.qq.com/s/dr7_ERFLy6Q-AE1wfNLljg

    说了这么多话,下面入正题;

    乐鑫esp-adf 音频框架已经是开源很久了,我也是一直在玩这个,周末看了看,有个蓝牙耳机的新工程开源了,而我上半年也是买了很多 esp32 语音开发板,但是都怎么更新代码,于是乎,我拿出我之前买的乐鑫开发板 esp32 Lyrat 语音开发板,调节了2个小时,终于玩出来了,很舒服,解决了我的小米8没有耳机插口问题,因为我有一个蓝牙耳机,哈哈!!

    实物图:


二、手头上的esp32语音开发板总结;


     想了想,应该买了几个第三方开发板了,

  • TTGO:https://github.com/LilyGO/TTGO-TAudio
  • 工程没多少,主要还是 蓝牙耳机功能、网页调节音量开灯功能,是驱动WM8978实现的;以及一个驱动ws2812 的 ardunio工程。
    在这里插入图片描述

     这个是我最早接触的了,是一个优秀的工程师开发的,有蓝牙音响+WEB收音机,百度语音识别等功能,虽然现在的乐鑫 adf 框架已经有了这些例子,但是已经深度封装了,想要深度,建议学习这个大神的作品;

  • 知乎专栏:https://www.zhihu.com/people/frankie.zengfu
  • whyengineer:https://github.com/whyengineer/esp32-lin

在这里插入图片描述


     最后要介绍的是乐鑫官网的,我已经买了2块了,一个是买群友的,一个买官网的,还好价格不贵,但是在国外卖的价钱是国内的2倍多;其主要设计是围绕音频方案开发的,有很多好玩的demo,比如 播放mp3文件,文字通过百度云转语音播放,duerOs等开源工程;而我后面就是玩这个官网的开发板了!

在这里插入图片描述


三、环境搭建;


     其实环境搭建很简单,大家先搭建 esp-idf 的环境,可以参考我之前的 esp8266 rtos3.0 环境,把工具链指向 esp32 的就可以了!或者去红旭的教程,可以在 linux 或者 windows 搭建环境;

     等你就绪了 esp-idf 环境步骤,入门了 “Hello world” 工程之后,还需要做以下步骤:


3.1 修改 IDF指向路径,增加 ADF路径;


     不管是 windows 还是 linux平台都要修改 IDF指向路径,增加 ADF路径,下面是我在 windows平台实现的思路;
     在工具链设置文件 esp32_toolchain.sh , 修改 IDF指向路径让它指向当前 adf 路径里面的 idf 文件夹,而增加 adf 路径,如下:

在这里插入图片描述

四、编译工程;


     把官网的 pipeline_bt_sink 工程编译,可能你会编译失败,因为需要一些配置,首先你得打开蓝牙配置使能,在 make menuconfig 配置:

在这里插入图片描述


/esp-adf/components/audio_service/bluetooth_service.c:435 (bluetooth_service_start): enable controller failed

    如果你发现你跑起来了但是没有搜索到其蓝牙耳机,也有以上报错,也许是下面不对,因为没启动蓝牙服务成功!

    这里尤其注意要在 make menuconfig 打开蓝牙设置蓝牙控制器模式,否则无法启动蓝牙服务:

      bluetooth                  
                ---->bluetooth controller
                                ---->bluetooth controller mode
                                                    ---> br/edr only 

在这里插入图片描述


五、其他;


    这个开发板很特别,需要2个 Mico USB,一个是串口用,一个专门供电的;以及需要手动进去下载模式,非手动!

    因为我玩过其他开发板,具有当前播放歌曲的详细信息,很遗憾的是,目前官网这个demo是木有的,但是我根据以往开发板经验,加一些数据进去,就可以显示当前播放歌曲的详细信息啦!

    只需要把我提供的组件 <bluetooth_service> 文件夹替换官网的文件夹即可!工程主文件不需要修改!

思路:主要是要监听蓝牙播放时候的 metadata 的改变特征事件,要主动订阅,在蓝牙事件回调 ESP_AVRC_CT_CHANGE_NOTIFY_EVT中实现对数据剖析显示即可!


  • 主要还是可以显示 中文歌曲的信息哦!
    在这里插入图片描述

另外,不要把我的博客作为学习标准,我的只是笔记,难有疏忽之处,如果有,请指出来,也欢迎留言哈!

  • 玩转esp8266带你飞、加群付费QQ群,不喜的朋友勿喷勿加:434878850
  • esp8266源代码学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp8266
  • esp32源代码学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp32
  • 关注下面微信公众号二维码回复 190807 获取本工程源码地址,干货多多,第一时间推送!
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

半颗心脏

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值