基本知识

通用基本概念

在进入正题前,我们简单阐述几个重要的概念,在后续开发中会经常用到。

  • 主域:即domain,每个开发者在AbleCloud上的唯一标识;
  • 子域:即subdomian,开发者每个产品在AbleCloud上的唯一标识,同一个主域下可以建立多个子域;
  • 云应用引擎:云应用引擎是AbleCloud推出的自定义云服务托管平台, 开发者可以基于AbleCloud提供的开发框架开发自定义应用服务并实现云端托管。
  • 产品属性:产品属性是用来描述硬件产品功能参数的信息。开发者可以通过在云平台定义产品属性,实现对硬件产品功能参数的持久化存储、查询等相关操作。

举例:

  • 某家电公司在AbleCloud开通了账号,为了标识此公司,AbleCloud给其分配了代号Galaxy。这个代号我们称之为此公司的主域
  • 该公司基于AbleCloud开发了一款空调产品叫做Turing,为了标识这款产品,Galaxy公司为其分配了代号turingIV16。这款产品的代号我们称之为子域
  • 该公司开发者开发了用户活跃积分系统的云端应用服务来提升用户活跃度,此应用服务为自定义云服务,并运行于云应用引擎
  • 该空调产品包括当前温度、实际温度、风速3个功能参数,开发者在云平台定义了当前温度、实际温度、风速3个产品属性,并通过自定义云服务将产品属性写入云平台。

物联网应用云架构

下图是物联网应用的基本云架构,AbleCloud 分别提供了设备端、云端、APP 端相对应的 SDK、框架和组件,简化物联网应用的开发复杂度。

  • 智能硬件设备搭载了内嵌 AbleCloud 联网固件的联网模块后,即可安全的连接至云端,同各类设备和用户进行安全的数据交互;
  • 移动端 App 使用了 AbleCloud App SDK 后,就可以方便快速的针对物联网应用场景做开发;
  • 云端开发者在 AbleCloud 云端应用框架的支撑下,可以专注于业务场景,快速开发高可靠分布式的自定义云服务,稳定运行在 AbleCloud 云应用引擎中。

arch

主要数据流图

本节中,我们将针对App给设备发送控制指令、设备上报数据这两个场景,从数据流的角度阐述自定义云服务、数据表。

远程发送控制指令

App给设备发送控制指令的基本流程如下示意图所示:
device-data-flow-downlink

  1. App用户通过App上调用的SDK接口(如 sendToDeviceWithOption()),给绑定的某台设备发送控制指令。
  2. AbleCloud的接入服务集群对上述消息中的用户身份进行安全认证,对用户访问设备的合法权限进行检查,通过后将控制指令转发给设备网关集群。
  3. 设备网关集群(GW)通过路由找到设备的长连接通路,将上述控制指令转发至设备。

设备上报数据

设备上报数据的路径如下示意图所示:
device-data-flow-uplink

  1. 设备和AbleCloud设备网关集群建立安全通信链路后,定期或者非定期的上报事件/数据给设备网关集群。

  2. 设备网关集群按照上报数据帧中包含的基本信息(设备所属的主域和子域),将数据分发至产品对应的自定义服务中。

转发给自定云服务的消息包括如下基本内容: - 设备所属产品的主域、子域信息,指明设备所属的开发者、产品。 - 设备的唯一标识,如设备的物理 ID。 - 设备实际上报的数据帧。

  1. 开发者可以在自定义云服务中解析上报的数据帧,识别数据内容,进行相应的处理计算,比如,将上报的数据持久化存储到产品属性中、向此设备绑定的用户发送提醒等。

  2. App则可以通过产品属性提供的接口,获取设备有关历史数据。

实战进阶

接下来,我们将通过构建一个智能灯demo,来了解如何基于AbleCloud快速打造一款物联网应用。

通过下文介绍,我们将了解到:

  • Step 1:如何开通账号、创建智能灯产品并定义产品的属性。
  • Step 2:如何获取和烧录联网模块固件、如何使用MCU模拟器进行联网模块配置。
  • Step 3:如何创建和发布智能灯的自定义云服务,并托管于云应用引擎。
  • Step 4:如何通过Demo App调试工具和智能灯、自定云服务完成三方联调。