本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 4:创建发送电子邮件的 Amazon IoT 规则
Amazon IoT 规则定义了从设备收到消息时要执行的查询和一项或多项操作。 Amazon IoT 规则引擎监听设备发送的消息,并使用消息中的数据来确定是否应采取某些措施。有关更多信息,请参阅的规则 Amazon IoT。
在本教程中,您的 Raspberry Pi 在 aws/things/RaspberryPi/shadow/update
上发布消息。这是设备和 Thing Shadow 服务使用的内部 MQTT 主题。Raspberry Pi 发布具有以下形式的消息:
{ "reported": { "moisture" :
moisture-reading
, "temp" :temperature-reading
} }
创建查询来从传入消息中提取含水量和温度数据。创建 Amazon SNS 操作来在含水量读数低于阈值时获取数据并将其发送给 Amazon SNS 主题订阅者。
创建 Amazon SNS 规则
-
在 Amazon IoT 控制台
中,选择消息路由,然后选择规则。如果显示您还没有任何规则对话框,请选择创建规则。否则,请选择创建规则。 -
在规则属性页面中,输入规则名称(例如
MoistureSensorRule
),并提供简短的规则描述(例如Sends an alert when soil moisture level readings are too low
)。 -
选择下一步并配置您的 SQL 语句。选择 SQL 版本为 2016-03-23,然后输入以下 Amazon IoT SQL 查询语句:
SELECT * FROM '$aws/things/RaspberryPi/shadow/update/accepted' WHERE state.reported.moisture < 400
当
moisture
读数小于400
时,该语句将触发规则操作。注意
您可能需要使用其它值。在 Raspberry Pi 上运行代码之后,您可以通过触摸传感器、将其放入水中或放入花盆中来查看从传感器获得的值。
-
选择下一步并附加规则操作。对于操作 1,选择 Simple Notification Service。此规则操作的描述为将消息作为 SNS 推送通知发送。
-
对于 SNS 主题,请选择您在步骤 3:创建 Amazon SNS 主题和订阅、中创建的主题 MoistureSensorTopic,并将消息格式保留为 RAW。对于 IAM Role (IAM 角色),选择 Create a new role (创建新角色)。输入角色的名称(例如
LowMoistureTopicRole
),然后选择创建角色。 -
选择下一步进行查看,然后选择创建来创建规则。