翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ステップ 4: E メールを送信する AWS IoT ルールを作成する
AWS IoT ルールは、デバイスからメッセージを受信したときに実行するクエリと 1 つ以上のアクションを定義します。 AWS IoT ルールエンジンは、デバイスから送信されたメッセージをリッスンし、メッセージ内のデータを使用して、何らかのアクションを実行する必要があるかどうかを判断します。詳細については、「のルール AWS 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 ルールを作成する
-
AWS IoT コンソール
で、メッセージルーティング を選択し、ルール を選択します。[ルールはまだ作成されていません] ダイアログボックスが表示された場合は、[ルールの作成] を選択します。それ以外の場合は、ルールの作成を選択します。 -
「ルールのプロパティ」ページで、 などのルール名を入力し
MoistureSensorRule
、 などの短いルールの説明を入力しますSends an alert when soil moisture level readings are too low
。 -
次へを選択し、SQL ステートメントを設定します。SQL バージョンを 2016-03-23 として選択し、次の AWS IoT SQL クエリステートメントを入力します。
SELECT * FROM '$aws/things/RaspberryPi/shadow/update/accepted' WHERE state.reported.moisture < 400
このステートメントは、
moisture
の読み取り値が400
より小さい場合にルールアクションをトリガーします。注記
別の値の使用が必要になる場合があります。Raspberry Pi でコードを実行したら、センサーに触れたり、水に入れたり、プランター内に置いたりすることで、センサーから取得した値を表示できます。
-
次へを選択し、ルールアクションをアタッチします。アクション 1 で、簡易通知サービス を選択します。このルールアクションの説明は、「SNS プッシュ通知としてメッセージを送信する」です。
-
SNS トピック では、ステップ 3: Amazon SNS トピックおよびサブスクリプションを作成する、、 で作成したトピックを選択しMoistureSensorTopic、メッセージ形式を RAW のままにします。[IAM role] (IAM ロール) は、[Create a new role] (新しいロールの作成) を選択します。ロールの名前を入力します。例えば、 を入力し
LowMoistureTopicRole
、ロールの作成 を選択します。 -
次へを選択して確認し、作成を選択してルールを作成します。