本文介绍登云梯JS开发框架中连接阿里云IoT平台设备动态注册组件所提供的相关方法说明,支持的硬件平台列表以及参考示例代码。
硬件平台
产品型号 | 是否支持 | 硬件类型 | 固件版本号 |
HaaS600Kit | 是 | 开发板 | 4.0.1 |
HaaS510 | 是 | DTU | 4.0.1 |
HaaS520 | 是 | DTU | 4.0.1 |
HaaS530 | 是 | DTU | 4.0.1 |
HaaS531 | 是 | DTU | 4.0.1 |
HaaS632-LT32V | 是 | 模组 | 4.0.1 |
HaaS600-EC600S | 是 | 模组 | 4.0.1 |
HaaS600-EC600N | 是 | 模组 | 4.0.1 |
HaaS600-EC600U | 是 | 模组 | 4.0.1 |
HaaS600-N715 | 是 | 模组 | 4.0.1 |
dynreg(Object option, Function callback)
设备或网关动态注册。
入参
Object类型,其属性有:
属性 | 类型 | 是否必填 | 描述 |
productKey | String | 是 | 设备的ProdctKey。 |
deviceName | String | 是 | 设备的DeviceName。 |
productSecret | String | 是 | 设备的ProductSecret。 |
mode | String | 否 | 动态注册方式,默认whiteList(白名单模式)。 |
region | String | 否 | 阿里云Region,默认值 阿里云Region详细说明,请参见阿里云物联网平台 - 地域和可用区。 说明 如果是企业实例,此处填写企业实例ID。 |
Function回调异步返回Object,其属性值如下:
属性 | 类型 | 备注 | 描述 |
deviceSecret | String | mode:whiteList | 设备的DeviceSecret。 |
clientId | String | mode:noWhiteList | 设备的ClientId。 |
userName | String | mode:noWhiteList | 设备的UserName。 |
passWord | String | mode:noWhiteList | 设备的PassWord。 |
返回
Number类型。
0:表示成功。
其他:表示失败。
阿里云物联网平台设备动态注册分为两种模式。更多信息,请参见一型一密。
一型一密预注册 :需要预先在物联网平台注册设备,使用ProdctKey、DeviceName、ProductSecret动态注册获取DeviceSecret,然后连接物联网平台。
一型一密免预注册:无需在物联网平台预注册设备,使用ProdctKey、DeviceName、ProductSecret动态注册获取ClientId、UserName、PassWord,然后连接物联网平台。
示例代码
import * as iot from 'iot';
import * as network from 'network';
import * as kv from 'kv';
var net = network.openNetWorkClient();
var device;
var clientIdKey = 'mqttclientid';
var userNameKey = 'mqttusername';
var passWordKey = 'mqttpassword';
var deviceSecretKey = 'deviceSecretKey';
var productKey = ''; /* your productKey */
var deviceName = ''; /* your deviceName */
var productSecret = ''; /* your deviceSecret */
function dynRegWithWhitelist() {
var deviceSecretValue = kv.getStorageSync(deviceSecretKey);
if (deviceSecretValue == undefined) {
iot.dynreg({
productKey: productKey,
deviceName: deviceName,
productSecret: productSecret
}, (deviceSecret) => {
console.log('receive deviceSecret is ' + deviceSecret);
kv.setStorageSync(deviceSecretKey, deviceSecret);
});
}
}
function dynRegWithoutWhitelist() {
var clientIdValue = kv.getStorageSync(clientIdKey);
var userNameValue = kv.getStorageSync(userNameKey);
var passWordValue = kv.getStorageSync(passWordKey);
if (clientIdValue == undefined || userNameValue == undefined || passWordValue == undefined) {
iot.dynreg({
productKey: productKey,
deviceName: deviceName,
productSecret: productSecret,
mode: 'noWhiteList'
}, (res) => {
console.log('receive mqtt clientId is ' + res.clientId);
console.log('receive mqtt userName is ' + res.userName);
kv.setStorageSync(clientIdKey, res.clientId);
kv.setStorageSync(userNameKey, res.userName);
kv.setStorageSync(passWordKey, res.passWord);
});
}
}
function dynreg_test() {
/* register with whitelist */
// dynRegWithWhitelist();
/* register without whitelist */
dynRegWithoutWhitelist();
}
var status = net.getStatus();
if (status == 'connect') {
dynreg_test();
} else {
net.on('connect', function () {
dynreg_test();
});
}