蓝牙网关

蓝牙网关

DT02

本节主要描述 DT02 (数据采集器) 可选实现的蓝牙服务,特征值以及配置参数等

服务和特征值

下面是设备支持的服务和特征值列表

TYPE UUID REQ MANDATORY SECURITY
Generic Access Service 0x1800 M - -
- Device Name 0x2A00 M Read Gateway
- Appearance 0x2A01 M Read 0x00
- Slave Preferred .. 0x2A04 M Read -
Generic Attribute Service 0x1801 M - -
- Service Changed 0x2A05 M Indicate -
Device Information Service 0x180A M - -
- Manufacturer Name String 0x2A29 M Read TDK
- Model Number String 0x2A24 M Read DT02
- Firmware Revision String 0x2A26 O Read x.x
- Hardware Revision String 0x2A27 O Read x.x
Configuration Service 0x7600 M - -
- Capabilities 0x7501 M Read 需要解锁
- Configuration 0x7680 M Write 需要解锁
- Lock State 0x7506 M Write -
- Unlock 0x7507 M Write -
- Factory Reset 0x750b O Write 需要解锁
DFU Service - M - -
- 具体请参考 DFU Service - M - 需要解锁

备注:

配置参数

下面是设备支持的配置参数

Name Type ID SIZE FORMAT REQ R/W NOTE
Name 0x01 - string M RW 设备本地名称
ADV Tx Power(RSSI) 0x02 1 uint8 M RW 1 米处测得的信号强度(RSSI)
ADV Interval 0x03 2 uint16 M RW 广播间隔,单位为毫秒
Radio Tx Power 0x04 1 uint8 M RW 无线发射功率
Supported Tx Power 0x08 - uint8[] M R 只读,Beacon 支持的发射功率,从小到大排列
Server URI 0x30 <=30 string M RW 服务器 URI 地址, 最长 30
Server Key 0x31 <=20 string O RW 服务器公钥, 最长 20
Device ID 0x32 6 uint8[6] O RW 设备 ID (即 MAC 地址)
Device Secret 0x33 <=20 string M RW 设备密钥, 最长 20
Network Mode 0x34 1 uint8 O RW 网络模式, 0 表示静态地址, 1 表示 DHCP
Static Address 0x35 20 uint32[5] O RW IP地址,子网掩码,网关地址,DNS 服务器(2组)

主机控制接口

DT02 通过 UART 口和蓝牙模块进行双向通信

数据包格式

Start Code Channel Length Data CRC Code
1B 1B 2B NB 2B
0x48 (H) 0x00 ~ 0xFF 0 ~ 65535 - 0x0000 ~ 0xFFFF
通知数据包

DT02 蓝牙模块通过发送 Channel 通道号为 0xE1 - 0xEE 的数据包来传输通知数据:

命令格式

Start Code Channel Length Handle Data CRC Code NOTE
1Byte 1Byte 2Byte 2Byte NByte 2Byte 长度
0x48 (H) 0xE1~0xEE 0 ~ 65535 0x0001 - 16bits CRC Code 特征值通知
0x48 (H) 0xE0 10 0xFFFF 6 Bytes MAC 16bits CRC Code 连接断开事件
0x48 (H) 0xE0 10 0x0000 6 Bytes MAC 16bits CRC Code 连接成功事件
0x48 (H) 0xE0 0 0xFFFE - 16bits CRC Code 配置参数发生改变
控制数据包

DT02 可以通过发送 Channel 通道号为 0x00 的数据包来控制蓝牙模块,控制数据内容格式为指令格式:

请求命令

Start Code Channel Length Code Seq Data CRC Code
1Byte 1Byte 2Byte 1Byte 1Byte NByte 2Byte
0x48 (H) 0x00 0 ~ 65535 0x00~0xFF 0x00~0xFF - 0x0000 ~ 0xFFFF

控制指令

[]的参数表示是可选的:

