Bluetooth Bee V2

概 述

如今大多高端电子设备都配备蓝牙技术,如笔记本电脑、手机、PDA等等,蓝牙技术结束了“线缆噩梦”进入了全新的无线时代。 Bluetooth Bee V2蓝牙无线数传模块采用XBEE造型设计,体积尺寸紧凑,兼容XBEE的扩展底座,适用于各种3.3V的单片机系统,模块可以使用AT指令设置波特率和主从机模式。

板载LINK指示灯,可以了解模块的配对情况,配对成功后LINK灯常亮;自带高效板载天线,天线外露使信号质量更好发射距离更远,透明串口,可与各种蓝牙适配器、蓝牙手机配对使用。人性化的设计为二次开发提供便利。 Bluetooth Bee V2蓝牙无线模块可以使用XBEE适配器修改波特率和主从机模式。可以使用XBEE底座插接到Arduino控制器上,从而实现蓝牙无线控制。

性能描述

  • 蓝牙芯片:CSR BC417143
  • 蓝牙协议:Bluetooth Specification v2.0+EDR
  • USB协议:USB v1.1/2.0
  • 工作频率:2.4~2.48GHz unlicensed ISM band
  • 调制方式:GFSK(Gaussian Frequency Shift Keying)
  • 发射功率:≤4dBm, Class 2
  • 传输距离:20~30m in free space
  • 灵敏度:≤-84dBm at 0.1% BER
  • 传输速率:Asynchronous: 2.1Mbps(Max) / 160 kbps;Synchronous: 1Mbps/1Mbps
  • 安全特性:Authentication and encryption
  • 支持profiles:Bluetooth serial port
  • 串口默认设置:1200~115200/N/ 8/1,默认波特率:9600/N/ 8/1,从机模式
  • 输入电压:+3.3V DC/50mA
  • 工作温度:–20°C~+55°C
  • 模块尺寸:32×24×9mm

模块引脚定义

Bluetooth_Bee_V2_1.jpg

应用实例

以下有两个应用,第一个是PC与蓝牙模块,第二个是两个蓝牙模块之间通信,以及第三个,大家期待的蓝牙和手机的通信也可以实现啦!在使用以下应用之前都需对蓝牙模块进行配置,比如主从设置、配对码、波特率等。

建议可以先选择一个你要实现的应用,按你应用的需求再来配置蓝牙模块,可能更加有效。

那就先选择一个应用,开始做吧!

一、蓝牙模块设置

STEP 1:所需硬件

  1. 1x Bluetooh Bee V2蓝牙串口模块
  2. 1x XBee USB Adapter 适配器
  3. 1x Micro USB电缆(旧版适配器需要使用Mini USB电缆)

STEP 2: 切换到AT模式

如下图所示,模块有一个拨码开关是用来切换AT命令模式与运行模块的。我们这里是来配置模块,所以切换到AT mode那端。

AT_MODE.png

STEP 3: 连接到XBee适配器

1、设置Bluetooth Bee V2蓝牙模块需要借助xbee适配器,如下图所示,将蓝牙模块插到xbee适配器上,再通过USB线连接到电脑上。

Bluetooth_Bee_V2_3.jpg

2、当然,XBee适配器需要安装驱动,才可以使用,安装成功后,在设备管理器中显示为一个串口,下图设备管理器中USB Serial Port(COM10)。这个COM口用来配置蓝牙模块的。

驱动下载点击

BLUETOOTH16.jpg

注意:STEP2、STEP3两步不能颠倒。

STEP4: 通过串口指令来配置蓝牙模块

1、在这个部分,我们需要用串口监视器来完成配置。有好多串口调试软件都可以完成,当然也可以用Arduino IDE的自带的串口监视器。在这里,我们就选用Arduino IDE自带的串口监视器来完成wifi配置。首先,打开IDE,查看是否显示串口,我们这里选择COM10,打开串口监视器界面,设置波特率38400,选择**“换行和回车模式”(Both NL&CR)**。

注意:在AT模式中波特率默认为38400,和通讯时设置的波特率无关。

Serialshow.png

2、设置完成后,在串口中输入“at”(不区分大小写),测试蓝牙模块与USB串口是否建立连接,如果连接成功,会显示“[OK]”。按同样的方法在串口输入相关的AT指令就能就行配置了。当AT指令设置完毕后,将开关另一端退出AT命令模式,重新上电后设置才生效。

以下是AT指令集的说明:

1、测试指令:

指令 响应 参数
AT OK

2.模块重启指令:

指令 响应 参数
AT+RESET OK

3.设置和查询模块连接模式:

