名词解释

AliOS Things: 阿里云智能IoT团队自研的物联网操作系统

HaaS:全称是Hardware as a Service,阿里云智能IoT团队基于AliOS Things系统推出的硬件即服务

HaaS UI:全称是Hardware as a Service User Interface,是源自AliOS Things操作系统上的一套应用&图形解决方案,支持C/C++和 JS两种开发语言

 

1、阿里云智能物联网平台简介

阿里云智能物联网平台为设备提供安全可靠的连接通信能力,向下连接海量设备,支撑设备数据采集上云;向上提供云端API,服务端通过调用云端API将指令下发至设备端,实现远程控制。

 

2、HaaS UI IoT平台接口简介

阿里云智能物联网平台支持海量设备连接上云,设备与云端可以通过js形式的IoT接口进行稳定可靠的双向通信,这些接口简称jsapi_iot。

jsapi_iot提供了设备上报属性、设备上报事件、云端设置属性、云端下发服务、mqtt连接状态监听等接口,可方便开发者使用阿里云物联网平台的相关功能。

 

示例代码

/* iot - 阿里云IoT连接平台连接组件示例,产品功能定义:

 * [功能类型] ------ [功能名称] ------ [标志符] ------ [数据类型]

 *   属性            主灯开关        LightSwitch      bool (0-关闭 1-开启)

 *   服务            开关翻转     ToggleLightSwitch   -

 *   事件            故障上报           Error         参数标志符:ErrorCode

 * */

import * as iot from 'iot';


this.device = iot.device();


/* 网络连接事件 */

device.on('connect', function () {

    console.log('(re)connected');

});

/* 网络断开事件 */

device.on('disconnect', function () {

    console.log('disconnect ');

});

/* 云端设置属性事件 */

device.on('props', function (payload) {

    console.log('cloud req data is ', payload);

    console.log('LightSwitch ', payload.LightSwitch ? 'ON' : 'OFF');

});

/* 云端下发服务事件 */

device.on('service', function (id, payload) {

    console.log('received cloud serviceid is ' + id);

    console.log('received cloud req_data is ' + payload);

});

 

2.1、device(Object option)

创建 iot 实例,同时会开始尝试连接阿里云IoT平台。iot实例默认开启TLS加密。

入参

属性

类型

必填

描述

region

String

阿里云region,默认值:cn-shanghai。阿里云region详细说明见阿里云物联网平台 - 地域和可用区

返回

 

2.2、iot 实例

事件

当iot client 连接到iot平台时,触发connect事件。断开重连时也会触发该事件。

当连接断开时,触发'disconnect'事件。

当iot云端下发属性设置时,触发props事件。

当iot云端调用设备service时,触发service事件。

 

方法

上报属性。

上报事件。

注册iot事件回调函数。

 

事件:'connect'

当iot client 连接到iot平台时,触发'connect'事件。断开重连时也会触发该事件。

 

事件:'disconnect'

当连接断开时,触发'disconnect'事件。三元组错误、三元组重复上线、服务端断开连接、主动断开连接、网络发生异常等都会触发该事件。该事件触发时,会自动尝试重连。

 

事件:'props'

当iot云端下发属性设置时,触发'props'事件。

回调函数参数有:

属性

类型

描述

payload

Object

服务端设置设备属性的内容

 

事件:'service'

当iot云端调用设备service时,触发'service'事件。

回调函数参数有:

属性

类型

描述

id

String

服务标志符,详细请参考什么是物的模型

payload

Object

服务端设置设备属性的内容

 

方法:iot.postProps(Object options)

上报设备属性。

入参

Object类型,其属性有:

属性

类型

必填

描述

payload

Object

设备定义的属性参数。详细请参考什么是物的模型

success

Function

上报设备属性成功的回调函数

fail

Function

上报设备属性失败的回调函数

 

方法:iot.postEvent(Object options)

上报设备的事件。

入参

Object类型,其属性有:

属性

类型

必填

描述

id

String

事件标志符,详细请参考什么是物的模型

params

Object

要上报的事件参数

success

Function

上报设备事件成功的回调函数,其函数参数参见下面说明

fail

Function

上报设备事件失败的回调函数

success回调函数参数:

属性

类型

描述

res

String

服务端reply的消息内容

 

方法:iot.on(String event, Function callback)

监听事件。

入参

属性

类型

必填

描述

event

String

注册的事件名称

callback

Function

监听事件的回调函数

 

3、设备创建与三元组获取

登录阿里云IoT官网,iot.aliyun.com,点击企业物联网平台:

AIOT平台技术 iot平台 api_iot

进入控制台:

AIOT平台技术 iot平台 api_ui_02

点击公共实例:

AIOT平台技术 iot平台 api_AIOT平台技术_03

点击创建产品:

AIOT平台技术 iot平台 api_iot_04

根据需要配置产品相关属性并点击确认:

AIOT平台技术 iot平台 api_HaaS_05

然后添加设备:

AIOT平台技术 iot平台 api_AIOT平台技术_06

点击前往添加:

AIOT平台技术 iot平台 api_iot_07

选择产品为上一步添加的产品,DeviceName自己命名:

AIOT平台技术 iot平台 api_iot_08

设备添加完成后,点击“查看”即可查看设备三元组信息:

AIOT平台技术 iot平台 api_ui_09

设备三元组信息如下所示:

AIOT平台技术 iot平台 api_iot_10

 

拿到设备三元组之后,就可以注册设备到阿里云物联网平台了:

this.iot_device = iot.device({

  productKey: "xxx",

  deviceName: "xxx",

  deviceSecret: "xxx",

  region: "" // 默认是cn-shanghai

});

 

4、设备上报属性示例

首先需要在产品中创建相应属性,在产品页面点击查看:

AIOT平台技术 iot平台 api_物联网_11

选择功能定义:

AIOT平台技术 iot平台 api_物联网_12

点击编辑草稿:

AIOT平台技术 iot平台 api_HaaS_13

点击添加自定义功能:

AIOT平台技术 iot平台 api_AIOT平台技术_14

配置属性相关信息,点击确认:

AIOT平台技术 iot平台 api_ui_15

属性配置完成后,点击发布上线,至此,属性就配置完成了:

AIOT平台技术 iot平台 api_AIOT平台技术_16

属性创建完成后,设备就可以将对应的属性上报到物联网平台了,设备属性上报示例代码如下:

// 先注册设备到阿里云物联网平台

this.iot_device = iot.device({

  productKey: "xxx",

  deviceName: "xxx",

  deviceSecret: "xxx",

  region: "" // 默认是cn-shanghai

});



// 设备属性上报

postProps() {

  this.LightSwitch = this.LightSwitch == 0 ? 1 : 0;

  this.iot_device.postProps({

    payload: {

      LightSwitch: this.LightSwitch

    },

    success: function () {

      console.log('postProps success');

    },

    fail: function () {

      console.log('postProps failed');

    }

  });     

},

 

下面将模拟开关灯,以示例阿里云物联网平台收到的设备属性上报数据。当灯打开时,向平台上报“开”,当灯关闭时,向平台上报“关”,物联网平台将实时显示设备上报的数据:

AIOT平台技术 iot平台 api_物联网_17