a

1. 第三方硬件接入

1.1. NBIOT部分

硬件开发者需要从IoT平台服务商获取如下信息:

  • 设备对接地址/端口号
  • 数据协议

1.1.1. 相关名词解释

  • 偏移值:该字段在本条消息码流中起止位置的字节下标,下标从0开始。

1.1.2. 厂家测试流程

  1. 厂家将imei号上报,由平台录入
  2. 给厂家指定目标ip和端口
  3. 上传数据
  4. 接收指令

1.1.3. 接入格式

第一个字节是地址域,列举如下:

  • 0x0 定时上传

    • 温度,2字节,16位有符号整数,摄氏度*100上传,偏移值1-3
    • 湿度,2字节,16位有符号整数,百分比*100上传,偏移值3-5
    • 电压,2字节,16位有符号整数,伏特*100上传,偏移值5-7
    • 信号强度,2字节,16位有符号整数,dbm*100上传,偏移值7-9
    • 倾斜x轴角度,2字节,16位有符号整数,角度*100上传,偏移值9-11
    • 倾斜y轴角度,2字节,16位有符号整数,角度*100上传,偏移值11-13
    • 倾斜z轴角度,2字节,16位有符号整数,角度*100上传,偏移值13-15
    • 剩余电量,1字节,8位无符号整数,偏移值15-16
    • 锁1,开光状态1字节,8位无符号整数,偏移值16-17(1为开,0为关)
    • 门1,开光状态1字节,8位无符号整数,偏移值17-18(1为开,0为关)
    • 锁2,开光状态1字节,8位无符号整数,偏移值18-19(1为开,0为关)
    • 门2,开光状态1字节,8位无符号整数,偏移值19-20(1为开,0为关)
  • 0x02 告警上传

    • 告警类型1字节,偏移值1-2,候选项值如下:
      • 1: '门磁破坏',
      • 2: '震动告警',
      • 3: '水浸告警',
      • 4: '烟雾告警',
      • 5: '温度警告',
      • 6: '湿度警告',
      • 7: '长时间未关门',
      • 8: '低电量',
      • 9: '信号强度过弱'
      • 10:'烟雾告警'
    • 告警值2字节,偏移值2-4,当告警随值出现时,需要传递
  • 0x3 ping,每次开机向服务器发送数据

    • 序号1字节,偏移值1-2
  • 0x30 参数下发

    • 键1字节,偏移值1-2

      命令下发类型Key(8位无符号0~255)Value(32位有符号)
      温度报警阈值0x51摄氏度
      湿度报警阈值0x52百分之
      上传数据间隔0x53分钟
      检查传感间隔0x54分钟
      NB附着间隔0x55分钟
      重传次数0x56
      检查水浸间隔0x57分钟
      检查震动间隔0x58分钟
      水浸事件最小间隔0x59
      震动事件的最小间隔0x5a
      震动敏感度0x5b一个数值,范围0~100,越高越敏感,默认值50
    • 值4字节,偏移值2-6

  • 0x31 开锁下发

    • 开锁指令1字节,值为01,偏移值1-2
  • 0x32 key下发

    • key16字节,偏移值1-17

上传消息成功有返回响应数据,响应数据默认为AAAA0000

1.1.4. 设备接入平台

设备接入IoT平台后,IoT平台才可以对设备进行管理。本节基于NB-IoT设备进行说明。

设备接入平台时,需要保证IoT平台已经有对应应用,并且已经在该应用下注册了此设备。

  1. 设备上电后,使用串口工具连接设备。
  2. 使用串口工具依次执行AT命令。如下AT命令仅供参考,具体命令集请向相应的模组厂商获取。
