数码之家

 找回密码
 立即注册
搜索
查看: 18940|回复: 28

[Arduino] ESP32支付宝盒改蓝牙音箱,可切歌,调音量,附程序

  [复制链接]
发表于 2021-8-25 18:46:36 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
拆机贴可以看这个:https://zhuanlan.zhihu.com/p/39634765

ESP32支付宝盒完美爆改蓝牙音箱,支持按钮控制切歌,音量,暂停。

支付宝盒:
v2-ac31d3c6a0b677dfbe7fbbdceeb5a507_1440w.jpg?source=172ae18b.jpg

理论上来说,另一款低配没有屏幕的宝盒也可以改,不过我没有那个机器无法验证(复制坛友的图):
161142w4n1l8yb842v4g47.jpg

1. 首先直接上蓝牙音箱代码(基于Arduino,VSCode打开即可):
https://gitee.com/zhuhai-esp/Pla ... -Arduino-BT-Speaker

2. 然后直接得到效果如视频:
https://www.douyin.com/video/6998293318316608809

3. 看下内部结构:
2021-06-26 102800.jpg

再看下板子:
2021-06-26 110044.jpg


4. 介绍一下实现思路:
ESP32有很多开源实现蓝牙音箱的项目,我是用了这个:
https://github.com/pschatzmann/ESP32-A2DP

主要代码:
  1. #include "BluetoothA2DPSink.h"

  2. BluetoothA2DPSink a2dp_sink;

  3. void setup() {
  4.     i2s_pin_config_t my_pin_config = {
  5.         .bck_io_num = 26,
  6.         .ws_io_num = 25,
  7.         .data_out_num = 22,
  8.         .data_in_num = I2S_PIN_NO_CHANGE
  9.     };
  10.     a2dp_sink.set_pin_config(my_pin_config);
  11.     a2dp_sink.start("MyMusic");
  12. }

  13. void loop() {
  14. }
复制代码
注意:i2s_pin_config 这个结构体需要根据音频输出的实际硬件引脚来做配置,
也就是指定I2S实际输出引脚,其他的不用怎么修改

5. OTA配置
这个是题外话,因为支付宝盒下载程序不太方便,需要手动短接P0口,
所以玩Arduino的话主要使用OTA来下载程序吧:
这个也很简单:
  1. void setup() {
  2.   ArduinoOTA.begin();
  3. }

  4. void loop() {
  5.   ArduinoOTA.handle();
  6. }
复制代码


6. 给几个按钮赋予事件,用于调节音量,切歌等,效果在视频中有的:
  1. void inline setupButtonEvents() {
  2.   // reset
  3.   buttons[0].attachClick([] {
  4.     payAudioDisable();
  5.     ESP.restart();
  6.   });
  7.   // up
  8.   buttons[1].attachClick([] { a2dp_sink.next(); });
  9.   buttons[1].attachDoubleClick([] {
  10.     if (volume < 120) {
  11.       setVolume(volume + 10);
  12.     }
  13.   });
  14.   // down
  15.   buttons[2].attachClick([] { a2dp_sink.previous(); });
  16.   buttons[2].attachDoubleClick([] {
  17.     if (volume > 10) {
  18.       setVolume(volume - 10);
  19.     }
  20.   });
  21.   buttons[3].attachClick([] {
  22.     if (isPause) {
  23.       a2dp_sink.play();
  24.     } else {
  25.       a2dp_sink.pause();
  26.     }
  27.     isPause = !isPause;
  28.   });
  29. }
复制代码


再贴一次完整代码:https://gitee.com/zhuhai-esp/PlatformIO-ESP32-PayBoxA2

这次废物又可以完美利用了
支付宝盒其他玩法可以参考这个帖子:
https://www.mydigit.cn/thread-265728-1-1.html







补充内容 (2023-9-13 13:54):
https://github.com/zhuhai-esp/PayBoxA2-ESP32-Clock

打赏

参与人数 3家元 +130 收起 理由
jpdd521 + 10 实在是没分了,但是依旧顶帖。好评。.
jf201006 + 20 原創內容
家睦 + 100

