このページの先頭へ

想像から創造へのチャレンジ

RX65N Cloud Kit 第4回

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



ホーム RSS購読 サイトマップ
会社情報 事業内容 採用情報 アクセス お問い合わせ BLOG