AWS IoT 的工作原理 - AWS IoT Core

AWS IoT 的工作原理

AWS IoT 提供可用于实施物联网解决方案的云服务和设备支持。AWS 提供了许多云服务来支持基于物联网的应用程序。因此,为了帮助您了解从哪里开始,本部分提供了基本概念图表和定义,向您介绍物联网世界。

IoT 世界

一般来说,物联网(IoT)由下图所示的关键组成部分组成。

IoT 世界

应用程序

应用程序让最终用户可以访问物联网设备以及与这些设备相连的云服务所提供的特征。

云服务

云服务是连接到互联网的分布式大规模数据存储和处理服务。示例包括:

  • IoT 连接和管理服务

    AWS IoT 是物联网连接和托管服务的一个示例

  • 计算服务,如 Amazon Elastic Compute Cloud 和 AWS Lambda

  • 数据库服务,例如 Amazon DynamoDB

通信

设备通过使用各种技术和协议与云服务进行通信。示例包括:

  • Wi-Fi/宽带互联网

  • 宽带蜂窝数据

  • 窄带蜂窝数据

  • 远距离广域网(LoRaWAN)

  • 专有的射频通信

设备

设备是管理接口和通信的一种硬件。设备通常位于其监控和控制的真实接口附近。设备可以包括计算和存储资源,例如微控制器、CPU、内存。示例包括:

  • Raspberry Pi

  • Arduino

  • 语音接口助手

  • LoRaWAN 和设备

  • Amazon Sidewalk 设备

  • 自定义物联网设备

接口

接口是将设备连接到物理世界的组件。

  • 用户接口

    允许设备和用户相互通信的组件。

    • 输入接口

      使用户能够与设备通信

      示例:键盘、按钮

    • 输出接口

      使设备能够与用户通信

      示例:字母数字显示、图形显示、指示灯、闹铃

  • 传感器

    以设备理解的方式测量或感知外部世界中的某些内容的输入组件。示例包括:

    • 温度传感器(将温度转换为模拟或数字信号)

    • 湿度传感器(将相对湿度转换为模拟数字信号)

    • 模拟到数字转换器(将模拟电压转换为数值)

    • 超声波距离测量装置(将距离转换为数值)

    • 光学传感器(将光度转换为数值)

    • 相机(将图像数据转换为数字数据)

  • 执行器

    设备可用于控制外部世界中的某些内容的输出组件。示例包括:

    • 步进电机(将电信号转换为移动)

    • 继电器(控制高电压和电流)

AWS IoT 服务概览

在物联网世界中,AWS IoT 提供了一些服务来支持与真实世界互动的设备以及在这些设备与 AWS IoT 之间传递的数据。AWS IoT 由此图中显示的支持物联网解决方案的服务组成。

AWS IoT 架构

AWS IoT 设备软件

AWS IoT 提供此软件来支持您的物联网设备。

AWS IoT Device SDK

AWS IoT 设备和移动 SDK 可帮助您高效地将设备连接到 AWS IoT。AWS IoT 设备和移动 SDK 包括开源库、开发人员指南(含示例)和移植指南,便于您在自己选择的硬件平台上构建富有创新精神的物联网产品或解决方案。

AWS IoT Device Tester

适用于 FreeRTOS 的 AWS IoT Device Tester 和 AWS IoT Greengrass 是用于微控制器的自动化测试工具。AWS IoT Device Tester 可以测试您的设备,确定设备是运行 FreeRTOS 还是 AWS IoT Greengrass,以及是否与 AWS IoT 服务进行互操作。

AWS IoT ExpressLink

AWS IoT ExpressLink 支持由 AWS 合作伙伴开发和提供的一系列硬件模块。连接模块包括经 AWS 验证的软件,使您能够更快更轻松地将设备安全地连接到云并与一系列 AWS 服务无缝集成。有关更多信息,请访问 AWS IoT ExpressLink 概述页面或参阅 AWS IoT ExpressLink 程序员指南

AWS IoT Greengrass

