ステップ 4: E メールを送信する AWS IoT ルールを作成する - AWS IoT Core

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ステップ 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 ルールを作成する
  1. AWS IoT コンソール で、メッセージルーティング を選択し、ルール を選択します。[ルールはまだ作成されていません] ダイアログボックスが表示された場合は、[ルールの作成] を選択します。それ以外の場合は、ルールの作成を選択します

  2. 「ルールのプロパティ」ページで、 などのルール名を入力しMoistureSensorRule、 などの短いルールの説明を入力しますSends an alert when soil moisture level readings are too low

  3. へを選択し、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 でコードを実行したら、センサーに触れたり、水に入れたり、プランター内に置いたりすることで、センサーから取得した値を表示できます。

  4. へを選択し、ルールアクションをアタッチします。アクション 1 で簡易通知サービス を選択します。このルールアクションの説明は、「SNS プッシュ通知としてメッセージを送信する」です

  5. SNS トピック では、ステップ 3: Amazon SNS トピックおよびサブスクリプションを作成する、、 で作成したトピックを選択しMoistureSensorTopicメッセージ形式RAW のままにします。[IAM role] (IAM ロール) は、[Create a new role] (新しいロールの作成) を選択します。ロールの名前を入力します。例えば、 を入力しLowMoistureTopicRoleロールの作成 を選択します。

  6. へを選択して確認し、作成を選択してルールを作成します。