Renesas RX65N Cloud Kit 第5回
ツイート〜本記事の関連内容〜
過去の記事:Renesas RX65N Cloud Kit 第1回
過去の記事:Renesas RX65N Cloud Kit 第2回
過去の記事:Renesas RX65N Cloud Kit 第3回
過去の記事:Renesas RX65N Cloud Kit 第4回
前回までで以下テストプログラムの動作を確認することができたのですが
”Hello World”のテキストメッセージを一定間隔でAWS Cloudに送信
AWSやAmazon Free RTOSについて引き続きテストを続けていたところ
実際のIoT運用を想定したような動作を実現することができたのでご紹介します。
特定のTOPICのMQTTをAWSで受信したらその内容をメールで送信する
第4回までの動作が確認できていたらAWSのサービスを使用するだけで上記は実現できます。
〜メールを送信する為のAWS側の設定(SNS)〜
@新しいサービスAmazon SNSを利用します。
AWSにサインイン〜画面上部の【サービス】をクリック
【アプリケーション統合】の【Simple Notification Service】を選択
Aトピックを作成する
左側メニューの【トピック】をクリック〜【トピックの作成】
名前と表示名の入力(任意)して【トピックの作成】
B作成されたトピックを選択して【サブスクリプションの作成】をクリック
プロトコル:【Eメール】を選択 (選択後にエンドポイントの項が表示)
エンドポイント:【送信先のメールアドレス】を入力
上記入力後【サブスクリプションの作成】を押すと送信先の検証の為
設定したメールアドレスに対して認証確認メールが送信されます。
C認証メールの本文中にある【Confirm subscription】をクリック
上記実行するとAWSのサイトに飛ばされ認証が成功します。
SNSの設定はここまです。
〜メールを送信する為のAWS側の設定(IoT)〜
@Amazon IoTのサイトに戻り左側メニューから【ACT】〜【ルール】を選択
Aルールを作成します
名前:任意の名前を入力
説明:必要なら
SQL バージョンの使用:デフォルト *ちなみに本テスト時は【2016-03-23】
ルールクエリステートメント:SELECT * FROM 'freertos/demos/echo'
*上記設定することでMQTT受信時TOPICが 'freertos/demos/echo'であれば今から
設定するアクションを起こすということになります。
アクションの追加1:【SNSプッシュ通知としてメッセージを送信する】を選択
上記選択後アクション設定画面に切り替わります。
Bアクションの設定
SNSターゲット:【選択】からSNSで作成したトピック名を選択
メッセージ形式:RAW
ロール:既に作成済みなら選択、なければ新しいロールを作成
上記を入力後アクションの追加を選択
〜サンプルプログラムを動作〜
必須ではないですがサンプルプログラムそのままだと”Hello World”のメッセージが一定間隔で送信されて
何度もメールが届くので私は基板の【USER_SW】を押す度にMQTTメッセージが送信
されるように変更しました。
とりあえずMQTT送信を1回のみにするなら以下の関数内のコードを確認して修正を実施して
頂ければ良いかと思います。
ソースファイル:aws_hello_world.c
438行目辺り:static void prvMQTTConnectAndPublishTask( void * pvParameters )を修正
AWSの設定が完了したらサンプルプログラムを動作させてみて下さい。
AWSにMQTTのメッセージが届くのに合わせてメールがAWSから送信されるはずです。
以下Gmailで受信した様子
category -BLOG 2020/03/13 12:00