DF-BluetoothV3蓝牙串口模块

DF-BluetoothV3

目录

1 简 介
2 产品参数
3 引脚说明
4 资料说明

4.1 一、蓝牙模块设置
4.2 命令解释

5 使用教程

5.1 PC与蓝牙模块通信

5.1.1 结果
5.1.2 结果

5.2 两块蓝牙模块之间通信

5.2.1 结果

5.3 蓝牙模块与Android手机通信

5.3.1 结果

6 疑难解答
7 更多

简 介
DF-BluetoothV3蓝牙模块采用独特双层板设计,即美观又防止静电损坏模块,设计2个电源输入口,宽电压供电(3.5V~8V)和3.3V供电,可适用于各种场合。STATE和LINK指示灯清晰明亮,用于显示模块工作状态和连接状态(STATE状态:状态(高104ms 周期342ms 2.9Hz闪烁)连接状态(高104ms 周期2s 0.5Hz闪烁),LINK状态:配对后常亮)。
自带高效板载天线,信号质量好发射距离更远,透明串口,可与各种蓝牙适配器、蓝牙手机配对使用,人性化的设计为二次开发提供便利。
拨码开关可设置模块状态,LED Off可关闭LINK灯进入省电模式,AT Mode可使模块进入AT指令模式,通过AT指令可以修改波特率和主从机模式,将2个模块分别设置为主模块和从模块后,2个模块就可以自由配对进行数据传输,非常适用于2个单片机之间的数据通讯。

产品参数
蓝牙芯片: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
串口波特率:4800~1382400/N/ 8/1 默认为9600/N/ 8/1
输入电压:+3.5V~+8V DC或3.3V DC/50mA
工作温度:–20°C~+55°C
模块尺寸:40×20×13mm

引脚说明

TEL0026 new.png

引脚

说明

GND

地 0V

VCC

DC3.5V-8V输入,当有VCC输入时,3V3端口可当做3.3V电源输出

NC

空脚

RXD

URAT输入口(TTL电平) 接单片机 TXD

TXD

URAT输出口(TTL电平) 接单片机 RXD

GND

地 0V

3V3

DC3.3V,当有3.3V输入时,VCC端口不能接输入电源

资料说明
一、蓝牙模块设置
STEP 1:所需硬件

1x DF-BluetoothV3蓝牙串口模块
1x USB to Serial 转串口

STEP 2: 切换到AT模式
如下图所示,模块有一个2位拨码开关,1号开关LED Off是LINK灯的开关,可以关闭LINK省电,拨到ON为开,拨到1端为关;2号开关AT Mode是AT命令模式开关,拨到ON进入AT命令模式,拨到2端退出AT命令模式。

DF-BluetoothV3 1.jpg

STEP 3: 连接到USB to Serial模块
1、设置DF-Bluetooth V3蓝牙模块需要借助USB to Serial模块,如下图所示,将蓝牙模块插到USB to Serial模块上,然后将2号开关AT Mode拨到ON端,再插到电脑USB接口上。

DF-BluetoothV3 2.jpg

2、当然,USB to Serial模块需要安装驱动程序。安装成功后,在设备管理器中显示为一个串口,下图设备管理器中Silicon Labs CP210x USB to UART Bridge(COM15)。这个COM口用来配置蓝牙模块的。
驱动下载点击

Bluetoot1.jpg

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

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

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

Bluetoot1.png

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

举例:
设置串口波特率:115200,1位停止位,无校验
串口输入 --> AT+UART=115200,0,0
串口返回 --> OK

Bluetoot3.jpg
波特率查询
串口输入 --> AT+UART?
串口返回 --> +UART:115200,0,0 OK

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

命令解释
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.设置和查询模块角色:
模块角色说明:

从角色(Slave) ——被动连接,可以和任意蓝牙适配器配对使用;
主角色(Master)——查询周围从设备,并主动发起连接,从而建立主、从蓝牙设备间的透明数据传输通道。
回环角色(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=<Param1>,<Param2>,<Param3>

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: <Param1>,<Param2>,<Param3> OK

7.出厂设置:

指令

响应

参数

AT+ORGL

OK

恢复默认设置:

设备类:0
查询密码:0x009e8b33
设备模式:从模式
结合模式:SPP
串口:38400比特/秒; 1位停止位,无奇偶校验
配对码“1234”
设备名称:“HHW-SPP-1800-2

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

使用教程
PC与蓝牙模块通信
STEP 1:所需硬件

1x 蓝牙适配器
1x DFRduino UNO R3
1x IO 传感器扩展板 V7
1x DF-BluetoothV3蓝牙串口模块
1x USB电缆
1x USB to Serial 转串口

STEP2:按需求配置蓝牙模块

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

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

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

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

BlueTooth4.jpg

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

Bluetoot6.jpg

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

Bluetoot7.jpg

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

Bluetoot8.jpg

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

Bluetoot9.jpg

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

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

STEP5: UNO和PC之间收发数据,并查看收发数据

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

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: 所需硬件

2x DFRduino UNO R3
2x IO 传感器扩展板 V7
2x DF-BluetoothV3蓝牙串口模块
2x USB电缆
1x USB to Serial 转串口

STEP2:按需求配置蓝牙模块

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

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

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

BlueToot11.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); //将收到是数据再通过串口发送出去
}
}

结果 同时打开两个串口,并且将两个串口的波特率调到115200,再观察收发情况。如下图所示。
        <img alt="" src="http://images.ncnynl.com/arduino/2016/426px-BLUTOOTH_1.png" width="426" height="450" />
        

发送端

        <img alt="" src="http://images.ncnynl.com/arduino/2016/428px-BLUTOOTH_2.png" width="428" height="450" />
        

接收端

蓝牙模块与Android手机通信
STEP 1:所需硬件

1x DFRduino UNO R3
1x IO 传感器扩展板 V7
1x DF-BluetoothV3蓝牙串口模块
1x USB电缆
1x USB to Serial 转串口
特定型号的Android 手机(下面会说明)

STEP2:按需求配置蓝牙模块

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

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

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

Bluetoot12.jpg
STEP4: 下载APP软件并安装
打开Bluetooth Terminal下载页面,点击Install。
如果无法安装,可以先点击列表查看是否含有你的手机型号。如果没有,很遗憾,那就无法使用该APP。如果有的话,请接着往下看。
建议可以在手机上,先下载一个Google Play Store谷歌娱乐商店应用,之后在Google Play Syore中直接Bluetooth Terminal,就能很方便的找到这个APP了。下载安装。安装完成后可以看到如下界面,说明成功安装了。

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

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

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

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

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

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的接收情况。下图是我们的收发结果。
        <img alt="" src="http://images.ncnynl.com/arduino/2016/500px-Bluetoot15.jpg" width="500" height="370" />
        

手机端

        <img alt="" src="http://images.ncnynl.com/arduino/2016/ToothV7.jpg" width="473" height="500" />
        

串口监测端

疑难解答
还没有客户对此产品有任何问题,欢迎通过qq群182152432或者论坛http://wenda.ncnynl.com联系我们!

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖!

更多
老版本 DF-BluetoothV3蓝牙串口模块
论坛项目分享:蓝牙扫盲_手机蓝牙控制小车实例by TouchFree

DFshopping car1.png

标签: Arduino传感器