当模块无法被适配器、主机搜索到或无法连接时,需配置该参数,配置为AT+CMODE=1。

指令 响应 参数
AT+CMODE=< Param > OK Param:参数取值如下:

0 —— 指定蓝牙地址连接模式 (指定蓝牙地址由绑定指令设置)

1 —— 任意蓝牙地址连接模式 (不受绑定指令设置地址的约束)

默认连接模式:0

AT+CMODE? +CMODE: < Param > OK

4.设置和查询模块角色:

模块角色说明:

  1. 从角色(Slave) ——被动连接,可以和任意蓝牙适配器配对使用;
  2. 主角色(Master)——查询周围从设备,并主动发起连接,从而建立主、从蓝牙设备间的透明数据传输通道。
  3. 回环角色(Slave-Loop)——被动连接,接收远程蓝牙主设备数据并将数据原样返回给远程蓝牙主设备;

注意:在后面会介绍到的如果是两块蓝牙模块进行配对的话,需要将其中一个设置为主,而另一个设置为从。

指令 响应 参数
AT+ROLE=< Param > OK Param:参数取值如下:

0 —— 从角色(Slave)
1 —— 主角色(Master)
2 —— 回环角色(Slave-Loop)
默认值:0

AT+ROLE? +ROLE: < Param > OK

5.设置和查询配对码:

指令 响应 参数
AT+PSWD=< Param > OK Param:配对码 默认值:1234
AT+PSWD? +PSWD: < Param > OK

6.设置和查询串口参数

指令 响应 参数(默认设置:9600,0,0)
AT+UART=,, OK Param1:波特率(bits/s):

取值如下:
4800
9600
19200
38400
57600
115200
230400
460800
921600
1382400

Param2:停止位:

0 —— 1位
1 —— 2位

Param3:校验位:

0 —— None
1 —— odd
2 —— Even

AT+UART? +UART: ,, OK

更多指令可以查看数据手册

举例:
设置串口波特率:
115200,1位停止位,无校验

串口输入 --> AT+UART=115200,0,0

串口返回 --> OK

<File:AT2.png>

波特率查询

串口输入 --> AT+UART?

串口返回 --> +UART:115200,0,0 OK

<File:AT3.png>

STEP5: 切换到运行模式

当我们完成设置后,不要忘记切换到运行模式下噢,也就是没有标有字符的一端。

二、PC与蓝牙模块通信

STEP 1:所需硬件

  1. 1x 蓝牙适配器
  2. 1x DFRduino UNO R3
  3. 1x IO 传感器扩展板 V7
  4. 1x Bluetooh Bee V2蓝牙串口模块
  5. 1x USB电缆
  6. 1x XBee USB Adapter 适配器
  7. 1x Micro USB电缆(旧版适配器需要使用Mini USB电缆)

STEP2:按需求配置蓝牙模块

  1. 设置模块角色:在和PC连接时,最重要的一个配置就是将蓝牙模块设置为从角色
  2. 设置串口参数:建议设置为115200,便于我们后面的调试。
  3. 设置模块连接模式:如果当模块无法被适配器、主机搜索到或无法连接时,需配置该参数,配置为AT+CMODE=1。

其他可以使用默认设置。具体如何设置,可以参看上面的蓝牙模块设置部分。

STEP3:硬件连接

  1. 把蓝牙模块插到I/O传感器扩展板上,再连接到UNO上。
  2. UNO连接到电脑上。
  3. 将蓝牙适配器插到你的电脑USB口。

BlueToothV.jpg

STEP4: 通过蓝牙软件建立连接

1、使用蓝牙适配器时,需要安装一个IVT BlueSolied,安装后,打开IVT BlueSoleil,插上蓝牙适配器,会看到下面这个界面,同时,设备管理器会显示2个COM口出来,但这不是我们需要的端口。

BlueTooth4.jpg

2、右击黄色的球体→搜索设备,黄色的球体就是蓝牙适配器,如果能成功搜索到的话, 会出现一个带问号的蓝色球体,这个就是我们的Bluetooth Bee V2蓝牙模块了。如下图所示。

BlueTooth5.jpg

3、右击蓝色问号球体→配对,输入配对码1234

BlueTooth6.jpg

4、配对成功的话,蓝色问号球体上会出现一个绿色的连环扣锁图标。如下图所示。

BlueTooth7.jpg

5、右击蓝色问号球体→搜索服务,此时,再右击蓝色问号球体→连接蓝牙串口,这时,会出现下面这个对话框,然后自动完成连接。**与此同时,会产生一个新的串口号,这个串口号正是我们需要的。**也就是我们这里显示的串口14。

BlueTooth9.jpg

