百度天工IoT 快速上手
前言
早先用了机智云和OneNET,现在再来用百度天工IoT,各有千秋,都很好用,很适合物联网开发者。
概念
- 物模型 多个属性和数据点组成,表示一类设备。
- 物影子 百度天工的核心,设备数据上报暂存在物影子,通过操控物影子来控制设备。
协议
设备端与云端之间,主要通过MQTT。
应用端与云端之间,主要通过HTTP。
应用
更新设备状态(设备/App->物影子)
pub \$baidu/iot/shadow/myDeviceName/update
{
"requestId": "{requestId}",
"reported": {
"led0": true,
"result": 0,
"log":"NG"
},
"desired": {
"log": "NG"
},
"profileVersion": 5
}
- requestId 唯一标识符,随机生成
- reported 更新物影子的“当前值”的相关属性。用于设备同步更新数据到云端。
- desired 更新物影子的“期望值”的相关属性 。用于App控制设备(具体见后文)
更新设备状态-成功(设备/App<-物影子)
sub \$baidu/iot/shadow/myDeviceName/update/accepted
{
"requestId": "{requestId}",
"reported": {
"firewareVersion": "1.0.0",
"light": "green"
},
"desired": {
"light": "red"
},
"lastUpdatedTime": {
"reported": {
"firewareVersion": 1494904250,
"light": 1494904250
},
"desired": {
"light": 1494904250
}
},
"profileVersion": 10
}
更新设备状态-失败(设备/App<-物影子)
sub \$baidu/iot/shadow/myDeviceName/update/rejected
{
"requestId": "{requestId}",
"code": "{errorCode}",
"message": "{errorMessage}"
}
获取物影子(App->设备影子)
pub \$baidu/iot/shadow/myDeviceName/get
{
"requestId": "{requestId}"
}
获取物影子-成功(App<-物影子)
sub \$baidu/iot/shadow/myDeviceName/get/accepted
{
"requestId": "{requestId}",
"reported": {
"firewareVersion": "1.0.0",
"light": "green"
},
"desired": {
"light": "red"
},
"lastUpdatedTime": {
"reported": {
"firewareVersion": 1494904250,
"light": 1494904250
},
"desired": {
"light": 1494904250
}
},
"profileVersion": 10
}
获取物影子-失败(App<-物影子)
sub \$baidu/iot/shadow/myDeviceName/get/rejected
{
"requestId": "{requestId}",
"code": "{errorCode}",
"message": "{errorMessage}"
}
App控制设备
云端接收到desired 相关属性的更新后,会diff物影子中reported和desired相关字段,将diff后的结果发送给delta主题。设备通过订阅delta主题信息,来更新自身状态数据,从而达到控制设备的目的。
云端通过delta主题控制设备(云端->设备)
sub \$baidu/iot/shadow/myDeviceName/delta
{
"requestId": "{requestId}",
"desired": {
"light": "red"
}
}
设备控制失败(云端/App <- 设备)
pub \$baidu/iot/shadow/myDeviceName/delta/rejected
{
"requestId": "{requestId}",
"code": "{errorCode}",
"message": "{errorMessage}"
}
具体的使用手册下载地址
http://download.csdn.net/download/kangweijian/10039341