はじめに
FreeRTOSをやりたいのに本や記事が無さすぎる!と嘆いているうちに、Interface4月号にて特集されました。
ただ残念なことに、FreeRTOSデモアプリを起動するまでの手順が、(紙面の都合上?)重要なところをすっ飛ばされており、本だけを見て設定するのは不可能に近いと思われます。GWを犠牲にして環境構築~実行までを行ったので、苦難の道程を共有します。
参考サイト①:https://qiita.com/hisashij/items/2211183a682e4517f7c9
参考サイト②:https://www.youtube.com/watch?v=9fuxXNn0grU (Interface4月号の実演動画)
環境
マイコン:ESP32-DevKitC
環境:Windows10 Home
方法
ESP-IDFのダウンロード
① 下記サイトからESP-IDFをインストールする
https://dl.espressif.com/dl/esp-idf-tools-setup-1.2.exe
FreeRTOSソフトウェアのインストール
① AWSコンソールにログインし、FreeRTOSを選択する
https://aws.amazon.com/jp/
※事前にAWSのアカウントを作成している必要があります。
②AWSマネジメントコンソールの検索バーに「freertos」と入力し、検索結果の「FreeRTOS」にアクセスする。
③FreeRTOS デバイスソフトウェアから「esp32-devkit」と入力。
Connect to AWS IoT - ESP32-DevKitC の行の「クイック接続」を選択する。
④「開始方法」を選択する。
⑤ Connect to AWS IoT - ESP32-DevKitC 画面
FreeRTOSバージョンは最新のままでOK。
ハードウェアプラットフォームの項目から「詳細情報の表示」を選択する
「別のライブラリを追加します」を選択し、追加可能なライブラリを全て追加しておく。※Interface4月号に載っているサンプルプログラム(EX3)はライブラリを追加しないと動かないので注意。
⑥ 作成してダウンロードする
AWS-IoTのモノづくり
下記サイトの「AWS IoTでポリシーを作成」~「AWS IoTのエンドポイントを取得」までを行う。
https://dev.classmethod.jp/articles/raspberry-pi-aws-iot-l-chika/
FreeRTOSコードの修正
①Wi-Fiの登録
...\FreeRTOS\demos\include\aws_clientcredential.h
#define clientcredentialWIFI_SSID "xxxxx"
#define clientcredentialWIFI_PASSWORD "xxxxx"
②FreeRTOSの下記ファイルを修正し、AWS Iotの情報を紐付ける
下記フォルダに、AWS Iot作成時にダウンロードした『Credentials.zip』内の「aws_clientcredential.h」「aws_clientcredential_keys.h」を上書きコピー。
...\FreeRTOS\demos\include
ビルド
ソフトを入れて、環境をいよいよビルドして実行する。
①ビルドファイルの生成
コマンドプロンプトでFreeRTOSフォルダに入る。
cmake -DVENDOR=espressif -DBOARD=esp32_devkitc -DCOMPILER=xtensa-esp32 -GNinja -S . -B build
実行結果
このようなメッセージが表示されれば成功。
buildというフォルダが生成される。
②ビルドして書き込む
PCとESP32を接続した状態で下記コマンドを実行
cmake --build build
cmake --build build --target flash
③モニターする
python vendors\espressif\esp-idf\tools\idf.py monitor
サンプルを確認する
上記手順の③まで行った状態で、AWSIoTを開く。
①AWSIoT > テスト > MQTT テストクライアント を開く
②「トピックをサブスクライブする」のメニューから、トピックのフィルターとして「#」と入力する。
③サブスクリプションの画面に、指定したチャンネル名と指定したメッセージ(デフォルトだと「Hello World」)が表示されたら成功。