AWS IoT Greengrass 可将 AWS IoT 扩展至边缘设备,以便它们可以在本地对生成的数据进行操作,基于机器学习模型运行预测,并筛选和聚合设备数据。AWS IoT Greengrass 使您的设备能够在离数据生成地点更近的位置收集和分析数据,对本地事件自主做出反应,并与本地网络上的其它设备安全通信。您可以使用 AWS IoT Greengrass 通过预构建的软件模块(称为组件)来构建边缘应用程序,这些模块可以将您的边缘设备连接到 AWS 服务或第三方服务。

FreeRTOS

FreeRTOS 是一款面向微控制器的开源实时操作系统,可让您在物联网解决方案中包含小型低功耗边缘设备。FreeRTOS 包括一个内核和越来越多的、支持许多应用程序的软件库。FreeRTOS 系统可以安全地将小型低功耗设备连接到 AWS IoT,并支持运行 AWS IoT Greengrass 的更强大的边缘设备。

AWS IoT 控制服务

连接到以下 AWS IoT 服务以管理物联网解决方案中的设备。

AWS IoT Core

AWS IoT Core 是一项托管云服务,它使互联设备能够安全地与云应用程序和其他设备进行交互。AWS IoT Core 可以支持许多设备和消息,还可以处理这些消息并路由到 AWS IoT 端点和其它设备。有了 AWS IoT Core,您的应用程序即使未连接,也可以与所有设备进行交互。

AWS IoT Core Device Advisor

AWS IoT Core Device Advisor 是一种基于云的完全托管式测试功能,用于在设备软件开发过程中验证物联网设备。Device Advisor 提供预构建的测试,您可以使用这些测试验证物联网设备与 AWS IoT Core 之间的连接是否安全可靠,然后再将设备部署到生产环境。

AWS IoT Device Defender

AWS IoT Device Defender 可帮助您保护物联网设备实例集。AWS IoTDevice Defender 会不断审计您的物联网配置,以确保配置始终遵循安全最佳实践。AWS IoT如果 Device Defender 在您的物联网配置中检测到任何可能引发安全风险的漏洞,例如在多个设备间共享身份证书,或身份证书被吊销的设备试图连接 AWS IoT Core,该服务会发送提醒。

AWS IoT Device Management

AWS IoT Device Management 服务可帮助您跟踪、监控和管理构成设备实例集的大量连接设备。AWS IoTDevice Management 服务可帮助您确保物联网设备在部署后能够正常、安全地运行。它们提供安全隧道来访问您的设备、监控设备的运行状况、检测和远程排除问题,还提供管理设备软件和固件更新的服务。

AWS IoT 数据服务

分析物联网解决方案中设备的数据,并使用以下 AWS IoT 服务采取适当的措施。

Amazon Kinesis Video Streams

Amazon Kinesis Video Streams 允许您将实时视频从设备流式传输到 AWS 云,以便在其中对视频数据进行持久存储、加密和建立索引,并允许您通过易于使用的 API 访问数据。您可以使用 Amazon Kinesis Video Streams 捕获来自数百万种源(包括智能手机、安全摄像头、网络摄像头、车载摄像头、无人机及其他源)的海量实时视频数据。借助 Amazon Kinesis Video Streams,您可以播放视频以进行实时和点播观看,并通过与 Amazon Rekognition Video 和机器学习框架库集成来快速构建利用计算机视觉和视频分析的应用程序。您也可以发送非视频时间序列化数据,如音频数据、热成像、深度数据、雷达数据等。

Amazon Kinesis Video Streams with WebRTC

Amazon Kinesis Video Streams with WebRTC 提供符合标准的 WebRTC 实施作为完全托管式功能。您可以使用 Amazon Kinesis Video Streams with WebRTC 安全地进行媒体的实时流式传输,或在任何摄像头物联网设备与符合 WebRTC 的移动或 Web 播放器之间执行双向音频或视频交互。借助这项全面托管的功能,您不必构建、运营或扩展任何与 WebRTC 相关的云基础设施(例如信令或媒体中继服务器)便能安全地在应用程序和设备间流式传输媒体。使用 Amazon Kinesis Video Streams with WebRTC,您可以轻松地构建用于下面这些用途的应用程序:进行实时对等媒体流式传输,或在摄像头物联网设备、Web 浏览器和移动设备之间针对各种使用案例进行实时音频或视频交互。

AWS IoT Analytics

