PDF下载地址:ailink 箱包锁应用手册
AiLink箱包锁协议透传应用说明
版本:V3.1.19
更新日期:2020年04月29日
深圳市易连物联网有限公司版权所有
本产品的规格书如有变更,恕不另行通知。
深圳市易连物联网有限公司保留在不另行通知的情况下,对其中所包含的规格书和材料进行更改的权利,同时由于信任所引用的材料所造成的损害(包括结果性损害),包括但不限于印刷上的错误和其他与此出版物相关的错误,易连物联网将不承担责任。
文档版本 |
作者 |
发布日期 |
修改说明 |
3.1.15 |
梁永新 |
2020/3/25 |
1、增加8电极体脂秤协议 |
3.1.16 |
Lyx |
2020/3/27 |
1、修改八电极体脂秤里的重量协议 |
3.1.17 |
lxl |
2020/4/21 |
1、增加钳表协议 |
3.1.18 |
lxl |
2020/4/23 |
1. 指定当前协议对应的钳表型号 2. 修改钳表协议中byte13、byte14的内容 |
3.1.19 |
lxl |
2020/4/29 |
1.更改公司信息 2.拆分协议为通用透传和协议透传 |
本文档适用于BM系列模块(BM02/08/09/16/20/21/22……)。
使用UART透传,MCU可以通过BM模块与APP进行相互数据透传。也支持模块参数设置满足不同需求,也可以通过协议透传命令快速适配综合超级应用APP:AiLink,快速实现血压计、额温枪、体温计、婴儿秤、身高仪等智能化。
请扫描此二维码下载AiLink APP。
如使用AILink时,需严格按照协议透传产品介绍里面的流程进行操作。
下文中表明的MCU为与BM模块连接交互的芯片,BLE则为BM模块.
2.1 BLE(Slave)与APP(Master)交互的每包数据默认最大为20byte,当MCU端一次性发送超过20byte时,BLE会将数据进行分包发送给APP,需50byte则分为20+20+10,分3次发送给APP。
2.2 BM模块上电需要时间进行配置,当配置完成,进入就绪时,BM模块会主动给MCU返回一个BM模块状态信息。详情请查看“设置、获取BM模块状态”。
2.3 ailink协议透传应用手册需要和ailink通用透传应用手册一起使用。
Ø BM模块支持两种工作模式,断电模式和不断电休眠模式,用户可以根据自身需求合
理选择工作模式。
用户可以在设计PCB的时候,预留两种方式的电路。详情请查看硬件规格书规格书。
Ø 在此模式下,BM模块完全断电,需要供电才能正常工作,这种模式有利于省电。
Ø 在此模式下,MCU可以根据BM模块的连接状态选择合适的时间断电关机,例如,在非蓝牙连接状态时,MCU工作完10s后断电关机,在蓝牙连接状态时,工作完30s后断电关机。获取BM模块的连接状态,可以根据蓝牙状态脚(BT-CS)进行判断,也可以通过串口读取模块状态。这种做法有利于用户能够顺利传输数据到APP上,而不会出现反复关机断连问题。
工作流程:
1、BM模块上电。
2、BM模块上电就绪后,BM会给MCU返回BM模块状态。
3、MCU设置CID 。
4、MCU设置模块其他内容。
5、MCU发送数据。
6、MCU、BM断电关机。
Ø 此模式下,BM模块需要长供电,不会断电关机(串口已关闭,BM处于低功耗模式)。
Ø 工作流程:
1、BM模块上电。
3、MCU设置CID 。
4、MCU设置模块其他内容。
5、MCU发送数据。
6、MCU 发送睡眠指令(可以选择是否开启低频广播),使BM模块进入低功耗模式。
若开启了BM模块进入了低功耗模式并且开启了低频广播,当BM模块连上APP后,BM模块会发送模块状态信息到MCU,同时蓝牙状态脚会拉低,用以唤醒MCU(MCU可以用串口唤醒或者蓝牙状态脚唤醒)。
7、MCU主动唤醒BM模块。当BM模块处于休眠状态时,若MCU需要发送数据到BM模块,需要先发一条唤醒指令到BM模块。注:BM模块刚唤醒时,是无法正常接收数据的,所以BM收到第一组的唤醒指令时,BM是不会回复MCU状态的。MCU可以发两次唤醒指令。
Ø 工作流程参考如下:
注:xxxx为Mac地址后4个字符
BM模块有两个服务UUID,一个是模块固定的服务UUID,为FFE0,一个是用户可以自定义的服务UUID,默认为FEE0。
易连物联网的AiLink APP交互使用的服务UUID为 FFE0。
同时,两个UUID都可以作为普通的数据交互UUID。
4.3.1 服务UUID:
0000FFE0-0000-1000-8000-00805F9B34FB
4.3.2 特征值UUID1:
0000FFE1-0000-1000-8000-00805F9B34FB
属性:read,write,write no response
功能 :APP下发的数据会通过此UUID透传给MCU
4.3.3 特征值UUID2:
0000FFE2-0000-1000-8000-00805F9B34FB
属性:read,notify
功能: MCU发给BLE的数据由此UUID透传给APP
4.3.4 特征值UUID3:
0000FFE3-0000-1000-8000-00805F9B34FB
属性:read,write,write no response,notify
功能:APP与BLE进行设置类指令的UUID,有write和notify
说明:广播数据有两类,用户只能选择其中的一类进行设置。
第一类广播:AiLink设置(默认)。使用我司AILInk APP接入的设置,需根据我司要求的格式进行设置。
第二类广播:用户自定义设置。不使用我司AiLink APP接入的设置,用户可以根据自身需求进行设置。若不设置则默认为我司设置。
AiLink设置广播数据内容包含(详情设置请查看设置读取CID、PID、VID):
1、Company ID 。固定:496e(In,Inet缩写,此处预留后续申请SIG company号)
2、CID:产品类型(2bytes)(例如血压计为0x0001,额温枪为0x0002,祥查看协议透传产品介绍)
3、VID:厂商ID (2byte) (由我司分配)
4、PID:产品ID (2byte) (由厂商分配)
5、Mac地址(MAC是固定的,大小端序可设置,默认小端序)
例如广播出来的自定义数据为:
6e49000100010001126134231102
6e49:为In,0001是CID,表示产品类型,0001是VID,表示厂商ID,0001是PID,表示产品ID。
126134231102是Mac地址,因为是小端序,所以Mac地址是:02 :11 :23 :34 :61 :12
蓝牙工具显示如下图:
若使用此类广播自定义数据,则第一类的广播自定义数据不启动(CID、VID、PID等设置不启用)。详情设置请查看第二类广播自定义设置。
注:以下设置类指令请查看ailink通用透传应用手册。
ailink协议透传应用手册需要和ailink通用透传应用手册一起使用。
l 设置类指令(以下指令不透传)。
l 设置、读取 模块广播名称
l 设置、读取第二类自定义广播数据
l 设置、读取 广播间隔时间
l 设置、读取 连接间隔
l 设置、读取串口波特率
l 读取 MAC地址
l 读取 BM模块硬件\软件版本号
l 设置、读取 MCU设备版本号
l 设置、读取 模块主从模式
l 设置、读取 模块无连接模式自动休眠时间。
l 设置 模块进入睡眠模式
l 设置 唤醒模块
l 设置、读取 当前系统时间。
l 设置、读取CID、VID 、PID
l 设置 模块重启
l 设置 模块恢复出厂设置。
l 设置、获取模块状态
l 设置 MCU的电池状态
l 设置 读取MCU所支持的单位
l 设置、取消使能绑定
l MCU端设置蓝牙锁的开锁类型
l MCU上传设备基本信息
l APP同步时间到MCU
l master模式下设置、获取扫描的白名单
l master模式下设置、获取扫描识别的蓝牙名称
l master模式下设置、获取扫描状态(待完成)
l master模式下BM返回扫描到的广播厂商自定义数据
设置类指令格式规范(不透传):
Byte |
Value |
Description |
0 |
0xA6 |
包头 |
1 |
|
Payload长度(最大16byte) |
2 ~n |
|
Payload |
n+1 |
SUM(1~n) |
(1~n)校验和 |
n+2 |
0x6A |
包尾(注:n+2不能超过20) |
包头和包尾是固定的,分别为0xA6,和0x6A。
检验和是指byte1 + byte2 + …+byte n 的和,取低位1 byte。
设置指令里,数据的Byte数不能超过20
APP支持添加密码用户和指纹用户,设备需要根据自身设备类型,上传自身设备信息到APP,以方便APP做相应的数据同步。
设备支持3种模式,在家模式、旅行模式、托运模式,可以通过APP进行设置。
1、在家模式:断连/连接不报警、一键报警、可开锁。
2、旅行模式:防丢报警、一键报警。
3、托运模式:连接报警。
设备支持自动开关锁以及手动开关锁模式,APP可以切换。
1、自动模式:
l 自动开锁:蓝牙连接后,设备自动解锁
l 自动上锁:蓝牙断连后,设备自动上锁
2、手动模式:
l 手动在APP上点击开锁、关锁。
Byte |
Value |
Description |
|
0 |
0xA6 |
包头 |
|
1 |
0x10 |
Payload 长度 |
|
2 |
0x35 |
Type:MCU上传设备的基本信息 |
Payload |
3 |
0x01 |
数据有效标志位 0x01 |
|
4 |
|
开锁类型: Bit 0: =1:支持按键密码。=0:不支持按键密码 Bit 1: =1:支持指纹密码。=0:不支持指纹密码 |
|
5 |
|
按键密码长度(若支持按键密码,则需说明按键密码长度,没有按键密码,则该值为0)。 0~10: |
|
6 |
|
箱包锁模式: Bit0 : =1:支持在家模式。=0:不支持在家模式 Bit1 : =1:支持旅行模式。=0:不支持旅行模式 Bit2 : =1:支持托运模式。=0:不支持托运模式
|
|
7 |
|
开锁模式: Bit0 : =1:支持自动模式。 =0:不支持自动模式 Bit1 : =1:支持手动模式。 =0:不支持手动模式 |
|
8 |
|
移动报警: 0:不支持移动报警 1:支持移动报警 |
|
9~17 |
|
Reserve 0 |
|
18 |
Sum |
(1~n)校验和 |
|
19 |
0x6A |
包尾 |
当APP与箱包锁第一次绑定时,会返回绑定结果。
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x01 |
Tpye:提示用户绑定结果 |
Payload |
5 |
|
结果: 0x00:绑定成功 0x01:绑定失败,已被其他用户绑定 |
|
6 |
SUM(1~n) |
(1~n)校验和 |
|
7 |
0x7A |
包尾 |
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x02 |
Tpye:提示用户绑定结果 |
Payload |
5 |
|
Value 0x01 |
|
6 |
SUM(1~n) |
(1~n)校验和 |
|
7 |
0x7A |
包尾 |
当MCU收到此指令,需要清除之前不存的用户(指纹密码和按键密码),同时返回结果。
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x03 |
Tpye:清空用户 |
Payload |
5 |
|
Value 0x01 |
|
6 |
SUM(1~n) |
(1~n)校验和 |
|
7 |
0x7A |
包尾 |
MCU返回清空结果。
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x03 |
Tpye:MCU返回清空结果 |
Payload |
5 |
|
Value 0x00:清空成功 0x01:清空失败 |
|
6 |
SUM(1~n) |
(1~n)校验和 |
|
7 |
0x7A |
包尾 |
当APP连接到箱包锁时,会下发指令查询锁当前的状态,以方便同步数据,返回格式根据APP开关锁指令后的MCU返回结果格式。
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x03 |
Tpye:查询箱包锁状态 |
Payload |
5 |
|
Value 0x01 |
|
6 |
SUM(1~n) |
(1~n)校验和 |
|
7 |
0x7A |
包尾 |
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x04 |
Tpye:APP开关锁 |
Payload |
5 |
|
操作类型: 0:开锁 1:关锁 |
|
6 |
SUM(1~n) |
(1~n)校验和 |
|
7 |
0x7A |
包尾 |
l MCU返回开关锁结果
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x04 |
Tpye:APP开关锁 |
Payload |
5 |
|
操作用户: 0:APP操作 1:密码操作 2:指纹操作 3:自动操作 |
|
6 |
|
操作类型: 0:开锁 1:关锁 2:开锁中 3:关锁中 |
|
7 |
|
操作结果: 0:成功 1:失败 |
|
8 |
SUM(1~n) |
(1~n)校验和 |
|
9 |
0x7A |
包尾 |
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x05 |
Tpye:APP申请添加用户 |
Payload |
5 |
|
添加类型: 0:普通密码用户 1:指纹用户 |
|
6~7 |
|
用户ID编号(两个byte) 如ID=0x0123,则byte7=0x01,byte8=0x23; 若编号已存在,则覆盖。 0xFFFF为无编号,MCU端自定义编号。 |
|
8~10 |
|
用户密码(3个byte组成的数据,根据设备类型支持的密码位数选择有效数字,普通密码类型才会用到,其他用户类型使用0xFFFFFF) 例如密码长度为6个数字。 例如:数据byte9=01,byte10=E6,byte11=A2 数据=0x01E6A2=124578 那么密码就是:124578
数据=0x9227B9=9578425 那么密码就是:578425
数据=0x8E=142 那么密码就是:000142 |
|
11 |
SUM(1~n) |
(1~n)校验和 |
|
12 |
0x7A |
包尾 |
l MCU回复申请添加结果
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x05 |
Tpye:MCU回复添加结果 |
Payload |
5 |
|
回复结果: 0:添加成功 1:添加失败(需要在状态里说明失败原因) 2:添加中(例如添加指纹用户,需要分步进行时可使用到) |
|
6 |
|
用户类型: 0:普通密码用户 1:指纹用户 |
|
7~8 |
|
用户ID编号(2个byte) 如ID=0x0123,则byte7=0x01,byte8=0x23; |
|
9 |
|
状态 state: l 如果结果是添加成功时,该值为 state = 0
l 如果结果是添加失败时,该值为失败原因: State = 1:密码相似 2:找不到指纹 .... 0xFF :其他异常
l 如果结果是添加中时,该值为对应的步骤,例如指纹的步骤,以方便APP同步做提示(如果需要提示用户换位置时,State=0xFF)。 State= 1~N
|
|
10 |
|
指纹录入百分比:0% ~100% 数值 0~100 (其他用户类型则填0) |
|
11 |
SUM(1~n) |
(1~n)校验和 |
|
12 |
0x7A |
包尾 |
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x06 |
Tpye:APP取消添加用户 |
Payload |
5 |
|
操作内容: 1:取消添加用户 |
|
7 |
SUM(1~n) |
(1~n)校验和 |
|
8 |
0x7A |
包尾 |
l MCU回复取消添加结果。
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x06 |
Tpye:MCU回复取消添加结果 |
Payload |
5 |
|
回复结果: 0:取消成功 1:取消失败 |
|
6 |
SUM(1~n) |
(1~n)校验和 |
|
7 |
0x7A |
包尾 |
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x07 |
Tpye:APP删除用户 |
Payload |
5 |
|
用户类型: 0:普通密码用户 1:指纹用户 |
|
6~7 |
|
用户编号(2 byte) 如ID=0x0123,则byte6=0x01,byte7=0x23; |
|
8 |
SUM(1~n) |
(1~n)校验和 |
|
9 |
0x7A |
包尾 |
l MCU返回删除结果
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x07 |
Tpye:MCU返回删除用户结果 |
Payload |
5 |
|
返回结果: 0:成功 1:失败 |
|
6 |
SUM(1~n) |
(1~n)校验和 |
|
7 |
0x7A |
包尾 |
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x08 |
Tpye:APP模式选择 |
Payload |
5 |
|
模式: 1:在家模式 2:旅行模式 3:空运模式 |
|
6 |
SUM(1~n) |
(1~n)校验和 |
|
7 |
0x7A |
包尾 |
l MCU返回结果
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x08 |
Tpye:MCU返回模式选择结果 |
Payload |
5 |
|
返回结果: 0:成功 1:失败 |
|
6 |
SUM(1~n) |
(1~n)校验和 |
|
7 |
0x7A |
包尾 |
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x09 |
Tpye:开关锁模式选择 |
Payload |
5 |
|
模式: 1:自动模式 2:手动模式 |
|
6 |
|
自动开关锁使能 Bit 0 :=0 不能自动开锁。 =1:能够自动开锁 Bit 1 :=0 不能自动关锁。 =1:能够自动关锁 |
|
7 |
SUM(1~n) |
(1~n)校验和 |
|
8 |
0x7A |
包尾 |
l MCU返回结果
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x09 |
Tpye:MCU返回选择结果 |
Payload |
5 |
|
返回结果: 0:成功 1:失败 |
|
6 |
SUM(1~n) |
(1~n)校验和 |
|
7 |
0x7A |
包尾 |
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x0A |
Tpye:防丢报警设置 |
Payload |
5 |
|
模式: 0:禁止防丢报警 1:使能防丢报警 |
|
6~7 |
|
报警时长:(高位在前,低位在后) 0:连续报警 1~0xFFFF (时间 S) |
|
8 |
SUM(1~n) |
(1~n)校验和 |
|
9 |
0x7A |
包尾 |
l MCU返回结果
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x0A |
Tpye:MCU返回设置结果 |
Payload |
5 |
|
返回结果: 0:成功 1:失败 |
|
6 |
SUM(1~n) |
(1~n)校验和 |
|
7 |
0x7A |
包尾 |
当APP下发一键报警指令时,MCU需要返回接收到的信息,同时进行报警。
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x0B |
Tpye:一键报警设置 |
Payload |
5 |
|
模式: 0:停止报警 1:启动报警 |
|
6 |
SUM(1~n) |
(1~n)校验和 |
|
7 |
0x7A |
包尾 |
l MCU返回结果
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x0B |
Tpye:MCU返回设置结果 |
Payload |
5 |
|
返回结果: 0:成功 1:失败 |
|
6 |
SUM(1~n) |
(1~n)校验和 |
|
7 |
0x7A |
包尾 |
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x0C |
Tpye:防丢报警设置 |
Payload |
5 |
|
模式: 0:停止移动报警 1:启动移动报警 |
|
6 |
|
灵敏度 0~255 (数值越大,越灵敏) |
|
7 |
SUM(1~n) |
(1~n)校验和 |
|
8 |
0x7A |
包尾 |
l MCU返回结果
Byte |
Default |
Description |
|
0 |
0xA7 |
包头 |
|
1~2 |
0x000F |
产品类型: 0x000F |
|
3 |
|
Payload长度(最大15byte) |
|
4 |
0x0C |
Tpye:MCU返回设置结果 |
Payload |
5 |
|
返回结果: 0:成功 1:失败 |
|
6 |
SUM(1~n) |
(1~n)校验和 |
|
7 |
0x7A |
包尾 |
深圳市易连物联网有限公司
地址:深圳市宝安区西乡街道银田工业区侨鸿盛文化创意园写字楼A栋五层502室
Tel: +(86)0755-81773367
Email:hw@elinkthings.com
Web: www.elinkthings.com
Copyright © 2020 深圳市易连物联网有限公司 All rights reserved.