AT命令作用备注
AT+CMEE=1报错查询。标准AT指令
AT+CFUN=0关机。设置IMEI和平台IP端口前要先关机。标准AT指令
AT+CGSN=1查询IMEI。IMEI为设备标识,应用服务器调用API接口注册设备时,nodeId/verifyCode都需要设置为IMEI。标准AT指令
AT+NTSETID=1,xxxxxxxx为IMEI。如果查询不到可自行设置IMEI,IMEI必须是唯一的,不能与其他设备重复,且只能设置一次。IMEI为设备标识,应用服务器调用API接口注册设备时,如果设备使用海思芯片,则nodeId/verifyCode都需要设置成IMEI;如果设备使用高通芯片,则nodeId/verifyCode都需要设置成urn:imei:IMEI。海思芯片私有AT指令,在flash中保存IMEI。应用服务器在向平台进行设备注册时,使用此参数,其他芯片或模组厂商可参考实现。
AT+NCDP="IP","port"设置设备对接的IoT平台的IP地址和端口号,5683为非加密端口,5684为DTLS加密端口。海思芯片私有AT指令,在flash中保存IP和端口。应用服务器在向平台进行设备注册时,使用此参数,其他芯片或模组厂商可参考实现。
AT+CFUN=1开机。标准AT指令
AT+NBAND=5设置频段。海思芯片私有AT指令,在flash中保存频段。设备在入网时,使用此参数,其他芯片或模组厂商可参考实现。
AT+CGDCONT=1,"IP","CTNB"设置核心网APN。APN与设备的休眠、保活等模式有关,需要与运营商确认。标准AT指令
AT+CGATT=1入网。标准AT指令
AT+CGPADDR获取终端IP地址。标准AT指令
AT+NMGS=x,xxxx发送上行数据。第1个参数为字节数,第2个参数为上报的16进制业务码流。海思芯片私有AT指令,初次发送数据时,完成设备注册;后续发送数据时,仅发送数据。其他芯片或模组厂商可参考实现。
AT+NQMGR接收下行数据。海思芯片私有AT指令,查询接收buffer中可以接收的数据量,以及当前总共接收的消息数和丢弃的消息数。其他芯片或模组厂商可参考实现。
AT+NMGR读取数据。海思芯片私有AT指令,读取从IoT平台(LWM2M SERVER)接收到的数据。其他芯片或模组厂商可参考实现。

1.1.5. 设备数据上报

在设备侧执行AT命令(AT+NMGS=x,xxxx),使设备上报数据。

发送上行数据。第1个参数为字节数,第2个参数为上报的16进制业务码流。

1561606255795

1.1.6. 命令下发

在设备侧执行AT命令(AT+NMGR),读取从IoT平台接收的命令信息。

命令缓存时间默认为48小时。

1561606004207

1.2. 蓝牙

1.2.1. 基础概念

  • BLE分为三部分:Service、Characteristic、Descriptor,这三部分都由UUID作为唯一标示符。一个蓝牙4.0的终端可以包含多个Service,一个Service可以包含多个Characteristic,一个Characteristic包含一个Value和多个Descriptor,一个Descriptor包含一个Value。service是characteristic的集合.一个characteristic包括一个单一变量和0-n个用来描述characteristic变量的descriptor。Descriptor用来描述characteristic变量的属性。例如,一个descriptor可以规定一个可读的描述,或者一个characteristic变量可接受的范围,或者一个characteristic变量特定的测量单位。一般来说,Characteristic是手机与BLE终端交换数据的关键.。
  • 消息传递以字节为单位编码,每个字节实际由8位二进制位组成。

1.2.2. 说明

在一个连接周期内,只要在刚连接的时候传递密码验证通过,在这个连接周期内后续的操作都不让它再发送key。

最核心的就是,初始化时通过蓝牙或者nb设定一个16字节的key,蓝牙连接后,先向Characteristic发送这个key,格式示例如下:

0x01, 0x00, 16字节的key

硬件内部程序做比对,如果通过,那么这次建立的连接有效;否则返回提示认证失败,并断开连接

如果因为特殊情况,使硬件内部存储的key与服务器中存储的不一致,那么使用重置命令头+imei号使硬件再次通过nb更新,保持连接,当nb更新后可通知手机端key已更新,命令格式如下:

0x01, 0xAB,imei号

1561986060991

1.2.3. 规则

第一个字节表示消息方向:0x01是向设备下发,0x10是从设备上传;概念定义如下:

1561986785548

1.2.3.1. 下发

第二个字节表示用途,完整示例如下:

  • 0x01, 0x00,携带认证key,做连接认证
  • 0x01, 0xAA,验证后,携带新key,通过蓝牙更新key
  • 0x01, 0xAB,携带imei号,将imei号每一位都转成16进制字节,设备验证通过后,通过nb更新key
  • 0x01, 0x03,验证后,通过nb更新当前设备的告警参数
  • 0x01, 0x02,验证后,设置携带ip和端口,ip按12个字节,每段3个字节,不足三位时在前补0
  • 0x01, 0x31,验证后,开锁
1.2.3.2. 上传

第二个字节表示用途,完整示例如下:

  • 第二个字节0x02表示这一条消息是操作响应,示例如下:
    • 0x10, 0x02, 0x00,提示设备尚未初始化,未更新key
    • 0x10, 0x02, 0xAA,提示通过蓝牙更新key成功
    • 0x10, 0x02, 0xAB,提示通过NB更新key成功
    • 0x10, 0x02, 0x31,提示开锁成功
    • 0x10, 0x02, 0x04,提示key获取有问题

转载于:https://my.oschina.net/u/3058876/blog/3068353

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值