
摘要一块 WT2605-B05 蓝牙音频模块加一块 Arduino接上四根线、发几条 AT 指令就能快速做出带屏蓝牙音箱。这篇内容拆解交互逻辑演示音源切换、歌名和歌词显示不用懂底层协议也能快速出样机。最近有位客户找到我们说要做一款定制音频控制器想要拿到手就能用的模块主控发几句 AT 指令就能控制播放模块还能自己把当前播的曲目、歌词和工作模式报上来最重要的是不想自己去啃蓝牙协议栈。其实这个需求并不是个例——不管是创客DIY玩家自制带屏蓝牙音箱还是工程师赶项目进度快速交付蓝牙音频功能样机大家都希望绕开调射频、啃协议栈这些麻烦事。我们先聊一聊为什么越来越多的开发者选择开箱即用的方案而不是用裸芯片从零开发。用裸芯片画板做带屏蓝牙音箱首先就要面对射频开发的一系列门槛PCB 走线需要严格控制 50Ω 阻抗天线区域预留净空晶振频偏需要控制在 ±25kHz 以内仅仅是把蓝牙基础连接调稳定往往就要耗费好几天时间。蓝牙连通之后还有更大的难题手机端的歌名、播放状态如何透传给单片机依赖整套蓝牙音频相关协议。开发者需要翻阅大量协议文档、梳理源码。射频调试需要专业仪器和长期积累的调试经验不同手机、播放器的兼容性还需要大量反复测试。这里任意一个环节卡住整个项目进度直接停滞。创客 DIY 蓝牙音箱核心诉求是把自己的创意快速落地成型追求简单易上手拿到器件就能接线、调试尽快看到作品跑起来而工程师制作音频功能样机目标是快速验证方案的可行性、判断项目是否能落地用更短的开发周期抢占产品窗口期。如果他们需要把大量时间都耗在射频调试、协议栈移植、信息透传适配这些底层工作上创意落地的热情很容易被漫长的调试消磨掉项目样机的排期也会被无限拉长。唯创知音WT2605-B05 双模蓝牙音频模块正是冲着这些开发痛点设计。模块出厂已经预烧录好固件蓝牙协议栈、射频、音频解码底层全部封装完成。外围只需要接喇叭、电源和一块 Arduino主控串口发几条指令就能完成播放、切歌、音量、模式切换等控制。模块还能把当前工作模式、歌曲名称歌词这些信息主动回传给主控。这篇文章就来和大家聊一聊用WT2605-B05模块搭配Arduino做一台可以显示播放模式、音源、歌名与歌词的蓝牙音箱能有多简单一为什么这套方案上手门槛低AT 指令是关键它的简单核心在于WT2605-B05蓝牙音频模块内部把复杂的蓝牙射频、音频协议、解码逻辑全部封装完成。外围也已经把 Flash、24M 晶振和一颗 1W 功放集成在模块上拿到手不用再额外搭配这些元器件和设计对应的外围电路。整套方案依靠 UART 串口 AT 指令完成交互主控下发 AT 指令实现播放控制模块通过串口回传播放信息。带屏蓝牙音箱的系统架构非常简洁WT2605-B05音频模块负责蓝牙连接、音频解码和音频输出Arduino主控负责读模块通过 AT指令主动上报的信息、驱动屏幕、响应按键显示屏展示音源模式、歌名、歌词等信息模块自带功放直接接上喇叭就能出声。对新手很友好的一点是WT2605-B05蓝牙音频模块供电支持 2.8V~5V 宽电压主流的 3.3V 和 5V Arduino 主控都能直接适配。接上 TX、RX、VCC、GND 4根线就能建立 AT 指令通信。默认波特率 115200。想要实现按键控制播放、实时拿到音源、歌名、歌词这些显示数据依靠的就是模块这套通用 AT 指令交互体系。二蓝牙音箱整套交互的核心是通用AT指令体系看到这里可能有人会问这套 AT 指令开发门槛会不会很高这点大可放心WT2605-B05蓝牙音频模块采用行业通用 AT 指令规范以 AT 作为指令起始标识交互内容都是可读的文本不用处理复杂的二进制解析。同时也可以直接调用 Arduino 库常用的 AT 指令也都已经提前封装好了。在这套 AT 指令体系下做带屏音箱开发主要用到两种交互模式下发控制和事件上报。给蓝牙音箱搭配实体按键用到的就是下发控制指令。比如按下切换键Arduino主控在识别到按键信号后自动向模块发送 ATCHMODE按下播放暂停键会向模块发送ATPP按下切歌键发送 ATNEXT。模块收到指令后直接执行对应的动作执行完成还会回传应答方便我们确认操作是否生效便于调试与排错。屏幕实时显示音源类型、歌曲名、歌词和蓝牙连接状态优先选事件上报模式蓝牙连接或断开、切歌、U 盘 / TF 卡音源切换时模块会主动把最新状态通过串口发出来比如蓝牙连接成功时上报 BT_STA:6断开时上报 BT_STA:9同步推送当前歌名与歌词Arduino 不需要一直反复询问模块状态既能保证信息及时更新也降低串口通信压力对新手开发带屏音箱十分友好。模块的通信逻辑决定了开发难度接下来看看如何在蓝牙音箱上快速实现播放模式、歌曲名、歌词。先说播放模式拿到WT2605-B05蓝牙音频模块不用写任何底层蓝牙协议栈上电后默认进入蓝牙模式手机端打开蓝牙搜 BT_WT2605C 就能连上模块连接成功后模块的 TX 脚会主动输出一行状态码 —— 连接成功是 BT_STA:6断开是 BT_STA:9。Arduino 主控只需要持续读串口上报的状态码就能实时感知到蓝牙连接状态不用额外做配对检测或状态轮询。切到本地播放模式也同样省心模块内部存储最大可用到128Mbit Flash支持外挂最大32G U 盘和 TF 卡。模块配套了AT 指令手册找到“切换音源”和“查询当前播放文件”对应的指令字符串写几条触发逻辑主控把指令通过串口发给模块就能完成 U 盘/TF 卡音源切换并获取到当前播放的是哪个盘里的音频文件。屏幕上显示的 “蓝牙 / U 盘 / TF 卡” 标识就是 Arduino 读取模块回传的状态信息转换成了可视化的文字或图标展示出来。整个过程开发者只需要搜索蓝牙名称点击连接。再把 AT 指令和触发逻辑写进 Arduino 主控。蓝牙协议栈的整套交互逻辑模块内部自己完成。再来说说歌名这里分两种情况WT2605-B05蓝牙音频模块支持带屏音箱的两套播放来源一种是手机蓝牙播放。手机和模块连上之后 声音走 A2DP 协议传输控制和歌名封面信息走 AVRCP 协议传输。两个协议走同一条蓝牙连接。模块支持蓝牙音乐播放歌词和专辑封面推送、切歌、暂停手机屏上看到的歌名、专辑信息会沿着这条已经连好的蓝牙通道直接推给模块。Arduino 只要从串口读出来刷到显示屏上就行。另一种是本地 MP3 播放模块支持 FAT/FAT32 文件系统32G 以内的 U 盘、TF 卡插上就能读还支持热插拔。在U 盘/ TF 卡里存好 MP3文件主控给模块发一条播放指令模块自己解码、播放声音。发一条查询指令给模块模块会把正在播放的文件名通过串口返回来Arduino主控接收到后解析出歌名刷到显示屏上就可以了。最后说说歌词蓝牙播放时歌词文本会跟着音乐一起从手机端传过来Arduino 收到后会直接按时间轴滚动显示。本地MP3播放时只需要把歌词文件和MP3音频文件放在一起命名成一样的名称比如夜曲.mp3配夜曲.lrc当播放MP3音乐时Arduino主控就能按同名规则找到对应歌词文件解析后刷到屏幕上显示出来。下发控制和事件上报这两种模式的 AT 指令覆盖了带屏音箱的日常应用按键切歌用下发控制连接状态、歌名、歌词实时更新用事件上报。创客和工程师拿到模块只需要把“什么时候发什么指令、收到什么内容刷什么屏”写进 Arduino 程序就可以了。三开发前需要注意几个问题在动手前模块的这几个硬性边界和隐藏能力值得先了解清楚蓝牙模式和本地 MP3 模式不能同时跑同一时间只能是其中一种发一条AT指令 ATCHMODE 就能切换到另一种播放模式。本地MP3播放当插 U 盘和 TF 卡同时存在模块会优先响应 U 盘。另外三类存储内部 Flash、TF 卡、U 盘之间可以互相拷贝音频。做样机时可以提前把歌从 U 盘或 TF 卡拷进模块自带的内部 Flash中在做样机演示时不插 U 盘、不插 TF 卡模块自己也能播放声音。模块自带的是 1W功放推个小喇叭、做桌面音箱够用。如果想要大音量或推大尺寸的喇叭可以外接功放模块WT2605-B05模块上也预留了外接功放输出口。蓝牙连接距离建议在 10 米以内做桌面蓝牙音箱这个距离完全够用。音箱放在客厅拿着手机在室内走动、倒水、拿东西音乐都不会断。WT2605-B05蓝牙音频模块是蓝牙 5.3 双模除了音频蓝牙还支持 BLE 数传能力PHY 速率 2Mbps主机、从机、主从一体三种角色都能配。如果想给音箱再加个手机 App 遥控、或者数据透传这部分能力是现成的不用额外加芯片。回到开头那位做定制音频控制器的客户他想要的其实不仅是一个蓝牙模块而是一套“不用在底层死磕拿到手就能直接写应用逻辑”的成熟方案。WT2605-B05模块搭配 Arduino刚好把这条路铺平了。底层复杂的射频和协议栈交给模块开发者只需要把心思花在按键怎么响应、屏幕怎么刷、数据怎么显示上。无论是创客想快速把创意做成实物还是工程师要赶在窗口期内交出功能样机这套方案都能帮你省下最宝贵的时间。唯创知音深耕语音技术 26 年已服务超 3 万家企业始终坚持为工程师提供快捷的语音方案帮助缩短产品开发周期。模块适配 Arduino 主控接上 4 根线就能用有现成库文件工程师拿到就能上手调。如果你想亲手测一测模块的效果评论区回复“蓝牙”支持样品申领、规格书资料获取全程提供 1 对 1 技术支持