国外物联网平台(1)
——亚马逊AWS IoT

马智

平台定位

  • AWS IoT是一款托管的云平台,使互联设备可以轻松安全地与云应用程序及其他设备交互。
  • AWS IoT可支持数十亿台设备和数万亿条消息,并且可以对这些消息进行处理并将其安全可靠地路由至 AWS 终端节点和其他设备。应用程序可以随时跟踪所有设备并与其通信,即使这些设备未处于连接状态也不例外。
  • 使用AWS Lambda、Amazon Kinesis、Amazon S3、Amazon Machine Learning、Amazon DynamoDB、Amazon CloudWatch、AWS CloudTrail 和内置 Kibana 集成的 Amazon Elasticsearch Service 等AWS服务来构建IoT应用程序,以便收集、处理和分析互连设备生成的数据并对其执行操作,且无需管理任何基础设施。

架构

与AWS IoT平台集成的AWS服务

  • Amazon DynamoDB—托管NoSQL数据库
  • Amazon Kinesis—大规模流式数据实时处理
  • AWS Lambda—EC2云虚拟机运行代码响应事件
  • Amazon Simple Storage Service(S3)—可扩展云存储
  • Amazon Simple Notification—推送通知服务
  • Amazon Simple Queue Service—消息队列服务

设备SDK

  • AWS IoT 设备 SDK 使用 MQTT、HTTP 或 WebSockets 协议将硬件设备连接到 AWS IoT,硬件设备无缝安全地与 AWS IoT 提供的设备网关和设备影子协作。
  • 设备 SDK 支持 C、JavaScript 、Arduino、Java和Python。
  • 设备 SDK 包含开源库、带有示例的开发人员指南和移植指南,用户根据硬件平台构建 IoT 产品或解决方案。

设备网关

  • AWS IoT 设备网关支持设备安全高效地与 AWS IoT 进行通信。设备网关可以使用发布/订阅模式交换消息,从而支持一对一和一对多的通信。凭借此一对多的通信模式,AWS IoT 将支持互连设备向多名给定主题的订阅者广播数据。
  • 设备网关支持 MQTT、WebSocket 和 HTTP 1.1 协议,也支持私有协议。
  • 设备网关可自动扩展,以支持 10 亿多台设备,而无需预配置基础设施。

认证和授权

  • AWS IoT 在所有连接点处提供相互身份验证和加密。AWS IoT 支持 AWS 身份验证方法(称为"SigV4")以及基于身份验证的 X.509 证书。使用 HTTP 的连接可以使用任一方法,使用 MQTT 的连接可以使用基于证书的身份验证,使用 WebSockets 的连接可以使用 SigV4。
  • 使用 AWS IoT 生成的证书以及由首选证书颁发机构 (CA) 签署的证书,将所选的角色和/或策略映射到每个证书,以便授予设备或应用程序访问权限,或撤消访问权限。
  • 通过控制台或使用 API 创建、部署并管理设备的证书和策略。这些设备证书可以预配置、激活和与使用 AWS IAM 配置的相关策略关联。
  • AWS IoT 还支持用户移动应用使用 Amazon Cognito 进行连接,Amazon Cognito 将负责执行必要的操作来为应用用户创建唯一标识符并获取临时的、权限受限的 AWS 凭证。

注册表

  • 注册表将创建设备标识并跟踪元数据,如设备的属性和功能。
  • 注册表向格式一致的每台设备分配唯一的标识,而不管设备的类型和连接方式为何。此外,它还支持描述设备功能的元数据,例如传感器是否报告温度,以及数据是华氏度还是摄氏度。
  • 注册表存储有关设备的元数据,无需支付额外费用;并且需要每隔 7 天至少访问或更新注册表条目一次,注册表中的元数据就不会过期。

以JSON格式存储的设备注册表信息

