ESP-IDFでESP32の開発(windows10で)
ESP32で開発することになったのに、日本語のwindowsの情報がなかなか見つからなかったので、書くことにしました。
英語が分かる方は、下記の公式ページを参考すればいいかと。
ESP32 Get Started
公式のhello worldプログラムを動かすまでを目標にします。
準備
手順1 COMポートのドライバインストール
下記URLから、ダウンロードタブに遷移して、"CP210x Windows Drivers"をダウンロード。
ダウンロード → 解凍 → CP210xVCPInstaller_x64.exeをインストール
ESP32ボードをUSBケーブルで繋げて、COMポートの接続を確認する。
!
上記は、COM3で認識しているのでOK.
手順2 ESP-IDFとtoolsのインストール
下記サイトから、インストーラをダウンロード、インストールする。
ファイル名 : esp-idf-tools-setup-offline-2.12.exe※諸事情があって(単にuser配下だと失敗しただけ)、Dドライブにインストールしました。
ESP-IDFのインストール先:
D:\esp32\esp\esp-idf
IDF tools(IDF_TOOLS_PATH)のインストール先:
D:\esp32\.espressif
しばらくしたら、上記の様に、セットアップが完了しました。
手順3 hello worldのビルド準備
セットアップが終わったので、hello worldをビルドしてみます。
下記のパスにhello_worldがあるので、作業しやすいフォルダにコピーします。
D:\esp32\esp\esp-idf\examples\get-started\hello_world
コピー元 : D:\esp32\esp\esp-idf\examples\get-started\hello_world
コピー先 : D:\esp32\hello_world
ちなみに、ソースコードの中身は以下の通り。
/* Hello World Example
This example code is in the Public Domain (or CC0 licensed, at your option.)
Unless required by applicable law or agreed to in writing, this
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied.
*/
#include <stdio.h>
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_spi_flash.h"
void app_main(void)
{
printf("Hello world!\n");
/* Print chip information */
esp_chip_info_t chip_info;
esp_chip_info(&chip_info);
printf("This is %s chip with %d CPU core(s), WiFi%s%s, ",
CONFIG_IDF_TARGET,
chip_info.cores,
(chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
(chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : "");
printf("silicon revision %d, ", chip_info.revision);
printf("%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024),
(chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
printf("Minimum free heap size: %d bytes\n", esp_get_minimum_free_heap_size());
for (int i = 10; i >= 0; i--) {
printf("Restarting in %d seconds...\n", i);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
printf("Restarting now.\n");
fflush(stdout);
esp_restart();
}
手順4 プロジェクトの設定
下記コマンドを実行するだけ。
cd D:\esp32\hello_world
idf.py set-target esp32
手順5 プロジェクトの設定2
idf.py menuconfig
※"hello_world"では何もせず、"q"で抜けていい。
手順5 プロジェクトのビルド
下記コマンドを実行するだけ。
idf.py build
手順6 ESP32へ書き込む
手順1で、確認したCOMポートを使って書き込みます。
※今回はCOM3
idf.py -p COM3 flash
これで、できるはず。
動作確認
hello worldの実行結果を確認します。
idf.py -p COM3 monitor
下記ログが出力されるのが確認できました。
正常に動いているようです。
I (302) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
Hello world!
This is esp32 chip with 2 CPU core(s), WiFi/BT/BLE, silicon revision 1, 2MB external flash
Minimum free heap size: 291400 bytes
Restarting in 10 seconds...
Restarting in 9 seconds...
Restarting in 8 seconds...
Restarting in 7 seconds...
Restarting in 6 seconds...
Discussion