开发者学堂课程【基于STM32的端到端物联网全栈开发:阿里云物联网平台基础概念讲解】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/574/detail/7935
阿里云物联网平台基础概念讲解
目录
一、设备接入
二、设备管理
三、规则引擎
一、设备接入
设备接入-产品与设备
产品:
设备的集合,通常指一组具有相同功能的设备。物联网平台为每个产品颁发全局唯一的 ProductKey。每个产品下可以有成千上万的设备。
设备:
归属于某个产品下的具体设备。物联网平台为设备颁发产品内唯一的证书 DeviceName。设备可以直接连接物联网平台,也可以作为子设备通过网关连接物联网平台。
设备接入-设备直连/通过网关连接
网关:
能够直接连接物联网平台的设备,且具有子设备管理功能,能够代理子设备连接云端。
子设备:
本质上也是设备。子设备不能直接连接物联网平台,只能通过网关连接。
设备接入-鉴权信息
三元组
ProductKey:物联网平台为产品颁发的全局唯一标识。
DeviceName:在注册设备时,自定的或自动生成的设备名称,具备产品维度内的唯一性。
DeviceSecret:物联网平台为设备颁发的设备密钥,和 DeviceName 成对出现。
设备接入-设备安全认证
为保障设备安全,物联网平台为设备颁发证书,包括产品证书 (ProductKey 和 ProductSecret) 与设备证书(DeviceName 和 DeviceSecret) 。
其中,设备证书与设备一一对应,以确保设备的唯一合法性。设备通过协议接入 loTHub 之前,需依据不同的认证方案,上报产品证书和设备证书,云端通过认证后,方可接入物联网平台。针对不同的使用环境,物联网平台提供了多种认证方案。
物联网平台目前提供三种认证方案,
分别是:
一机一密:每台设备烧录自己的设备证书。
一型一密:同一产品下设备烧录相同产品证书。
子设备认证:网关连接上云后,子设备的认证方案。
设备接入-认证方案
一机一密
即预先为每个设备烧录其唯一的设备证书(ProductKey. DeviceName 和 DeviceSecret) 。
当设备与物联网平台建立连接时,物联网平台对其携带的设备证书信息进行认证。认证通过,物联网平台激活设备,设备与物联网平台间才可传输数据。
创建产品---添加设备---产线烧录---设备联网---云端激活
1、创建产品
颁发产品证书,查看 Productkey
2、添加设备
添加设备 DeviceName,获得设备证书:DeviceNam、DeviceSecret
3、产线烧录
产线上为每台设备烧录:ProductKey. DeviceName、DeviceSecret
4、设备联网
设备上电联网,携带产品证书和设备证书,请求登录云端
5、云端激活
云端根据产品证书和设备证书对设备进行认证,通过后则激活该设备,否则拒绝该设备接入
一型一密
一型一密安全认证方式下,同一产品下所有设备可以烧录相同固件(即烧录 ProductKey 和
DeviceName)。设备发送激活请求时,物联网平台进行身份确认,认证通过,下发该设备
对应的 DeviceSecret。
创建产品---开启动态注册---添加设备---产线烧录---设备联网---云端激活
1、创建产品
颁发产品证书,查看 Productkey 和 ProductSecret
2、开启动态注册
在产品详情页面,开启动态注册开关,填写正确的短信验证码
3、添加设备
预注册设备 DeviceName,云端将预颁发设备证书:DeviceNam、DeviceSecret
4、产线烧录
产线上为每台设备烧录相同的产品证书,
即 Productkey、ProductSecret
5、设备联网
设备上电联网,携带 Productkey、ProductSecret 和设备 DeviceName(如设备的 MAC 地址,需确保该 MAC 地址已经在云端注册)请求登录云端
6、云端激活
云端根据产品证书进行鉴权
设备接入-MQTT 协议介绍
订阅者:某些设备对特定的信息感兴趣,并希望订阅它,这些设备就叫做订阅者。
发布者:负责为其他设备生成数据的就叫发布者。
代理:负责将来自发布者的消息进行存储处理,并将这些消息发送到正确的订阅者中去。
设备接入-Topic 与 Topic类介绍
每类 Topic 都有自身的设备操作权限
设备可以往 Topic 中发布消息
设备可以从 Topic 中订阅消息
设备接入-物联网平台通信模式介绍
PUB/SUB:物联网平台维护所有 Topic 的发布订阅用户列表。
当发布者将消息发布到 Topic 后, 物联网平台会检查该 Topic 的所有订阅用户,然后将消息转发给所有订阅了该Topic 的设备。
RRPC:基于开源 MQTT 协议封装的同步通信模式。
服务端下发指令给设备时需要同步得到设备端的响应。
二、设备管理
创建设备接入设备:真实的物理设备要连接到物联网平台,首先需要在平台上创建(或者叫注册)设备。
激活设备:设备创建后默认处于“未激活”状态,真实物理设备在云端认证成功,上线一次后即激活,激活后的设备状态为“在线”或“离线”。
删除设备:当设备处于报废、被攻击或者不可用时,可以删除设备。
禁用设备:设备发生异常,例如通信异常、连接异常时,有可能被攻击,但又不想将其彻底删除,这时可以对设备进行禁用,云端会断开与设备的通道,以防止风险进一步扩大。
启用设备:当设备处于禁用状态时,管理者确认设备恢复正常后,可以对设备启动,恢复设备与云端的连接。
设备状态管理:
绿色表示在线
红色表示离线
灰色表示未激活
设备标签管理:
部分设备信息,如厂商、设备型号等,展示用的静态扩展信息,可以保存为设备标签。
设备管理-物模型
属性:设备运行的状态,支持 GET 和 SET 服务,应用可以发起对属性的读取和设置请求。
服务:设备可被外部调用的能力或方法,可设置输入参数和输出参数。相比于属性,服务可通过一条指令实现更复杂的业务逻辑,如执行某项特定的任务。
事件:设备运行时的事件,事件一般包含需要被外部感知和处理的通知信息,可包含多个输出参数。如,某项任务完成的信息,或者设备发生故障或告警时的温度等,事件可以被订阅和推送。
每5秒上报温湿度值,闪烁绿灯
湿度值被阿里云|0T 转发到用户服务器,进行数据库存储,同时在 web 端显示近期温湿度数据曲线
温度超[阂值]亮红灯,并在每10秒向用户服务器报警,直到温度恢复[阂值]以下或者收到警报解除消息
报警消息被阿里云 IoT 转发到用户服务器,在 web 端显示
收到警报解除信息后红灯闪烁.
用户通过 web 端页面解除报警
温度恢复到[阂值]以下天红灯
用户通过 web 端页面设置[阂值]参数
对应物模型
三个属性
当前温度
CurrentTemperature
当前湿度
CurrentHumidity
温度阂值
TempThreshold
两个事件
(三个)属性上报
method =thing.event.property.post
温度超限报警
method =thing.event. TempAlarm.post
三个服务
设置“温度闽值”这个属性
thing.service.property.set
获得(三个)属性
thing.service.property.get
解除警报
thing.service.ClearAlarm
设备拓扑关系管理
接入节点类型:
设备:不能挂载子设备的直连设备
网关:可以挂载子设备的直连设备,具有子设备管理模块
设备固件升级
当设备固件发现重大 bug 或安全漏洞时,通过 OTA 服务升级固件,降低 bug 及安全风险。
设备管理-设备数据上传
1.Alink 协议接入
Alink 协议是针对物联网开发领域设计的一种数据交互规范,数据格式是 JSON
Alink 协议用于设备端和云端的双向通信,规范设备端和云端间的业务数据交互
2.透传接入
透传是指设备端直接上发自定义二进制数据,云端对上传上来的二进制数据直接进行解析,并转为标准 Alink 协议格式的数据。
设备管理-透传与数据解析
对于一些低配置且资源受限或者对于网络流量有要求的设备,不适合直接构造 Alink JSON 格式的数据和云端通信,而是选择将数据透传到云端,再由云端进行脚本将透传上来的数据转换为 AlinkJSON 格式的数据。
云端将透传上来的数据转换为 Alink JSON 格式的数据的过程就是数据解析。
使用透传,可以降低对设备配置和资源的要求,减少网络流量占用。
设备管理-服务端计阅
服务端订阅功能
联网平台通过 HTTP/2通道进行消息流转。配置 HTTP/2服务端订阅后,物联网平台会将消息通过 HTTP/2通道推送至服务端。通过接入 HTTP/2 SDK,企业服务器可以直接从物联网平台接收消息。HTTP/2 SDK 提供身份认证、Topic 订阅、消息发送和消息接收能力,并支
持设备接入和云端接入能力。HTTP/2 SDK 适用于物联网平台与企业服务器之间的大量消息流转,也支持设备与物联网平台之间的消息收发。
三、规则引擎
规则引擎简介
当设备基于 Topic 与平台进行通信时,用户可以使用规则引擎对设备数据进行处理和转发。
通过配置规则,将经过 SQL 语句处理的数据转发到阿里云的各类产品中去,实现数据”采
集+计算+存储”的全栈服务。
设备端开发
基于设备端 SDK 开发
您可以参考 LinkKitSDK 汇总选择合适的设备端 SDK 进行开发。LinkKitSDK 包含:
C SDK
Android SDK
NodeJS SDK
Java SDK
Python SDK
iOs SDK
云端开发-SEK
物联网平台提供的 SDK 语言版本有: Java、Python. PHP、.NET。
IoTSDK
下载
loT Java SDK
loT Python SDK
loT PHP SDK
loT .NET SDK
IoTSDKDemo
下载
阿里云提供物联网平台 SDK 使用 Demo。Demo 中包含 Java. Python. PHP、.NET 版本
SDK。
Demo 下载地址:loTSDKDemo
云端开发-AP
通过向 API 的服务端地址发送 HTTPS/HTTP GET/POST 请求,并按照 APl 接
口说明,在请求中加入相应请求参数来调用 API 接口。根据请求的处理情况,
系统会返回处理结果。
API
产品管理相关 API
设备管理相关 API
分组管理相关 API
规则引擎相关 API
Topic 管理相关 API
消息通信相关 API
设备影子相关 API