環境準備
Renesas RX72N Envision KitでAWSに"Hello World"を送信してAWS側で送信されたメッセージを確認してみました。
今回はAWS IoT Coreで必要な設定を済ませてから、Renesasの統合開発環境e² studioでMQTTデモプログラムを作成/起動します。
準備した環境は以下の通りです。
- RX72N Envision Kit (評価ボード)
- e² studio 2021-07 (統合開発環境)
- GCC for Renesas 8.3.0.202102-GNURX Windows (RXマイコン用コンパイラ)
AWS IoT Coreの設定
まずはAWS IoT CoreでRX72N Envision Kitを登録して、AWSにRX72N Envision Kitが接続できるようにします。
AWSにログインして、AWSマネジメントコンソールを開きます。
その後、「すべてのサービス」->「IoT」->「IoT Core」をクリックしてAWS IoT Coreの設定画面を開きます。
ポリシーの作成
AWSと通信するための接続許可等を定義するポリシーを作成します。
「安全性」->「ポリシー」->「作成」をクリックして、ポリシーの作成画面を開きます。
ポリシーの名前を入力したら「アドバンストモード」をクリックして、下記のコードをエディタ画面に貼り付けます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:Connect",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "iot:Publish",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "iot:Subscribe",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "iot:Receive",
"Resource": "*"
}
]
}
コードを貼り付けたら以下のようになります。
貼り付けたら「作成」をクリックして、ポリシーの作成を完了します。
モノの作成
次にRX72N Envision KitをAWSに登録します。
「管理」->「モノ」->「モノを作成」をクリックして、モノの作成画面を開きます。
「1つのモノを作成」にチェックを入れたら「次へ」をクリックします。
次の画面で「モノの名前」を入力して更に「次へ」をクリックします。
(ほかにも色々設定できますが、特に設定は行わず、このまま進めます)
更に次の画面で「新しい証明書を自動生成 (推奨)」にチェックを入れて「次へ」をクリックします。
アタッチするポリシーを選択する画面で、作成したポリシーを選択して「モノを作成」をクリックします。
「証明書とキーをダウンロード」で「証明書」、「プライベートキー」、「パブリックキー」をダウンロードしておきます。
(ここでダウンロードする「証明書」、「プライベートキー」は後で使用します)
Renesas e² studioの起動およびプログラムの作成
AWS IoT Coreの設定が完了したら次にe² studioを起動して、"Hello World"を送信するプログラムを作成します。
FreeRTOSプロジェクトの作成
e² studioを起動したら、「ファイル」から「新規」->「Renesas C/C++ Project」->「Renesas RX」をクリックします。
「GCC for Renesas RX C/C++ Executable Project」を選択して「次へ」をクリックします。
(今回はGCCコンパイラを使用するので、こちらを選択します)
プロジェクトの名前を入力したら「次へ」をクリックします。
次の画面で、以下のようにFreeRTOS (with IoT libraries) + RX72N Envision Kitを使用するプロジェクトに設定します。
(RX72N Envision Kitはボードに実装されたE2 Liteをデバッグに使用するので、E2 Liteを選択しておきます)
(FreeRTOSは2021/08時点で最新版であるv202002.00-rx-1.0.5を使用します)
設定が完了したら、「終了」をクリックしてFreeRTOSプロジェクトを作成します。
AWS接続情報の設定
プロジェクトの作成が完了したら、プロジェクトにAWS接続情報を設定します。
「application_code」->「demos」->「include」から「aws_clientcredential.h」をダブルクリックで開きます。
「clientcredentialMQTT_BROKER_ENDPOINT」にエンドポイント名を入力します。
(エンドポイント名はIoT Coreの「設定」->「デバイスデータエンドポイント」から確認することができます)
「clientcredentialIOT_THING_NAME」に作成したモノの名前を入力します。
次に「証明書」と「プライベートキー」の情報をプロジェクトに設定します。
以下の場所に格納されている「CertificateConfigurator.html」をダブルクリックで開きます。
C:\Users%username%.eclipse\com.renesas.platform_download\RTOS\afr-v202002.00-rx-1.0.5\tools\certificate_configuration
ブラウザが開くので、「Certificate PEM file」にAWSからダウンロードした「証明書」を指定しています。
「Private Key PEM file」にAWSからダウンロードした「プライベートキー」を指定します。
「Generate and save aws_clientcredential_keys.h」をクリックしてヘッダーファイルを適当な場所に保存します。
ダウンロードしたヘッダーファイルをe² studio上の「application_code」->「demos」->「include」フォルダにドラッグアンドドロップしてコピーします。
FreeRTOSプロジェクトのビルドおよび起動
まずRX72N Envision KitのECN1コネクタとPCをUSBケーブルを介して接続して、Ethernetケーブルを介して使用しているルーターにRX72N Envision Kitを接続しておきます。
(ルーターのDHCP機能を有効にしておいてください、正常にプログラムがビルドできません)
e² studio上部のトンカチマークをクリックして、FreeRTOSプロジェクトをビルドします。
ビルドログでエラーメッセージが表示されなければビルド完了です。
その後、同じくe² studio上部の虫マーク横の下三角マークをクリックして、「デバッグの構成」をクリックします。
下記のように、メインクロック/EXTAL周波数、接続タイプ、エミュレータからの電源供給のデバッグ設定を変更します。
設定が完了したら画面下部のデバッグをクリックして、プログラムのダウンロード/デバッグを開始します。
デバッグ開始後、下記の画面でプログラムが停止するので、e² studio上部のRestartボタンを1回押して、main関数内でプログラムが停止するのを確認します。
AWS IoT Coreで送信されたメッセージの確認
AWS側でRX72N Envision Kitが送信した"Hello World"メッセージを確認できるように設定を行います。
IoT Core左側のメニューから「テスト」をクリックします。
トピックのフィルターに「#」を入力して「サブスクライブ」をクリックします。
(「#」はワイルドカードでこの設定ではすべてのトピックを表示することを意味します)
e² studio上部の再開ボタンを押してプログラムを実行します。
メッセージの送信が開始されるので、以下のようにAWS側でメッセージを受信していることを確認します。
さいごに
RX72N Envision Kitを使用してAWSに"Hello World"メッセージを送信するまでの手順を紹介しました。
今回は紹介しませんでしたが、TeraTermを使用すればFreeRTOSの実行ログを確認しながらデバッグを行えるので便利です。