6、连接成功后,问号蓝色球体会变为绿色,蓝牙模块上的指示灯变为长亮,并有虚线箭头线表示正在传输数据。如下图所示。

BlueTooth8.jpg

恭喜你,你的蓝牙模块已经和PC建立连接了!

STEP5: 给UNO烧录一段测试代码,并查看收发数据

注意:

  1. 给UNO烧录程序时,选择的是UNO的串口号,而不是蓝牙的串口号。程序中的波特率设置与你蓝牙模块的波特率的设置保持一致。
  2. 我们这里使用的是新版的I/O扩展板,下载程序时,需将板子拨到Prog端,下载完后,再拨回Run端。
  3. 如果你使用的是旧版本的扩展板,记得下载程序时,请先拔下Bluetooth Bee V2蓝牙模块,下载完成后,再插回。
  4. 如果在下载程序的过程中,使连接断开了,记得重新建立连接,直接操作蓝牙建立连接第四步(右击蓝色问号球体→连接蓝牙串口)即可。

1、UNO-->发送端,PC-->接收端,烧录以下代码

 void setup()
  {
    Serial.begin(115200);             //初始化串口并设置波特率为115200
  }
  void loop()
  {
    Serial.print("Hello!");           //串口向外发送字符串
     Serial.println(" DFRobot");      //串口向外发送字符串 ,并带回车
    delay(1000);                  //延时
  }

烧录完成后,从串口助手观察结果,如果你有串口助手最好,如果没有的话先下载一个CoolTerm,注意选择电脑系统相符的安装包。

下载完成后,打开CoolTerm,点击Options,选择蓝牙的的串口号14(Port)(就是前面说的,建立连接的串口号),及相应波特率115200(Baudrate)。 完成设置,点击OK,回到主界面点击Connect,就会看到下面接收到的结果。我们对照一下UNO的串口发出的数据一起看一下。

BlueTooth10.jpg

BlueTooth11.jpg

2、UNO-->接收端,PC-->发送端,烧录以下代码

void setup(){
  Serial.begin(115200);   //初始化串口并设置波特率为115200
}

void loop(){
  char val;
  val = Serial.read();     //读串口
  if(val!=-1){
  Serial.print(val);  //将收到是数据再通过串口发送出去
  }
}

烧录完成后,从串口助手观察结果,按上述方法打开串口助手,设置好串口号和波特率,回到主界面点击Connect。之后,在下拉菜单中选择Connection--Send String,会跳出下面这个对话框。

BlueTooth20.jpg

在该对话框输入你要发送的字符,我们就能从另一个串口,也就是UNO的串口中读出,下图所示。

BlueTooth21.jpg

三、两块蓝牙模块之间通信

STEP 1: 所需硬件

  1. 2x DFRduino UNO R3
  2. 2x IO 传感器扩展板 V7
  3. 2x Bluetooh Bee V2蓝牙串口模块
  4. 2x USB电缆
  5. 1x XBee USB Adapter 适配器
  6. 1x Micro USB电缆(旧版适配器需要使用Mini USB电缆)

STEP2:按需求配置蓝牙模块

  1. 设置模块角色:在两块蓝牙模块建立连接时,最重要的一个配置就是必须有蓝牙模块是主角色,另一个蓝牙模块设置为从角色
  2. 设置串口参数:建议两块模块波特率统一设置为115200,便于我们后面的调试。
  3. 设置模块连接模式:如果当模块无法被适配器、主机搜索到或无法连接时,需配置该参数,配置为AT+CMODE=1。

其他可以使用默认设置。具体如何设置,可以参看上面的蓝牙模块设置部分。主从配对不需要驱动程序,两个模块上电就能传输。**两块蓝牙模块上的指示灯长亮表示配对成功。**此时串口功能已经启动。一主一从成对正常使用时灯不会灭。如主机和从机距离太远而断线,则主机和从机的灯一直闪,如果它们距离再靠近,则又会找在一起而自动连上。主机会记忆它配好的从机,一上电给主机就会找它记忆的从机地址。

STEP3: 硬件连接

  1. 将两块蓝牙模块分别插到I/O扩展板上,再接到UNO上。如下图所示。
  2. 两块UNO通过USB连接电脑。

BlueTooth13.jpg

STEP4: 给UNO烧录代码

烧录代码时,不要忘记拨到Prog一端,烧录完成后,再拨回Run。下载时,不需要按照上面配对时的主从顺序来下载程序,任何一个蓝牙模块都能作为发送端或者接受端

发送端代码:

void setup(){
  Serial.begin(115200);    //初始化串口并设置波特率为115200
}

void loop(){
  Serial.print("Hello!");
  Serial.println("DFRobot");
  delay(500);
}

