Renesas RX65N Cloud Kit 第4回
ツイート〜本記事の関連内容〜
過去の記事:Renesas RX65N Cloud Kit 第1回
過去の記事:Renesas RX65N Cloud Kit 第2回
過去の記事:Renesas RX65N Cloud Kit 第3回
前回、アマゾン ウェブ サービス(AWS)設定を行ってデータを送信する準備と
送信に必要な各種証明書等を取得しました。
今回サンプルプログラムにこれらの情報を追加して実際にデータを送ります。
〜サンプルプログラムの変更箇所〜
サンプルプログラムにwifi情報や証明書を設定します。
@第2回でダウンロードしたサンプルプログラムのワークスペースをe2studioで開きます。
Project Explorer にて aws_clientcredential.h を開きます
A aws_clientcredential.h 内の下記定義を設定
AWS IoTエンドポイントはAWS IoTのサイトで左側メニューの【設定】から確認できる
カスタムエンドポイントの値をコピーして下さい。
定義名称 | 設定内容 |
---|---|
clientcredentialMQTT_BROKER_ENDPOINT | AWS IoTエンドポイント |
clientcredentialIOT_THING_NAME | AWS IoTで設定したモノの名前(第3回で実施) |
clientcredentialWIFI_SSID | WifiアクセスポイントのSSID |
clientcredentialWIFI_PASSWORD | Wifiアクセスポイントの暗号キー |
B Project Explorer にてaws_wifi_config.h を開きます
以下の定義を設定する
定義名称 | 設定内容 |
---|---|
wificonfigACCESS_POINT_SSID_PREFIX | WifiアクセスポイントのSSID |
wificonfigACCESS_POINT_PASSKEY | Wifiアクセスポイントの暗号キー |
C証明書の設定
一端e2stdioを最小化し第2回でダウンロードしたAmazon Free RTOSのフォルダから
以下のファイルをファイルブラウザ等で開いてください。
私が使用したVerではワークスペース以下の下記フォルダにありました。
/tool/CertificateConfigurationTool/CertificateConfigurator.html
このような画面が表示されます。2カ所ファイルを選択する項目がありますが
ここで第3回の証明書作成の際にダウンロードした以下のファイルを選択します。
Certificate PEM file: ***********-certificate.pem.crt
Private Key PEM file: **********-private.pem.key
ファイルを選択したら[Generate and save aws_clientcredential_keys.h] を押します。
”aws_clientcredential_keys.h”というファイルが生成されるのでこのファイルを
現在編集中のワークスペース/demos/common/includeに保存(上書き)します。
再度ビルドしてコンパイルエラーが無いことを確認。
これで基板側はデバッグ操作すればデモプログラムが動作して”Hello World”の
テキストメッセージが一定間隔でAWSに送信されるようになります。
DAWSテスト設定
実際にテキストデータが取得出来ていることを確認できるようにAWS IoTのサイトで
テスト設定を行います。
AWS IoTにログインしてAWS IoT の左側のメニューより [テスト] を選択
【トピック名】 freertos/demos/echo と入力
【MQTT ペイロード表示】 [ペイロードを文字列として表示 (より正確)] を選択
【トピックへの…】 をクリックして待機
Eデバッグ
再びe2studioに戻りデバッグのボタン横▼から【デバッグの構成】を選択
タグ【Debugger】→【Conection setting】を選び
ターゲットボートの接続の項目を確認して【デバッグ】を選択
「接続出来ない場合」
・設定ガイド資料などではここで接続タイプは【JTAG】を選ぶように指示されていたのですが
【JTAG】では接続が上手くいかず【Fine】だと上手くいきました。
・Target board RX65Nの(本キットで下側に接続されている基板)
EJ2にショートピンが接続されていたら外してください。
外した状態で無いとデバッグモードで動作できません。
接続できたら【再開】ボタンを押してプログラムを動作させます。
*途中でブレイクが掛かった場合は再度【再開】を押すして下さい。
このとき本キットのCN18のUSB端子から動作ログがシリアルで出力されますので
以下の設定で動作の状況が確認出来ます。
「ログ情報通信設定」
・ボーレート:115200
・データ:8ビット
・パリティ:無
・ストップビット:1
正常時のログは以下のような感じです。
FAWSのテスト画面を確認
上記のログが確認出来ていればAWS IoTのテスト画面にも”Hello World”が
表示されているはずです。
テストプログラムは1分間の間、5秒間隔でメッセージを送るという設定になっていますので
12回送信が行われると終了します。
「上手くいかない場合」
以下の設定を見直してみて下さい。
・wifi設定関連 使用しているアクセスポイントのSSID、暗号キーが
テストプログラム上で正しく設定されているか確認(本ブログ内AB)
・証明書設定関連 AWSから発行された証明書設定が反映されているか
(本ブログ内C)
・トピックの設定 AWS テストにて確認するトピック名が”freertos/demos/echo”
になっているか(本ブログ内D)
〜まとめ〜
今回使用したサンプルプログラムはMQTTという通信プロトコル用いてAWSのクラウドにデータを
送信しています。
MQTTは一度に通信できるデータ量は少ないですが非同期で多対多の通信が可能なので
IoT向けに注目されている通信プロトコルです。
MQTTの基本的な仕組みとして送信側が必ずトピックを指定してメッセージを送信し、
受信側は受信したいトピック指定することで、欲しいメッセージだけを手に入れることができます。
今回AWSのテスト画面にてトピック名を”freertos/demos/echo”と設定しましたが
これはテストプログラム上で定義されている名前で変更可能です。
Topicの後には任意のデータを設定することができます。今回はのテストプログラムでは
”Hello World”に相当する部分です。
つまり今回のテストでは送信側(Renesas RX65N Cloud Kit)がMQTTの仕様に基づき
【トピック】:”freertos/demos/echo”、【データ】:”Hello World”としてデータを送信し
受信側(AWS IoT)はテスト画面で【トピック】:”freertos/demos/echo”の通信内容の
【データ】を画面上に表示するという設定にしていたので、受信する度に”Hello World”が
画面に表示されていたということになります。
今回AWSに対してデータを送信していますがAWSでは様々なサービスを利用して
受け取ったメッセージに対してリアクションを起こすことができます。例えばあるトピックを
受信したら事前に登録したメールアドレスに対してメールを送信する。
メールの内容には対象のトピック以下の【データ】部分を表示するなどです。
ここまで出来るとよりIoT端末らしくなってくるかと思います。
category -BLOG 2020/03/06 12:00