AWS IoT Analytics 可让您高效地对大量非结构化物联网数据运行和实施复杂分析。AWS IoTAnalytics 可以自动执行分析来自物联网设备的数据所需的每个困难步骤。AWS IoTAnalytics 对物联网数据进行筛选、转换和丰富,然后再将其存储在时间序列数据存储中以供分析。通过使用内置的 SQL 查询引擎或机器学习,您可以运行一次性查询或计划查询来分析数据。

AWS IoT Events

AWS IoT Events 检测并响应来自物联网传感器和应用程序的事件。事件是识别比预期更复杂的情况的数据模式,例如运动检测器使用移动信号来激活灯和监控摄像机。AWS IoT事件会持续监控来自多个物联网传感器和应用程序的数据,并与其它服务(例如 AWS IoT Core、IoT SiteWise、DynamoDB 等)集成,以实现早期检测并获取独特见解。

AWS IoT FleetWise

AWS IoT FleetWise 是一项托管式服务,可用于近乎实时地收集车辆数据并将该数据传输到云。利用 AWS IoT FleetWise,您可以轻松地从使用不同的协议和数据格式的车辆中收集和整理数据。AWS IoTFleetWise 有助于将低级消息转换为人类可读的值,并标准化云中的数据格式以进行数据分析。您也可以制定数据收集方案,控制从车辆中收集哪些数据以及何时将该数据传输到云。

AWS IoT SiteWise

AWS IoT SiteWise 通过提供在您设施的网关上运行的软件,大规模地收集、存储、组织和监控 MQTT 消息或 API 从工业设备传送的数据。该网关安全地连接到您的本地数据服务器,并自动执行收集和组织数据以及将数据发送到 AWS 云的过程。

AWS IoT TwinMaker

AWS IoT TwinMaker 构建物理和数字系统的运营数字孪生。AWS IoTTwinMaker 使用来自各种真实世界的传感器、摄像头和企业应用程序的测量和分析来创建数字可视化效果,帮助您跟踪实体工厂、建筑物或工业工厂。您可以使用真实世界的数据来监控运营、进行诊断和纠正错误以及优化运营。

AWS IoT Core 服务

AWS IoT Core 提供将您的物联网设备连接到 AWS 云的服务,以便其它云服务和应用程序可以与您的互联网连接设备进行交互。

AWS IoT Core 的简要视图,显示设备网关、消息代理、规则引擎、设备影子及其提供的其它服务

下一部分将介绍示意图中显示的每个 AWS IoT Core 服务。

AWS IoT Core 消息收发服务

AWS IoT Core 连接服务提供与物联网设备的安全通信,并管理它们与 AWS IoT 之间传递的消息。

设备网关

使设备能够安全高效地与 AWS IoT 进行通信。设备通信由使用 X.509 证书的安全协议提供保护。

消息代理

提供安全机制以供设备和 AWS IoT 应用程序用于相互发布和接收消息。进行发布和订阅时,您可以直接使用 MQTT 协议,也可以通过 WebSocket 使用 MQTT 协议。有关受 AWS IoT 支持的协议的更多信息,请参阅 设备通信协议。设备和客户端也可以使用 HTTP REST 接口将数据发布到消息代理。

消息代理将设备数据分发到已订阅设备数据的设备和其它 AWS IoT Core 服务,例如 Device Shadow 服务和规则引擎。

AWS IoT Core适用于 LoRaWAN 的

适用于 LoRaWAN 的 AWS IoT Core 可以通过将您的 LoRaWAN 设备和网关连接到 AWS 而无需开发和操作 LoRaWAN Network Server(LNS),从而设置私有 LoRaWAN 网络。从 LoRaWAN 设备接收的消息将发送到规则引擎,在该引擎中可以对其进行格式化并发送到其它 AWS IoT 服务。

规则引擎

规则引擎将消息代理中的数据连接到其它 AWS IoT 服务以进行存储和额外处理。例如,您可以插入、更新或查询 DynamoDB 表,也可以根据在规则引擎中定义的表达式调用 Lambda 函数。您可以使用基于 SQL 的语言选择消息有效载荷中的数据,然后处理数据并将数据发送到其它服务,如 Amazon Simple Storage Service(Amazon S3)、Amazon DynamoDB 和 AWS Lambda。您还可以创建规则以将消息重新发布到消息代理并面向其他订阅者。有关更多信息,请参阅 AWS IoT 规则

