HaaS UI基础教学十:IoT平台连接

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

名词解释

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连接状态监听等接口,可方便开发者使用阿里云物联网平台的相关功能。

示例代码


  1. /* iot - 阿里云IoT连接平台连接组件示例,产品功能定义:
  2. * [功能类型] ------ [功能名称] ------ [标志符] ------ [数据类型]
  3. * 属性 主灯开关 LightSwitch bool (0-关闭 1-开启)
  4. * 服务 开关翻转 ToggleLightSwitch -
  5. * 事件 故障上报 Error 参数标志符:ErrorCode
  6. * */
  7. import * as iot from 'iot';
  8. this.device = iot.device();
  9. /* 网络连接事件 */
  10. device.on( 'connect', function () {
  11. console.log( '(re)connected');
  12. });
  13. /* 网络断开事件 */
  14. device.on( 'disconnect', function () {
  15. console.log( 'disconnect ');
  16. });
  17. /* 云端设置属性事件 */
  18. device.on( 'props', function (payload) {
  19. console.log( 'cloud req data is ', payload);
  20. console.log( 'LightSwitch ', payload.LightSwitch ? 'ON' : 'OFF');
  21. });
  22. /* 云端下发服务事件 */
  23. device.on( 'service', function (id, payload) {
  24. console.log( 'received cloud serviceid is ' + id);
  25. console.log( 'received cloud req_data is ' + payload);
  26. });

2.1、device(Object option)

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

入参

属性

类型

必填

描述

region

String

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

返回

  • iot
    实例。

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,点击企业物联网平台:

进入控制台:

点击公共实例:

点击创建产品:

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

然后添加设备:

点击前往添加:

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

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

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

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


 
  1. this.iot_device = iot.device({
  2. productKey: "xxx",
  3. deviceName: "xxx",
  4. deviceSecret: "xxx",
  5. region: "" // 默认是cn-shanghai
  6. });

4、设备上报属性示例

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

选择功能定义:

点击编辑草稿:

点击添加自定义功能:

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

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

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


  
  1. // 先注册设备到阿里云物联网平台
  2. this.iot_device = iot.device({
  3. productKey: "xxx",
  4. deviceName: "xxx",
  5. deviceSecret: "xxx",
  6. region: "" // 默认是cn-shanghai
  7. });
  8. // 设备属性上报
  9. postProps() {
  10. this.LightSwitch = this.LightSwitch == 0 ? 1 : 0;
  11. this.iot_device.postProps({
  12. payload: {
  13. LightSwitch: this.LightSwitch
  14. },
  15. success: function () {
  16. console.log( 'postProps success');
  17. },
  18. fail: function () {
  19. console.log( 'postProps failed');
  20. }
  21. });
  22. },

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

开发者技术支持

如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号

更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
11天前
|
XML 前端开发 JavaScript
前端CSS样式零基础教学总结,UI、前端开发都适用
前端CSS样式零基础教学总结,UI、前端开发都适用
|
27天前
|
安全 物联网 Android开发
安卓物联网(IoT)应用开发:连接物理世界
【4月更文挑战第14天】本文探讨了安卓平台在物联网应用开发中的角色,强调了设备连接性、数据处理、用户界面、安全性和可扩展性五大关键点。通过举例说明了一个智能家居应用的开发流程,涉及通信协议、用户界面设计、数据安全及可扩展性的实现。安卓物联网应用开发结合了多领域知识,为创造智能、安全的生活解决方案提供了广阔空间。
|
7月前
|
边缘计算 数据可视化 物联网
IOT 3000平台生态
IOT 3000平台生态
60 0
|
8月前
|
物联网 数据安全/隐私保护 开发者
《开发者评测》之IoT HaaS 510评测获奖名单
IoT HaaS 510评测活动获奖名单出炉啦!
152 0
|
8月前
|
传感器 数据采集 安全
|
9月前
|
传感器 监控 物联网
阿里云IoT HaaS 510:快速实现物联网数据传输的利器
众所周知,物联网(IoT)是近年来日益热门的技术领域之一,它的广泛应用为人们的生活和工作带来了无限可能。在物联网应用中,数据的采集和传输是至关重要的一环。DTU是一种应用于物联网数据传输的终端设备,它可以将各类传感器、数据采集单元等通过串口RS232/485传输到DTU,再由DTU转发到4G网络上传至云端。阿里云IoT HaaS 510是一款开板式DTU产品,能够帮助企业快速搭建物联网平台,并实现数据的采集和传输,那么本文就来简单分享一下。
375 1
阿里云IoT HaaS 510:快速实现物联网数据传输的利器
|
12月前
|
开发框架 物联网 云栖大会
阿里云IoT | HaaS开源百校科技助力计划 —— 开源大使招募
阿里云IoT | HaaS开源百校科技助力计划 —— 开源大使招募
207 0
|
12月前
|
开发框架 移动开发 数据可视化
HaaS UI 使用 树莓派 打造自己的第一个案例
HaaS UI 使用 树莓派 打造自己的第一个案例
214 0
|
12月前
|
开发框架 API C++
ESP32 + HaaS Python UI Lite 组件 打造倒计时面板
ESP32 + HaaS Python UI Lite 组件 打造倒计时面板
131 0
|
人工智能 JavaScript Java
IM场景的移动端UI自动化测试平台实践
市面上的UI自动化平台基本上都是大同小异,把查找元素的方法抽象到一个下拉列表,再通过输入框输入要查找元素ID,查到到元素对应做一些动作。今天以opendx为例介绍一下UI自动化平台能力(它的页面和架构相对更人性化)。
355 0