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 实例

事件

  • 事件:'connect'

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

  • 事件:'disconnect'

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

  • 事件:'props'

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

  • 事件:'service'

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

方法

  • iot.postProps(Object option)

上报属性。

  • iot.postEvent(Object option)

上报事件。

  • iot.on(String event, Function callback)

注册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
相关文章
|
3月前
|
XML 网络协议 物联网
基于surging的木舟IOT平台如何添加网络组件
【8月更文挑战第30天】在基于 Surging 的木舟 IOT 平台中添加网络组件需经历八个步骤:首先理解 Surging 及平台架构;其次明确组件需求,选择合适技术库;接着创建项目并配置;然后设计实现网络功能;再将组件集成至平台;接着进行详尽测试;最后根据反馈持续优化与维护。具体实施时应参照最新文档调整。
64 10
|
3月前
|
物联网 Linux C#
一键掌控未来!用 Uno Platform 打造跨平台 IoT 应用,轻松连接你的智能设备,让生活更智能!
微软的开源跨平台框架 Uno Platform 支持使用 C# 和 XAML 一次性编写代码并部署至多个平台,如 Windows、macOS、Linux、WebAssembly 及 iOS/Android,这使其成为 IoT 设备开发的理想选择。本文通过创建控制网络 LED 灯的应用,详细介绍了 Uno Platform 的环境搭建及 MQTT 客户端配置过程,实现了 LED 状态订阅与控制指令发送功能。该案例展示了 Uno Platform 在 IoT 领域的潜力及其跨平台优势,未来可扩展至更多设备类型,构建智能家居系统。
297 58
|
2月前
|
自然语言处理 应用服务中间件 程序员
Nginx UI:全新的 Nginx 在线管理平台
Nginx UI:全新的 Nginx 在线管理平台
|
2月前
|
物联网 Linux Android开发
一键掌控未来!用 Uno Platform 打造跨平台 IoT 应用,轻松连接你的智能设备,让生活更智能!
本文通过具体案例介绍了如何使用微软的开源框架 Uno Platform 实现与 IoT 设备的集成。Uno Platform 支持一次编写、多平台部署,适用于 Windows、macOS、Linux、WebAssembly 及 iOS/Android。本例创建了一个控制网络 LED 灯的应用,详细说明了环境搭建、MQTT 客户端配置、主题订阅及控制指令发送等步骤。该案例展示了 Uno Platform 在 IoT 领域的潜力及其跨平台优势,未来可扩展至更多设备类型,构建智能家居系统。
75 0
|
4月前
|
存储 SQL JSON
【Azure IoT Hub】从设备端如何向IOT发送海量数据,可以使用从设备到IoT连接的直接传输吗?如何把IoT Hub中的数据存储到Azure Storage中?
【Azure IoT Hub】从设备端如何向IOT发送海量数据,可以使用从设备到IoT连接的直接传输吗?如何把IoT Hub中的数据存储到Azure Storage中?
|
5月前
|
编解码 前端开发 图形学
【技术深度解析】多平台适配下的UI适配难题:U3D游戏UI错乱的终极解决方案
【7月更文第12天】随着移动设备市场的多元化,Unity游戏开发者面临的一大挑战是如何在不同分辨率和屏幕尺寸的设备上保持UI的一致性和美观性。游戏在高分辨率平板与低分辨率手机上呈现出的UI布局混乱、按钮错位等问题,严重影响玩家体验。本文旨在探讨Unity UI(UGUI)在多平台适配中的最佳实践,通过优化Canvas Scaler设置、灵活运用RectTransform和Anchor Points,以及高效利用设计工具,确保UI的完美适配。
640 1
|
5月前
uniapp 安装插件 uView (多平台快速开发的UI框架)
uniapp 安装插件 uView (多平台快速开发的UI框架)
204 0
|
7月前
|
XML 前端开发 JavaScript
前端CSS样式零基础教学总结,UI、前端开发都适用
前端CSS样式零基础教学总结,UI、前端开发都适用
|
7月前
|
消息中间件 弹性计算 物联网
【阿里云弹性计算】阿里云ECS在IoT领域的应用:支撑大规模设备连接与数据处理
【5月更文挑战第26天】阿里云ECS是弹性计算服务,支持IoT设备的连接与数据处理。通过MQTT协议实现设备快速接入,配合消息队列处理异构实时数据。ECS可用于部署数据处理工具、应用服务,如智能家居控制系统,通过弹性伸缩适应负载变化。结合阿里云其他服务,ECS为IoT提供完整解决方案,助力企业数字化转型。
97 0
|
7月前
|
安全 物联网 Android开发
安卓物联网(IoT)应用开发:连接物理世界
【4月更文挑战第14天】本文探讨了安卓平台在物联网应用开发中的角色,强调了设备连接性、数据处理、用户界面、安全性和可扩展性五大关键点。通过举例说明了一个智能家居应用的开发流程,涉及通信协议、用户界面设计、数据安全及可扩展性的实现。安卓物联网应用开发结合了多领域知识,为创造智能、安全的生活解决方案提供了广阔空间。
488 2