匿名
未登录
登录
丢石头百科
搜索
查看“模板:Dual-mode-Bluetooth-User-Manual”的源代码
来自丢石头百科
名字空间
模板
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
模板:Dual-mode-Bluetooth-User-Manual
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==产品特点== *双模蓝牙,彻底解决了iOS和Android设备对蓝牙的兼容问题 *配对后即可作为全双工串口使用,无需了解任何蓝牙协议 *丰富的AT指令,可以进行全方位配置 *XBee接口,方便接入带XBee接口的设备 *提供iOS和Android示例源码,实现遥控小车、数据采集和监控设备等应用 ==开箱检测== <font color="#FF0000">请详细阅读完“开箱检测”后,在进行通电测试,以免损坏模块。</font> Dual-mode Bluetooth是一个简单易用的蓝牙串口透传模块,使用时客户不需要了解烦杂的蓝牙协议,只需要当成一个全双工的串口使用即可。 由于该Dual-mode Bluetooth是TTL电平,在与PC机通信时需要使用RS232转UART模块或USB转UART模块。这里推荐用[[XBee USB Adapter]]搭配连接PC机进行测试。 XBee USB Adapter是一个USB转UART模块,同时带有XBee接口、按键和LED,并将所有的引脚以标准的2.54mm间距引出,搭配Dual-mode Bluetooth使用时,只需将Dual-mode Bluetooth接入到XBee(注意不要接反),在通过micro USB线将Xbee USB Adapter与PC机的USB接口相连即可。 硬件连接如下图所示: [[File:Dual-mode-Bluetooth-User-Manual01.png|300px]] 当然,你也可以使用普通的USB转UART模块进行测试,如[[FT232 USB UART Board (micro)]],由于Dual-mode Bluetooth的引脚间距是2.0mm,所有还需要在配合2.0转2.54的杜邦线进行测试。 硬件连接如下图所示: [[File:Dual-mode-Bluetooth-User-Manual02.png|600px]] 连接完成,检查无误,即可接入PC机。如果原来你未安装过相应的驱动,则还需要安装相应的USB转UART驱动。选择以下适合的驱动安装即可(如果你使用的是其它USB转UART模块,这一步则改为安装对应的USB转串口驱动): *[https://{{SERVERNAME}}/w/upload/6/62/CP210x_USB_TO_UART.zip XBee USB Adapter USB转UART驱动] *[https://{{SERVERNAME}}/w/upload/1/1f/FT232_Driver.7z FT232 USB UART Board (micro)USB转UART驱动(xp/win7 32位)] *[https://{{SERVERNAME}}/w/upload/4/49/CDM_v2.12.06_WHQL_Certified.zip FT232 USB UART Board (micro)USB转UART驱动(win7 64位)] 打开设备管理器,查看对应的COM。 手机扫描下面二维码下载相应的APP。其中iOS使用蓝牙BLE与模块进行通信,需要使用iphone4S及以上版本。Android使用蓝牙EDR与模块进行通信。 [[File:bluetooth_ios_wsble.png|310px]] [[File:bluetooth_android_wsedr.png|400px]] 启动APP,点击“扫描”(注意:手机需要打开蓝牙功能),大约几秒后,正常在列表中将显示相应的蓝牙设备。如果使用iOS,选择“Waveshare_BLE”设备,如果使用Android,选择“Waveshare_ERD”设备。 <font color="#FF0000">注意:有些Android手机需要打开APP相应的蓝牙和位置信息权限才可以正常使用。</font> 进到下一个页面后选择“串口调试模式”。 [[File:Dual-mode-Bluetooth-User-Manual03.png|400px]] [[File:Dual-mode-Bluetooth-User-Manual04.png|400px]] 注意:Android手机如果支持蓝牙BLE,将扫描两个设备,注意需要选择MAC地址为00:0E:0E的设备 [[File:Dual-mode-Bluetooth-User-Manual07.png|400px]] 此时,只要通过PC机的[[:File:串口调试助手.zip|串口调试助手]]发送数据给Dual-mode Bluetooth,手机就能收到相应的数据。同时串口助手也将显示手机发送的数据。 注意:Dual-mode Bluetooth出厂配置为波特率115200,校验位:N,数据位8位,停止位1位。虽然Dual-mode Bluetooth可以通过AT指令设置波特率等参数(见下方),但作为从机与手机通信时,不推荐修改,否则将可能导致APP无法与Dual-mode Bluetooth通信。 如下图: [[File:Dual-mode-Bluetooth-User-Manual06.png|400px]] [[File:Dual-mode-Bluetooth-User-Manual05.png|400px]] ==Dual-mode Bluetooth相关功能== ==='''常用系统AT指令'''=== 打开[[:File:串口调试助手.zip|串口调试助手]],默认如下图配置(如果修改过模块串口配置的,则按自定义的进行配置),发送大写AT(<font color="#FF0000">AT字符后没有\r\n等任何符号,有的串口助手有“发送新行”的复选款,请勿√选</font> ),若返回OK,说明硬件连接正常,模块工作正常。 [[File:Dual-mode-Bluetooth-User-Manual08.png|400px]] 在正常模式下,未建立连接或断开链接时能正常通过AT指令配置Dual-mode Bluetooth(如果处于连接状态,需要断开蓝牙链接才可正常使用AT指令)。 ---- *测试或断开连接指令 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | AT || OK\ER\断开连接 || 无 |} 模块处于正常待机状态时,会返回:"OK"。 模块处于错误状态时,会返回:"ER",说明蓝牙芯片工作不正常,可能需要重启或重置一些参数。 在模块建立蓝牙连接时,通过模块串口发送:"AT",可断开蓝牙连接。 ---- *复位指令 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | AT+RESET || OK+RESET || 无 |} 该指令执行后,模块将延时500ms后重启,整个重启过程大约需要3秒。 ---- *查询模块EDR模式MAC地址 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | AT+ADDE? || OK+Get:MAC地址 || 无 |} *查询模块BLE模式MAC地址 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | AT+ADDB? || OK+Get:MAC地址 || 无 |} *查询EDR成功连接过的远程主机地址 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | AT+RADE? || OK+Get:MAC 地址 || 无 |} *查询BLE成功连接过的远程主机地址 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | AT+RADB? || OK+Get:MAC 地址 || 无 |} *清除最后成功连接的地址信息 {| class="wikitable" |- ! 指令 !! 应答 !! 备注 |- | AT+CLEAE || OK+CLEAE || 清除EDR连接信息 |- | AT+CLEAB || OK+CLEAB || 清除BLE连接信息 |} ---- *查询\设置模块初始化通知 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+INIT? | OK+Get:[P1] | rowspan="2" | P1:0或1(默认:0) *0:不发送初始化通知 *1:发送初始化通知 |- | 设置:AT+INIT[P1] | OK+Set:[P1] |} 如果打开初始化通知,则模块初始化完成后会通过串口输出“OK+INIT”。 注:该指令执行后,必须重新上电,新设置才能生效。 ---- *查询\设置模块EDR工作模式 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+IMME? | OK+Get:[P1] | rowspan="2" | P1:0或1(默认:0) *0:自动工作 *1:上电等待指令工作 |- | 设置:AT+IMME[P1] | OK+Set:[P1] |} 注:该指令执行后,必须重新上电,新设置才能生效。 *查询\设置模块BLE工作模式 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+IMMB? | OK+Get:[P1] | rowspan="2" | P1:0或1(默认:0) *0:自动工作 *1:上电等待指令工作 |- | 设置:AT+IMMB[P1] | OK+Set:[P1] |} 注:该指令执行后,必须重新上电,新设置才能生效。 *设置EDR模式开始工作指令 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | AT+STARE || OK+STARE || 无 |} *设置EDR模式停止工作指令 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | AT+STOPE || OK+STOPE || 无 |} *设置BLE模式开始工作指令 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | AT+STARB || OK+STARB || 无 |} *设置BLE模式停止工作指令 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | AT+STOPB || OK+STOPB || 无 |} 若设置了AT+IMME1,则模块需要接收到AT+STARE,EDR模式才能正常工作。如果接收到AT+STOPE,则EDR模式会停止工作。 若设置了AT+IMMB1,则模块需要接收到AT+STARB,BLE模式才能正常工作。如果接收到AT+STOPB,则BLE模式会停止工作。 ==='''设置广播名称'''=== *查询\设置EDR设备名称 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+NAME? | OK+Get:[P1] | rowspan="2" | P1:设备名称 *推荐使用11位数字或字母,可包含中划线和下划线,不建议用其它字符 |- | 设置:AT+NAME[P1] | OK+Set:[P1] |} *查询\设置BLE设备名称 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+NAMB? | OK+Get:[P1] | rowspan="2" | P1:设备名称 *推荐使用11位数字或字母,可包含中划线和下划线,不建议用其它字符 |- | 设置:AT+NAMB[P1] | OK+Set:[P1] |} 例: {| class="wikitable" |- ! 所发送指令 !! 应答 !! 备注 |- | AT || OK || 测试命令,判断当前是否可以使用AT指令进行设置 |- | AT+NAMB? || OK+Get:当前BLE设备名称 || 查询BLE设备名称 |- | AT+NAMBtestBLE || OK+Set:testBLE || 设置BLE设备名称为"testBLE" |- | AT+NAME? || OK+Get:当前EDR设备名称 || 查询EDR设备名称 |- | AT+NAMEtestEDR || OK+Set:testEDR || 设置BLE设备名称为"testEDR" |- | AT+RESET || OK+RESET || 复位模块或重新给模块上电 |} 按顺序执行上表AT命令后,在模块重启后,通过手机APP重新扫描,正常可以看到设备名称已经修改。 ==='''配置iBeacon'''=== iBeacon默认UUID为:74288BDA-B644-4520-8F0C-720EAF059935,且主模式下不发送iBeacon广播包 *查询\设置iBeacon开关 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+IBEA? | OK+Get:[P1] | rowspan="2" | P1:0或1(默认:0) *0:关闭iBeacon *1:打开iBeacon |- | 设置:AT+IBEA[P1] | OK+Set:[P1] |} 该指令执行后,必须重新上电,新设置才能生效 *查询\设置iBeacon UUID值 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+IBE0? | OK+Get:[P1] | rowspan="2" | P1:00000001~FFFFFFFE *(默认:74278BDA) |- | 设置:AT+IBE0[P1] | OK+Set:[P1] |} iBeacon UUID:<font color="#FF0000">74288BDA</font>-B644-4520-8F0C-720EAF059935 该指令用于修改UUID中<font color="#FF0000">红字</font>部分 *查询\设置iBeacon UUID值 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+IBE1? | OK+Get:[P1] | rowspan="2" | P1:00000001~FFFFFFFE *(默认:B6444520) |- | 设置:AT+IBE1[P1] | OK+Set:[P1] |} iBeacon UUID:74288BDA-<font color="#00FF00">B644</font>-<font color="#00FF00">4520</font>-8F0C-720EAF059935 该指令用于修改UUID中<font color="#00FF00">绿字</font>部分 *查询\设置iBeacon UUID值 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+IBE2? | OK+Get:[P1] | rowspan="2" | P1:00000001~FFFFFFFE *(默认:8F0C720E) |- | 设置:AT+IBE2[P1] | OK+Set:[P1] |} iBeacon UUID:74288BDA-B644-4520-<font color="#0000FF">8F0C</font>-<font color="#0000FF">720E</font>AF059935 该指令用于修改UUID中<font color="#0000FF">蓝字</font>部分 *查询\设置iBeacon UUID值 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+IBE3? | OK+Get:[P1] | rowspan="2" | P1:00000001~FFFFFFFE *(默认:AF059935) |- | 设置:AT+IBE3[P1] | OK+Set:[P1] |} iBeacon UUID:74288BDA-B644-4520-8F0C-720E<font color="#B82DAE">AF059935</font> 该指令用于修改UUID中<font color="#B82DAE">紫字</font>部分 *查询\设置iBeacon Major值 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+MAJO? | OK+Get:[P1] | rowspan="2" | P1:0001~FFFE *(默认:0001) |- | 设置:AT+MAJO[P1] | OK+Set:[P1] |} *查询\设置iBeacon Minor值 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+MINO? | OK+Get:[P1] | rowspan="2" | P1:0001~FFFE *(默认:0001) |- | 设置:AT+MINO[P1] | OK+Set:[P1] |} 例: 1.在进行iBeacon配置时,需要先准备手机端的测试软件,以下以iOS系统系统测试为例,Android类似 在App Store里中搜索Locate,并安装。如下图: [[File:Dual-mode-Bluetooth-User-Manual09.png|400px]] 2.打开Locate并配置访问权限(注:没有配置访问权限将无法使用) 3.配置好手机端后,则可以开始配置设备端,通过串口发送以下指令: {| class="wikitable" |- ! 所发送指令 !! 应答 !! 备注 |- | AT || OK || 测试命令,判断当前是否可以使用AT指令进行设置 |- | AT+IBEA1 || OK+Set:1 || 打开iBeacon |- | AT+MAJO1234 || OK+Set:1234 || 配置iBeacon Major |- | AT+MINO4567 || OK+Set:4567 || 配置iBeacon MINO |- | AT+RESET || OK+RESET || 复位模块或重新给模块上电 |} 复位后正常可以搜索到如下图: [[File:Dual-mode-Bluetooth-User-Manual10.png|400px]] 注:16进制的1234和4567分别等于10进制的4660和17767。 其中<font color="#FF0000">74288BDA</font>-<font color="#00FF00">B644</font>-<font color="#00FF00">4520</font>-<font color="#0000FF">8F0C</font>-<font color="#0000FF">720E</font><font color="#B82DAE">AF059935</font>为默认UUID,如果需要修改,可以通过以下命令: 1.修改<font color="#FF0000">红色</font>部分:AT+IBE001234567 2.修改<font color="#00FF00">绿色</font>部分:AT+IBE18901ABCD 3.修改<font color="#0000FF">蓝色</font>部分:AT+IBE2EFEF0123 4.修改<font color="#B82DAE">紫色</font>部分:AT+IBE3456789AB 5.重新上电或执行"AT+RESET"指令 此时将按新的UUID进行广播,注意在Locate里需要设置自定义的UUID,才能在Locate中查看,设置如下图: [[File:Dual-mode-Bluetooth-User-Manual11.png|400px]] 显示结果如下: [[File:Dual-mode-Bluetooth-User-Manual12.png|400px]] ==='''设置三通模式'''=== 三通模式需要AT+ATOB与AT+DUAL配合使用,在模块两个模式(EDR,BLE)都建立蓝牙连接的情况下,打开三通模式,则A设备发送给模块的数据会被同时转发到B设备,B设备发送给模块的数据会被同时转发给A设备。 [[File:Dual-mode-Bluetooth-User-Manual13.png|900px]] *查询\设置模块三通模式 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+ATOB? | OK+ Get:[P1] | rowspan="2" | P1:0或1(默认:0) *0:不打开三通模式 *1:打开三通模式 |- | 设置:AT+ATOB[P1] | OK+ Set:[P1] |} *设置模块连接模式 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+DUAL? | OK+Get:[P1] | rowspan="2" | P1:0或1(默认:1) *0:双模待机同时收发 *1:双模待机单模收发 |- | 设置:AT+DUAL[P1] | OK+Set:[P1] |} 例: {| class="wikitable" |- ! 所发送指令 !! 应答 !! 备注 |- | AT || OK || 测试命令,判断当前是否可以使用AT指令进行设置 |- | AT+DUAL0 || OK+Set:0 || 双模待机同时收发 |- | AT+ATOB1 || OK+Set:1 || 打开三通模式 |- | AT+RESET || OK+RESET || 复位模块或重新给模块上电 |} ==='''IO控制'''=== *查询\设置LED(PIO1)输出状态 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+PIO1? | OK+Get:[P1] | rowspan="2" | P1:0或1(默认:0) *0:待机慢闪,连接后常亮 *1:待机不闪,连接后常亮 |- | 设置:AT+PIO1[P1] | OK+Set:[P1] |} *查询\设置PIO状态 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+PIO[P1]? | OK+Get:[P2] | rowspan="2" | P1:2\3\4\5\8\9\A\B P2:0,1,? *0:输出低电平 *1:输出高电平 *?:查询状态 |- | 设置:AT+PIO[P1][P2] | OK+Set:[P2] |} 例: 如果只查询一个PIO的输出状态请用"AT+PIO2?"或"AT+PIO3?" 设置PIO2输出状态:"AT+PIO2X",X值为0或1,代表低或高电平 以发送"AT+PIO21"为例,如果返回"OK+Set:1"说明PIO2电平已经输出高电平。 如果你使用XBee USB Adapter进行测试,那么有以下连接关系: {| class="wikitable" |- ! Dual-mode Bluetooth !! XBee USB Adapter |- | LED(PIO1) || LED1 |- | PIO5 || LED2 |} 对应该的IO如下图: [[File:Dual-mode-Bluetooth-User-Manual14.png|400px]] ==='''设置串口相关参数'''=== <font color="#FF0000">在重申一次,虽然Dual-mode Bluetooth允许用户修改串口相关参数,但并不推荐客户随意修改(默认设置是最常用的)。</font> *查询\设置模块波特率 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+BAUD? | OK+Get:[P1] | rowspan="2" | P1:1~7(默认:6) *1=4800 *2=9600 *3=19200 *4=38400 *5=57600 *6=115200 *7=230400 |- | 设置:AT+BAUD[P1] | OK+Set:[P1] |} 例子如下,设置波特率为9600: 发送:AT+BAUD2 返回:OK+Set:2 注:该指令设置波特率的指令后,须重新上电,新设置的参数才能生效。 *查询\设置串口校验 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+PARI? | OK+Get:[P1] | rowspan="2" | P1:0~2(默认:0) *0:无校验 *1:EVEN *2:ODD |- | 设置:AT+PARI[P1] | OK+Set:[P1] |} 注:该指令执行后,必须重新上电,新设置才能生效 *查询\设置停止位 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+STOP? | OK+Get:[P1] | rowspan="2" | P1:0或1(默认:0) *0:1停止位 *1:2停止位 |- | 设置:AT+STOP[P1] | OK+Set:[P1] |} 注:该指令执行后,必须重新上电,新设置才能生效 *查询\设置硬件流 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+FLOW? | OK+Get:[P1] | rowspan="2" | P1:0或1(默认:0) *0:关 *1:开 |- | 设置:AT+FLOW[P1] | OK+Set:[P1] |} 注:该指令执行后,必须重新上电,新设置才能生效 ==='''主从模式'''=== 主从模式是指两个Dual-mode Bluetooth之间进行全双工的通信,类似于串口延长线的功能。 测试时,需要有2个Dual-mode Bluetooth,其中一个设置为主模式,另一个保持从模式不变,关闭周围其他蓝牙设备,主模式的Dual-mode Bluetooth会自动搜索并链接到从模式的Dual-mode Bluetooth。 查询\设置EDR主从模式 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+ROLE? | OK+Get:[P1] | rowspan="2" | P1:0或1(默认:0) *0:从模式 *1:主模式 |- | 设置:AT+ROLE[P1] | OK+Set:[P1] |} 注:该指令执行后,必须重新上电,新设置才能生效 查询\设置BLE主从模式 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+ROLB? | OK+Get:[P1] | rowspan="2" | P1:0或1(默认:0) *0:从模式 *1:主模式 |- | 设置:AT+ROLB[P1] | OK+Set:[P1] |} 注:该指令执行后,必须重新上电,新设置才能生效 "AT+ROLE1"和"AT+ROLB1"不能同时使用,即同一时刻,只支持BLE做主设备或EDR做主设备。不能同时支持。一般更推荐使用"AT+ROLE1"。 ==='''其它AT指令'''=== *设置模块工作模式 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+MODE? | OK+Get:[P1] | rowspan="2" | P1:0或1(Default:0) *0:透传模式 *1:透传+远控模式 |- | 设置:AT+MODE[P1] | OK+Set:[P1] |} 用于切换透传和远控模式。 远控模式指可以通过设备发送AT指令去查询\设置蓝牙模块。 例: {| class="wikitable" |- ! 所发送指令 !! 应答 !! 备注 |- | AT || OK || 测试命令,判断当前是否可以使用AT指令进行设置 |- | AT+MODE1 || OK+Set:1 || 设置透传+远控模式 |} 之后通过手机APP发送AT指令"AT+PIO51"或"AT+PIO50"即可控制XBee USB Adapter板子上LED2的亮灭。 ---- *设置是否通知上位机连接状态 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+NOTI? | OK+Get:[P1] | rowspan="2" | P1:0或1(默认:0) *0:连接后不通知上位机 *1:连接后通知上位机 |- | 设置:AT+NOTI[P1] | OK+Set:[P1] |} 注:设置AT+NOTI1之后,模块与设备成功连接或断开连接时,会通过串口发送状态提醒信息,格式如下: OK+CONE-----EDR成功连接 OK+LSTE-----EDR断开连接 OK+CONB-----BLE成功连接 OK+LSTB-----BLE断开连接 OK+LSTA-----双模异常断开,模块自动重置 *设置通知上位机连接状态的提示类型 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+NOTP? | OK+Get:[P1] | rowspan="2" | P1:0或1(默认:0) *0:通知不包含远端地址 *1:通知包含远端地址 |- | 设置:AT+NOTP[P1] | OK+Set:[P1] |} 注:此功能基于"AT+NOTI1"指令,用来设置连接断开提示信息内容。 如果设置不包含地址,提示同"AT+NOTI1"指令中的提示,如果设置了包含地址,则提示信息如下: OK+CONE:001122334455-----EDR成功连接,包含远端地址 OK+LSTE:001122334455-----EDR断开连接,包含远端地址 OK+CONB:001122334455-----BLE成功连接,包含远端地址 OK+LSTB:001122334455-----BLE断开连接,包含远端地址 ---- *查询\设置是否在Android下使用BLE模式 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+ONEM? | OK+Get:[P1] | rowspan="2" | P1:0或1(默认:0) *0:使用BLE *1:不使用BLE |- | 设置:AT+ONEM[P1] | OK+Set:[P1] |} 注1:该指令执行后,必须重新上电,新设置才能生效 注2:执行AT+ONEM1之后,android下能搜索到BLE模式,但是将不能使用BLE模式,只能使用EDR模式。 00:0E:0B开头的BLE地址将被隐去。 *查询\设置EDR模式待机参数 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+SCAN? | OK+Get:[P1] | rowspan="2" | P1:0或1(默认:0) *0:可被发现,可连接 *1:不可被发现,可连接 |- | 设置:AT+SCAN[P1] | OK+Set:[P1] |} 注:该指令执行后,必须重新上电,新设置才能生效 ---- *查询\设置EDR配对密码 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+PINE? | OK+Get:[P1] | rowspan="2" | P1:8位以内的数字字符 *默认:1234 |- | 设置:AT+PINE[P1] | OK+Set:[P1] |} 例子如下: 发送:AT+PINE008888 返回:OK+Set:008888 此时配对密码改为008888,模块在出厂时的EDR默认配对密码是"1234"。 *查询\设置BLE配对密码 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | 查询:AT+PINB? | OK+Get:[P1] | rowspan="2" | P1:6位以内的数字字符 *默认:000000 |- | 设置:AT+PINB[P1] | OK+Set:[P1] |} 例子如下: 发送:AT+PINB008888 返回:OK+Set:008888 此时配对密码改为008888,模块在出厂时的BLE默认配对密码是"000000"。 ---- *重置模块 {| class="wikitable" |- ! 指令 !! 应答 !! 参数 |- | AT+RENEW | OK+RENEW | 无 |} 执行后模块将延时500ms后重启,所有设置均会被重置,<font color="#008DE6">该命令慎用</font>。 例: {| class="wikitable" |- ! 所发送指令 !! 应答 !! 备注 |- | AT || OK || 测试命令,判断当前是否可以使用AT指令进行设置 |- | AT+RENEW || OK+RENEW || 重置模块 |- | AT+NAMBWaveshareBLE || OK+Set:testBLE || 设备BLE设备名称为"WaveshareBLE" |- | AT+NAMEWaveshare_EDR || OK+Set:testEDR || 设备BLE设备名称为"WaveshareEDR" |- | AT+RESET || OK+RESET || 复位模块或重新给模块上电 |} ==APP对接== ==='''APP通信协议'''=== 我们默认提供的演示APP一共提供了3个模式,串口调试在上面已介绍,这里主要说遥控模式和外设控制的通讯协议,用户只需按我们提供的格式发送数据,就可以与APP进行通信。 ===='''概述'''==== 我们使用的通信协议是标准的JSON格式(一种轻量级的数据交换格式),并且为了方便解析,我们使用最简单的键值对形式,如下: {"key":"Value"} 使用最简单的键值对形式以下特点: *信息保存在键值对中 *键值对分别包含在双引号中 *键值对使用冒号分隔 *花括号作为数据帧的开始和结束 通过这些特点,就可以很简单的进行数据的打包和解析了。详细可参考我们提供的底板程序和APP源码。 ===='''遥控模式'''==== 遥控模式如下图,分为状态显示、速度控制和方向控制 [[File:Dual-mode-Bluetooth-User-Manual15.png|400px]] 具体默认协议如下表: {| class="wikitable" |- ! 描述 !! 状态 !! 命令 |- | 显示Dual-mode Bluetooth相关信息 || 接收 || {"State":"MSG"} |- | 设置速度-低速 || 按下发送 || {"Low":"Down"} |- | 设置速度-中速 || 按下发送 ||{"Medium":"Down"} |- | 设置速度-高速 || 按下发送 ||{"High":"Down"} |- | 方向控制-上 || 按下发送 ||{"Forward":"Down"} |- | 方向控制-上 || 弹起发送 ||{"Forward":"Up"} |- | 方向控制-下 || 按下发送 ||{"Backward":"Down"} |- | 方向控制-下 || 弹起发送 ||{"Backward":"Up"} |- | 方向控制-左 || 按下发送 ||{"Left":"Down"} |- | 方向控制-左 || 弹起发送 ||{"Left":"Up"} |- | 方向控制-右 || 按下发送 ||{"Right":"Down"} |- | 方向控制-右 || 弹起发送 ||{"Right":"Up"} |} 例: *如果你需要在APP上显示信息为Init Success,则可以通过Dual-mode Bluetooth发送 {"State":"Init Success"} ,APP接收到信息后,显示如下: [[File:Dual-mode-Bluetooth-User-Manual16.png|400px]] *如果你需要通过APP发送命令,则按下相应的按钮后,Dual-mode Bluetooth将接收到相应的命令。也可以通过设置按钮来自定义发送的内容。 ===='''外设控制'''==== 外设控制如下图,分为RGB LED控制、蜂鸣器控制、OLED控制和各种状态的显示 [[File:Dual-mode-Bluetooth-User-Manual17.png|400px]] 具体默认协议如下表: {| class="wikitable" |- ! 描述 !! 状态 !! 命令 |- | RGB LED控制 || 按下选择,弹起发送 || {"RGB":"R,G,B"} |- | 蜂鸣器控制 || 按下发送 || {"BZ":"on"} \ {"BZ":"off"} |- | OLED控制 || 输入框输入相应数据,点击发送按钮进行显示 || {"OLED":"input string"} |- | 实时时钟显示 || 接收 || {"RTC":"data time"} |- | 加速度显示 || 接收 || {"ACC":"acc data"} |- | 电压显示 || 接收 || {"ADC":"adc value"} |- | 遥杆状态显示 || 接收 || {"JOY":"key value"} |- | 温度显示 || 接收 || {"TEMP":"temperature"} |} 注: 蜂鸣器控制使用了单次握手方式,即点击按钮"蜂鸣器:开"时,Dual-mode Bluetooth会接收到 {"BZ":"on"} 此时Dual-mode Bluetooth应该再返回一次数据给APP以表明已接收到打开蜂鸣器的指令(发送 {"BZ":"on"} ) 当APP接收到 {"BZ":"on"} ,会翻转按钮的状态(变为"蜂鸣器:关") 如果再次点击"蜂鸣器:关",Dual-mode Bluetooth会接收到 {"BZ":"off"} 此时Dual-mode Bluetooth应该再返回一次数据给APP以表明已接收到关闭蜂鸣器的指令(发送 {"BZ":"off"} ) 当APP接收到 {"BZ":"off"} ,会翻转按钮的状态(变为:"蜂鸣器:开") ==搭配XNUCLEO-F103RB与Accessory Shield 进行外设控制== 测试步骤: 1.硬件连接如下图(如果跳线帽不够,可以把XNUCLEO-F103RB JP7的跳线拔下,接到JP4): [[File:Dual-mode-Bluetooth-User-Manual18.png|800px]] 2.使用ST-LINK/V2 (mini)下载STM32测试程序(推荐使用keil4.72以上版本进行编译) 3.打开APP,连接Dual-mode Bluetooth,选择"外设控制"对Accessory Shield各部分功能进行测试
返回至
模板:Dual-mode-Bluetooth-User-Manual
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志