项目中用到的bluetooth4.0协议的定制

来源:互联网 发布:svn迁移到linux 编辑:程序博客网 时间:2024/05/22 11:08
硬件项目中由于需要与手机app端通信,所以就用到的bluetooth4.0协议的定制,通过串口控制发送特定协议,然后又有蓝牙天线通过穿透模式辐射信号至空间介质中,手机内置蓝牙捕获特定协议连接。使用过程中要区分蓝牙的协议分类,苹果ios只支持bluetooth4.0,不能搜索2.0,而安卓可以兼容两者。使用过程中要注意蓝牙波特率和串口波特率的匹配问题。

 以下为项目中自定义的各种协议(与app端同步)

蓝牙自定义协议说明:

手机手动链接到设备后,设备不会主动上报数据。需要手机激活设备也就是需要对时开启上报(注册指令)

※     1.以下指令均为十六进制数据形式

※     2. 校验和(BCD)为除帧头、结束标志的其他数据累加和,转为四位BCD

注册指令

App发送:

帧头  指令类型  数据长度(BCD) 状态      时间(BCD)   校验和(BCD)  结束

68      01       00 08            01    20 15 06 30 12 45 25     xx xx         16

主板回码:68010009000000000101000101000016

帧头  指令类型  数据长度(BCD)       设备标识         状态  校验和     结束

68      01       00 09              0000000001010001    01     xx xx      16

 

 

手机根据心跳指令判断下面的设备是否在线如果不在线需要重新发送注册指令开启上报(必要时需要自动重连)

 

心跳指令:

主板发送:680200080000000001010001000016

帧头  指令类型  数据长度(BCD)       设备标识           校验和     结束

68      02       00 08              0000000001010001      xx xx     16

App回码:

帧头  指令类型  数据长度(BCD)       设备标识         状态  校验和     结束

68      02       00 09              0000000001010001    01     xx xx      16

 

设备开启以后通过主动上报指令发送给手机当前信息情况

 

主动上报数据指令:

主板发送:68050042000000000101000100322015122311234401000000000200000000030000000004000000000500000000000016

帧头  类型数据长度   设备标识           时间点         数据(等)             68     05    00 42 0000000001010001   00 32  20151223112344      01 00 00 00 00  02 00 00 00 00   03 00 00 00 00   04 00 00 00 00   05 00 00 00 00

校验和     结束    

xx xx       16

数据:01:速度02:里程03:电压04:电量 这些数多是Float

     01 00 00 00 00 :当前速度为 0

     05:代表一些车子运行状态  需要时可以添加

 

App回码:

帧头  指令类型  数据长度(BCD)       设备标识         状态  校验和     结束

68      05       00 09              0000000001010001    01     xx xx      16

 

报警指令:

报警上报指令用于的速度和电量报警

 

主板发送:680300200000000001010001010000000020151223112344000016

             设备标识                数据          时间点      校验和     结束

1  2   3  4   5 67 89101112      13 14 15 16        17 181920212223 24 25      26

68  03  0020  0000000001010001   01 00 00 00 00    20151223112344  xx xx      16

数据:01:超速报警 02:低电量报警

 

App回码:

帧头  指令类型  数据长度(BCD)       设备标识         状态  校验和     结束

68      03       00 09              0000000001010001    01     xx xx      16

 

 

速度上限设置

 

App发送:

              设备标识          类型     数据         校验和     结束

68  07  0013  0000000001010001    01   00 0000 00        xxxx      16

数据:

     01:设置上限速度 6KM/H  02:设置上限速度 10KM/H  

 

     03:设置上限速度 15KM/H  04:设置上限速度为特定值如 12KM/H  

     

注:

 

    “01”“02”“03”指令的数据部分可以不填也可以填入任意值,对设置没有影响

 

     “04”指令的数据部分必须填入需要设定的速度值

 

     数据为long int型

 

主板回码:68070009000000000101000101000016

帧头  指令类型  数据长度(BCD)       设备标识         状态  校验和     结束

68      07       00 09              0000000001010001    01     xx xx      16

 

 

安全行驶灯蓝牙控制协议

 

手机app端发送代码:

帧头  指令类型   数据长度(BCD) WS2812灯光RGB    灯光状态     校验和             

68       09          00 06         XX XX  XX      01 OR 02  XX  XX

结束标志

 16

指令说明:

XX  XX  XX分别代表颜色的RGB数值

01 OR 02:

01代表常亮

02代表呼吸

控制板要求:

控制板端需根据指令发送的RGB值修改安全行驶灯对应颜色和状态

 

 

 

 

 

0 0
原创粉丝点击