我们应该建立什么物联网? 一日内在Amazon上的物联网

为了开始处理IoT(物联网)平台,我因缺乏能够与协议和访问方法兼容的IoT设备而停下来。 但是,当我意识到可以将普通的智能手机用作设备时,建立工作链的过程花了一天的时间。

拿一部可以模拟具有温度,湿度和压力传感器的IoT设备的智能手机,然后将读数发送到Amazon IoT平台。 在平台上,我们将建立一条规则,即从设备收到数据后,将调用通知服务,通知服务随后将发送一封包含所接收数据的电子邮件。

这样的系统当然没有什么实用价值,但是它可以让您了解一切的工作原理:

图片

为什么选择亚马逊的物联网平台? 为什么需要了解物联网平台的工作原理?

M2M-物联网-IoE


世界上有越来越多的物联网设备,分析机构和世界统计机构都在谈论这一点。

我们自己可以清楚地看到,越来越多的系统连接到Internet并自动或由人控制:智能家居,汽车,可穿戴设备。 现在,他们不仅在谈论物联网,而且还在谈论IoE(万物互联),因为 连接到平台的设备不仅用于工业系统中,而且还用于人员。

因此,我们至少需要了解自己的工作原理,以便了解如何有效使用设备或安全性的限制和细微差别。

为什么是亚马逊?


亚马逊根据世界趋势开发服务,从而获得“通用”系统,其基本原理已为所有制造商所采用。 云平台具有更大的优势-这是能够在几个小时内自行部署系统而不涉及公司IT服务和安全性的能力)

为什么选择智能手机而不是某些物联网入门套件?


通过仔细检查,智能手机可以很好地模拟物联网设备:

  • 它具有在其上运行应用程序的Linux。
  • 存在到Internet的移动连接;
  • 使用软件,您可以模拟传感器读数。

即 使用真正的IoT设备与使用智能手机没有什么不同,除了使用特定的SDK来获取传感器读数。 所有其他通信将类似。

让我跳过有关标准,分析和营销研究的部分-在本文的结尾,我将提供一些相关链接。 我渴望做一些有趣的事情)

AWS IoT平台


亚马逊绘制了一个相当清晰的平台图:

图片

通常,这里一切都清楚了:

  • (1)有些设备使用SDK与IoT平台进行交互。
  • (2)设备发送经过身份验证和授权服务验证的消息。
  • (3)消息使用不同的协议到达设备网关,然后转到规则处理程序(4.1),然后将消息复制(4.2)到设备影子。
  • (4.2)设备影子是数字双打,用于存储始终可供应用程序使用的设备的当前状态。 另一方面,在没有与设备通信的情况下,设备影子会执行来自应用程序的控制命令,并在重新连接时将当前状态与设备同步。
  • (4.1)根据接收到的数据,规则处理程序执行预定的操作(5.1),例如,将数据保存在DB中,发送SMS或电子邮件通知,调用HTTP API,将数据发送到分析系统等。
  • (5.2)应用程序使用此数据通过AWS API(6)控制和管理设备
  • 所有设备上的信息都存储在AWS IoT平台(7)上。

我们开始理解,该方案有点复杂:

图片

出现:

作业 -在设备上执行标准操作,例如,安装应用程序,更新固件,重启设备等。
主题是MQTT协议的本质。 来自物联网设备的消息将发送到特定主题。
IAM角色 -代表执行规则并有权访问必需的AWS资源的AWS用户。

规则包括:

  • 过滤器-用于处理的消息过滤器。 设置为SQL查询。
  • 动作-要执行的动作。
  • 角色-一个或多个IAM角色。

证书 -会上传到IoT设备,并在AWS平台上对设备进行帮助身份验证。 组成:

  • X.509设备证书
  • 私钥
  • AWS根证书

策略 -策略附加到证书上,这些证书确定设备可以执行的操作。 政策授权设备。
详细介绍从IoT平台接收信息的AWS服务 :Analytics(分析),DB,SNS通知服务。

我们连接设备


我不会完全给出有关将IoT设备连接到Amazon平台的说明: AWS IoT入门 。 但要了解任务的范围,我将列出使该方案起作用所需采取的步骤:

  • 在平台上创建my-iot-dev设备
  • 我们获得了设备证书X.509,私钥,公钥
  • 获取AWS平台的根证书(适用于AWS IoT的根CA)
  • 创建my-iot-dev-policy策略。 对于我们的演示,我们允许所有操作:iot:*

图片

  • 将策略附加到证书
  • 将证书附加到设备
  • 结果,我们收到了带有设备和策略的证书:

图片

  • 创建一个规则。 该规则将调用AWS SNS(简单通知服务)通知服务以发送电子邮件。 因此,您必须首先在AWS SNS中创建一个主题(my-iot-dev-sns-topic):

图片

  • 现在,我们配置此主题在接收数据时将执行的操作。 为此,请创建该主题的订阅(订阅Amazon SNS主题),输入目标电子邮件地址,等待验证字母,然后确认该电子邮件。

图片

现在创建规则本身(my_iot_dev_rule),它将调用创建的主题:

  • 过滤器: SELECT * FROM'my / dev-topic'-当接收到名为'my / dev-topic'的主题中的任何消息时,触发过滤器;
  • 行动:向先前创建的SNS主题发送一条消息“ arn:aws:sns:eu-central-1:1219xxx34064:my-iot-dev-sns-topic”;
  • IAM角色:创建具有访问SNS主题的my-dev-role角色。

