企业文化

Our News
您的位置: 首页 > 企业文化 > 在边缘开发远程工作监控应用程序,使用 AWS IoT Greengrass第 2 部分官方博客

在边缘开发远程工作监控应用程序,使用 AWS IoT Greengrass第 2 部分官方博客

发布时间:2026-01-27 浏览量:17

AWS IoT Greengrass边缘远程工作监控应用开发

关键要点

在这篇文章中,我们将继续探讨如何利用AWS IoT Greengrass V2开发边缘的用户界面 (UI) 应用,该应用由AWS合作伙伴TensorIoT和AWS专业服务共同开发。它的主要功能包括:

实时流式IoT数据监控,帮助运营商提高决策效率;使用WebSocket组件与虚拟发布者交互;配置日志管理器监测应用健康状态。

引言

在本系列博文的第二部分中,我们将继续展示一个边缘用户界面 (UI) 应用,该应用利用AWS IoT Greengrass V2构建。此UI应用包含多个自定义的AWS IoT Greengrass V2组件,能够实现灵活的IoT数据采集、数据流分析和可视化。

第一部分介绍了如何通过JSON文件上传组件和UI应用来摄取IoT工作元数据,包括:

如何设置Amazon Simple Storage Service (Amazon S3) 存储桶、AWS IoT Greengrass V2及其相关依赖;如何在边缘设备上启动UI和JSON文件上传应用。

在第二部分中,我们将继续构建此UI应用的用例2。

用例2解决方案概述

操作者需要以几乎实时的方式对流式IoT数据进行判断。如果能够通过一个低延迟的交互UI应用展示这些数据,运营商将能做出更为明智的决策。通过这个应用,运营商可以迅速在现场做出决策,从而提高工厂的运营效率。

在这个边缘UI应用中,有一个虚拟发布者组件,模拟风力涡轮设施的输出。该发布者的发布频率为每10秒一次。一个WebSocket组件通过与AWS IoT Greengrass V2的进程间通信IPC pubsub订阅来自虚拟发布者的流式数据,并通过WebSocket通信将数据发送到边缘UI应用。由于前端应用不支持IPC pubsub通信,我们选择使用WebSocket通信,以便通过asyncio不断从后端服务器流式传输实时IoT数据到边缘托管的前端应用。为了处理从发布者组件接收到的高速流数据,使用Python模块queue来以先进先出的方式存储消息,在提供给后端服务器之前。此外,除了WebSocket通信外,还可以使用本地代理,例如JavaScript的MQTT客户端库,用于你的Web应用。

值得注意的是,此虚拟发布者组件仅用于演示目的。在工业厂房环境中,它将被适当的工业数据连接器取代例如SCADA系统。

在本博文中,我们还将展示如何使用AWS IoT Greengrass V2预构建的日志管理器组件以及Amazon CloudWatch来管理此AWS IoT Greengrass V2组件的健康状态。

以下步骤6到9将指导您:

启动一个虚拟发布者组件,模拟风力涡轮设施的输出。该虚拟发布者每10秒发布一次数据。启动一个WebSocket组件,通过IPC pubsub与AWS IoT Greengrass V2订阅虚拟发布者的流式数据,并通过WebSocket通信将数据发送至边缘UI应用。配置部署日志管理器组件以监测边缘组件的健康状态。测试IoT工作监控应用。

先决条件

要构建用例2的UI应用,您需要在边缘设备上安装AWS IoT Greengrass V2及其依赖,如第一部分所述。同时需要在边缘设备上启动第一部分中的客户UI组件。如果尚未完成这些步骤,请在继续之前先检查第一部分的步骤1至5。

用例2的详细步骤

以下步骤将提供边缘实时IoT工作监控UI应用开发的详细指引。请注意,本篇文章重点展示关键解决方案里程碑,读者可以访问GitHub代码库获取更多细节及源代码。

第6步:启动虚拟发布者

为了模拟风力涡轮的输出,虚拟发布者组件将发布与以下测量相关的一些随机数据:质量控制、工具状态、操作参数、电力曲线、LV有功功率、风速和风向。请按照以下步骤启动此组件:

进入到components/comexamplePublisher/awsggdeploy目录,这是您克隆GIT代码库到的Amazon Elastic Compute CloudAmazon EC2实例的目录。

修改部署脚本deployedgesh,在setEnv()区块中将以下占位符替换为您的自定义值:

在边缘开发远程工作监控应用程序,使用 AWS IoT Greengrass第 2 部分官方博客

YOURAWSACCOUNTNUMBER YOURAWSREGION S3BUCKET 用于边缘组件的工件 ROLEARN

按CtrlX,然后按Y保存修改后的deploy3edgesh文件。

运行以下脚本以部署此组件:

bashexport AWSACCESSKEYID=REPLACEWITHYOURAWSACCESSKEYIDexport AWSSECRETACCESSKEY=REPLACEWITHYOURAWSSECRETACCESSKEYexport AWSSESSIONTOKEN=REPLACEWITHYOURAWSSESSIONTOKENchmod 744 deployedgesh/deployedgesh

该Bash脚本大约需要10秒完成。完成后,请通过检查AWS IoT Greengrass组件的日志文件确认虚拟发布者组件正在发布消息:

bashsudo tail 200f /greengrass/v2/logs/comuipublisherlog

您会看到日志随着每10秒的频率更新新的JSON消息。这些消息将发送到一个IPC主题:runscreen/topic,供WebSocket组件订阅。

第7步:启动WebSocket组件

WebSocket组件订阅IPC主题:runscreen/topic,接收有关测量的消息。该组件将通过asyncio服务器提供消息数据,从而使UI能够接收来自WebSocket服务器的数据。