接收端代码:

void setup(){
  Serial.begin(115200);   //初始化串口并设置波特率为115200
}

void loop(){
  char val;
  val = Serial.read();     //读串口
  if(val!=-1){
  Serial.print(val);  //将收到是数据再通过串口发送出去
  }
}

STEP5: 从串口观察收发情况

同时打开两个串口,观察收发情况。如下图所示。

BlueTooth12.jpg

四、蓝牙模块与Android手机通信

STEP 1:所需硬件

  1. 1x DFRduino UNO R3
  2. 1x IO 传感器扩展板 V7
  3. 1x Bluetooh Bee V2蓝牙串口模块
  4. 1x XBee USB Adapter 适配器
  5. 1x Micro USB电缆(旧版适配器需要使用Mini USB电缆)
  6. 1x Mini USB电缆
  7. 特定型号的Android 手机(下面会说明)

STEP2:按需求配置蓝牙模块

  1. 设置模块角色:在和手机连接时,最重要的一个配置就是将蓝牙模块设置为从角色
  2. 设置串口参数:建议设置为115200,便于我们后面的调试。
  3. 设置模块连接模式:如果当模块无法被适配器、主机搜索到或无法连接时,需配置该参数,配置为AT+CMODE=1。

其他可以使用默认设置。具体如何设置,可以参看上面的蓝牙模块设置部分。

STEP3:硬件连接

  1. 把蓝牙模块插到I/O传感器扩展板上,再连接到UNO上。
  2. UNO通过USB连接到电脑上。

BlueTootV3.jpg

STEP4: 下载APP软件并安装

打开Bluetooth Terminal下载页面,点击Install。

如果无法安装,可以先点击列表查看是否含有你的手机型号。如果没有,很遗憾,那就无法使用该APP。如果有的话,请接着往下看。

建议可以在手机上,先搜索下载一个Google Play Store谷歌娱乐商店应用,之后在Google Play Syore中直接搜索Bluetooth Terminal,就能很方便的找到这个APP了。下载安装。安装完成后可以看到如下界面,说明成功安装了。

toothV1.jpg

STEP5: 手机与蓝牙模块配对并建立连接

1、**打开到手机蓝牙设置,先进行配对,密码为1234或者3333。**每个手机的设置不同,你就自己捣鼓一下手机吧。这里不便截图。配对成功后,再回到软件界面,点击选择按钮,会出现如下的一个选择界面,这里也有可能由于手机类型不同,按键在不同地方。

toothV2.jpg

2、选择Connect a device - Secure,会跳出下面这个对话框。点击Bluetooth_Bee_V2,开始建立连接。

toothV3.jpg

3、连接成功后,蓝牙模块上的指示灯将会长亮。

toothV4.jpg

STEP6: 给UNO烧录一段测试代码,并查看收发数据

注意:

  1. 给UNO烧录程序时,选择的是UNO的串口号,而不是蓝牙的串口号。程序中的波特率设置与你蓝牙模块的波特率的设置保持一致。
  2. 我们这里使用的是新版的I/O扩展板,下载程序时,需将板子拨到Prog端,下载完后,再拨回Run端。
  3. 如果你使用的是旧版本的扩展板,记得下载程序时,请先拔下Bluetooth Bee V2蓝牙模块,下载完成后,再插回。
  4. 如果在下载程序的过程中,使连接断开了,记得重新建立连接。

1、UNO-->发送端,手机-->接受端,烧录以下代码。

 void setup()
  {
    Serial.begin(115200);             //初始化串口并设置波特率为115200
  }
  void loop()
  {
    Serial.print("Hello!");           //串口向外发送字符串
     Serial.println(" DFRobot");      //串口向外发送字符串 ,并带回车
    delay(1000);                  //延时
  }

烧录完成后,我们可以从手机的蓝牙终端看到UNO发送过来的数据。

2、UNO-->接收端,手机-->发送端,烧录以下代码。

void setup(){
  Serial.begin(115200);   //初始化串口并设置波特率为115200
}

void loop(){
  char val;
  val = Serial.read();     //读串口
  if(val!=-1){
  Serial.print(val);  //将收到是数据再通过串口发送出去
  }
}

烧录完成后,在手机终端输入一段字符,我们就可以从串口监视器看到UNO的接收情况。下图是我们的收发结果。

toothV8.jpg

<File:toothV7.jpg>

老版本

如有更多疑问,可登陆我们的论坛与我们进行交流,您的宝贵意见是我们不断进步的阶梯!点击进入论坛。

<File:nextredirectltr.png>购买 Bluetooh Bee V2串口蓝牙模块 (SKU:TEL0023)