0.名词解释
名称 |
说明 |
产品 |
同一类型号设备的描述 |
通道 |
设备和服务器通讯的不同消息类型,每一种消息类型就是一个通道,也可理解为每一个功能就是一个通道,如:开灯,设置亮度,是两个通道 |
数据项 |
通道内包含的参数字段,如:通道叫做 延时开关,数据项就有两个,即延时时间和设备状态开还是关 |
上行/下行 |
下行:服务器下发命令给设备 ,上行:设备上报数据到服务器 |
1.说明
- 平台访问地址:http://o.d.*****.com
- 设备接入域名:d2.*****.com(用域名连接,禁止用ip)
- 设备接入端口:1139
- tcp协议会发生粘包现象,所以设备收到服务器数据可以根据:解析长度进行拆包,也可以根据帧尾0x0d 0x0a(回车换行)拆包
- 设备DeviceSecret:物联网平台系统中设备唯一标识(长度32),设备只需获取一次,永久存储在设备中
- 设备nodeId:设备自身唯一标识,比如IMEI、MAC地址,Serial No,或全局定义常量等(长度15)
- 设备需要实现掉线重连功能,服务器更新程序会重启服务断开所有连接,设备 需要会自动重连
- 一台设备只需创建一个tcp连接,无需重复创建,如果创建多次连接,服务器只用最后一条连接
- 每3分钟上报一次心跳包,格式看下文内容,设备注册完成后才可以发送心跳包
- 开发之前建议先用tcp调试工具模拟设备模拟上线,注册,上报数据
2.接入流程
- 物联网平台创建产品,生成该产品的 ProductKey和 ProductSecret,将 ProductKey和 ProductSecret永久保存到设备中
- 在该产品下添加设备,录入设备的唯一标识nodeId,平台自动生成该设备的DeviceSecret
- 设备根据产品的 ProductKey,ProductSecret和设备NodeId 换取设备的DeviceSecret,将DeviceSecret永久保存到设备中
- 对于少量设备可以从平台上直接复制设备的DeviceSecret可以省去上面步骤,直接进行第四步上报数据
- 设备每次连接服务器成功上线后先进行设备注册(开机,重启,掉线重连等上线后都需要注册)
- 注册成功后设备正常上报数据
- 设备每次上线只需注册一次,无需每次上报数据前都进行注册
- 上报数据协议格式错误,服务器会主动断开连接
- 请求错误或者失败,请看最后一条响应码
2.1创建产品
2.2按照设备功能需求设计通道和数据项
2.3添加设备
3.手动获取设备DeviceSecret
- 可以复制保存到设备中
4.自动换取设备DeviceSecret
0a 00 44 00 53 31 62 59 68 5a 76 61 2c 61 65 31 62 64 66 62 61 37 61 35 63 61 33 62 35 37 66 38 39 39 63 35 39 31 61 32 37 36 33 66 39 65 31 62 33 33 39 63 39 2c 38 36 39 36 34 30 30 35 36 33 36 30 34 37 35 0d 0a
| 起始位 | 数据总长度 | 操作类型 | ProductKey| 分割符 | ProductSecret| 分割符 | NodeId | 结束位 |
起始位:0a
数据总长度:00 44 = 68
操作类型:00 = 换取DeviceSecret
ProductKey: 53316259685a7661 = S1bYhZva
逗号分割:2c = ‘,’
ProductSecret: 61653162646662613761356361336235376638393963353931613237363366396531623333396339 = ae1bdfba7a5ca3b57f899c591a2763f9e1b339c9
逗号分割:2c = ‘,’
nodeId: 383639363430303536333630343735 = 869640056360475
结束位: 0d 0a
参数 |
说明 |
长度 |
起始位 |
起始位 ,固定:0x0a |
1 |
数据长度 |
所有数据的长度,不含起始位,不含长度位自身长度 |
2 |
操作类型 |
0x00 是换取DeviceSecret, 0x01 是上传数据,0x02 是设备注册,0x03 是下发命令,0x04远程升级 ,0x05心跳 |
1 |
ProductKey |
产品appId |
n |
分隔符 |
逗号分隔符,固定:0x2c ,ASCII编码 |
1 |
ProductSecret |
产品密钥,云平台中获取 |
n |
分隔符 |
逗号分隔符,固定:0x2c ,ASCII编码 |
1 |
NodeId |
ASCII编码, 设备地址,设备唯一标识,如果为网关子设备,则为子设备的NodeId |
15 |
结束位 |
结束位,暂时固定:0x0d 0x0a |
2 |
0a 00 23