Настройка ESP-IDF для ESP32
ESP-IDF (Espressif IoT Development Framework) - это официальная среда для разработки от Espressif под ESP32. Сегодня постараемся разобраться, как установить и настроить среду под Windows. Также вы можете воспользоваться официальной документацией на английском языке, которую можно найти тут.

Установка
Установка под windows довольна простая и для этого достаточно скачать и распаковать архив на локальный диск, в моем случае это диск C:\ После распаковки появится каталог msys32 с предварительно подготовленной средой. После этого переходим в него и запускаем программу mingw32.exe.
Откроется окно терминала, где первым делом необходимо создать каталог с именем esp, в нем будут храниться наши проекты и доп. библиотеки. Для этого выполним следующую команду:
mkdir -p ~/esp
Далее переходим в него.
cd ~/esp

Кроме среды разработки (которая содержит программы для компиляции и сборки), также потребуются специальные библиотеки. Их можно скачать из репозитории ESP-IDF. Для этого необходимо клонировать репозиторий с помощью команды:
git clone --recursive https://github.com/espressif/esp-idf.git
Ждем когда процесс завершится.
Теперь необходимо добавить путь к нашему каталогу с библиотеками, чтобы программы сборки и компилятор знал, где искать их. Для того чтобы не вводить его каждый раз вручную, создаем скрипт, который будет делать это за нас, каждый раз при запуске программы. Для этого переходим в каталог C:\msys32\etc\profile.d\ и создаем здесь скрипт с именем export_idf_path.sh (создаем текстовый файл и переименовываем его) Открываем его любым текстовым редактором и добавляем строчку
export IDF_PATH="C:\\msys32\\home\\userName\\esp\\esp-idf"
где userName это имя пользователя, его необходимо заменить на ваше, в моем случаи это Roman. Сохраняем файл, закрываем программу и запускаем снова. Проверяем прописался наш путь командой:
printenv IDF_PATH
Если все сделали верно, то в консоли появится наш путь.

Далее выполняем команду для установки пакетов Python. Пакеты, необходимые для ESP-IDF, находятся в файле $IDF_PATH/requirements.txt
python -m pip install --user -r $IDF_PATH/requirements.txt
Первый проект
В каталоге \esp-idf\examples\ также можно найти различные примеры кода для работы с модулем, один из таких примеров это hello world, который выводит в консоль информацию о модуле ESP32 и через 10 сек перезагружает его. Для это нужно перейти в каталог esp и скопировать в него пример, выполнив команду:
cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world .
Далее переходим в папку с примером
cd ~/esp/hello_world
Доступ ко всем параметрам конфигурации, для каждого проекта, осуществляется из файла sdkconfig. Для того чтобы его создать (если его нет в папки с проектом) или изменить его параметры необходимо воспользоваться командой:
make menuconfig

В данном окне достаточно много различных параметров по настройки, как самой среды, так и установки различной конфигурации самого модуля, но сейчас нас интересует пункт Serial flasher config ---> переходим в него

Здесь необходимо изменить порт для подключения к модулю (в моем случае это COM1) и размер флеш памяти (обычно это 4 MB) остальные настройки оставляем без изменений. Чтобы вернуться назад необходимо нажать два раза клавишу
Сборка проекта
Сборка проекта и загрузкой прошивки выполняется командой:
make flash
Первая сборка занимает относительно долгое время, которое зависит от производительности вашего ПК. После того как проект будет собран, если все пройдет без ошибок, прошивка автоматически будет загружена в модуль и мы увидим примерно такую картинку.

Для того чтобы включить вывод лога в окно терминала необходимо выполнить команду:
make monitor
Выход из этого режима осуществляется нажатием комбинации клавиш ctrl + ]
При отладки проекта, чтобы каждый раз после сборки не включать постоянно монитор, можно сразу выполнить команду, которая после сборки проекта будет автоматически запускать вывод лога в консоль.
make flash monitor
На этом всё.)
В заключении хотелось бы добавить что работать с данной средой можно через PlatformIO , в данном случае установка и настрой сводится к пару кликов мышки.