Skip to content
Hiroaki Hashiguchi edited this page Dec 6, 2019 · 17 revisions

はじめに

  • 本項ではESP32のクライアント認証機能を使ってAWSへ接続する方法を紹介します。
  • ESP32のクライアント認証機能を使うことでチップのRAMの消費量が大幅に削減できます。

事前準備(ハードウェア)

  • PmodUSBUART(シリアル ⇔ USB の変換モジュール):link

事前準備(ソフトウェア)

各ツールのインストール

Pythonのインストール

Python 2.xをインストールしてください。
https://www.python.org/downloads/release/python-2716/

AT application for ESP32のインストール

ダウンロードもしくはCloneしてください。

Flash Download Toolsのインストール

AWSクライアント証明書、秘密鍵情報binデータの作成

環境変数PATHの設定(Windows10環境)

任意のディレクトリからpython.exeを実行するには、python.exeが保存されているディレクトリへPATHを設定しておきます。

  • スタートメニュー -> Windowsシステムツール -> コントロールパネル

  • システムとセキュリティ -> システム

  • システムの詳細設定 -> 環境変数(N)...

  • システム環境変数(S)の Path をクリック -> 編集(I)...

  • 新規(N) -> Pythinをインストールしたディレクトリを入力 -> OK

  • 新規(N) -> Pythinをインストールしたディレクトリの中でScriptsディレクトリを入力 -> OK

pythonの使用

  • スタートメニュー -> Windowsシステムツール -> コマンドプロンプト

  • 事前準備(ソフトウェア)でダウンロードしたAT application for ESP32のzipファイルを右クリック -> すべて展開

  • "python"と入力しEnter -> "exit()"と入力しEnter

  • "cd AT application for ESP32をインストールしたディレクトリ\esp32-at-master\tools"と入力しEnter

  • AWSクライアント証明書(xxx-certificate.pem.crt)、秘密鍵(xxx-private.pem.key)をAT application for ESP32をインストールしたディレクトリ中のtoolsフォルダ内に保存

  • https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/managing-device-certs.html にアクセス後、Amazon ルートCA1 (AmazonRootCA1.pem)をダウンロードし,toolフォルダ内に保存してください

  • コマンドプロンプトで"python AtPKI.py generate_bin -b at_cert.bin cert xxx-certificate.pem.crt"と入力しEnter -> "python AtPKI.py generate_bin -b at_key.bin key xxx-private.pem.key"と入力しEnter -> "python AtPKI.py generate_bin -b at_ca.bin ca AmazonRootCA1.pem"と入力しEnter
    ※xxxはユーザにより異なります

  • コマンドが正しく実行されると、toolsフォルダ内にat_cert.binとat_key.binとat_ca.binが生成されます

Flash Download Toolsとbinデータの移動

  • 事前準備(ソフトウェア)でダウンロードしたFlash Download Toolsのzipファイルを展開

  • 展開したFlash Download Toolsと作成したat_cert.binとat_key.binとat_ca.binをCドライブ直下などパスに2バイト文字や空白が入らない場所に移動
    ※パスに2バイト文字や空白が入っているとFlash Download Toolsが起動できなかったり、うまくデータの書き込みが出来ないことがあります

PCとESP32の接続

  • ESP32へbinを書き込むためには以下のようにPCとESP32を接続します。

  • PmodUSBUARTはESP32へ給電を行うため VCC <-> SYS をジャンパーで接続します

  • PmodUSBUARTは以下の端子を使用します

  • ESP32のBOOTのディップスイッチをONにします

  • ESP32は以下の端子を使用します

  • PmodUSBUART / ESP32 配線表

    PmodUSBUART ----- ESP32
    pin2(RxD) ----- J2 Pin1(TxD)
    pin3(TxD) ----- J2 Pin2(RxD)
    pin5(GND) ----- Pmod Pin5(GND)
    pin6(Vcc) ----- Pmod Pin6(Vcc)

ESP32へbinを書き込む

  • 先ほど移動したFlash Download Toolsフォルダにある実行ファイル(flash_download_tools_vx.x.x.exe)を起動するとCLIが立ち上がります -> ESP32 DownloadToolを選択

  • Flash Download Toolを以下のように設定します
    ① SPIDownload を選択
    ② at_cert.bin の保存フォルダを指定
    ③ メモリアドレスを 0x2a000 と記入
    ④ at_key.bin の保存フォルダを指定
    ⑤ メモリアドレスを 0x2c000 と記入
    ⑥ at_ca.bin の保存フォルダを指定
    ⑦ メモリアドレスを 0x2e000 と記入
    ⑧ SPIのコンフィグを図のように設定
    ⑨ COM を選択
    ⑩ BAUD を 1152000 に設定
    ⑪ ESP32のRSTボタンを押す
    ⑫ START を選択

  • Flash Download Toolに"FINISH"と表示されれば書込み完了です。

ホーム

  1. Home

開発環境

  1. 開発環境を揃える
  2. 開発環境を使う
  3. CS+を使う

チュートリアル

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

AWSの各種サービスを使用する

  1. シャドウを使用しAWSからRX65Nを制御
  2. ElasticSearchを使用しRX65Nに接続されたセンサデータをAWSで可視化
  3. Lambdaを使用しAWS経由でRX65N間のM2M通信

Tracealyzerの活用

  1. Tracealyzerの活用

OTAの活用

  1. OTAの活用

Amazon FreeRTOSのシステムに関する考察

  1. ソフトウェアアーキテクチャ
  2. 機能ブロックとAPIプロトタイプ
  3. RXマイコンにおける実装(システムタイマとソフトウェア割り込み)
  4. スリープ機能
  5. タスク切り替えと割り込み発生時のレイテンシ
  6. ネットワークインタフェースとデバイスドライバの結合
  7. Amazon FreeRTOS Qualification Program
  8. Amazon FreeRTOS ROM/RAM容量考察
  9. Amazon FreeRTOS でFreeRTOS+TCPのみ使う方法
  10. シミュレータで動作させる
  11. 乱数生成

Amazon FreeRTOSの通信性能に関する考察

  1. TCP/IP層の通信性能評価
  2. RX65N内蔵セキュリティIPを活用したSSL/TLS層の通信性能評価
  3. Tracealyzerを用いた通信中のCPU負荷率評価

セキュリティに関する考察

  1. RX65N内蔵セキュリティIP Trusted Secure IP
  2. モノの証明書に紐づく秘密鍵等の重要データをTrusted Secure IPで秘匿する方法
  3. SSL/TLS通信のマスターシークレットをTrusted Secure IPで秘匿する方法
  4. セキュアブート/セキュアアップデートの実現方法
  5. NIST FIPS140-2 CMVPとTrusted Secure IP
  6. Trusted Secure IP と Arm TrustZone
  7. EEMBC SecureMark
  8. Trusted Secure IPの暗号処理性能評価

無線モジュールに関する考察

  1. ESP32

Amazon FreeRTOS 関連外部リンク集

  1. Amazon FreeRTOS
  2. Amazon FreeRTOS の使用開始
  3. Amazon FreeRTOS ドキュメント
    1. Amazon FreeRTOS ユーザーガイド
    2. Amazon FreeRTOS API リファレンス
    3. FreeRTOS カーネルリファレンスマニュアル
    4. FreeRTOS カーネル開発者ガイド
Clone this wiki locally