Andrey L
Member
Для работы с ESP32 вначале мы установим «тулчан» от производителя, научимся компилировать и прошивать при помощи терминала. Потом настроем Eclipse IDE и все операции сделаем там.
Инструкции взяты с сайта Get Started — ESP-IDF Programming Guide v4.0-dev-728-g826ff7186 documentation.
Скачиваем и распаковываем «тулчан»
На данный момент последний «тулчан» готов к скачиванию по этому https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20181001.zip адресу.
Распакуем содержимое архива прямо на диск С:, чтобы всё начиналось с адреса «C:\msys32».
Теперь заходим в эту папку и запускаем там «mingw32.exe» (C:\msys32\mingw32.exe). Откроется окно терминала «тулчана».
В терминале вводим команду «mkdir -p ~/esp» (создаётся новая папка «esp»). После зайдём в эту папку, введя в терминале команду «cd esp/».
Скачаем ESP-IDF
Мы уже находимся в терминале в папке «~/esp», теперь загрузим туда «ESP-IDF» командой в терминале «git clone --recursive https://github.com/espressif/esp-idf.git».
Настраиваем переменную IDF_PATH
В папке «C:/msys32/etc/profile.d/» создаём новый файл «export_idf_path.sh». В этом файле сохраняем строчку «export IDF_PATH="C:/msys32/home/user-name/esp/esp-idf"». (Не забудьте поменять там user-name на имя вашего пользователя). После чего перезапустите терминал.
В перезапущенном терминале проверяете значение заданной переменной командой «printenv IDF_PATH», должен отобразиться путь, который мы только что указали.
Теперь скачаем нужные пакеты Python
В терминале вводим «python -m pip install --user -r $IDF_PATH/requirements.txt». Проверить установку можно командой «python --version».
Первый проект или Hello World
Используем уже готовый «привет мир» из примеров, которые дают вместе с «ESP-IDF».
В терминале сначала вводим первую команду «cd ~/esp» (переходим в нужный каталог).
Там мы копируем нужный проект командой «cp -r $IDF_PATH/examples/get-started/hello_world .».
После чего мы заходим внутрь нового католога «cd hello_world/». (Или же «cd ~/esp/hello_world»).
Определение COM-порта.
Возможно вам для ESP32 понадобится установить драйвер, его можно будет скачать с сайта Establish Serial Connection with ESP32 — ESP-IDF Programming Guide v4.0-dev-728-g826ff7186 documentation
Теперь откроем «Device Manager», для этого нажмём комбинацию клавиш Windows+R, и в командную строку вводим «devmgmt.msc» и нажимаем на кнопку «OK».
После этого откроется окно «Device Manager», там мы ищем рубрику «Ports (COM & LPT)», открываем её. Там мы смотрим через какой COM-порт было подключено устройство. У меня это COM11, у вас может быть что-то другое.
Настройка
Когда мы определили номер COM-порта, можно внести его в настройки.
Напоминаю, мы находимся в папке «~/esp/hello_world». И в терминале вводим команду «make menuconfig».
Вскоре в терминале откроется менюшка, там мы переходим по «Serial flasher config» → «Default serial port», в той строчке вводим COM-порт, через который подсоединилась ESP32. У меня это «COM11».
После чего выбираем «Exit» два раза, после чего выбираем «Yes», чтобы сохранить изменения.
Для сохранения данных понадобится некое время.
Компиляция и прошивка
Это делается командой в терминале «make flash». (Не забудьте перегрузить ESP32 в режиме прошивки.)
Мониторинг
Так же есть команда в терминале, чтобы посмотреть, что выводит модуль через COM-порт.
Эта команда - «make monitor».
Чтобы выйти из этого режима нажмите клавиши Ctrl+].
Мониторинг при помощи PUTTY
Запускаем PUTTY. В строке «Connection type:» выбираем «Serial». В поле «Serial line» вводим «COM11» (у вас скорее всего будет дрогой COM-порт), а в поле «Speed» вводим «115200», после чего жмём на кнопку «Open».
Возможные ошибки при прошивке
«A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header» - вы забыли перезагрузить ESP32 в режим прошивке.
«serial.serialutil.SerialException: could not open port 'COM11': WindowsError(2, 'Система не может найти указанный файл.')» - по данному COM-порту не удалось найти ESP32. (Проверьте в «Device Manager», через который COM-порт подсоединён модуль.)
«serial.serialutil.SerialException: could not open port 'COM11': WindowsError(5, 'Доступ запрещён')» - с модулем уже установлено соединение другой программой (PUTTY, другой терминал с мониторингом). Проверьте все запущенные программы.
Инструкции взяты с сайта Get Started — ESP-IDF Programming Guide v4.0-dev-728-g826ff7186 documentation.
Скачиваем и распаковываем «тулчан»
На данный момент последний «тулчан» готов к скачиванию по этому https://dl.espressif.com/dl/esp32_win32_msys2_environment_and_toolchain-20181001.zip адресу.
Распакуем содержимое архива прямо на диск С:, чтобы всё начиналось с адреса «C:\msys32».
Теперь заходим в эту папку и запускаем там «mingw32.exe» (C:\msys32\mingw32.exe). Откроется окно терминала «тулчана».
В терминале вводим команду «mkdir -p ~/esp» (создаётся новая папка «esp»). После зайдём в эту папку, введя в терминале команду «cd esp/».
Скачаем ESP-IDF
Мы уже находимся в терминале в папке «~/esp», теперь загрузим туда «ESP-IDF» командой в терминале «git clone --recursive https://github.com/espressif/esp-idf.git».
Настраиваем переменную IDF_PATH
В папке «C:/msys32/etc/profile.d/» создаём новый файл «export_idf_path.sh». В этом файле сохраняем строчку «export IDF_PATH="C:/msys32/home/user-name/esp/esp-idf"». (Не забудьте поменять там user-name на имя вашего пользователя). После чего перезапустите терминал.
В перезапущенном терминале проверяете значение заданной переменной командой «printenv IDF_PATH», должен отобразиться путь, который мы только что указали.
Теперь скачаем нужные пакеты Python
В терминале вводим «python -m pip install --user -r $IDF_PATH/requirements.txt». Проверить установку можно командой «python --version».
Первый проект или Hello World
Используем уже готовый «привет мир» из примеров, которые дают вместе с «ESP-IDF».
В терминале сначала вводим первую команду «cd ~/esp» (переходим в нужный каталог).
Там мы копируем нужный проект командой «cp -r $IDF_PATH/examples/get-started/hello_world .».
После чего мы заходим внутрь нового католога «cd hello_world/». (Или же «cd ~/esp/hello_world»).
Определение COM-порта.
Возможно вам для ESP32 понадобится установить драйвер, его можно будет скачать с сайта Establish Serial Connection with ESP32 — ESP-IDF Programming Guide v4.0-dev-728-g826ff7186 documentation
Теперь откроем «Device Manager», для этого нажмём комбинацию клавиш Windows+R, и в командную строку вводим «devmgmt.msc» и нажимаем на кнопку «OK».
После этого откроется окно «Device Manager», там мы ищем рубрику «Ports (COM & LPT)», открываем её. Там мы смотрим через какой COM-порт было подключено устройство. У меня это COM11, у вас может быть что-то другое.
Настройка
Когда мы определили номер COM-порта, можно внести его в настройки.
Напоминаю, мы находимся в папке «~/esp/hello_world». И в терминале вводим команду «make menuconfig».
Вскоре в терминале откроется менюшка, там мы переходим по «Serial flasher config» → «Default serial port», в той строчке вводим COM-порт, через который подсоединилась ESP32. У меня это «COM11».
После чего выбираем «Exit» два раза, после чего выбираем «Yes», чтобы сохранить изменения.
Для сохранения данных понадобится некое время.
Компиляция и прошивка
Это делается командой в терминале «make flash». (Не забудьте перегрузить ESP32 в режиме прошивки.)
Мониторинг
Так же есть команда в терминале, чтобы посмотреть, что выводит модуль через COM-порт.
Эта команда - «make monitor».
Чтобы выйти из этого режима нажмите клавиши Ctrl+].
Мониторинг при помощи PUTTY
Запускаем PUTTY. В строке «Connection type:» выбираем «Serial». В поле «Serial line» вводим «COM11» (у вас скорее всего будет дрогой COM-порт), а в поле «Speed» вводим «115200», после чего жмём на кнопку «Open».
Возможные ошибки при прошивке
«A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header» - вы забыли перезагрузить ESP32 в режим прошивке.
«serial.serialutil.SerialException: could not open port 'COM11': WindowsError(2, 'Система не может найти указанный файл.')» - по данному COM-порту не удалось найти ESP32. (Проверьте в «Device Manager», через который COM-порт подсоединён модуль.)
«serial.serialutil.SerialException: could not open port 'COM11': WindowsError(5, 'Доступ запрещён')» - с модулем уже установлено соединение другой программой (PUTTY, другой терминал с мониторингом). Проверьте все запущенные программы.