IoT物联网平台-实例化开发实战
前言
物联网平台企业版支持用户创建实例,用于设备接入和业务管理。企业版有一下优势:
- 根据业务规模,购买匹配的实例规格,可大幅节约您的成本。
- 实例规格按需选择,避免触达公共实例默认限流阈值的问题。
- 实例间隔离更彻底,具有更高的数据可靠性和安全性
- 一个实例出现问题不会影响到您的其它实例
接下来,我们介绍一下实例化中完整的设备开发过程。
实例管理
进入IoT物联网平台控制台,选择实例管理,在实例列表的Tab,点击创建实例。
购买实例
实例规格信息
切换实例
在实例管理页面,切换到实例设置Tab,在下拉框中选择目标实例,点击切换实例。刷新后,控制台就进入当前实例状态,顶部文案也会标记为实例。
查看实例节点信息
当我们选择实例后,设备MQTT接入点,云端API接入点信息都可以在实例管理页面查看,如图所示。
在实例中创建产品
在切换到IoT物联网平台的某个实例后,在左上角会看到实例的标识,鼠标移动到实例,会有Tips显示当前使用的实例名称。在实例里,我们创建产品,并定义物模型。具体如下图:
在实例中注册设备
基于创建的产品,我们注册一个新设备,获取到设备身份信息。如下图:
设备开发
当我们获取到了设备身份三元组信息,以及MQTT接入域名,即可以通过mqtt库接入IoT物联网平台了。
这里我们以nodejs脚本模拟设备接入IoT平台实例,并上报物模型属性数据,订阅云端指令。
const mqtt = require('aliyun-iot-mqtt');
var options = {
productKey: "产品pk",
deviceName: "设备dn",
deviceSecret: "设备ds",
host: "实例 MQTT 接入域名",
};
//建立连接
const client = mqtt.getAliyunIotMqttClient(options);
setTimeout(function() {
//订阅 自定义Topic
client.subscribe(`/${options.productKey}/${options.deviceName}/user/get`)
//上报物模型属性数据
client.publish(`/sys/${options.productKey}/${options.deviceName}/thing/event/property/post`, getPostData(),{qos:0});
}, 3 * 1000);
function getPostData() {
const payloadJson = {
id: Date.now(),
params: {
temperature: Math.floor((Math.random() * 20) + 10),
humidity: Math.floor((Math.random() * 20) + 10)
},
method: "thing.event.property.post"
}
console.log("payloadJson " + JSON.stringify(payloadJson))
return JSON.stringify(payloadJson);
}
设备在线,上报数据
我们在电脑上运行nodejs脚本,设备成功建立MQTT连接,上报数据。
我们接入IoT物联网平台的控制台的设备详情页面,可以看到设备在线,在运行状态的Tab可以看到最后一次上报的属性数据。如下图:
日志服务
IoT物联网平台的实例化中同样提供了日志服务,方便我们开发联调和运行时问题排查。
设备行为分析
上行消息分析
查看消息详情
物模型数据处理过程分析
下行消息分析
我们接入设备详情页面,选择Topic列表,找到用于下行的Topic,点击发布消息。在弹框中输入消息内容,选择QoS=1,点击确认,发布消息到设备端。如下图:
消息发送成功后,我们进入日志服务的下行消息分析Tab,可以查看到2条消息记录。一条是云端发送消息到设备的日志,点击详情可以查看消息内容。另外一条是根据MQTT协议约定,设备端回复IoT物联网平台的PubACK。如下图:
结束语
至此,我们熟悉了在IoT物联网平台实例化中设备接入,开发联调,日志分析的完整过程。