设备影子(Shadow)

  • 设备影子保留每台设备的最后报告状态和期望的未来状态,即便设备处于离线状态。
  • 通过 API 或使用规则引擎,获取设备的最后报告状态或设置期望的未来状态。
  • 应用程序可以设置设备的期望未来状态,而无需说明设备的当前状态。AWS IoT 将比较期望未来状态和最后报告状态之间的差异,并命令设备"弥补差异"。
  • 设备 SDK 能够轻松地同步其状态及其影子,并响应通过影子设置的期望的未来状态。
  • 设备影子免费存储设备状态多达一年。如果至少每年更新一次状态,则设备影子将永久保留状态;否则状态将过期。

设备影子(Shadow)流程

设备影子(Shadow)格式

设备影子(Shadow)服务

设备影子服务使用MQTT话题,便于应用和设备之间的通信,下面是相关的MQTT QoS 1话题:

$aws/things/{thingName}/shadow/update

$aws/things/{thingName}/shadow/get

$aws/things/{thingName}/shadow/delete

$aws/things/{thingName}/shadow/update/accepted

$aws/things/{thingName}/shadow/update/rejected

$aws/things/{thingName}/shadow/update/delta

$aws/things/{thingName}/shadow/get/accepted

$aws/things/{thingName}/shadow/get/rejected

$aws/things/{thingName}/shadow/delete/accepted

$aws/things/{thingName}/shadow/delete/rejected

设备SDK(C-SDK、JS-SDK)将影子功能内置在设备中,能够使设备与影子服务之间自动同步状态。

规则引擎

  • 规则引擎验证发布到 AWS IoT 的入站消息,并根据定义的业务规则转换这些消息并将它们传输到另一台设备或云服务。规则可以应用至一台或多台设备中的数据,并且它可以并行执行一个或多 个操作。
  • 规则引擎还可以将消息路由到 AWS 终端节点,包括 AWS Lambda、Amazon Kinesis、Amazon S3、Amazon Machine Learning、Amazon DynamoDB、Amazon CloudWatch 和内置 Kibana 集成的 Amazon Elasticsearch Service。外部终端节点可以使用 AWS Lambda、Amazon Kinesis 和 Amazon Simple Notification Service (SNS) 进行连接。
  • 使用类似 SQL 的语句编写规则。例如:如果温度读数超出特定阈值,则它可以触发规则以便将数据传输到 AWS Lambda;如果此温度超出其他 5 台设备的平均值 15%,则应采取措施。
  • 规则引擎将提供数十个可用于转换数据的可用功能,并且可以通过 AWS Lambda 创建无限个功能。例如,如果正在处理各种不同的数值,则可以取传入数字的平均值。规则还会触发在 AWS Lambda 中执行 Java、Node.js 或 Python 代码,从而提供最高灵活度以及处理设备数据的能力。

规则引擎集成其它云服务

规则引擎验证发布至AWS IoT的消息请求,基于业务规则转换消息请求并发布至其它服务,例如:

  • 富集化或过滤从设备收集的数据
  • 将设备数据写入一个亚马逊DynamoDBm数据库
  • 保存文件至亚马逊S3
  • 发送一个推送通知到所有亚马逊SNS用户
  • 向亚马逊SQS队列发布数据
  • 调用Lambda函数抽取数据
  • 使用亚马逊Kinesis处理大量的设备消息数据
  • 发送数据至亚马逊Elasticsearch服务
  • 捕获一条CloudWatch测量数据
  • 更新一条CloudWatch告警
  • 把一条MQTT消息数据发送至亚马逊机器学习服务,基于亚马逊机器学习模型进行预测

规则引擎&实时流式数据处理

N:1 入站的传感器流式数据(数据降噪)

规则引擎过滤、转换、汇总传感器数据后,发送至亚马逊Kinesis处理实时流式数据

Kinesis流式数据共享至其它业务系统

将流式数据的实时处理结果导入至数据库、应用或其它亚马逊服务

规则引擎&推送通知服务

推送通知

支持苹果APNS推送通知服务、谷歌GCM云消息服务、亚马逊ADM设备消息服务,微软WNS推送服务

亚马逊SNS推送通知服务->HTTP协议终端(短信、邮件)

