本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 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控制台
的导航窗格中,选择 Act (行动)。如果显示您还没有任何规则对话框,请选择创建规则。否则,选择 Create。 -
在创建规则页面上,为此规则输入名称(例如,
MoistureSensorRule)。 -
对于描述,请为此规则提供一个简短的描述(例如,
Sends an alert when soil moisture level readings are too low)。 -
在 Rule query statement (规则查询语句) 下,选择 SQL 版本 2016-03-23,然后输入以下 Amazon IoTSQL 查询语句:
SELECT * FROM '$aws/things/RaspberryPi/shadow/update/accepted' WHERE state.reported.moisture < 400当
moisture读数小于400时,该语句将触发规则操作。注意
您可能需要使用其它值。在 Raspberry Pi 上运行代码之后,您可以通过触摸传感器、将其放入水中或放入花盆中来查看从传感器获得的值。
-
在 Set one or more actions (设置一个或多个操作) 下,选择 Add action (添加操作)。
-
在选择操作页面上,选择将消息发送为 SNS 推送通知。
-
滚动到页面底部,然后选择 Configure action (配置操作)。
-
在配置操作页面上,对于 SNS 目标,选择 Select (选择),然后选择 LowMoistureTopic。
-
对于 Message format,请选择 RAW。
-
在 Choose or create a role to grant Amazon IoTaccess to perform this action(选择或创建角色以向 IoT 授予执行此操作的权限)下,选择 Create Role(创建角色)。输入角色的名称(例如
LowMoistureTopicRole),然后选择 Create role (创建角色)。 -
选择添加操作。
-
请选择 Create rule (创建规则)。