资讯详情

使用 Amazon IoT 和 Amazon SageMaker 进行设备实时预测性维护

典型的应用场景是从传感器数据中获得上下文洞察力,如分析设备异常或预测性维护,并及时通知用户。在本文中,我们将重点关注设备的预测性维护,利用机器学习算法预测设备的运行状态,提前发现可能的异常,及时维护,避免严重的生产事故。

{ 方案概述 }

本文采用机器学习方法进行预测性维护,以风力发电机模拟数据为例数据集,并部署推理端点。边缘侧设备将数据发布到Amazon IoT Core,使用IoT规则触发Lambda函数调用部署在Sagemaker上述预测性维护端点API,通过更新来判断设备是否会出现异常。Amazon IoT Shadow自动关闭设备并发出通知。

我们使用的算法叫做,它是一种监督学习算法, 尝试结合一系列简单弱模型的估计值,准确预测目标变量,可用于处理回归、分类(二进制和多类)和排名问题。XGBoost预测设备是否会损坏,并提前进行预测性维护。

本文使用风力发电机模拟数据进行演示,

风速:wind_speed

叶片转速:RPM_blade

油温:oil_temperature

油位:oil_level

温度:temperature

湿度:humidity

振动频率vibrations_frequency

压力:pressure

风向:wind_direction

是否损坏:breakdown

您可以使用该解决方案自动检测潜在的设备故障,并提供建议。该解决方案易于部署,并包含示例数据集。您还可以修改解决方案并使用其他数据集来构建自己IoT预测性维护方案。

下图显示了本方案采用的架构

1.用于预测性维护的模型使用存储S3上的设备历史数据在Amazon SageMaker训练。

2.使用训练模型SageMaker部署并暴露Endpoints提供预测服务。

3.数据从传感器发送到传感器 IoT Core,通过IoT Rules Engine路由到Lambda函数。Lambda函数通过Sagemaker Endpoints机器学习模型调用预测性维护。当检测到异常时,Lambda函数将发送通知并通过IoT Shadow相应操作设备。

1.设置连接设备和 IoT Core进行通信

2.训练和部署SageMaker模型

3.为监控和检测可能出现异常行为的设备创建云资源

4.使用模拟设备进行预测性维护测试,并发出通知

{ 实验准备: IoT 设备模拟 }

本文采用Cloud9 作为IoT 模拟设备,从Cloud上面发出模拟IoT消息。

在EC2 控制台,启动一个EC2 实例,搜索 Marketplace上的Cloud9。

1.打开IoT 控制台

https://console.amazonaws.cn/iot/home

2.选择->在页面上,选择。如果您的账户以前创建过策略,请选择.

3.创建

-在输入策略的名称Windturbine_Policy

-在输入字段iot:Connect,iot:Receive,iot:Publish,iot:Subscribe。这些是设备在从设备开发工具包运行示例程序时需要执行的权限。有关 IoT 更多关于策略的信息,请参考IoT Core 策略。

https://samick-blog.s3.cn-north-1.amazonaws.com.cn/xgboost_model_training_and_deployment.ipynb

-在输入字段*。选择任何客户端(设备)。

-选中复选框

-输入策略信息后,选择

1.打开

https://console.amazonaws.cn/iot/home

2.择 ->  上,选择 。如果您的账户已经创建过一些事物,请选择 .

3.在创建 ,选择

4.字段中,输入物品的名称windturbine。将此页面上的其余字段留空。选择 .

5.在 上,选择

6.在 页面上

-下载每个证书和密钥文件并将它们保存以供将来 使用

AmazonRootCA1.pem:https://www.amazontrust.com/repository/AmazonRootCA1.pem

-点击Activate激活证书

7.选择,用于将您在上一部分中创建的策略附加到此证书

8.在  上,选择您在上一部分中创建的策略Windturbine_Policy

9.选择 

详细步骤请参考:

https://docs.amazonaws.cn/iot/latest/developerguide/create-iot-resources.html

 { 创建Amazon SageMaker

笔记本实例,训练和部署模型 } 

1.创建一个笔记本实例,选择。选择或者创建一个

2.其他部分选择默认选项,点击

3.在笔记本创建完成后,打开,上传笔记本到Jupyter Lab。选择内核为

4.按照代码中的注释要求,替换使用您自己的 S3 bucket/prefix

5.运行,进行模型训练和部署

-训练数据已经包含在代码里面,可以直接下载。

