.. _BT-AT: [ESP32 Only] Classic Bluetooth® AT 命令集 ============================================ :link_to_translation:`en:[English]` ESP32 AT 固件支持 `蓝牙核心规范 5.0 版本 `_。 - [ESP32 Only] :ref:`AT+BTINIT `:Classic Bluetooth 初始化 - [ESP32 Only] :ref:`AT+BTNAME `:查询/设置 Classic Bluetooth 设备名称 - [ESP32 Only] :ref:`AT+BTSCANMODE `:设置 Classic Bluetooth 扫描模式 - [ESP32 Only] :ref:`AT+BTSTARTDISC `:开始发现周边 Classic Bluetooth 设备 - [ESP32 Only] :ref:`AT+BTSPPINIT `:Classic Bluetooth SPP 协议初始化 - [ESP32 Only] :ref:`AT+BTSPPCONN `:查询/建立 SPP 连接 - [ESP32 Only] :ref:`AT+BTSPPDISCONN `:断开 SPP 连接 - [ESP32 Only] :ref:`AT+BTSPPSTART `:开启 Classic Bluetooth SPP 协议 - [ESP32 Only] :ref:`AT+BTSPPSEND `:发送数据到对方 Classic Bluetooth SPP 设备 - [ESP32 Only] :ref:`AT+BTA2DPINIT `:Classic Bluetooth A2DP 协议初始化 - [ESP32 Only] :ref:`AT+BTA2DPCONN `:查询/建立 A2DP 连接 - [ESP32 Only] :ref:`AT+BTA2DPDISCONN `:断开 A2DP 连接 - [ESP32 Only] :ref:`AT+BTA2DPSRC `:查询/设置音频文件 URL - [ESP32 Only] :ref:`AT+BTA2DPCTRL `:控制音频播放 - [ESP32 Only] :ref:`AT+BTSECPARAM `:查询/设置 Classic Bluetooth 安全参数 - [ESP32 Only] :ref:`AT+BTKEYREPLY `:输入简单配对密钥 (Simple Pair Key) - [ESP32 Only] :ref:`AT+BTPINREPLY `:输入传统配对密码 (Legacy Pair PIN Code) - [ESP32 Only] :ref:`AT+BTSECCFM `:给对方设备回复确认结果(传统连接阶段) - [ESP32 Only] :ref:`AT+BTENCDEV `:查询 Classic Bluetooth 加密设备列表 - [ESP32 Only] :ref:`AT+BTENCCLEAR `:清除 Classic Bluetooth 加密设备列表 - [ESP32 Only] :ref:`AT+BTCOD `:设置设备类型 - [ESP32 Only] :ref:`AT+BTPOWER `:查询/设置 Classic Bluetooth 的 TX 功率 .. _cmd-BTINIT: [ESP32 Only] :ref:`AT+BTINIT `:Classic Bluetooth 初始化 --------------------------------------------------------------------------- 查询命令 ^^^^^^^^ **功能:** 查询 Classic Bluetooth 初始化状态 **命令:** :: AT+BTINIT? **响应:** 若已初始化,则返回: :: +BTINIT:1 OK 若未初始化,则返回: :: +BTINIT:0 OK 设置命令 ^^^^^^^^ **功能:** 初始化或注销 Classic Bluetooth **命令:** :: AT+BTINIT= **响应:** :: OK 参数 ^^^^ - ****: - 0: 注销 Classic Bluetooth; - 1: 初始化 Classic Bluetooth。 示例 ^^^^ :: AT+BTINIT=1 .. _cmd-BTNAME: [ESP32 Only] :ref:`AT+BTNAME `:查询/设置 Classic Bluetooth 设备名称 ------------------------------------------------------------------------------- 查询命令 ^^^^^^^^ **功能:** 查询 Classic Bluetooth 设备名称 **命令:** :: AT+BTNAME? **响应:** :: +BTNAME: OK 设置命令 ^^^^^^^^ **功能:** 设置 Classic Bluetooth 设备名称 **命令:** :: AT+BTNAME= **响应:** :: OK 参数 ^^^^ - ****:Classic Bluetooth 设备名称,最大长度为:32。 说明 ^^^^ - 若 :ref:`AT+SYSSTORE=1 `,配置更改将保存在 NVS 区。 - 默认 Classic Bluetooth 设备名称为 "ESP32_AT"。 示例 ^^^^ :: AT+BTNAME="esp_demo" .. _cmd-BTSCANMODE: [ESP32 Only] :ref:`AT+BTSCANMODE `:设置 Classic Bluetooth 扫描模式 --------------------------------------------------------------------------- 设置命令 ^^^^^^^^ **功能:** 设置 Classic Bluetooth 扫描模式 **命令:** :: AT+BTSCANMODE= **响应:** :: OK 参数 ^^^^ - ****: - 0: 不可发现且不可连接; - 1: 可连接但不可发现; - 2: 既可发现也可连接; - 3: 可发现但不可连接。 示例 ^^^^ :: AT+BTSCANMODE=2 // 既可发现也可连接 .. _cmd-BTDISC: [ESP32 Only] :ref:`AT+BTSTARTDISC `:开始发现周边 Classic Bluetooth 设备 ------------------------------------------------------------------------------- 设置命令 ^^^^^^^^ **功能:** 开始发现 Classic Bluetooth 设备 **命令:** :: AT+BTSTARTDISC=,, **响应:** :: +BTSTARTDISC:,,,,, OK 参数 ^^^^ - ****: - 0: general inquiry mode; - 1: limited inquiry mode。 - ****:inquiry 时长,范围:0x01 ~ 0x30。 - ****:可以收到的 inquiry responses 的数量,若设为 0,AT 将收到无限个 response。 - ****:Classic Bluetooth 地址。 - ****:设备名称。 - ****:主要设备类型: - 0x0: 其他; - 0x1: 计算机; - 0x2: 电话(手机、无绳、支付电话、调制解调器); - 0x3: LAN、网络接入点; - 0x4: 音频/视频(耳机、扬声器、立体声、视频显示、VCR); - 0x5: 配件(鼠标、游戏杆、键盘); - 0x6: 成像(打印、扫描仪、相机、显示); - 0x7: 可穿戴; - 0x8: 玩具; - 0x9: 健康; - 0x1F: 未分类。 - ****:请参考 `次要设备类型 (Minor Device Class field) `_。 - ****:主要服务类型: - 0x0: 无效值; - 0x1: 有限可发现模式 (Limited Discoverable Mode); - 0x8: 定位(位置标志); - 0x10: 网络,如 LAN、点对点; - 0x20: 渲染,如打印、扬声器; - 0x40: 捕捉,如扫描仪、麦克风; - 0x80: 对象传输,如 v-Inbox、v-Folder; - 0x100: 音频,如扬声器、麦克风、耳机服务; - 0x200: 电话,如无绳电话、调制解调器、耳机服务; - 0x400: 信息,如 WEB 服务器、WAP 服务器。 - ****:信号强度。 示例 ^^^^ :: AT+BTINIT=1 AT+BTSCANMODE=2 AT+BTSTARTDISC=0,10,10 .. _cmd-BTSPPINIT: [ESP32 Only] :ref:`AT+BTSPPINIT `:Classic Bluetooth SPP 协议初始化 ------------------------------------------------------------------------------------------ 查询命令 ^^^^^^^^ **功能:** 查询 Classic Bluetooth SPP 协议初始化状态 **命令:** :: AT+BTSPPINIT? **响应:** 若已初始化,则返回: :: +BTSPPINIT:1 OK 若未初始化,则返回: :: +BTSPPINIT:0 OK 设置命令 ^^^^^^^^ **功能:** 初始化或注销 Classic Bluetooth SPP 协议 **命令:** :: AT+BTSPPINIT= **响应:** :: OK 参数 ^^^^ - ****: - 0: 注销 Classic Bluetooth SPP 协议; - 1: 初始化 Classic Bluetooth SPP 协议,角色为 master; - 2: 初始化 Classic Bluetooth SPP 协议,角色为 slave。 示例 ^^^^ :: AT+BTSPPINIT=1 // master AT+BTSPPINIT=2 // slave .. _cmd-BTSPPCONN: [ESP32 Only] :ref:`AT+BTSPPCONN `:查询/建立 SPP 连接 ------------------------------------------------------------------------- 查询命令 ^^^^^^^^ **功能:** 查询 Classic Bluetooth SPP 连接 **命令:** :: AT+BTSPPCONN? **响应:** :: +BTSPPCONN:, OK 如果未建立连接,则返回: :: +BTSPPCONN:-1 设置命令 ^^^^^^^^ **功能:** 建立 Classic Bluetooth SPP 连接 **命令:** :: AT+BTSPPCONN=,, **响应:** :: OK 若建立连接成功,则 AT 返回: :: +BTSPPCONN:, 若建立连接失败,则 AT 返回: :: +BTSPPCONN:,-1 参数 ^^^^ - ****:Classic Bluetooth SPP 连接号,当前只支持单连接,连接号为 0。 - ****: - 0x0000: 无安全保障; - 0x0001: 需要授权(仅对外连接需要); - 0x0036: 需要加密; - 0x3000: 中间人保护; - 0x4000: 最少 16 位密码。 - ****:对方 Classic Bluetooth SPP 设备地址。 示例 ^^^^ :: AT+BTSPPCONN=0,0,"24:0a:c4:09:34:23" .. _cmd-BTSPPDISCONN: [ESP32 Only] :ref:`AT+BTSPPDISCONN `:断开 SPP 连接 -------------------------------------------------------------------- 执行命令 ^^^^^^^^ **功能:** 断开 Classic Bluetooth SPP 连接 **命令:** :: AT+BTSPPDISCONN= **响应:** :: OK 若命令运行成功,则返回: :: +BTSPPDISCONN:, 若命令运行失败,则返回: :: +BTSPPDISCONN:-1 参数 ^^^^ - ****:Classic Bluetooth SPP 连接号,当前只支持单连接,连接号为 0。 - ****:对方 Classic Bluetooth A2DP 设备地址。 示例 ^^^^ :: AT+BTSPPDISCONN=0 .. _cmd-BTSPPSEND: [ESP32 Only] :ref:`AT+BTSPPSEND `:发送数据到对方 Classic Bluetooth SPP 设备 ----------------------------------------------------------------------------------------------- 执行命令 ^^^^^^^^ **功能:** 进入 Classic Bluetooth SPP 模式 **命令:** :: AT+BTSPPSEND **响应:** :: > 设置命令 ^^^^^^^^^^^^ **功能:** 发送数据到对方 Classic Bluetooth SPP 设备 **命令:** :: AT+BTSPPSEND=, **响应:** :: OK 参数 ^^^^ - ****:Classic Bluetooth SPP 连接号,当前只支持单连接,连接号为 0。 - ****:发送数据的长度。 说明 ^^^^ - 系统收到此命令后先换行返回 ``>``,然后 ESP 设备进入 UART Bluetooth 透传模式,当系统收到只含有 :ref:`+++ ` 的包时,设备返回到普通命令模式,请等待一秒再发送下一个 AT 命令。 示例 ^^^^ :: AT+BTSPPSEND=0,100 AT+BTSPPSEND .. _cmd-BTSPPSTART: [ESP32 Only] :ref:`AT+BTSPPSTART `:开启 Classic Bluetooth SPP 协议 --------------------------------------------------------------------------------------- 执行命令 ^^^^^^^^ **功能:** 开启 Classic Bluetooth SPP 协议 **命令:** :: AT+BTSPPSTART **响应:** :: OK 说明 ^^^^ - 在 SPP 传输中,如果未设置 :ref:`AT+SYSMSG ` 命令的 bit2 为 1,则系统不会提示任何连接状态改变的信息。 示例 ^^^^ :: AT+BTSPPSTART .. _cmd-BTA2DPINIT: [ESP32 Only] :ref:`AT+BTA2DPINIT `:Classic Bluetooth A2DP 协议初始化 -------------------------------------------------------------------------------------------- 查询命令 ^^^^^^^^ **功能:** 查询 Classic Bluetooth A2DP 协议的初始化状态 **命令:** :: AT+BTA2DPINIT? **响应:** 若已初始化,则返回: :: +BTA2DPINIT:1 OK 若未初始化,则返回: :: +BTA2DPINIT:0 OK 设置命令 ^^^^^^^^ **功能:** 初始化或注销 Classic Bluetooth A2DP 协议 **命令:** :: AT+BTA2DPINIT=, **响应:** :: OK 参数 ^^^^ - ****:角色 - 0: source; - 1: sink。 - ****: - 0: 注销 Classic Bluetooth A2DP 协议; - 1: 初始化 Classic Bluetooth A2DP 协议。 示例 ^^^^ :: AT+BTA2DPINIT=0,1 .. _cmd-BTA2DPCONN: [ESP32 Only] :ref:`AT+BTA2DPCONN `:查询/建立 A2DP 连接 --------------------------------------------------------------------------- 查询命令 ^^^^^^^^ **功能:** 查询 Classic Bluetooth A2DP 连接 **命令:** :: AT+BTA2DPCONN? **响应:** :: +BTA2DPCONN:, OK 若未建立连接,则 AT 不会返回 ```` 和 ```` 参数。 设置命令 ^^^^^^^^ **功能:** 建立 Classic Bluetooth A2DP 连接 **命令:** :: AT+BTA2DPCONN=, **响应:** :: OK 若建立连接成功,则返回: :: +BTA2DPCONN:, 若建立连接失败,则返回: :: +BTA2DPCONN:,-1 参数 ^^^^ - ****:Classic Bluetooth A2DP 连接号,当前只支持单连接,连接号为 0。 - ****:对方 Classic Bluetooth A2DP 设备地址。 示例 ^^^^ :: AT+BTA2DPCONN=0,0,0,"24:0a:c4:09:34:23" .. _cmd-BTA2DPDISCONN: [ESP32 Only] :ref:`AT+BTA2DPDISCONN `:断开 A2DP 连接 ---------------------------------------------------------------------- 执行命令 ^^^^^^^^ **功能:** 断开 Classic Bluetooth A2DP 连接 **命令:** :: AT+BTA2DPDISCONN= **响应:** :: +BTA2DPDISCONN:, OK 参数 ^^^^ - ****:Classic Bluetooth A2DP 连接号,当前只支持单连接,连接号为 0。 - ****:对方 Classic Bluetooth A2DP 设备地址。 示例 ^^^^ :: AT+BTA2DPDISCONN=0 .. _cmd-BTA2DPSRC: [ESP32 Only] :ref:`AT+BTA2DPSRC `:查询/设置音频文件 URL ----------------------------------------------------------------------------- 查询命令 ^^^^^^^^ **功能:** 查询音频文件 URL **命令:** :: AT+BTA2DPSRC? **响应:** :: +BTA2DPSRC:, OK 执行命令 ^^^^^^^^ **功能:** 设置音频文件 URL **命令:** :: AT+BTA2DPSRC=, **响应:** :: OK 参数 ^^^^ - ****:Classic Bluetooth A2DP 连接号,当前只支持单连接,连接号为 0。 - ****:源文件路径,当前只支持 HTTP、HTTPS 和 FLASH。 - ****:音频文件类型,如 "mp3"。 说明 ^^^^ - 当前只支持 mp3 格式文件。 示例 ^^^^ :: AT+BTA2DPSRC=0,"https://dl.espressif.com/dl/audio/ff-16b-2c-44100hz.mp3" AT+BTA2DPSRC=0,"flash://spiffs/zhifubao.mp3" .. _cmd-BTA2DPCTRL: [ESP32 Only] :ref:`AT+BTA2DPCTRL `:控制音频播放 --------------------------------------------------------------------- 执行命令 ^^^^^^^^ **功能:** 控制音频播放 **命令:** :: AT+BTA2DPCTRL=, **响应:** :: OK 参数 ^^^^ - ****:Classic Bluetooth A2DP 连接号,当前只支持单连接,连接号为 0。 - ****:控制类型: - 0: A2DP Sink,停止播放; - 1: A2DP Sink,开始播放; - 2: A2DP Sink,快进; - 3: A2DP Sink,后退; - 4: A2DP Sink,快进启动; - 5: A2DP Sink,快进停止; - 0: A2DP Source,停止播放; - 1: A2DP Source,开始播放; - 2: A2DP Source,暂停播放。 示例 ^^^^ :: AT+BTA2DPCTRL=0,1 // 开始播放音频 .. _cmd-BTSECPARAM: [ESP32 Only] :ref:`AT+BTSECPARAM `:查询/设置 Classic Bluetooth 安全参数 ------------------------------------------------------------------------------------------------------ 查询命令 ^^^^^^^^ **功能:** 查询 Classic Bluetooth 安全参数 **命令:** :: AT+BTSECPARAM? **响应:** :: +BTSECPARAM:,, OK 设置命令 ^^^^^^^^ **功能:** 设置 Classic Bluetooth 安全参数 **命令:** :: AT+BTSECPARAM=,, **响应:** :: OK 参数 ^^^^ - ****:输入输出能力: - 0: DisplayOnly; - 1: DisplayYesNo; - 2: KeyboardOnly; - 3: NoInputNoOutput。 - ****:使用可变或固定密码: - 0: 可变密码; - 1: 固定密码。 - ****:传统配对密码,最大长度:16 字节。 说明 ^^^^ - 若设置 ```` 为 0,则会自动忽略 ```` 参数。 示例 ^^^^ :: AT+BTSECPARAM=3,1,"9527" .. _cmd-BTKEYREPLY: [ESP32 Only] :ref:`AT+BTKEYREPLY `:输入简单配对密钥 (Simple Pair Key) -------------------------------------------------------------------------------------- 执行命令 ^^^^^^^^ **功能:** 输入简单配对密钥 (Simple Pair Key) **命令:** :: AT+BTKEYREPLY=, **响应:** :: OK 参数 ^^^^ - ****:Classic Bluetooth 连接号,当前只支持单连接,连接号为 0。 - ****:简单配对密钥 (Simple Pair Key)。 示例 ^^^^ :: AT+BTKEYREPLY=0,123456 .. _cmd-BTPINREPLY: [ESP32 Only] :ref:`AT+BTPINREPLY `:输入传统配对密码 (Legacy Pair PIN Code) ----------------------------------------------------------------------------------------- 执行命令 ^^^^^^^^ **功能:** 输入传统配对密码 (Legacy Pair PIN Code) **命令:** :: AT+BTPINREPLY=, **响应:** :: OK 参数 ^^^^ - ****:Classic Bluetooth 连接号,当前只支持单连接,连接号为 0。 - ****:传统配对密码 (Legacy Pair PIN Code)。 示例 ^^^^ :: AT+BTPINREPLY=0,"6688" .. _cmd-BTSECCFM: [ESP32 Only] :ref:`AT+BTSECCFM `:给对方设备回复确认结果(传统连接阶段) -------------------------------------------------------------------------------------------------- 执行命令 ^^^^^^^^ **功能:** 给对方设备回复确认结果(传统连接阶段) **命令:** :: AT+BTSECCFM=, **响应:** :: OK 参数 ^^^^ - ****:Classic Bluetooth 连接,当前只支持单连接,连接号为 0。 - ****:拒绝或接受: - 0: 拒绝; - 1: 接受。 示例 ^^^^ :: AT+BTSECCFM=0,1 .. _cmd-BTENCDEV: [ESP32 Only] :ref:`AT+BTENCDEV `:查询 Classic Bluetooth 加密设备列表 ---------------------------------------------------------------------------------------- 查询命令 ^^^^^^^^ **功能:** 查询绑定设备 **命令:** :: AT+BTENCDEV? **响应:** :: +BTENCDEV:, OK 参数 ^^^^ - ****:绑定设备序号。 - ****:MAC 地址。 示例 ^^^^ :: AT+BTENCDEV? .. _cmd-BTENCCLEAR: [ESP32 Only] :ref:`AT+BTENCCLEAR `:清除 Classic Bluetooth 加密设备列表 ------------------------------------------------------------------------------------------ 设置命令 ^^^^^^^^ **功能:** 从安全数据库列表中删除某一序号的设备 **命令:** :: AT+BTENCCLEAR= **响应:** :: OK 执行命令 ^^^^^^^^ **功能:** 删除安全数据库所有设备 **命令:** :: AT+BLEENCCLEAR **响应:** :: OK 参数 ^^^^ - ****:绑定设备序号。 示例 ^^^^ :: AT+BTENCCLEAR .. _cmd-BTCOD: [ESP32 Only] :ref:`AT+BTCOD `:设置设备类型 ------------------------------------------------------------- 设置命令 ^^^^^^^^ **功能:** 设置 Classic Bluetooth 设备类型 **命令:** :: AT+BTCOD=,, **响应:** :: OK 参数 ^^^^ - ****:`主要设备类型 (major class) `_; - ****:`次要设备类型 (minor class) `_; - ****:`服务类型 (service class) `_。 示例 ^^^^ :: AT+BTCOD=6,32,32 // 打印机 .. _cmd-BTPWR: [ESP32 Only] :ref:`AT+BTPOWER `:查询/设置 Classic Bluetooth 的 TX 功率 ------------------------------------------------------------------------------- 查询命令 ^^^^^^^^ **功能:** 查询 Classic Bluetooth 的 TX 功率 **命令:** :: AT+BTPOWER? **响应:** :: +BTPOWER:, OK 设置命令 ^^^^^^^^ **功能:** 设置 Classic Bluetooth 的 TX 功率 **命令:** :: AT+BTPOWER=, **响应:** :: OK 参数 ^^^^ - ****:最小功率水平,范围:[0,7]。 - ****:最大功率水平,范围:[0,7]。 示例 ^^^^ :: AT+BTPOWER=5,6 // 设置 Classic Bluetooth tx 功率