发布于: Oct 14, 2022

今天为大家介绍机器学习物联网领域的应用,展示如何通过机器学习实现物联网设备的实时预测性维护。

  1. 创建一个笔记本实例 windturbine,选择 t2.medium。选择或者创建一个 IAM 角色(IAM Role
  2. 其他部分选择默认选项,点击创建(Create

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

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

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

  1. 训练数据已经包含在代码里面,可以直接下载。
  2. 数据清洗 (删除 turbine_id 列,按照 XGBoost 的训练数据格式要求,删除表头并且将最后一列的推理结果 breakdown 挪到第一列)
  3. 按照 721 比率来拆分训练集,验证集和测试集,并上传到 S3
  4. 训练模型
  5. 部署训练好的模型并生成用于推理的 Endpoint,记录好这个值,后续需要在 IoT 规则引擎触发的 Lambda 函数中使用。

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

2.创建一个 Lambda 函数

(1)名称:windturbine_prediction

(2)运行时:Python 3.8

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

(4)内存:128 MB

(5)超时:30s

3.用 lambda_function.py 替换 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. Amazon IoT 控制台的导航窗格中,选择 Act (行动).
  2. Rules 页面,选择 Create
  3. 选择 Create
(1)名称: Invoke_windturbine_prediction
(2)Rule Query statement SELECT * FROM ‘windturbine/xgboost’

(3)在设置一个或多个操作中,选择添加操作:发送消息到Lambda函数 (send a message to a Lambda function)选择windturbine_prediction

 

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

(5)选择 Create rule (创建规则)

  1. Cloud9 实例上用户的 home 目录中创建 cert 文件夹并上传上面第三步下载保存的 IoT Things 的证书到该文件夹中
  2. 上传 device_simulator.py 文件到 Cloud9 实例上用户的 home 目录中
  3. 上传模拟数据 device_data.csv 文件到 Cloud9 实例上用户的 home 目录中
  4. 根据您的实际配置修改 py 的代码
# 将host修改为自己Amazon Web Services账户的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 还会触发提醒工作人员进行预测性维护的通知。如下图所示:

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

相关文章