AWS IoT Core 控制服务

AWS IoT Core 控制服务提供设备安全、管理和注册特征。

自定义身份验证服务

您可以定义自定义授权方,从而通过自定义的身份验证服务和 Lambda 函数来管理自己的身份验证和授权策略。自定义授权方使得 AWS IoT 可以使用持有者令牌身份验证和授权策略,对您的设备进行身份验证和授权操作。

自定义授权方可以实施各种身份验证策略;例如 JSON Web 令牌验证或 OAuth 提供程序标注。它们必须返回设备网关用于授权 MQTT 操作的策略文档。有关更多信息,请参阅 自定义身份验证和授权

设备预调配服务

让您可使用描述设备所需资源的模板来预调配设备:事物对象、证书以及一个或多个策略。事物对象是注册表中的一个条目,其中包含描述设备的属性。设备使用证书通过 AWS IoT 进行身份验证。策略确定设备在 AWS IoT 中可执行的操作。

模板包含可用字典中的值替换的变量(映射)。您可以使用同一个模板来预调配多个设备,只需在字典中为模板变量传递不同的值。有关更多信息,请参阅 设备预调配

组注册表

通过将设备按类别分成不同的组,可以使用组来同时管理多台设备。组中还可以包含组,您可以构建组的层次结构。您对父组执行的任何操作都将应用于其子组。同样的操作也应用于父组中的所有设备以及子组中的所有设备。向某个组授予的权限将应用于该组及其子组中的所有设备。有关更多信息,请参阅 使用 AWS IoT 管理设备

Jobs 服务

允许您定义一组远程操作,这些操作将被发送到一个或多个连接到 AWS IoT 的设备并在这些设备上运行。例如,您可以定义一个任务,该任务指示一组设备下载并安装应用程序或固件更新、重启、轮换证书或执行远程故障排除操作。

要创建任务,您需要指定要执行的远程操作的说明,以及应该执行这些操作的目标列表。目标可以是单个设备和/或设备组。有关更多信息,请参阅 AWS IoT 任务

注册表

整理与 AWS 云中的每台设备关联的资源。您可以注册自己的设备并将每台设备与最多三个自定义属性关联。您还可以将每台设备与相应的证书和 MQTT 客户端 ID 关联,以提高对设备进行管理和故障排除的能力。有关更多信息,请参阅 使用 AWS IoT 管理设备

安全和身份服务

在 AWS 云中共担安全责任。为了安全地将数据发送到消息代理,您的设备必须确保自身凭证的安全。消息代理和规则引擎使用 AWS 安全特征将数据安全发送到设备或其它 AWS 服务。有关更多信息,请参阅 身份验证

AWS IoT Core 数据服务

即使在不总是连接的设备上,AWS IoT Core 数据服务也能帮助您的物联网解决方案提供可靠的应用程序体验。

Device Shadow

一种 JSON 文档,用于存储和检索设备的当前状态信息。

Device Shadow 服务

Device Shadow 服务会保持设备的状态,以便应用程序可以与设备通信,无论设备是否在线。当设备处于离线状态时,Device Shadow 服务将管理它连接的应用程序的数据。当设备重新连接时,它会将其状态与 Device Shadow 服务中的状态同步。您的设备还可以将有关其当前状态的信息发布到影子,以供不会始终保持连接的应用程序或其它设备使用。有关更多信息,请参阅 AWS IoT Device Shadow 服务

AWS IoT Core 支持服务

适用于 AWS IoT Core 的 Amazon Sidewalk 集成

Amazon Sidewalk 是一个共享网络,可改进连接选项,帮助设备更好地协同工作。Amazon Sidewalk 支持各种客户设备,例如定位宠物或贵重物品的设备、提供智能家居安全和照明控制的设备,以及为家电和工具提供远程诊断的设备。适用于 AWS IoT Core 的 Amazon Sidewalk 集成使设备制造商可以将他们的 Sidewalk 设备实例集添加到 AWS IoT 云。

有关更多信息,请参阅 适用于 Amazon Sidewalk 的 AWS IoT Core