厂商 :深圳市爱科德电子科技技术有限公司
广东 深圳- 主营产品:
- 串口转WIFI模块
- 蓝牙模块
- 2G3G4G模块
XLW-BLE003U 蓝牙模块(微信版本)是一款嵌入式的无线通信模块,支持蓝牙4.0 BLE协议,具有低功耗、小尺寸、信号强,快读启动、高可靠性,高性价比等特性。XLW-BLE003U透传模块(微信版)实现了微信GATT Service的完整规范,用户只需要简单的配置一下模块的相关参数,就能实现和微信APP的连接通信。 在模块和微信APP连接前,需要在后台对模块进行授权。授权方法请参考微信后台接口文档。XLW-BLE003U蓝牙模块提供了各种标准接口方便用户使用,包括GPIO、 UART等,同时也提供了AT指令,便于用户操作和集成到最终产品中。
实物图
框图介绍
产品特性:
? 支持蓝牙BLE4.0即以上协议
? 支持1MS秒快速启动
? 低功耗设计,支持Suspend和Deep Sleep两种低功耗模式,可适用于电池供电
? 支持GPIO/UART等接口
? 支持PCB天线
? 支持AT指令
? 可通过FCC/CE标准认证
适用范围:
? 智能家居,小家电,智能家电,灯光照明,
? 可穿戴产品,手持设备,健康医疗设备
? 玩具,汽车电子,各类工业控制产品
1.模块应用框图(见下页)
UART/GPIO
2.引脚说明
序号 |
名称 |
描述 |
说明 |
13 |
VCC |
3.3V电源供电 |
2.0V-3.6V可工作,建议3.3V |
14 |
LED |
LED指示灯 |
模块工作状态指示灯 |
15 |
WAKEUP |
休眠脚 |
低电平休眠模式 |
16 |
TX |
串口发送端 |
|
17 |
RX |
串口接收端 |
|
18 |
GND |
电源地 |
|
其他引脚悬空即可
3.技术规格
类型 |
规格 |
|
天线 |
PCB板载天线 |
|
频率范围 |
2.402 ~ 2.480 GHZ |
|
数据传输速率 |
1Mbps,2.4GHz 2Mbps Boost Mode |
|
RF接收灵敏度 |
-92dBm |
|
RF最大输出功率 |
最大+8dBm |
|
IO 口 功 能 |
UART |
提供最高8M的波特率 |
GPIO |
最多支持5个IO口,需定制 |
|
PWM |
最多支持3路PWM,需定制 |
|
工作电压 |
1.9 ~ 3.6V |
|
工作温度 |
-40°C ~ +85°C |
4.实现协议
LM、 LC、 L2cap、 SDP、 RFCOMM
实现蓝牙微信协议
5.指令格式
使用AT控制指令,模块指令数据是ASCII码。它由四部分组成,如下所示:
1 指令开始标志:AT+
这三个连续的字符用于指示一个指令包的开始。
2 指令码:
指令的具体标识,用于区分不同的指令。如:setBR。
3 参数列表:
不同的指令有不同的参数、不同的参数数目(大于等于0)。指令中每两个
参数间需要用空格分隔。指令码和参数列表之间也需要用空格分隔。
4 指令结束标志:\r\n\0
这3个字符(即回车符、换行符和空字符)用于指示一个指令包的结束。
例:设置模块为从设备: “AT+setBR 9600\r\n\0”
其中,”AT+”为指令开始标志;”setBR”为指令码,表示切换角色操作;”9600”
为参数,表示将模块的串口波特率设置为9600bps;”\r\n\0”为指令结束标志。
6.配置模块过程
1. 设置微信认证方式(setAuthMode),目前认证方式有三种:采用MD5码加密
认证、采用MD5码不加密认证和采用MAC地址不加密认证。
2. 当认证方式为采用MD5码加密认证或采用MD5码不加密认证时,需要将在
后台授权模块时的对应的MD5发送给模块(setMD5)。
3. 当认证方式采用MD5码加密认证时,需要将在后台授权模块时对应的
Device ID发送给模块(setDevID)。
4. 当认证方式采用MD5码加密认证时,需要将在后台授权模块时对应的
Aes128密钥发送给模块(setAesKey)。
5. 根据实际应用设置数据方向(setDataDir)。
6. 发送saveConfigure保存更改的参数。
至此,模块配置完毕。这时,如果模块处于广播状态,打开对应的公众号,
微信就会自动的连接模块,模块会自动的根据配置好的MD5码等参数和微信进
行登录认证过程。成功登录后,外部MCU便能和公众号对应的厂商服务器进行
数据传输。
7.串口指令说明
7.1、mcu发给模块的指令
setBR
作用:设置模块的波特率(bps)
参数个数:1个
参数取值:
参数值(波特率) |
含义 |
110 |
设置模块波特率为110bps |
300 |
设置模块波特率为300bps |
1200 |
设置模块波特率为1200bps |
2400 |
设置模块波特率为2400bps |
4800 |
设置模块波特率为4800bps |
9600 |
设置模块波特率为9600bps |
19200 |
设置模块波特率为19200bps |
38400 |
设置模块波特率为38400bps |
57600 |
设置模块波特率为57600bps |
115200 |
设置模块波特率为115200bps |
说明:
模块只支持上表中的5个波特率,且其默认的波特率为115200bps。当
MCU向模块发送该指令后,模块会先返回ok指令,然后再改变自身的波特
率。MCU在接收到ok指令后,也应该改变自己的波特率,以保持和模块一
致,避免产生误码。
注意:若忘记了已设置的波特率,开发者可以尝试在不同的波特率下发
送getBR (或其他get指令),直到得到正确的回复,以此来确定模块当前的
波特率。
响应:
“AT+ok\r\n\0”(操作成功)
“AT+err \r\n\0”(操作失败)
getBR
作用:获取模块波特率(bps)
参数个数:无
响应:
“AT+ok 115200\r\n\0”(模块波特率为115200bps)
“AT+err \r\n\0”(操作失败)
setDataDir
作用:设置数据方向
参数个数:1个
参数值(数据方向) |
含义 |
0 |
后台 |
1 |
微信手环平台 |
2(默认) |
微信HTML网页 |
说明:
模块发送的数据方向只一时间只能有一个,方向由该指令设置
响应:
“AT+ok\r\n\0”
“AT+err \r\n\0”(操作失败)
getDataDir
作用:获取数据方向
参数个数:0
响应:
“AT+ok 0\r\n\0”(后台)
“AT+ok 1\r\n\0”(微信手环平台)
“AT+ok 2\r\n\0”(微信HTML网页)
“AT+err \r\n\0”(操作失败)
setAuthMode
作用:设置微信认证方式
参数个数:1
参数 |
值 |
|
mode |
0 |
MD5码加密认证 |
1 |
MD5码不加密认证 |
|
2 |
MAC地址不加密认证(模块默认是不加密,如需加密要定制) |
例:
“AT+setAuthMode 1\r\n\0” 设置认证方式为MD5码不加密认证。
响应:
“AT+ok minInterval maxInterval latency timeout\r\n\0”
“AT+err \r\n\0”(操作失败)
getAuthMode
作用:获取微信认证方式
参数个数:无
响应:
“AT+ok 0\r\n\0”
“AT+ok 1\r\n\0”
“AT+ok 2\r\n\0”
“AT+err \r\n\0”(操作失败)
setName
作用:设置模块名字
参数个数:1个
参数取值:
参数值(名字) |
含义 |
=string |
string为具体的名字字符串(不能出现”\r\n\0”) |
说明:
该指令的参数为’=’与”\r\n\0”之间的内容,允许出现空格,但不允许出
现”\r\n\0”。名字的最大长度不能超过20个字节。
例:
设置模块的名字为“BLE003U”:“AT+setName =BLE003U\r\n\0”
响应:
“AT+ok\r\n\0”(操作成功)
“AT+err \r\n\0”(操作失败)
getName
作用:获取模块名字
参数个数:无
响应:
“AT+ok = BLE003U \r\n\0”(操作成功,设备名字为“BLE003U”)
“AT+err \r\n\0”(操作失败)
setAdv
作用:开启或关闭广播
参数个数:1个
参数取值:
参数取值(动作) |
含义 |
on |
开启广播 |
off |
关闭广播 |
说明:
该指令只有在从设备处于非连接状态时才会被执行。
例:
“AT+setAdv on\r\n\0”(开启广播)
响应:
“AT+ok\r\n\0”(操作成功)
“AT+err \r\n\0”(操作失败)
getAddr
作用:获取模块的地址
参数个数:无
响应:
“AT+ok FF:11:22:33:55:FF\r\n\0”
“AT+err \r\n\0”(操作失败)
disconnect
作用:模块主动断开连接
参数个数:无
说明:
成功断开连接后,模块会回到空闲状态。当成功发送该指令后,模块会
先返回ok响应,等到连接真正断开后,再返回disconn响应。需要注意的
是,在主模块处于connecting状态时,发送该指令会直接中止建立连接,返
回ok响应,但不会返回disconn响应的。
响应:
“AT+ok\r\n\0”(操作成功)
“AT+disconn\r\n\0”(连接已经断开)
“AT+err \r\n\0”(操作失败)
saveConfigure
作用:保存当前的配置
参数个数:无
说明:
该指令用于将当前模块的参数和状态保存到flash 中,以便模块在下次
上电时会根据保存好的参数和状态进行初始化设置。若在从设备广播或连接
的状态下发送该指令,从设备以后每次重新上电都会自动进行广播;若在空
闲的状态下发送该指令,模块以后每次重新上电时也会处于空闲状态。这时
需要发送setAdv指令才能开启广播,而且如果想模块在下次上电时自动广
播、扫描,需要发送saveConfigure指令。
响应:
“AT+ok\r\n\0”(操作成功)
“AT+err \r\n\0”(操作失败)
clearConfigure
作用:清除保存的配置
参数个数:无
说明:
向模块成功发送该指令后,模块下次上电时会恢复出厂时的配置。
响应:
“AT+ok\r\n\0”(操作成功)
“AT+err \r\n\0”(操作失败)
sendData
作用:发送指定长度的透传数据
参数个数:2个
具体参数:
参数 |
含义 |
参数1(要透传的字节数) |
取值范围:1 ~ 100 |
参数2(数据方向) |
0 : 厂商服务器 1 : 微信手环平台 2 : HTML页面 |
例:
“AT+sendData 10 0\r\n\00123456789”
“sendData”后的’10’表示需要发送的透传数据为10个字节,,”\r\n\0”之前
的”0”表示要将数据发送给厂商服务器。模块接收到该指令后不会对”\r\n\0”
后指定长度的数据进行指令分析,而是将这些数据全部认为是透传数据。因
此可以利用这条指令来发送指令数据包。如下:
“AT+sendData 16 0\r\n\0AT+setBR 9600\r\n\0”
响应:
“AT+sendFin ok\r\n\0”(发送成功)
“AT+sendFin err\r\n\0”(发送失败)
7.2、模块返回给mcu的指令
ok
作用:操作成功响应
说明:ok指令由模块发送给MCU,其参数根据操作的不同而不同。
err
作用:操作失败响应
说明:err指令由模块发送给MCU
conn
作用:连接响应
说明:conn指令由模块发送给MCU。当手机等设备连接上模块后,模块会
响应此指令。
例:
“AT+conn\r\n\0”
disconn
作用:断开连接响应
说明:disconn指令由模块发送给MCU。当连接断开后,模块会响应此指令。
例:
“AT+disconn\r\n\0”
auth
作用:微信登录结果响应。
说明:该指令只有在支持微信事件响应模式下才有效。用于指示模块是否成
功的通过了微信APP的连接登录步骤。只有在通过了微信的登录步骤后,
才可以进行透传数据的收发。
recvData
作用:接收到微信的Push数据响应。
说明:该指令只有在支持微信事件响应模式下才有效。当模块接收到来过微
信的Push数据后,会先发送该响应来通知MCU,然后再发送具体的透传数
据。
参数个数:2个
具体参数:
参数 值
数据来源
0 : 厂商服务器
1 : 微信手环平台
2 : HTML页面
数据长度 取值范围:1~100
例:
“AT+recvData 0 10\r\n\0”(接收到来自厂商服务器的10个字节数据,在发送
完这个指令后,模块会接着发送10个字节的透传数据)
sendFin
作用:发送数据结果响应
说明:该指令只有在支持微信事件响应模式下才有效。用于表明使用
sendData指令后发送数据是否成功。
参数个数:1个
具体参数:
参数 值
发送结果 ok : 发送成功
err : 发送失败
例:
“AT+sendFin ok\r\n\0”
“AT+sendFin err\r\n\0”
switchView
作用:微信公众号页面切换响应。
说明:该指令只有在支持微信事件响应模式下才有效。用于指示进入或退出
公众号操作。
参数个数:1个
具体参数:
参数 值
行为 1 : 进入公众号
2 : 退出公众号
例:
“AT+switchView 1\r\n\0”(进入公众号)
“AT+switchView 2\r\n\0”(退出公众号)
switchBkg
作用:微信APP进入后台响应。
说明:该指令只有在支持微信事件响应模式下才有效。用于指示微信APP
是否进入后台。
参数个数:1个
具体参数:
参数 值
行为 1 : 进入后台
2 : 退出后台
3 : 睡眠
例:
“AT+switchBkg 1\r\n\0”(微信APP进入后台)
8.模块尺寸
9.供电电路设计
图3-1 3.3V供电电路
注意:
1、XLW-BLE003U系列蓝牙模块对电源供电电路有一定的要求:3.3V的供电电压的纹波系数要小于200mV,最小输出电流要大于200mA(3.3V稳压器件选择时需要根据实际电路的电流来决定)。
2、建议PCB板布线时,3.3V的电源线需按大于300mA的线宽来布线。
10.模块性能指标:
1.下面为积分方式测试蓝牙模组各种情况下的应用功耗:
1).正常功耗时>
模块处于广播状态还是连接状态或者连接状态下发数据,此时电流大约为15ma左右。
2).休眠时>
广播间隔和连接间隔为1000ms时,电流为78ua
广播间隔和连接间隔为500ms时,电流为143ua
广播间隔和连接间隔为200ms时,电流为338ua
2.另外客户使用休眠功能时,如果MCU每100ms向模块发送一次20字节的透传数据,不同连接间隔的平均电流如下:
连接间隔(ms) 平均电流(uA)
1000 152
250 567
100 1380
上述情况需要注意的是连接间隔不代表APP端或者MCU端发送数据的最小间隔,比如1000ms的连接间隔,不是指APP端1000ms只能写入一次数据,APP在1000ms内可以写入多次数据,但是APP发给模组的数据每一次写入不能超过20个字节,而是写入的这些数据每隔1000ms才会一起甩给模块;反之模块向APP发送同理,只是此时数据量最多75个。
11.模块使用注意事项:
1. 关于模块的脚位的一些状态还有模组的UUID的情况:
1.waekup 高电平正常模式,低电平睡眠模式。
2.LED灯指示脚是输出口,蓝牙模组连上后常亮,为低电平;未连上闪烁,高低电平切换。实际应用的时候可以串联一个电阻,根据 LED的具体参数来定。
3. 1.客户不需要睡眠功能的话,WAKEUP脚悬空即可,此时模块处于正常功耗模式。 :
2.客户需要休眠功能的话,通过WAKEUP脚进入睡眠模式,低电平时处于睡眠模式,此时用户MCU需要一个I/O口连接模块的唤醒脚,模块广播的时候MCU控制模块唤醒脚为低电平,即休眠模式手机连上模块后,MCU依然控制模块唤醒脚为低电平,即模块仍然处于休眠模式,此时APP可以给模块发数据,数据可以通过串口透传出来。
4.蓝牙模块产品工作在2.4G的频段,应尽量避免各种因素对无线收发数据的影响,注意以下几点:
4.1.蓝牙模块产品尽量避免使用金属外壳,当使用部分金属外壳的时候,尽量让模块天线远离金属部分。
4.2.布板时,模块天线周围部分不要走线,不能铺铜,周围尽快远离干扰原器件。