通过亚马逊SNS推送通知服务,调用第三方HTTP协议终端,支持订阅和重试

规则引擎示例 – 使用机器学习预测函数

{ "sql":

"SELECT *

FROM 'iot/test'

where

machinelearning_predict('my-model', 'arn:aws:iam::123456789012:role/my-iot-aml-role', *).predictedLabel=1",

"ruleDisabled": false,

"awsIotSqlVersion": "2016-03-23-beta",

"actions":

[{ "republish":

{ "roleArn": "arn:aws:iam::123456789012:role/my-iot-role",                 "topic": "my-mqtt-topic" }

}]

}

上面是使用亚马逊机器学习预测函数machinelearning_predict 的规则示例,其含义是:

如果机器学习预测函数处理MQTT消息后的结果是分类1,那么重新将此消息发布至一个话题。

设备管理

  • 支持全球或部分地区的固件升级
  • 规则引擎在DynamoDBm数据库跟踪升级状态和进度
  • 注册表存储设备的固件版本

S3管理固件分发版本

在S3中组织和保障和固件二进制文件

消息代理使用话题模式通知设备分组

通知设备分组固件更新信息,包括S3中的固件二进制文件URL地址

AWS IoT平台接口

  • AWS Command Line Interface (AWS CLI)
    • 在Windows、Mac和Linux执行AWS IoT命令
  • AWS SDKs
    • 使用特定语言API开发IoT应用
  • AWS IoT API
    • 使用HTTP或者HTTPS请求开发IoT应用
  • AWS IoT Thing SDK for C
    • 在资源受限的设备上开发IoT应用,如MCU

AWS IoT监控工具

自动化监控工具

  • Amazon CloudWatch Alarms
  • Amazon CloudWatch Logs
  • Amazon CloudWatch Events
  • AWS CloudTrail Log Monitoring

手工监控工具

  • AWS IoT 仪表盘
    • 证书
    • 策略
    • 规则
    • 设备
  • CloudWatch首页
    • 当前告警和状态
    • 告警和资源图表
    • 服务健康度
  • CloudWatch
  • 自定义仪表盘
  • 自定义图表进行排障和监控趋势
  • 搜索所有AWS资源指标
  • 创建和修改告警参数

AWS IoT 初学者工具包

  • AWS IoT 初学者工具包旨在帮助进行原型开发和安全地连接 AWS IoT。
  • 工具包内含开发微控制器开发板、传感器和执行器、AWS IoT 设备 SDK 以及入门指南。

AWS IoT 初学者工具包 - 支持的平台

AWS IoT生态

开发示例 - AWS IoT 按钮

创建设备

设备属性

创建证书

激活证书

创建策略

绑定证书与策略

绑定证书与设备

配置设备

使用MQTT客户端订阅设备消息

使用MQTT客户端查看设备消息

创建短信推送话题并订阅此话题

创建规则

创建规则的行为

测试订阅是否成功


作者:马智

微信公众号:物联网那点事

如果你想及时得到相关资讯,可以关注个人公众号。

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/pangguoming/p/9604528.html

