这里会显示出您选择的修订版和当前版本之间的差别。
ocrobot:alpha:cc2541:main [2017/10/04 04:22] – 弘毅 | ocrobot:alpha:cc2541:main [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== ALPHA CC2541 蓝牙4.0 BLE模块====== | ||
+ | ALPHA CC2541是一款蓝牙4.0 BLE模块,默认状态为从机透传,可以非常方便的与手机相连。 | ||
+ | ===== 什么是BLE ===== | ||
+ | |||
+ | 从蓝牙4.0 开始有两个分支,经典4.0和BLE4.0,经典4.0 就是传统的3.0蓝牙升级而成,向下兼容。而BLE 4.0 是一个新的分支,不向下兼容。BLE 是低功耗蓝牙的缩写,顾名思义,其功耗较低。 | ||
+ | |||
+ | ===== 哪些设备支持BLE ===== | ||
+ | * iOS 平台:Iphone4s或者更高型号, | ||
+ | * Android平台: | ||
+ | ===== 为什么在系统蓝牙界面下找不到BLE 设备 ===== | ||
+ | 手机蓝牙默认工作在经典模式下,您需要通过程序来实现搜索,配对连接和通迅的整个过程。 | ||
+ | |||
+ | * IOS系统:请从苹果商店下载LightBlue。 | ||
+ | * Android:从市场搜索“BLE 串口”关键字,会搜到呼入BLE蓝牙串口,BLE调试工具等等工具。 | ||
+ | ===== BLE 的传输速度 ===== | ||
+ | BLE 的物理带宽只有1M,实际传输速度在1~6KB 之间。具体需要根据你使用的环境和项目进行验证,如果有可能,请尽可能的用高一点的波特率,会获得较好的通讯效果。 | ||
+ | ===== 收发字节限制问题 ===== | ||
+ | 我们的BLE模块,通过串口接收和发送无字节限制。 | ||
+ | * 在iOS 系统下,与模块通讯时,目前iOS 系统最大可以支持90 字节的发送量,但是研究发现,iOS 内部是分包的,并且分包效率不高,因此请您将超过20 个字节的数据进行分包发送。 | ||
+ | * 在Android 系统下,与模块通讯时,每次发送给模块的字节不能超过20字节,如果要发送超过20字节的数据,请分包发送。 | ||
+ | ===== 使用BLE模块需要注意的问题 ===== | ||
+ | |||
+ | BLE 不是设计为传输大量数据的,但是其有距离远(100英尺/ | ||
+ | ===== AT指令集 ===== | ||
+ | ==== 使用 AT 指令的时机? | ||
+ | |||
+ | 当模块不处于休眠模式, | ||
+ | ==== 1.测试或断开连接指令 ==== | ||
+ | ^指令^应答^参数^ | ||
+ | |AT|OK\\ OK+LOST|无| | ||
+ | 模块处于待机状态时,会通过串口返回: | ||
+ | \\ 模块处于连接状态时,会断开连接并返回:”OK+LOST”, | ||
+ | |||
+ | ==== 2.查询 ADC 转换值 ==== | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+ADC[P1]? | ||
+ | |||
+ | 该指令用于查询 PIO3 到 PIOB 口的 ADC 数据。参考电压为3V3. | ||
+ | |||
+ | ==== 3.查询本机 MAC 地址 ==== | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+ADDR? | ||
+ | |||
+ | ==== 4.查询/ | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+ADTY? | ||
+ | |AT+ADTY[P1]|OK+ Set: | ||
+ | |||
+ | 注:从模式下可用指令 | ||
+ | |||
+ | ==== 5.查询/ | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+ANCS? | ||
+ | |AT+ANCS[P1]|OK+ Set: | ||
+ | Note1: Must execute AT+TYPE3 command first | ||
+ | \\ Note2: Please send AT+RESET to restart module if you set value 1. | ||
+ | \\ Note3: Added in V524 version | ||
+ | |||
+ | ==== 6.查询/ | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+ALLO? | ||
+ | |AT+ALLO[P1]|OK+ Set: | ||
+ | |||
+ | 注:从模式下可用指令 | ||
+ | |||
+ | ==== 7.查询/ | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+AD[P1]?? | ||
+ | |AT+AD[P1][P2]|OK+Set[P2]|::: | ||
+ | |||
+ | 查询白名单地址 1: | ||
+ | \\ Send: AT+AD1?? | ||
+ | \\ Recv: OK+Get: | ||
+ | |||
+ | 设置白名单地址 1: | ||
+ | \\ Send: AT+AD1001122334455 (001122334455 为蓝牙地址) | ||
+ | \\ Recv: OK+Set: | ||
+ | |||
+ | ==== 8.查询/ | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+ADVI? | ||
+ | |AT+ADVI[P1]|OK+ Set: | ||
+ | |||
+ | 1285ms 为 IOS 系统所建议的最大值. 也就是说,1285ms 是苹果允许的,但是响应扫描和连接的时间会变长. | ||
+ | |||
+ | ==== 9.查询/ | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+BEFC? | ||
+ | |AT+BEFC[P1]|OK+ Set: | ||
+ | |||
+ | P1 的值转为二进制后为 00XXXXXXXXXX,共计 12 位,从左到右分别对应着 PIO0~PIOB 管脚, | ||
+ | |||
+ | e.g.: | ||
+ | \\ Send: AT+BEFC3FF | ||
+ | \\ Recv: OK+Get:3FF (下次模块上电后,PIO2~PIOB 会输出高电平) | ||
+ | \\ Note: AT+MODE1 模式下(PIO 采集模式)此指令不生效 | ||
+ | \\ Note: | ||
+ | \\ Note: Added in V527 | ||
+ | |||
+ | ==== 10.查询/ | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+AFTC? | ||
+ | |AT+AFTC[P1]|OK+ Set: | ||
+ | |||
+ | P1 的值转为二进制后为 00XXXXXXXXXX,共计 12 位,从左到右分别对应着 PIO0~PIOB 管脚, 其中左侧第一位和第二位为系统占用,设置无效,必须置零,其他位上的 X 代表 PIO 口的状态,X=1 代表此 PIO 口输出高电平,X=0 代表此 PIO 口输出低电平。 | ||
+ | |||
+ | e.g.: | ||
+ | \\ Send: AT+BEFC3FF | ||
+ | \\ Recv: OK+Get:3FF (建立蓝牙远程连接之后,PIO2~PIOB 会输出高电平) | ||
+ | \\ Note: AT+MODE1 模式下(PIO 采集模式)此指令不生效 | ||
+ | \\ Note: | ||
+ | |||
+ | ==== 11.查询/ | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+BATC? | ||
+ | |AT+BATC[P1]|OK+ Set: | ||
+ | |||
+ | ==== 12.查询电量信息 ==== | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+BATT? | ||
+ | |||
+ | 该指令仅对电池供电的方案有效。100 % = 3V, 0% = 2V。 | ||
+ | |||
+ | **有三种方式得到电量信息** | ||
+ | \\ A.电量值已经包含在广播包里,无须连接仅扫描一下就可以得到电量信息。 | ||
+ | * Android 系统: 信息格式: | ||
+ | * iOS 系统: 系统搜索回调函数中的 NSDictionary 结构中,对该结构进行拆分,Service为 0xB000 的 UUID 的 Key 值包含四个字节,分别是【FLAG 字节】, 【温度值】, | ||
+ | |||
+ | B. 在模块未连接到远端蓝牙的情况下,通过串口发送 AT+BATT? | ||
+ | \\ C. 用 AT+MODE1/2 将模块切换到非透传模式,建立蓝牙连接之后,远端设备可以发 AT+BATT? | ||
+ | |||
+ | ==== 13.设置 BIT7 兼容模式 ==== | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+BAUD? | ||
+ | |AT+BAUD[P1]|OK+Set: | ||
+ | 该指令用于兼容某些串口设置为数据位 7,停止位 2 的设备,如无必要请不要随意使用。 | ||
+ | |||
+ | ==== 14.查询、设置波特率 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+BAUD? | ||
+ | |AT+BAUD[P1]|OK+Set: | ||
+ | |||
+ | 设置波特率为 38400 例子如下: | ||
+ | \\ 发送:AT+BAUD2 | ||
+ | \\ 返回:OK+Set: | ||
+ | \\ 注意: 切换到1200后将不支持AT指令进行配置, | ||
+ | \\ 注:该指令执行后,须重新上电新设置的参数才能生效。 | ||
+ | |||
+ | ==== 15.设置连接最小间隔(Minimum Link Layer connection interval) ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+COMI[P1]|OK+ Get [P1]\\ OK+ Set [P1]|P1: ? , 0 ~ 9\\ ?: 查询\\ 0=7.5ms\\ 1=10ms\\ 2=15ms\\ 3=20ms\\ 4=25ms\\ | ||
+ | |||
+ | 该指令为主模式指令, | ||
+ | |||
+ | ==== 16.设置连接最大间隔(Maximum Link Layer connection interval) ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+COMA[P1]|OK+ Get [P1]\\ OK+ Set [P1]|P1: ? , 0 ~ 9\\ ?: 查询\\ 0: 7.5ms\\ 1: 10ms\\ 2: 15ms\\ 3: 20ms\\ 4: 25ms\\ 5: 30ms\\ 6: 35ms\\ 7: 40ms\\ 8: 45ms\\ 9: 4Seconds\\ Default: 7 (40ms)| | ||
+ | |||
+ | 该指令为主模式指令, | ||
+ | \\ 最大连接间隔不能小于最小连接间隔,无则无效。 | ||
+ | |||
+ | ==== 17.设置连接延迟数(Link Layer connection slave latency) ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+COLA[P1]|OK+ Get [P1]\\ OK+ Set [P1]|P1: ? , 0 ,1,2,3,4\\ ?: 查询\\ 0 为不延迟,1~4 为可以跳过 P1 个连接间隔\\ Default: 0| | ||
+ | |||
+ | 该指令为主模式指令, | ||
+ | |||
+ | ==== 18.设置连接异常检测时间(Link Layer connection supervision timeout) ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+COSU[P1]|OK+ Get [P1]\\ OK+ Set [P1]|P1: ? , 0 ~ 9\\ ?: 查询\\ 0: 100ms\\ 1: 1000ms\\ 2: 2000ms\\ 3: 3000ms\\ 4: 4000ms\\ 5: 5000ms\\ 6: 6000ms\\ Default: 6(6000ms)| | ||
+ | |||
+ | 该指令为主模式指令, | ||
+ | |||
+ | ==== 19.设置从模式更新连接参数开关 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+COUP[P1]|OK+ Get [P1]\\ OK+ Set [P1]|P1: ? , 0 ~ 1\\ ?: 查询\\ 0: 不主动更新参数\\ 1: 主动更新参数\\ Default: 0| | ||
+ | |||
+ | 该指令为从模式指令。 | ||
+ | |||
+ | |||
+ | ==== 20.连接最后一次连接成功的从设备 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+CONNL|OK+CONN[Para]|Para: | ||
+ | 该指令为主模式、手动工作模式指令。使用前须满足 AT+ROLE1,AT+IMME1。若模块没有记住最后一次成功连接过设备地址,则不响应。若远程设备异常断电或是已经和别的设备建立连接,则 OK+CONNF 需要 10秒左右才会返回。 | ||
+ | |||
+ | 注:此指令只有在主设备时才有效;从设备时不接受此指令,发送此指令没有回复,也不执行 | ||
+ | |||
+ | ==== 21.连接搜索返回列表中的从设备 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+CONN[P1]|OK+CONN[P2]|P1: | ||
+ | |||
+ | 该指令为主模式、手动工作模式指令。使用前须满足 AT+ROLE1,AT+IMME1,AT+DISC? | ||
+ | |||
+ | 注: 该指令取决于 AT+DISC? | ||
+ | |||
+ | 注: 若远程设备异常断电或是已经和别的设备建立连接,则 OK+CONNF 需要 10 秒左右才会返回。 | ||
+ | |||
+ | 注:此指令只有在主设备时才有效;从设备时不接受此指令,发送此指令没有回复,也不执行。 | ||
+ | |||
+ | ==== 22.连接指定 MAC 地址的设备 ==== | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+CO[P0][P1]|OK+CO[P0][P0][P2]|P0: | ||
+ | |||
+ | 该指令为主模式、手动工作模式指令。使用前须满足 AT+ROLE1,AT+IMME1条件。 | ||
+ | \\ P0 参数可由 AT+DISC? | ||
+ | \\ 若远程设备异常断电或是已经和别的设备建立连接,则 OK+CONNF 需要10秒左右才会返回。 | ||
+ | |||
+ | ==== 23.查询 PIO4~PIO11 的输出(输入)状态 ==== | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+COL?? | ||
+ | |||
+ | 如:发送 AT+COL?? | ||
+ | \\ 返回 OK+Col:00 | ||
+ | \\ 解释如下:00 转换为 2 进制则为:“00000000”,对应着 PIO4~PIO11 为低电平。 | ||
+ | \\ 如返回OK+Col: | ||
+ | |||
+ | 注:在 AT+MODE1 模式下,代表 PIO4~PIO11 的输入状态。 | ||
+ | \\ 在 AT+MODE2 模式下,代表 PIO4_~PIO11 的输出状态。 | ||
+ | \\ 在 AT+MODE0 模式下,该返回值无意义。 | ||
+ | |||
+ | ==== 24.清除设备配对信息 ==== | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+CLEAR|OK+CLEAR|无| | ||
+ | 清除成功连接过的设备地址码信息。 | ||
+ | |||
+ | ==== 25.查询\设置 PIO 采集速率 ==== | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+CYC?? | ||
+ | |AT+CYC[P1]|OK+Set: | ||
+ | 该指令用于设置 PIO 采集的传输速率,单位是秒。 | ||
+ | \\ 在 PIO 采集模式下,如果 PIO4~PIO11 其中的任意一个 PIO 口输入电平由低转高,则模块会按照此参数的设置上报给远端蓝牙(连接时)或是通过串口输出(未连接时),上报数据模式参见“AT+COL?? | ||
+ | |||
+ | ==== 26.更改 Characteristic 指令 ==== | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+CHAR? | ||
+ | |AT+CHAR0x[P1]|OK+Set: | ||
+ | |||
+ | 注: 该设置值将在模块重启后生效 | ||
+ | |||
+ | ==== 27.查询\设置模块的学习功能 ==== | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+COMP? | ||
+ | |AT+COMP[P1]|OK+Set: | ||
+ | |||
+ | 该指令为主模式指令。 | ||
+ | 该指令用来学习不同厂家的 BLE 产品的通讯方式并与之通讯。 | ||
+ | |||
+ | ==== 28.搜索 BLE 从机指令 ==== | ||
+ | ^指令^应答^参数^ | ||
+ | |AT+DISC? | ||
+ | |||
+ | 该指令为主模式、手动工作模式指令。使用前须满足 AT+ROLE1,AT+IMME1条件。 | ||
+ | \\ 发送 AT+DISC? | ||
+ | \\ 如果搜到 BLE 设备会返回 OK+DIS[P1]: | ||
+ | \\ 如只搜到二个设备的例子: | ||
+ | \\ 发送: AT+DISC? | ||
+ | \\ 接收: OK+DISCS | ||
+ | \\ 接收: OK+DIS[P1]: | ||
+ | \\ 如果 AT+SHOW 的值是 2 或者 3,会返回 RSSI | ||
+ | \\ 接收: OK+RSSI: xxx, | ||
+ | \\ 发送完 RSSI 之后,后面加入”\r\n”回车换行符共计两个 Byte, | ||
+ | \\ 如果 AT+SHOW 的值是 1 或者 3, | ||
+ | \\ 接收: OK+NAME: xxx, | ||
+ | \\ 发送完名字之后,会在名字后加入”\r\n”回车换行符共计两个 Byte, | ||
+ | \\ 接收: OK+DIS[P1]: | ||
+ | \\ 如果 AT+SHOW 的值是 2 或者 3,会返回 RSSI | ||
+ | \\ 接收: OK+RSSI: xxx, | ||
+ | \\ 发送完 RSSI 之后,后面加入”\r\n”回车换行符共计两个 Byte, | ||
+ | \\ 如果 AT+SHOW 的值是 1 或者 3, | ||
+ | \\ 接收: OK+NAME: xxx, | ||
+ | \\ 发送完名字之后,会在名字后加入”\r\n”回车换行符共计两个 Byte, | ||
+ | \\ 接收: OK+DISCE | ||
+ | \\ 如果要连接搜到的前 6 个返回设备,下标从 0 开始。 | ||
+ | \\ 发送: AT+CONN0 连接搜到的第一个设备 | ||
+ | \\ 发送: AT+CONN1 连接搜到的第二个设备 | ||
+ | \\ 依此类推… | ||
+ | \\ 也可以用 AT+CO[设备类型][MAC 地址]的形式来连接指定地址的设备 | ||
+ | |||
+ | ==== 29.搜索 BLE 从机指令并返回全部数据 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+DISA? | ||
+ | |||
+ | ==== 30.iBeacon 设备搜索指令 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+DISI? | ||
+ | |||
+ | 该指令使用需满足 AT+IMME1 和 AT+ROLE1. | ||
+ | \\ P1 长度: | ||
+ | \\ P2 长度 32, | ||
+ | \\ P3 长度 10, | ||
+ | \\ P4 长度 12, | ||
+ | \\ P5 长度 4 | ||
+ | \\ P3 包 4 位 Major value, 4 位 Minor value,2 位 Measured Power, 总长 10 | ||
+ | \\ 如果扫描到的不是 iBeacon 设备,P1,P2,P3 将全部用’0’填充 | ||
+ | |||
+ | ==== 31.设置 iBeacon 部署模式 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+DELO[P1]|OK+DELO[P1]|P1: | ||
+ | |||
+ | 命令执行成功后,模块将重启进行部署模式,直到下一次重新上电自动解除。 | ||
+ | |||
+ | ==== 32.擦除绑定信息 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+ERASE|OK+ERASE|无| | ||
+ | 该指令用于擦除模块端的绑定信息,手机端的绑定信息需要用户手动移除。 | ||
+ | |||
+ | ==== 33.设置从模式广播包中的标志位 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+FLAG[P1]|OK+ Set: | ||
+ | |||
+ | ==== 34.查询\设置接收增益 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+GAIN? | ||
+ | |AT+GAIN[P1]|OK+ Set: | ||
+ | |||
+ | ==== 35.查询/ | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+FLOW? | ||
+ | |AT+FLOW[P1]|OK+ Set: | ||
+ | |||
+ | ==== 36.帮助指令 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+HELP? | ||
+ | |||
+ | ==== 37.设置模块工作类型 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+IMME? | ||
+ | |AT+IMME[P1]|OK+Set: | ||
+ | |||
+ | 注:重新上电后该设置值生效。 | ||
+ | |||
+ | ==== 38.查询\设置 iBeacon 开关 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+IBEA? | ||
+ | |AT+IBEA[P1]|OK+Set: | ||
+ | iBeacon UUID is: 74278BDA-B644-4520-8F0C-720EAF059935. | ||
+ | \\ 注:iBeacon 开关仅在从模式下有生,主模式不发送 iBeacon 广播包。 | ||
+ | \\ 注:重新上电后(也可执行 AT+RESET)该设置值生效。 | ||
+ | \\ 注:从 V517 开始增加该指令 | ||
+ | |||
+ | ==== 39.查询\设置 iBeacon UUID 值 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+IBE0? | ||
+ | |AT+IBE0[P1]|OK+Set: | ||
+ | |||
+ | iBeacon UUID is: 74278BDA-B644-4520-8F0C-720EAF059935. | ||
+ | \\ 该指令用于修改 UUID 中74278BDA部分 | ||
+ | |||
+ | ==== 40.查询\设置 iBeacon UUID 值 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+IBE1? | ||
+ | |AT+IBE1[P1]|OK+Set: | ||
+ | |||
+ | Beacon UUID is: 74278BDA-B644-4520-8F0C-720EAF059935. | ||
+ | \\ 该指令用于修改 UUID 中B644-4520部分 | ||
+ | |||
+ | ==== 41.查询\设置 iBeacon UUID 值 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+IBE2? | ||
+ | |AT+IBE2[P1]|OK+Set: | ||
+ | |||
+ | iBeacon UUID is: 74278BDA-B644-4520-8F0C-720EAF059935. | ||
+ | 该指令用于修改 UUID 中8F0C-720E部分 | ||
+ | |||
+ | ==== 42.查询\设置 iBeacon UUID 值 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+IBE3? | ||
+ | |AT+IBE3[P1]|OK+Set: | ||
+ | |||
+ | iBeacon UUID is: 74278BDA-B644-4520-8F0C-720EAF059935. | ||
+ | 该指令用于修改 UUID 中AF059935部分 | ||
+ | |||
+ | ==== 43.查询\设置 iBeacon Marjor 值 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+MARJ? | ||
+ | |AT+MARJ[P1]|OK+Set: | ||
+ | |||
+ | 如设置 Marjor 为 0x0102 | ||
+ | \\ Send: AT+MARJ0x0102 | ||
+ | \\ Recv: OK+Set: | ||
+ | \\ 0x0102 中的 x 为小写 | ||
+ | |||
+ | ==== 44.查询\设置 iBeacon Minor 值 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+MINO? | ||
+ | |AT+MINO[P1]|OK+Set: | ||
+ | |||
+ | 如设置 Minor 为 0x0102 | ||
+ | \\ Send: AT+MINO0x0102 | ||
+ | \\ Recv: OK+Set: | ||
+ | |||
+ | ==== 45.查询\设置 iBeacon Measured power 值 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+MEA?? | ||
+ | |AT+MEA[P1]|OK+Set: | ||
+ | |||
+ | ==== 46.设置模块工作模式 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+MODE? | ||
+ | |AT+MODE[P1]|OK+Set: | ||
+ | |||
+ | 注:透传模式:即普通的串口透明传输, | ||
+ | |||
+ | PIO 采集+远控+透传模式:在此模式下,远端蓝牙可以使用 AT 指令设置模块信息,还可以远程控制 2 路 PIO 输出状态(PIO2, | ||
+ | |||
+ | 透传+远控模式:在此模式下,远端蓝牙可以使用 AT 指令设置模块信息,还可以控制 10 路 PIO(PIO2~PIO11)输出状态,同时还可以将非“AT”开头的数据包转发至串口进行双向通讯。 | ||
+ | |||
+ | ==== 47.设置是否通知上位机连接状态 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+NOTI? | ||
+ | |AT+NOTI[P1]|OK+Set: | ||
+ | |||
+ | 注:如 Para 值设为 1,模块在成功连接上远端模块后,会通过串口发送”OK+CONN”字符给与模块焊接在一起的上位机,断开连接后则会发送”OK+LOST”字符。 | ||
+ | |||
+ | ==== 48.设置通知上位机连接状态字符串格式 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+NOTP? | ||
+ | |AT+NOTP[P1]|OK+Set: | ||
+ | |||
+ | 注:该指令为 AT+NOTI 子指令,用于在 AT+NOTI1 的设置的基础上设置连接成功后的提示字符串如 Para 值设为 1,模块在成功连接上远端模块后,会通过串口发送”OK+CONN: | ||
+ | |||
+ | ==== 49.查询、设置设备名称 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+NAME? | ||
+ | |AT+NAME[P1]|OK+Set[P1]|::: | ||
+ | |||
+ | 例子如下: | ||
+ | \\ 发送:AT+NAMEname | ||
+ | \\ 返回:OK+Set: | ||
+ | \\ 参数 name:所要设置的当前名称,即蓝牙被搜索到的名称。11 个字符以内。 | ||
+ | \\ 例:发送 AT+NAMEbill_gates | ||
+ | \\ 返回 OK+Set: | ||
+ | \\ 这时蓝牙模块名称改为 bill_gates | ||
+ | \\ 注: 该指令执行后,须重新上电新设置的参数才能生效。 | ||
+ | |||
+ | ==== 50.查询/ | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+PARI? | ||
+ | |AT+PARI[P1]|OK+Set: | ||
+ | |||
+ | 注:该指令执行后,须重新上电新设置的参数才能生效 | ||
+ | |||
+ | ==== 51.查询/ | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+PCTL? | ||
+ | |AT+PCTL[P1]|OK+Set: | ||
+ | |||
+ | 注:该指令执行后,须重新上电新设置的参数才能生效。 | ||
+ | |||
+ | ==== 52.PIO1 口输出状态(Query/ | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+PIO1? | ||
+ | |AT+PIO1 [P1]|OK+Set: | ||
+ | |||
+ | 注:该指令执行后,须重新上电新设置的参数才能生效。 | ||
+ | |||
+ | ==== 53.PIO 口输出控制(Query/ | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+PIO[P1]? | ||
+ | |AT+PIO [P1][P2]|OK+Set[P1]: | ||
+ | |||
+ | 1.查询全部 PIO 口状态: | ||
+ | \\ 发送: AT+PIO?? | ||
+ | \\ 接收: OK+PIO?: | ||
+ | \\ 别对应着 PIO0~PIOB,详见 AT+BEFC 指令描述 | ||
+ | \\ 2.设置 PIO2 口输出高电平 | ||
+ | \\ 发送: AT+PIO21 | ||
+ | \\ 回复: AT+PIO21(如果执行成功), | ||
+ | \\ 3.设置 PIO2 口输出低电平 | ||
+ | \\ 发送: AT+PIO20 | ||
+ | \\ 回复: AT+PIO20(如果执行成功), | ||
+ | |||
+ | 注: | ||
+ | \\ AT+MODE1 模式下,您只能设置 2 路输出,即 PIO2,PIO3 的输出。在 | ||
+ | \\ AT+MODE2 模式下可以设置 10 路输出。即 PIO2~PIO11. | ||
+ | |||
+ | ==== 54.查询、设置配对密码 ==== | ||
+ | |||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+PASS? | ||
+ | |AT+PASS[P1]|OK+Set: | ||
+ | |||
+ | 例子如下: | ||
+ | \\ 发送 AT+PASS008888 | ||
+ | \\ 返回 OK+Set: | ||
+ | \\ 这时蓝牙模块配对密码改为 008888,模块在出厂时的默认配对密码是000000。 | ||
+ | |||
+ | ==== 55.设置模块休眠方式 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+PWRM? | ||
+ | |AT+PWRM[P1]|OK+Set: | ||
+ | |||
+ | 该指令仅在从模式下生效。 | ||
+ | |||
+ | ==== 56.模块功率设置指令 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+POWE? | ||
+ | |AT+POWE[P1]|OK+Set: | ||
+ | |||
+ | 注:调大功率会引起电量损耗加剧。 | ||
+ | |||
+ | ==== 57.查询\设置待机的增强模式 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+RELI? | ||
+ | |AT+RELI[P1]|OK+ Set: | ||
+ | |||
+ | 当您需要频繁断开并进行蓝牙连接的时候,需要打开此指令。 | ||
+ | |||
+ | ==== 58.查询设置传感器采集频率(Rate) ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+RAT?? | ||
+ | |AT+RAT[P1]|OK+Set: | ||
+ | |||
+ | 用于设置接在 HM-10 模块 P11 管脚上的传感器的自动采集频率,单位为分钟,自动采集完成后,会将采集数据更新至广播数据报中,目前支持 DHT11, DS18B20。 | ||
+ | \\ 该指令设置后采集信息返回格式同 AT+TEHU? | ||
+ | \\ 该指令需和 AT+SENS 指令配合使用。 | ||
+ | |||
+ | ==== 59.恢复默认设置(Renew) ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+RENEW|OK+RENEW|无| | ||
+ | |||
+ | 恢复模块默认出厂设置值,模块的所有设置均会被重置,恢复到出厂时状态,恢复出厂设置后,模块延时 500ms 后重启,如无必要,请慎用。 | ||
+ | |||
+ | ==== 60.模块复位,重启(Reset) ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+RESET|OK+RESET|无| | ||
+ | |||
+ | 该指令执行后,模块将延时 500ms 后重启。 | ||
+ | |||
+ | ==== 61.查询、设置主从模式 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+ROLE? | ||
+ | |AT+ROLE[P1]|OK+Set: | ||
+ | |||
+ | 注:该指令执行后,会导致模块延时 500ms 重启。 | ||
+ | |||
+ | ==== 62.读取 RSSI 信号值 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+RSSI? | ||
+ | |||
+ | 注:该指令仅在远程控制(AT+MODE1, | ||
+ | |||
+ | ==== 63.查询成功连接过的远程主机地址 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+RADD? | ||
+ | |||
+ | ==== 64.查询、设置从机通讯属性 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+RESP? | ||
+ | |AT+RESP[P1]|OK+Set: | ||
+ | |||
+ | 注:该指令重启生效 | ||
+ | |||
+ | ==== 65.设置模块在手动搜索时是否返回设备名字和信号强度信息 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+SHOW? | ||
+ | |AT+SHOW[P1]|OK+Set: | ||
+ | |||
+ | ==== 66.查询设置传感器型号 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+SENS? | ||
+ | |AT+SENS[P1]|OK+Set: | ||
+ | |||
+ | 用于设置接在 HM-10 模块 P11 管脚上的传感器的型号, | ||
+ | 该指令设置完成后如需设置自动采集频率请参见 AT+RATE 指令。 | ||
+ | |||
+ | ==== 67.设置停止位 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+STOP? | ||
+ | |AT+STOP[P1]|OK+Set: | ||
+ | |||
+ | 注:该指令执行后,须重新上电新设置的参数才能生效。 | ||
+ | |||
+ | ==== 68.开始工作指令 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+START|OK+START|无| | ||
+ | |||
+ | 注:该指令配合 AT+IMME 设置值为 1 时有效, | ||
+ | |||
+ | ==== 69.手动让模块进行休眠状态 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+SLEEP|OK+ SLEEP|无| | ||
+ | |||
+ | 该指令仅在从模式下待机状态下生效。 | ||
+ | |||
+ | ==== 70.设置模块成功连接后是否保存连接地址 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+SAVE? | ||
+ | |AT+SAVE[P1]|OK+ Set: | ||
+ | |||
+ | 注:如果要设置主模块为不保存,请先执行一下 AT+CLEAR 指令清除以前的地址,这样每次主模块上电后,会先搜索,而非直接连接上次地址。 | ||
+ | |||
+ | ==== 71.设置主模式下执行一次扫描时长 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+SCAN? | ||
+ | |AT+SCAN[P1]|OK+ Set: | ||
+ | |||
+ | ==== 72.设置主模式下尝试连接时间 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+TCON? | ||
+ | |AT+TCON[P1]|OK+Set: | ||
+ | |||
+ | 注:该指令只在主模式下有效,当模块记住了上一次成功链接的地址后,再次开机自动尝试连接该地址的尝试时间由此参数控制,超过该数值,会自动进入搜索状态,000000 为一直尝试连接,该参数值为毫秒,如无必要请不要设置该值太小,会影响模块正常工作。 | ||
+ | |||
+ | ==== 73.查询温度、湿度信息 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+TEHU? | ||
+ | |||
+ | 使用前请用 AT+SENS 设置传感器型号。 | ||
+ | \\ 该指令为 HMSensor 版本专用指令,用于读取连接在 HM-10 模块 P11 管脚上的传感器的数据,目前支持 DHT11, DS18B20。 | ||
+ | |||
+ | 有三种方式得到温度、湿度信息, | ||
+ | \\ D. 温度、湿度值已经包含在广播包里,无须连接,仅扫描一下就可以得到。 | ||
+ | |||
+ | Android 系统: | ||
+ | \\ 信息格式: | ||
+ | |||
+ | iOS 系统: | ||
+ | \\ 系统搜索回调函数中的 NSDictionary 结构中,对该结构进行拆分,Service为 0xB000 的 UUID 的 Key 值包含四个字节,分别是【保留字节】, | ||
+ | |||
+ | E. 在模块未连接到远端蓝牙的情况下,通过串口发送 AT+TEHU? | ||
+ | \\ F. 用 AT+MODE1/2 将模块切换到非透传模式,在建立蓝牙连接之后,远端设备可以发 AT+TEHU? | ||
+ | \\ G. 如果取得的温度值大于 128,为负数,请减掉 128,即为相应的负数值。 | ||
+ | |||
+ | ==== 74.查询温度信息或设置广播包中温度标志位的值 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+TEMP? | ||
+ | |||
+ | 用于读取连接在模块 P11 管脚上的传感器 DS18B20 的数据。 | ||
+ | 若是没有设 AT+SENS,则读取模块内部的温度传感器数据。 | ||
+ | 数据格式:OK+Get: | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+TEMP[P1]|OK+ Set: | ||
+ | |||
+ | 用于设置模块在从机待机的时候, | ||
+ | 生效后, | ||
+ | |||
+ | ==== 75.设置广播包中湿度标志位中的值 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+HUMI[P1]|OK+ Set: | ||
+ | |||
+ | 用于设置模块在从机待机的时候, | ||
+ | \\ 如设置湿度标志位为’A’, | ||
+ | |||
+ | ==== 77.更改 Service UUID 指令 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+UUID? | ||
+ | |AT+UUID0x[P1]|OK+Set: | ||
+ | |||
+ | 注: 该设置值将在模块重启后生效 | ||
+ | |||
+ | ==== 78.查询、设置 UART 休眠方式 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+UART? | ||
+ | |AT+UART[P1]|OK+Set: | ||
+ | |||
+ | 注: 该指令为专用指令,用于降低功耗。 | ||
+ | |||
+ | ==== 79.查询\设置模块是否使用两个 UUID 特性 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+FFE2? | ||
+ | |AT+FFE2[P1]|OK+Set: | ||
+ | |||
+ | ==== 80.查询\设置模块使用 128Bit 特性 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+128B? | ||
+ | |AT+128B[P1]|OK+Set: | ||
+ | |||
+ | ==== 81.版本查询 ==== | ||
+ | |||
+ | ^指令^应答^参数^ | ||
+ | |AT+VERS?\\ AT+VER?? | ||
+ | |||
+ | ===== 参考图片 ===== | ||
+ | {{: | ||
+ | {{: |