翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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] で、[Simple Notification Service] を選択します。このルールアクションの説明は [SNS プッシュ通知としてメッセージを送信します] です。
-
[SNS トピック] では、ステップ 3: Amazon SNS トピックおよびサブスクリプションを作成する、、MoistureSensorTopic で作成したトピックを選択し、[メッセージ形式] を [RAW] のままにします。[IAM role] (IAM ロール) は、[Create a new role] (新しいロールの作成) を選択します。ロールの名前 (例:
LowMoistureTopicRole
) を入力し、[ロールを作成] を選択します。 -
[次へ] を選択して確認してから、[作成] を選択してルールを作成します。