シャドウを使用しAWSからRX65Nを制御 - renesas-rx/amazon-freertos GitHub Wiki

チュートリアルを完了する

  1. デバイスをAWS IoTに登録する
  2. Amazon FreeRTOSをダウンロードする
  3. Amazon FreeRTOSを設定する
  4. Amazon FreeRTOSを実行し、RX65NをAWS IoTに接続する

シャドウのサンプルプログラムの動作確認を行う

動作させるサンプルプログラムの変更

  • e2 studio のプロジェクトエクスプローラーから、aws_demos -> application_code -> common_demos -> source -> aws_demo_runner.cを開く

  • aws_demo_runner.cの以下のソースコードを変更する
// aws_demo_runner.c[変更前]
/* extern void vStartDeviceDefenderDemo( void ); */
/* extern void vStartGreenGrassDiscoveryTask( void ); */
extern void vStartMQTTEchoDemo( void );
/* extern void vStartOTAUpdateDemoTask( void ); */
/* extern void vStartShadowDemoTasks( void ); */
/* extern void vStartSimpleTCPServerTasks( void ); */
/* extern void vStartSubpubDemoTasks( void ); */
/* extern void vStartTCPEchoClientTasks_SeparateTasks( void ); */
/* extern void vStartTCPEchoClientTasks_SingleTasks( void ); */

/*-----------------------------------------------------------*/

/**
 * @brief Runs demos in the system.
 */
void DEMO_RUNNER_RunDemos( void )
{
    /* vStartDeviceDefenderDemo(); */
    /* vStartGreenGrassDiscoveryTask(); */
    vStartMQTTEchoDemo();
    /* vStartOTAUpdateDemoTask(); */
    /* vStartShadowDemoTasks(); */
    /* vStartSimpleTCPServerTasks(); */
    /* vStartSubpubDemoTasks(); */
    /* vStartTCPEchoClientTasks_SeparateTasks(); */
    /* vStartTCPEchoClientTasks_SingleTasks(); */
}
// aws_demo_runner.c[変更後]
/* extern void vStartDeviceDefenderDemo( void ); */
/* extern void vStartGreenGrassDiscoveryTask( void ); */
/* extern void vStartMQTTEchoDemo( void ); */
/* extern void vStartOTAUpdateDemoTask( void ); */
extern void vStartShadowDemoTasks( void );
/* extern void vStartSimpleTCPServerTasks( void ); */
/* extern void vStartSubpubDemoTasks( void ); */
/* extern void vStartTCPEchoClientTasks_SeparateTasks( void ); */
/* extern void vStartTCPEchoClientTasks_SingleTasks( void ); */

/*-----------------------------------------------------------*/

/**
 * @brief Runs demos in the system.
 */
void DEMO_RUNNER_RunDemos( void )
{
    /* vStartDeviceDefenderDemo(); */
    /* vStartGreenGrassDiscoveryTask(); */
    /* vStartMQTTEchoDemo(); */
    /* vStartOTAUpdateDemoTask(); */
    vStartShadowDemoTasks();
    /* vStartSimpleTCPServerTasks(); */
    /* vStartSubpubDemoTasks(); */
    /* vStartTCPEchoClientTasks_SeparateTasks(); */
    /* vStartTCPEchoClientTasks_SingleTasks(); */
}
  • 下記ファイルを解凍して ${base_folder}\demos\common\shadowaws_shadow_lightbulb_on_off.c に上書き

rx65n_cloud_kit_shadow_demo.zip

プロジェクトのビルド

  • プロジェクト -> すべてをビルド -> 0 errors を確認

IoT Core コントロールパネルで RX65N からのシャドウステータスのアップデートを待ち受ける

RX65N に Amazon FreeRTOS をダウンロード

  • e2 studio 画面左上の虫アイコンを押す

  • パースペクティブの切り替えの確認は「はい」を選択

  • PowerON_Reset_PC の下側に緑色の帯(プログラムカウンタの現在位置)が表示されることを確認

RX65N で Amazon FreeRTOSを実行

  • Restart ボタンを押す

  • main() にブレークすることを確認

  • Restart ボタンを押す

IoT Core コントロールパネル で RX65N からの シャドウステータスを確認する

  • シャドウステータスがアップデートされていることを確認

  • Renesas RX65N Cloud Kit 上のLED1が点灯することを確認

IoT Core コントロールパネル から RX65N を制御する


  • シャドウドキュメント の 編集 を押す

  • シャドウステータス の編集画面で以下のように シャドウステータス を変更する

シャドウステータス(変更前)

{
  "reported": {
    "Shd-IOT-0": "red"
  }
}

シャドウステータス(変更後)

{
  "desired": {
    "Shd-IOT-0": "green"
  },
  "reported": {
    "Shd-IOT-0": "red"
  }
}
  • 保存 を押す

  • シャドウステータス の reported がアップデートされていることを確認

  • RX65N Cloud Kit 上の LED1 が消灯し LED2 が点灯することを確認

参考

AWS IoT 用の Device Shadow サービス