要启动WebSocket组件:

进入到components/comwebsocketApp/awsggdeploy目录,这是您克隆GIT代码库到的Amazon EC2实例的目录。

修改部署脚本deployedgesh,在setEnv()区块中将以下占位符替换为您的自定义值:

YOURAWSACCOUNTNUMBERYOURAWSREGIONS3BUCKET 用于边缘组件的工件ROLEARN

按CtrlX,然后按Y保存修改后的deploy3edgesh文件。

运行以下脚本以部署此组件:

白鲸加速器官网链接

bashexport AWSACCESSKEYID=REPLACEWITHYOURAWSACCESSKEYIDexport AWSSECRETACCESSKEY=REPLACEWITHYOURAWSSECRETACCESSKEYexport AWSSESSIONTOKEN=REPLACEWITHYOURAWSSESSIONTOKENchmod 744 deployedgesh/deployedgesh

该Bash脚本大约需要10秒完成。完成后,请确认您在AWS IoT核心控制台中创建了以下组件:

第8步:配置日志管理器组件部署

日志管理器组件awsgreengrassLogManager将AWS IoT Greengrass核心设备的组件日志上传到Amazon CloudWatch日志。这个预构建的组件能够有效监控自定义组件的状态,开发者的工作量较少。可以通过AWS IoT Core选择公共组件列表中的日志管理器组件,添加到当前部署中。

选择日志管理器组件并选择配置组件以修改其配置。

在配置合并中,添加以下个别组件日志的配置:

json{ logsUploaderConfiguration { componentLogsConfigurationMap { comexamplePublisher { minimumLogLevel INFO diskSpaceLimit 20 diskSpaceLimitUnit MB deleteLogFileAfterCloudUpload false } comWebsocketApp { minimumLogLevel INFO diskSpaceLimit 20 diskSpaceLimitUnit MB deleteLogFileAfterCloudUpload false } comfileUploader { minimumLogLevel INFO diskSpaceLimit 20 diskSpaceLimitUnit MB deleteLogFileAfterCloudUpload false } } }}

重新部署日志管理器后,可以在Amazon CloudWatch日志中找到组件日志。

第9步:测试IoT工作监控UI页面

在第一部分中,您可以上传JSON文件以提供IoT工作元数据。在通过UI页面http//localhost8080/Job上传JSON文件后,UI应用将自动切换到第二个UI页面:http//localhost8080/Job。该页面展示了从WebSocket服务器获取的流式数据,包括传感器数据,如电力曲线、风速、风向及LV有功功率。当检查作业状态显示为正常时,UI页面以绿色字体显示相关作业信息。

如果检查作业状态异常,UI页面将以红色显示,质量控制结果将显示为需要采取行动。

该http//localhost8080/Job UI页面允许检查员进行远程作业监控,并实时获取流式传感器数据。他们还可以从UI中获得质量控制信息,以帮助进行详细诊断。

清理工作

(1) AWS IoT

打开AWS IoT核心控制台,按照以下步骤清理资源:

在AWS IoT Greengrass核心设备标签中,选择DemoJetson核心设备并点击右上角的删除。在管理 gt 事物组中,删除DemoJetsonGroup。在管理 gt 事物下,删除DemoJetson。在策略下,删除GreengrassV2IoTThingPolicy和GreengrassTESCertificatePolicyGreengrassV2TokenExchangeRoleAlias。在安全下,删除GreengrassV2TokenExchangeRoleAlias角色别名。(2) Amazon S3导航至Amazon S3控制台,找到您在博客中使用的组件存储桶。清空该组件存储桶。删除该组件存储桶。清空流管理器的数据存储桶。删除流管理器的数据存储桶。(3) Amazon EC2终止导航至Amazon EC2控制台。通过选择停止实例来停止实例。实例停止后,选择终止实例。(4) IAM角色导航至IAM控制台。删除从Ubuntu EC2实例创建的IAM角色。删除AWS EC2 SSM访问策略。删除为Amazon Greengrass V2创建的IAM用户。删除附加于Amazon Greengrass V2用户的策略。(5) Amazon CloudWatch从Amazon CloudWatch控制台删除相关指标。

以上步骤完成了为本文创建的资源的清理。

号召行动

在本博文中,风力涡轮数据源由虚拟发布者模拟,仅用于演示目的。当此应用应用于工业环境时,可以使用各种数据源,例如PLC、控制器、常规数据服务器等。社区中有多种Greengrass组件可用作数据源连接器,可以通过AWS IoT Greengrass v2部署到边缘设备。

本文中所述的WebSocket组件可以进一步扩展以包括自定义数据分析工作流,从而丰富风力涡轮数据,产生更多操作洞察。

结论

在本系列的两部分中,我们回顾了远程IoT工作监控的优势和挑战。为了解决这些挑战,我们提出了一个边缘的UI应用解决方案。这一解决方案由AWS专业服务与AWS合作伙伴TensorIoT共同开发。在解决方案开发阶段,两家公司开发者利用最新的AWS IoT Greengrass V2运行时显著加速了IoT边缘应用程序的开发。本文中开发的模块化组件可以使用AWS IoT设备管理和AWS IoT Greengrass轻松部署和更新到数千个IoT设备。在未来,TensorIoT将能够基于在开发此IoT UI应用过程中所学的经验,为各种用例构建更多自定义应用。

作者信息:

Julia HuMartin LehoferJoyson Neville LewisTanya Lobo ParmarVidya RamaswamyRajeev Pulleti

标签: aws iot greengrass v2 边缘的数据处理与分析 边缘的UI应用

QQ

在线咨询真诚为您提供专业解答服务

热线

13594780374
7*24小时服务热线

微信

二维码 扫一扫微信交流