-数据清洗 (删除turbine_id列,按照XGBoost的训练数据格式要求,删除表头并且将最后一列的推理结果breakdown挪到第一列)

-按照7:2:1的比率来拆分训练集,验证集和测试集,并上传到S3

-训练模型

-部署训练好的模型并生成用于推理的,记录好这个值,后续需要在IoT 规则引擎触发的Lambda 函数中使用。

 { 创建Lambda函数及SNS Topic

用于推理,设备状态变更以及通知 } 

1.创建SNS通知Topic,并使用自己的邮箱地址订阅该Topic,用于接收预测性维护的通知。

2.创建一个Lambda 函数

-名称:

-运行时:Python 3.8

-权限:选择一个IAM Role 可以使用IoT,SNS 和 SageMaker Endpoint

-内存:128 MB

-超时:30s

3.用替换Lambda 代码,注意修改下列常量:

#修改成自己的Sagemaker Endpoint Name
ENDPOINT_NAME = 'xgboost-2021-03-08-10-43-34-693'
#修改成自己的SNS Topic
SNS_TOPIC_ARN = 'arn:aws-cn:sns:cn-northwest-1:account-id:NotifyMe'
#修改成自己的手机号 (海外区SNS发短信)
PHONE_NUMBER = '+8613812345678'

1.在的导航窗格中,选择.

2.在 页面,选择 

3.选择

-名称:Invoke_windturbine_prediction

-Rule Query statement:

 SELECT * FROM ‘windturbine/xgboost’

-在,选择:发选择

-(可选),错误操作:发送消息给CloudWatch logs (Send message data to CloudWatch logs):

-选择

 { 端到端测试 } 

1.在Cloud9实例上用户的home目录中创建cert文件夹并上传上面第三步下载保存的IoT Things的证书到该文件夹中

2.上传device_simulator.py文件到Cloud9实例上用户的home目录中

3.上传模拟数据device_data.csv文件到Cloud9实例上用户的home目录中

4.根据您的实际配置修改py的代码

# 将host修改为自己AWS账户的IoT Endpoint
host = "a1hk0pcc0as07l.ats.iot.cn-north-1.amazonaws.com.cn"

#证书路径修改为自己环境下的证书路径
rootCAPath = "cert/AmazonRootCA1.pem"
certificatePath = "cert/windturbine.cert.pem"
privateKeyPath = "cert/windturbine.private.key"

5.运行代码

python device_simulator.py device_data.csv

6.当部署的XGBoost模型端点预测到设备出现异常时,Lambda函数更新IoT设备影子(Shadows)将设备状态设置为Off(关闭状态),边缘IoT设备收到该状态设置标志,将设备停止,如下图所示:

同时Lambda还会触发提醒工作人员进行预测性维护的通知。如下图所示:

 { 总结 } 

您刚刚完成了如何将 IoT和Amazon SageMaker 一起使用,对一系列设备执行预测性维护的端到端动手实验,并使用Lambda和SNS进行警报监控其状态。我们希望本文有助于您理解如何在Amazon Web Services上对IoT设备数据进行有效洞察,并为您的特定用例提供一个良好的起点。

【参考资料】

IoT 控制台:

https://console.amazonaws.cn/iot/home

Jpynb:

https://samick-blog.s3.cn-north-1.amazonaws.com.cn/xgboost_model_training_and_deployment.ipynb

lambda_function.py:

https://samick-blog.s3.cn-north-1.amazonaws.com.cn/lambda_function.py

Amazon IoT 控制台:

https://console.aws.amazon.com/iot/home

device_simulator.py:

https://samick-blog.s3.cn-north-1.amazonaws.com.cn/device_simulator.py

device_data.csv:

https://samick-blog.s3.cn-north-1.amazonaws.com.cn/device_data.csv

亚马逊云科技解决方案架构师,负责企业级客户的架构咨询及设计优化,同时致力于 Amazon IoT 和存储服务在国内和全球企业客户的应用和推广。加入亚马逊云科技之前在EMC研发中心担任系统工程师,对企业级存储应用的高可用架构,方案及性能调优有深入研究。

亚马逊云科技解决方案架构师,主要负责企业级客户的上云工作,服务客户涵盖从汽车,传统生产制造,金融,酒店,航空,旅游等,擅长DevOps领域。11 年 IT 专业服务经验,历任程序开发,软件架构师、解决方案架构师。

标签: hk5530转速传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司