指令列表
指令 输入参数 输出参数 默认参数
test - "ok" 测试指令
reset - - 恢复出厂设置
reboot - - 重启蓝牙模块
name name name 查询/设置设备名称
mac mac mac 查询/设置 MAC 地址
tpl level level 查询/设置发射功率
mode mode mode 查询/设置工作模式,M 表示主机模式
config config config 查询/设置配置参数,配置参数为 16 进制字符串
scan [name],[uuid|company-id] - 开启搜索模式
connect channel,mac - 查询/设置默认要连接的从机地址
version - version 查询固件版本
link - mac,rssi,status\n... 查询连接状态, status 为 1 表示已连接
disconnect mac, [mac]... - 断开连接, mac 为 'all' 表示断开所有连接
services mac handle,end,uuid\n... 返回所有的服务
characteristics mac,[service-uuid] handle,value,properties,uuid\n... 返回所有的特征值,或指定 UUID 服务的特征值
descriptors mac,char-uuid,[desc-uuid] handle,uuid... 返回所有的描述符,或指定 UUID 的描述符
read mac,handle bin: handle,data 读特征值
write mac,handle,flags,data - 写特征值, flags 为 1 表示需要应答
listen mac,handle,indication - 侦听特征值, indication为 1 表示 Indication
参数定义
指令详解

connect

示例
# 测试
1.0: test # 1 表示请求,0 表示序号 0
10.0: ok  # 10 表示应答,0 表示序号 0

# 恢复出厂设置
1.1: reset # 1 表示请求,1 表示序号 1
10.1

# 重启蓝牙模块
1.2: reboot
10.2

# 查询名称
1.3: name
10.3: BN5001

# 设置名称
1.4: name=BN5002
10.4: BN5002

# 查询 MAC
1.3: mac
10.3: AA001122334455

# 设置 MAC
1.4: mac=BB001122334455
10.4: BB001122334455

# 查询发射功率
1.3: tpl
10.3: 0

# 设置发射功率 (5dBm)
1.4: tpl=5
10.4: 5

# 查询工作模式
1.5: mode
10.5: M

# 设置工作模式
1.6: mode=M
10.6: M

# 查询配置参数
1.5: config
10.5: [2A29 AABBCC]

# 设置工作模式
1.6: config=[2A29 AABBCC]
10.6: 

# 查询搜索模式
1.7: scan
10.7: BN5001,040D

# 开启搜索模式 (搜索设备名称前缀为 BN5001,UUID 为 0x040D 的从机广播)
1.8: scan=BN5001,040D
10.8: BN5001,040D

# 连接指定的 MAC 地址的设备
1.9: connect=AA001122334455,BB001122334455
10.9

# 查询固件版本
1.0: version
10.0: 2.1.5

# 查询连接状态
1.1: link
10.1: AA001122334455,-60,1\nBB001122334455,-90,0\n...

# 断开连接 (all 表示断开所有连接)
1.2: disconnect=all
10.2

# 发现主服务
1.3: services=AA001122334455
# 0001 为 handle, 0010 为 end handle
10.3: 0001,0010,0000180000001000800000805f9b34fb\n...

# 发现特征值, (UUID 是可选的)
1.4: characteristics=AA001122334455,0000180000001000800000805f9b34fb
# 0002 为 handle, 0003 为 value handle, 02 为属性
10.4: 0002,0003,02,0000180000001000800000805f9b34fb

# 读特征值,(0x2A29 为 Value handle)
1.6: read=AA001122334455,2A29
# 返回值为二进制数据, 2A29 为 Value handle
10.6: [2A29 AABBCC]

# 写特征值,(0x2A29 为 handle, 1 表示需要应答, 0xAABBCC 表示数据内容)
1.7: write=AA001122334455,2A29,1,AABBCC
10.7

# 开启通知 (0x2A29 为 handle,1 表示 Indication)
1.8: listen=AA001122334455,2A29,1
10.8
10.1: [2A29 AABBCC]
10.2: [2A29 DDEEFF]

参数配置

通过蓝牙服务配置网关参数,主要可以配置的参数有:

固件升级

通过串口更新蓝牙模块固件