查看全部打赏

 楼主| 发表于 2021-8-25 18:50:09 | 显示全部楼层
看视频效果吧,按理来说ESP32方案的都可以这样改:
https://www.douyin.com/video/6998293318316608809
回复 支持 反对

使用道具 举报

发表于 2021-8-26 13:32:23 | 显示全部楼层
这个是免费领的那个吗?
回复 支持 反对

使用道具 举报

发表于 2021-8-26 13:36:29 | 显示全部楼层
这个空中升级不错哦

esp32都可以这样吗?需要原来的程序支持吗?


这个可以展开说一下 哈哈
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-26 14:18:34 | 显示全部楼层
beiling 发表于 2021-8-26 13:32
这个是免费领的那个吗?

是的,我的好像是用券十多块买的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-26 14:20:31 | 显示全部楼层
beiling 发表于 2021-8-26 13:36
这个空中升级不错哦

esp32都可以这样吗?需要原来的程序支持吗?

ESP32 用Arduino都可以OTA,只要连接上WiFi,再调用ArduinoOTA就可以了
https://www.jianshu.com/p/90e9f8b23965
回复 支持 反对

使用道具 举报

发表于 2021-8-27 09:53:06 | 显示全部楼层
再加个摄像头更好玩,监控,识物,识脸,识车牌。。。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-8-27 11:34:52 | 显示全部楼层
kindzhon 发表于 2021-8-27 09:53
再加个摄像头更好玩,监控,识物,识脸,识车牌。。。

可以啊,多加一块ESP32cam,wifi连接
回复 支持 反对

使用道具 举报

发表于 2021-8-27 18:24:55 | 显示全部楼层
能免费领是真不错
回复 支持 反对

使用道具 举报

发表于 2021-8-28 12:09:17 | 显示全部楼层
实在是没分了,但是依旧顶帖。好评。
回复 支持 反对

使用道具 举报

发表于 2021-8-28 12:14:30 | 显示全部楼层
另一款机器不行,另一款里面是MTK6261主芯片。
回复 支持 反对

使用道具 举报

发表于 2021-8-29 11:19:14 | 显示全部楼层
这个怎么领取 有地址吗?
回复 支持 反对

使用道具 举报

发表于 2021-8-29 11:20:20 | 显示全部楼层
要是能支持USB 输入 完全可以直接改其它用途了
回复 支持 反对

使用道具 举报

发表于 2021-8-30 08:45:29 | 显示全部楼层
:shy: 可ESP32的开发板也就是10多块啊

当然了 这个壳子还能干点别的。。。而且还有个电池
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-30 11:38:54 | 显示全部楼层
本帖最后由 hzy3774 于 2021-8-30 11:41 编辑
jpdd521 发表于 2021-8-28 12:14
另一款机器不行,另一款里面是MTK6261主芯片。

这款估计可以,也是是esp32的 195816r1z9z9qrx9bs1iws.jpg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-30 11:40:49 | 显示全部楼层
蜗牛网络 发表于 2021-8-29 11:19
这个怎么领取 有地址吗?

现在没有活动了,某宝上直接买好像要100多
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-30 11:45:17 | 显示全部楼层
qingkong 发表于 2021-8-30 08:45
可ESP32的开发板也就是10多块啊

当然了 这个壳子还能干点别的。。。而且还有个电池 ...

主要就是为了外围部件:屏幕,按键,DAC,功放,喇叭这些,
外设价值比芯片高,不然光有最小系统的话没有多少可玩性
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-30 11:47:58 | 显示全部楼层
蜗牛网络 发表于 2021-8-29 11:20
要是能支持USB 输入 完全可以直接改其它用途了

USB转串口也是可以连接的,也可以烧程序,只是我用OTA,不需要USB了
回复 支持 反对

使用道具 举报

发表于 2021-8-30 14:54:13 | 显示全部楼层
hzy3774 发表于 2021-8-30 11:47
USB转串口也是可以连接的,也可以烧程序,只是我用OTA,不需要USB了

我的意思是识别USB输入设备 比如键盘 之类的 把它那个USB接口不仅仅是给手机充电用
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-3-29 14:23 , Processed in 0.265201 second(s), 14 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表