国外物联网平台(1):亚马逊AWS IoT相关推荐

  1. 乐鑫esp8266学习rtos3.0笔记:AT指令固件如何二次开发,实现AT指令连接亚马逊AWS IoT平台;

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 基于C SDK的ESP8266开发技术全系列笔记 一.N ...

  2. 亚马逊AWS IoT

    亚马逊AWS IoT 原文链接:http://www.cnblogs.com/ibrahim/p/amazon-aws-iot.html 平台定位 AWS IoT是一款托管的云平台,使互联设备可以轻松 ...

  3. 玩转亚马逊 AWS IoT(1): IoT 业务梳理

    文章目录 1 亚马逊 IoT 服务简介 2 账号与费用 2.1 IoT 服务费用 2.2 注册账号 3 亚马逊 IoT 系统关系图 4 亚马逊 AWS IoT 接入流程 5 IoT 网络交互图 1 亚 ...

  4. 【学习亚马逊AWS IOT体系有感---万物互联(物联网)】

    提示:本文基于亚马逊官方文档和b站教程结合自己的想法总结而成,若有不对,欢迎交流 文章目录 前言 一.MQTT是什么? 前言   随着华为鸿蒙系统的现世,万物互联映入大众的视线中,手机-平板-电脑-电 ...

  5. 爱立信发布IoT Accelerator Connect蜂窝物联网平台;亚马逊云科技中国区域推出新服务 | 全球TMT...

    国内市场 爱立信发布IoT Accelerator Connect,为各种规模的企业和开发项目提供了此项能力.只需一次点击,爱立信IoT Accelerator Connect就能为企业提供即插即用的 ...

  6. 启明云端esp32开发板直连亚马逊AWS IOT平台实例控制灯泡演示

    ESP32通过AWS IOT物联网平台接入物联网,Alexa亚马逊音箱触发Lambda对乐鑫ESP32进行控制,实现ESP32接入Alexa亚马逊音箱. 登录亚马逊AWS IOT Core后台,可以创 ...

  7. 如果企业级客户不爽,亚马逊AWS该怎么办?

    两天密集的AWS re:Invent 2105行程已近尾声.回想这两天在大会上的所见所闻,一个十分突出的感受是:亚马逊AWS已经很明确地释放出迈向企业级市场的信号! 在两天的主题演讲环节中,被邀请上台 ...

  8. 亚马逊 aws 指南 实战_减少您的AWS成本完整指南

    亚马逊 aws 指南 实战 Do you think your cloud costs are too high? I think most businesses can find savings i ...

  9. 亚马逊AWS云计算平台试用手记(完全原创,我花了2美元第一手试用的珍贵资料,附多图)...

    因为最近在研究云计算服务,所以对目前已经出现的云平台很感兴趣.亚马逊AWS平台(aws.amazon.com)是目前运营最好的收费云计算平台.今日无事,我就去看了看. 和Google App Engi ...

最新文章

  1. php中input的使用,php输入流php://input如何使用
  2. Java 实现 HTTP 请求的三种方式
  3. 推荐几个图标显示控件
  4. WebAPI返回数据类型
  5. MATLAB显示错误使用untitled,新手,用gui界面画李萨如图,出错,求解答
  6. Windows IE 清理缓存
  7. python 多线程爬虫下载中图分类号
  8. ESLint 报 ‘require‘ is not defined no-undef
  9. 品优购项目html+css+js
  10. iphone调整屏幕方向_如何锁定iPhone或iPad的屏幕方向
  11. vue配置解决跨域问题
  12. 进来看新手该怎么选择自己的第一个平台——shopee、lazada、速卖通版
  13. python拼音怎么写-[编程心得]用Python给汉字加上带音调的拼音
  14. Android加载PDF文档
  15. MATLAB代码实现二次多项式曲线拟合
  16. 【vue】实现超过两行或多行显示展开收起 (单个展开收起和数组多个展开收起)
  17. 解决在ros catkin_make编译时出现“make[2]:*** 没有规则可制作目标“的问题
  18. [Android] ListView实现隔行变色(一)
  19. 贷记业务及相应技术规范
  20. 西门子博途安装服务器未响应,西门子博途软件安装问题,急

热门文章

  1. pycharm的环境配置
  2. java版林地府邸种子,我的世界:1.16村民府邸种子,村民霸占林地府邸,卫道士无家可归...
  3. r 语言edgr_edgeR 包的使用
  4. 王者荣耀服务器维护6月27,王者荣耀6月27日版本更新了什么_王者荣耀6月27日版本更新内容_玩游戏网...
  5. 极客学院-Android基础知识
  6. 9 款好用到爆的 JSON 处理工具,极大提高效率!
  7. mysql时间转换成yyyymmdd_Mysql时间格式转换
  8. 如何在小红书上推广民宿?看旅游类如何玩转小红书
  9. 细说常见的大数据技术
  10. 配置系统镜像为yum源