本文观点源自个人观察与分析,可能与您的理解存在出入,甚至无法确保绝对正确。如有想法,友好探讨,勿上头争论,谢谢!
目录:
1 IoT PaaS 云介绍
1.1 Ali IoT
1.2 AWS IoT
1.3 Tuya
2 设备管理
2.1 设备全生命周期管理
2.2 物模型和设备属性
2.3 设备能力
2.4 设备影子
2.5 设备任务
2.6 设备分组
2.7 产品和类目管理
2.8 规则引擎
3 设备连接
3.1 设备接入 & 配网使用全流程
3.2 重点厂商的设备接入方案对比
3.3 重点厂商的设备消息通信方案对比
3.4 设备连网方式
4 应用使能
1 IoT PaaS 云介绍
系列第二篇讲到,我们将物联网的平台层重新定义为能力层,Ta 向下连接设备,向上赋能应用,本质是「连接」和「赋能」,是整个 IoT 业务的底座,是业务平台的平台。包含:
- IoT PaaS 云能力
- AI 能力
- IaaS 能力
- 数据能力
- 安全能力
- 区块链能力
不同的平台型企业,提供各式各样的平台型能力业务
「IoT PaaS云」是物联网平台层最核心的部分,所有的 IoT 应用层业务搭建,必须依赖 IoT PaaS 云。主要有:
- 设备连接:通过连接物联网芯片模组,实现设备的连网上云,包含设备认证、设备消息通信、设备连网 SDK、设备绑定等
- 设备管理:在云端进行设备的生命周期管理、物模型管理、分组管理等
- 应用使能:向开发者提供各式各样的应用开发工具、API、SDK、GUI 等,以若干中台化能力向应用层赋能
1.1 Ali IoT
平台架构
阿里云物联网平台是一个集成了设备管理、数据安全通信和消息订阅等能力的一体化平台。向下支持连接海量设备,采集设备数据上云;向上提供云端 API,服务端可通过调用云端 API 将指令下发至设备端,实现远程控制
平台服务
阿里云物联网平台的能力非常强大,是全球最大的 IoT PaaS 云之一。我们发现,Ali IoT 的服务主要集中在:
- 设备的接入,包含设备端SDK、认证、协议等
- 设备的管理,包含设备生命周期管理、设备物模型、设备影子、设备关系等
- 消息通信
- 设备的监控运维
- 数据分析
Ali IoT 的定位是一个强大的物联网云平台,强调「云」的赋能
1.2 AWS IoT
平台架构
AWS IoT 提供云服务将 IoT 设备连接到其它设备和 AWS 云。也是一个集设备管理、数据安全通信和消息订阅等能力的一体化平台
平台服务
AWS IoT 的云服务能力非常强大,是全球最大的 IoT PaaS 云之一,但其对设备的管理和业务支撑的能力相对简单,很多厂商只利用 AWS IoT 当作设备连接的通道
- 例如,Ali IoT、Tuya 的设备管理都支持设备物模型的管理,AWS IoT 不支持
1.3 Tuya
平台架构
涂鸦的定位与 Ali IoT、AWS IoT 都不同,涂鸦不想只做一个物联网「云」赋能的平台,Ta 想做一个物联网一站式开发平台。通过提供大量的研发测试工具、整体方案、流程管理功能,让客户一站式的完成整个物联网产品开发的全部环节,例如:硬件产品(物模型、固件、MCU)、App、SaaS 等
平台服务
涂鸦平台的服务非常多,简述:
- 产品开发和设备接入
- 大量封装好现成逻辑的:免开发方案、低代码开发方案、功能 SDK
- 物模型的定义和管理、固件的定义和开发管理等
- 研发调试工具和测试工具
- 设备生产的管理
- 一站式采购、模组交易等管理
- 消息推送和日志监控等丰富功能
- App 开发
- 公版 App、OEM App、功能 SDK
- App 的上架配置、版本管理等
- App 功能配置
- 设备控制面板的自定义配置
- 小程序的开发和管理
- 云开发(相对较弱)
- 设备连接
- 设备管控
- 数据服务
- 消息通信
- 私有化部署
- 数据统计和分析
- App 和用户运营等
2 设备管理
2.1 设备全生命周期管理
主要指设备的创建、删除、上线和离线、启用和禁用
- 设备创建,即在云平台上创建一个智能设备
- 设备删除,即将设备从云平台删除,证书失效、数据删除
- 设备上线,即设备接入云平台,状态变为在线
- 设备离线,即设备断开与云平台的连接,状态变为离线
- 设备禁用,即禁止设备接入云平台
- 设备启用,即重新允许设备接入云平台
2.2 物模型和设备属性
物模型,即物理设备在云端的数据化体现。比如一个物理世界的灯泡,如果想要在云端和应用软件上控制 Ta,就要在虚拟世界中也创建一个同样的灯泡,这就是灯泡的数据模型,即物模型
设备属性,即设备的功能点。物理灯泡有开启、关闭、调节亮度的功能,同样的,在虚拟世界中也要定义相同的功能,这就是设备的一个个属性
物模型和属性描述了设备是什么、能做什么,是当前 IoT 行业对设备最常用的描述方式,下图是一个智能灯泡的物模型:
2.3 设备能力
随着物联网商业化的快速发展,通过属性定义设备的方式,越来越无法满足用户更深的需求,因为:
- 从上面的灯泡物模型可以看到,设备的属性定义非常技术向,其描述远离生活
- 设备属性是设备固件(运行在设备上的软件)和云交互的重要依托,每一个物理设备的细小功能,都需要单独定义成一个属性,否则云端无法获得到相应数据。这就导致属性的粒度太小,描述更加远离生活
- 基于属性的智能场景,往往需要用户通过少儿编程的方式进行配置,体验很差
- 例如配置一个起床模式:当用户按下床头开关时,床头灯亮起,并且窗帘打开
- 配置条件:当「床头开关」(设备)的「开关键位-1」(属性)的值变为「On」(属性值)时
- 例如配置一个起床模式:当用户按下床头开关时,床头灯亮起,并且窗帘打开
- 配置动作:「床头灯」(设备)的「灯泡开关」(属性)的值变为「On」(属性值),AND(逻辑运算符)「窗帘」(设备)的「窗帘操作模式」(属性)的值变为「开窗帘」(属性值)
- 智能设备的制造商非常多,会出现同一种设备,不同厂家对属性的定义不一致,这就导致应用端在处理时异常麻烦
- 家里智能灯泡坏了需要更换,用户如果买的是不同厂家和品类的设备,即使功能相同,也必须重新配置相关的智能场景,很麻烦
- ......
基于上述原因,个别企业已经开始寻找设备属性方案的替代品
以我司为例,从协议层、设备端、云端、应用端重新定义设备,以设备的能力作为基础,比如照明能力:智能灯泡具备照明能力,调光开关同样具备照明能力,用户只需要关注:我要让家里亮一点,暗一点即可。再加上对整个设备生产、研发和管理流程的创新,Ta 可以解决:
- 设备热替换
- 固件热更新
- 去少儿编程化
- 去厂家标准不一化
- 大幅提升设备研发的三端(设备端、云端、应用端)效率
- 真正的软件定义硬件
这里涉及企业技术隐私,不描述太多细节
2.4 设备影子
设备影子,是一个用来存储设备状态的功能
如果没有设备影子功能:
- 设备网络不稳定,设备频繁上下线,会导致无法正常响应应用程序的请求
- 设备网络稳定,同时响应多个应用程序的请求,即使响应的结果一样,设备本身处理能力有限,也会无法负载多次请求
为了避免上述问题,让软硬件产品的运转更稳定、体验更佳,会在 IoT 云平台上为每个设备创建一个设备影子。当设备状态变更时,只需要同步状态给设备影子,应用程序从设备影子中获取信息,实现应用程序与设备的解耦。以下为 Ali IoT 的设备影子流程图:
2.5 设备任务
通过云端设置多种设备相关的任务,例如:定时向设备发起属性设置的任务,常见智能插座的定时开/关
2.6 设备分组
可以根据用户需求,将多个设备编为一个设备组,方便进行批量处理或满足特殊场景
2.7 产品和类目管理
顾名思义,用来管理产品和类目的功能:
- 设备,指某一个具体的智能设备
- 产品,即一类具有相同功能的设备
- 类目,即具有相似特质的产品的分类
放在电商场景下,「电脑数码」是类目,「MacBook Pro (13-inch, M1, 2020)」是产品,「Dennis 的 Mac」是设备
2.8 规则引擎
英文名 Rule Engine,即通过创建、配置规则,来实现消息订阅、数据流转和场景联动的功能
上文讲到的「起床模式:当用户按下床头开关时,床头灯亮起,并且窗帘打开」,就是通过规则引擎来运转
3 设备连接
设备连接主要指一个物理设备通电连网后连接到云端的过程,广义的看还包含三端(设备端、云端、应用端)的消息通信环节
3.1 设备接入 & 配网使用全流程
下图是一个智能设备接入 IoT 云平台、工厂生产、用户购买并配网使用的全流程。这张图主要体现「一机一密」认证的流程,不同认证方式和平台商的流程可能存在差异,但大致业务流相似
设备认证
设备接入 IoT 云平台时,需要通过身份认证,常用的认证方式有:设备密钥、ID²、X.509 证书认证
本文只分享设备密钥认证,IoT 平台会为每个设备颁发密钥,当设备接入云平台时,需使用密钥进行认证。常用的密钥认证方案有:
- 一机一密:即为每个设备颁发独立的认证证书(包含密钥),安全性高
- 一型一密:即为同一批次生产的所有同类设备颁发同一个认证证书(包含密钥),安全性一般
- 阿里的一型一密是为同一个产品下的所有设备颁发同一个认证证书
- 阿里的一型一密还分为一型一密预注册、一型一密免预注册等多种方案
设备证书
设备证书,即上文提到的包含密钥用来进行认证的东西
一般来说,物理设备可通过两种方式获取物联网平台颁发的证书:
- 设备厂商将证书烧录到设备上
- 设备通电连网后从云端获取证书
设备烧录
此处特指在设备上烧录的重要资料,包含不限于:
- 设备证书(含密钥)
- 云平台访问域名
- 生产序列号等
设备连网
即将设备通过网络连接至 IoT 云平台。设备只有连接到 IoT 云平台才能进行后续使用
设备激活
通过前文流程图可以发现,设备售卖之前,已经在 IoT 云平台完成了设备添加的操作,以此来生成认证证书。但此时,云平台上该设备的状态为「未激活」。当设备连网后,在 IoT 云平台进行激活操作,意味着开始有用户使用该设备
设备绑定
当设备激活后,将该设备绑定至具体某家客户或某个用户,便于其管理和使用设备
3.2 重点厂商的设备接入方案对比
我梳理了目前国内外几家重要的 IoT 云平台企业的设备接入方案,其中:
- Ali IoT、Tuya 是国内最大的云平台之二
- AWS IoT 是海外最大的云平台之一
- Ayla 是业内最早的云平台之一,上述云平台的建设都曾经参考过 Ayla
我将流程分为:
- 云端预创建设备
- 创建产品
- 添加设备
- 工厂生产设备
- 产线为设备烧录证书
- 设备连网上云
- 设备连网
- 设备激活
- 设备绑定
- 绑定至客户
- 绑定至用户
通过对比可以发现,虽然不同云平台的设计细节有差异,但整体流程基本相似,详见下图:
3.3 重点厂商的设备消息通信方案对比
设备的消息通信主要包含:
- 设备和云的通信
- 设备上报消息到云
- 云下发消息到设备
- 设备和设备的通信
- 通过云进行设备和设备的通信
- 设备和设备在本地进行通信
- 消息通道的建设
- 搭建设备的消息通信通道
- 订阅消息并开发通信逻辑
- 数据流转
- 将设备数据发送至第三方系统
同样的,我也梳理了目前国内外几家重要的 IoT 云平台企业的设备消息通信方案,其中:
- Ali IoT、AWS IoT、Ayla 主要向客户提供消息服务和消息队列,客户可直接使用或自定义消息的 Topic,基于此完成消息通信
- Tuya 的消息通信原理也是消息服务和消息队列,但 Ta 提供了大量封装好的 SDK 和整体方案供客户直接使用,此处不做过多说明
3.4 设备连网方式
有些设备可以直接连网;有些设备不能直接连网,必须通过一个网关进行连网。因此在 IoT 平台中,将设备分为:直连设备、网关设备、网关子设备(Ali IoT 的分类描述)
连网方式主要有:
- Wi-Fi,即设备获得 Wi-Fi 网络的 SSID 和密码后,直接连接网络
- 以太网,即插网线
- 蜂窝 2G/3G/4G/5G
- LoRaWAN
其中,获取 Wi-Fi 网络的 SSID 和密码的方式有:
-
一键配网,又叫 SmartConfig、EZ 模式、快连模式
- 当设备处于可配网状态时,通过手机 App,直接在界面上输入希望设备连接的 Wi-Fi SSID 和密码
- 手机端发送包含 Wi-Fi SSID 和密码的 UDP 广播包
- 智能设备收到该 UDP 包,解密出 Wi-Fi SSID 和密码,连接到 Wi-Fi 网络
-
AP 配网,又叫热点模式
- 当设备处于可配网状态时,将智能设备作为热点(AP)
- 通过手机,连接智能设备发出的设备热点
- 将希望设备连接的 Wi-Fi SSID 和密码告知设备
- 设备连接至 Wi-Fi 网络
-
BLE 辅助配网,又叫蓝牙辅助配网
- 当设备处于可配网状态时,使手机跟设备的蓝牙进行配对连接
- 将希望设备连接的 Wi-Fi SSID 和密码告知设备
- 设备连接至 Wi-Fi 网络
-
摄像头扫膜模式(常用于摄像机)
- 手机将 Wi-Fi SSID 和密码生成二维码
- 通过设备的摄像头扫描二维码,获得 Wi-Fi SSID 和密码
- 设备连接至 Wi-Fi 网络
-
零配模式,又叫 ZeroConfig
- 通过已经配网成功的设备,为其他的设备配网
- 此外,还有声纹配网等多种方式
4 应用使能
本文仅介绍设备连接和设备管理,应用使能后续独立开篇介绍
本期分享就到这里,系列预告:
- 物联网产品经理入行科普系列(五):IoT 终端控制 App,预计 2.14-2.18
我的微信公众号:世俗游民
我的微信号:Burned_Outtt
如需转载,请联系我,谢谢!
参考资料:
阿里云物联网平台
AWS IoT 平台
Tuya 平台
Ayla 平台