图片

  • 创建了我们设备的所有逻辑实体。 现在,您可以测试该方案在理论上是否有效。 为此,AWS有一个测试工具,可让您发送和接收类似于真实设备的消息。 我们启动它,订阅主题(我的/ dev-topic)并发送“ Hello World!”。 讯息:

图片

  • 我们检查消息“ Hello World!”是否到达 并得出电路工作正常的结论。

智能手机配置


现在是时候配置物联网设备了,这将是我的智能手机。 为此,请使用AWS开发工具包JavaScript指令 。 要将智能手机变成物联网设备,您需要:

  • 复制到设备:私钥,X.509和“ Root CA for AWS”证书;
  • 安装Node.js和npm软件包管理器;
  • 安装AWS开发工具包;
  • 安装并运行测试程序。

在我们的情况下,一切都会变得容易一些,因为 我将证书,AWS开发工具包和测试程序放在GitHub上,您可以克隆IoT-Sensors存储库 。 如果有人要使用我的测试程序,则需要将其证书放在/ IoT / certs目录中,并在/ server / src / services / IoT-AOI-Server文件中写入设备的实际Rest API端点:

device = deviceModule({ … host: 'a2lqo1xxx4zydi-ats.iot.eu-central-1.amazonaws.com', … }) 

Rest API端点来自设备设置:

图片

如果您想尝试一些标准的东西,则可以使用AWS开发工具包中的测试程序。

Android是相同的Linux,但是有其局限性,因此,要运行JS应用程序,您需要安装一个特殊的终端, 例如Termux

对于Termux的初始开发,有很多文章,例如: 在Android上启动NodeJS应用程序 。 但总的来说,在安装Termux之后,您只需要执行一些魔术命令即可:

 git clone https://github.com/AlexeySushkov/IoT-Sensors.git 

服务器安装


 cd ~/IoT-Sensors/server npm install npm start 

如果一切顺利,该行将出现在终端中:
服务器在端口8081上启动

现场看起来像这样:

图片

客户端安装


 cd ~/IoT-Sensors/client npm install npm run serve 

如果一切顺利,该行将出现在终端中:
在以下端口运行的应用程序:8080

接下来,在智能手机浏览器中,输入: http://本地主机:8080

屏幕上将出现一个测试应用程序:

图片

按下“ INIT DEV”按钮。 这将对AWS IoT平台上的IoT设备进行身份验证和授权。 如果成功,状态将变为“ Init OK”。

接下来,我们输入温度,湿度和压力传感器的值,例如:
温度:23
湿度65
压力:787

然后按“发送数据”按钮。

图片

之后,该应用程序将添加一个时间戳,并以MQTT消息的形式将数据发送到主题“ my / dev-topic”。 IoT平台接收消息并激活一条规则,该规则将消息发送到AWS SNS通知服务,该服务将以接收到的数据以JSON格式发送电子邮件:

 {"time":"Mon, 30 Sep 2019 13:54:52 GMT", "temperature":"23", "humidity":"65", "pressure":"787"} 

如果消息发送成功,则状态更改为:“发布确定”,并且一封电子邮件发送到该邮件:

图片

AWS IoT平台具有一个监控系统,该系统显示来自IoT设备的连接和消息的数量,协议统计信息,消息类型等:

图片

所以现在一切都在为真实而努力!

结论


我们使用亚马逊平台构建了一个小型但真正的物联网。 所有平台都基于相同的原则构建,因此,如果在选择物联网系统时出现问题,我们将准备提出以下问题。 此外,了解了亚马逊的答案,我们可以得出结论:该平台的成熟程度:

装置

  • 如何将设备添加到系统?
  • 如何确保设备认证和授权?
  • 发送到平台的数据是否发生加密?

平台平台

  • 平台上的密钥和证书如何受到保护?
  • 规则是如何形成的?
  • 规则可以遵循哪些行动?
  • 如何监视和管理设备?
  • 平台上的设备是否有阴影(数字双打)?
  • 哪些报告和分析可用?

互动互动

  • 使用什么协议连接设备?
  • 应用程序与设备之间如何交互?
  • 交互逻辑如何测试?

按照承诺,我将提供一些指向标准和分析的相关链接:

物联网标准


令人惊讶的是,标准化巨头( ISO / IECIEEEITU-T )在2016年之后对物联网失去了兴趣。 他们当然在做某事,但是不知不觉中没有闪烁。 NIST还发布了其“物联网”研究,但在2016年之后,再没有比这有趣的了。

电信机构看起来更好,这并不奇怪,因为 没有连通性,物联网就不是物联网。 TM-Forum在其保护下收集IoE和数字生态系统的案例和项目,而ETSI 则更容易并加入了OneM2M

现在,我们来到了相对较新成立的两个组织,但它们已经确定了物联网发展的全球方向:

一个M2M

OneM2M是来自不同国家的标准化组织 ,电信公司和制造商的协会 。 他们在公共领域中拥有数十个相关文档,这些文档通过体系结构模型和功能图使人深深着迷

IIC

IIC(工业互联网联盟)-一个标准化工业物联网的组织-这些主要是软件和设备的制造商 。 他们还发布了参考架构。 总的来说,这里有看完美世界的地方! )

物联网分析


我们所有喜欢的分析机构都发布了物联网研究,但并非全部免费。 例如,我将提供一些相关的文章,这些文章展示了对物联网发展的乐观预测:



这仅仅是开始!

Source: https://habr.com/ru/post/zh-CN472216/


All Articles