Прошивка MicroPython с помощью esptool.py на ESP32 и ESP8266
В этом руководстве показано, как прошить прошивку MicroPython на платы ESP32/ESP8266 с помощью esptool.py. Он работает на Windows, Mac OS X и Linux. Официальную документацию можно найти на странице esptool.py на GitHub.
Совет: для более простого способа прошивки ESP32/ESP8266 с MicroPython рекомендуем прочитать руководство Прошивка MicroPython с помощью uPyCraft IDE. Однако недавно мы получили комментарии от читателей о проблемах с установкой/использованием uPyCraft IDE. По этой причине мы публикуем альтернативный способ с использованием программы esptool.py.
Установка esptool.py на ваш компьютер
Для работы с esptool.py вам потребуется Python 2.7, Python 3.4 или более новая версия Python, установленная в вашей системе. Мы рекомендуем использовать `Python 3.7.X <https://www.python.org/downloads/>`_, поэтому перейдите на сайт Python и установите его на ваш компьютер.
После установки Python 3 откройте окно терминала и установите последнюю стабильную версию esptool.py с помощью pip:
pip install esptool
Примечание: в некоторых установках Python эта команда может не сработать, и вы получите ошибку. В этом случае попробуйте установить esptool.py одной из следующих команд:
pip3 install esptool
python -m pip install esptool
pip2 install esptool
Setuptools также является обязательным компонентом, который может быть недоступен во всех системах по умолчанию. Вы можете установить его следующей командой:
pip install setuptools
После установки esptool.py будет установлен в стандартную директорию исполняемых файлов Python, и вы сможете запускать его командой esptool.py. В окне терминала выполните следующую команду:
python -m esptool
Если установка прошла успешно, должно отобразиться похожее сообщение (независимо от вашей операционной системы):
После установки esptool.py на ваш компьютер вы можете легко прошить платы ESP32 или ESP8266 прошивкой MicroPython. Этот пост разделён на две части — читайте Часть 1 или Часть 2 в зависимости от вашей платы:
Часть 1 — ESP32
Часть 2 — ESP8266
Примечание: после установки прошивки MicroPython на ESP32 или ESP8266 вы можете вернуться к использованию Arduino IDE. Для этого просто загрузите код через Arduino IDE. Затем, если вы снова захотите использовать MicroPython, вам нужно будет заново прошить прошивку MicroPython.
[Часть 1 — ESP32] Загрузка и прошивка MicroPython на ESP32
Чтобы скачать последнюю версию прошивки MicroPython для ESP32, перейдите на страницу загрузки MicroPython и прокрутите до раздела ESP32.
Вы должны увидеть похожую веб-страницу (см. рисунок ниже) со ссылками для загрузки .bin-файлов. Скачайте последний стабильный релиз. На момент написания этой статьи последний релиз — v1.17 (2021-02-02).bin. Не скачивайте Nightly-сборки — эти версии нестабильны и рекомендуются только для продвинутых программистов.
Примечание: если вы используете другую плату (например, PyBoard, WiPy или другую), перейдите на страницу загрузки MicroPython и скачайте подходящую прошивку для вашей платы.
Определение имени последовательного порта
Определение имени последовательного порта немного различается в разных операционных системах, поэтому для простоты мы рекомендуем найти имя последовательного порта ESP через Arduino IDE. Выполните следующие шаги:
Подключите плату к компьютеру
Откройте Arduino IDE
Перейдите в Tools > Port
Запишите имя последовательного порта ESP32 (в нашем случае это COM7)
Закройте Arduino IDE
Важно: если вы подключили плату ESP32 к компьютеру, но не можете найти доступный порт ESP32 в Arduino IDE, это может быть одна из двух проблем: 1. отсутствуют USB-драйверы или 2. USB-кабель без проводов данных.
1. Если вы не видите COM-порт ESP, это часто означает, что у вас не установлены USB-драйверы. Внимательно посмотрите на чип рядом с регулятором напряжения на плате и проверьте его название.
Плата ESP32 DEVKIT V1 DOIT использует чип CP2102.
Найдите в Google ваш конкретный чип, чтобы найти драйверы и установить их в вашей операционной системе.
Вы можете скачать драйверы CP2102 на сайте Silicon Labs.
После установки перезапустите Arduino IDE, и вы должны увидеть последовательный порт в меню Tools > Port.
2. Если драйверы установлены, но вы не видите своё устройство, убедитесь, что вы используете USB-кабель с проводами данных.
USB-кабели от повербанков часто не имеют проводов данных (они только для зарядки). Поэтому ваш компьютер никогда не установит последовательное соединение с ESP32. Использование правильного USB-кабеля должно решить проблему.
Поиск .bin-файла MicroPython
После загрузки .bin-файла ESP32 он должен находиться в папке Downloads. В окне терминала перейдите в папку Downloads с помощью команды cd:
cd Downloads
Выведите список всех файлов в папке Downloads, чтобы убедиться, что .bin-файл находится именно там. В Windows используйте:
dir
В Mac OS X или Linux выполните следующую команду:
ls
Как видно на скриншоте выше, .bin-файл ESP32 находится в папке Downloads: esp32-20190113-v1.9.4-779-g5064df207.bin.
Очистка флеш-памяти ESP32
Перед прошивкой MicroPython необходимо очистить флеш-память ESP32. Подключив ESP32 к компьютеру, удерживайте кнопку «BOOT/FLASH» на плате ESP32:
Примечание: если на вашей плате нет кнопки BOOT/FLASH, она, вероятно, перейдёт в режим прошивки автоматически.
Удерживая кнопку «BOOT/FLASH», выполните следующую команду для очистки флеш-памяти ESP32:
python -m esptool --chip esp32 erase_flash
Когда начнётся процесс «Erasing», вы можете отпустить кнопку «BOOT/FLASH». Через несколько секунд флеш-память ESP32 будет очищена.
Примечание: если после сообщения «Connecting …» продолжают появляться новые точки, это означает, что ESP32 не находится в режиме прошивки. Вам нужно повторить все описанные выше шаги и снова удерживать кнопку «BOOT/FLASH», чтобы убедиться, что ESP32 перешёл в режим прошивки и успешно завершил процесс очистки.
Прошивка MicroPython на ESP32 с помощью esptool.py
После очистки флеш-памяти ESP32 вы наконец можете прошить прошивку MicroPython. Вам потребуется имя последовательного порта (COM7 в нашем случае) и расположение .bin-файла ESP32. Замените следующую команду вашими данными:
python -m esptool --chip esp32 --port <serial_port> write_flash -z 0x1000 <esp32-X.bin>
В нашем случае команда выглядит так:
python -m esptool --chip esp32 --port COM7 write_flash -z 0x1000 esp32-20190113-v1.9.4-779-g5064df207.bin
Удерживайте кнопку «BOOT/FLASH» перед выполнением команды прошивки. Через несколько секунд вы должны увидеть следующее:
Ваш ESP32 успешно прошит прошивкой MicroPython!
Примечание: если вы получили ошибку при попытке прошивки, выполните команду снова и убедитесь, что удерживаете кнопку «BOOT/FLASH» на ESP32.
[Часть 2 — ESP8266] Загрузка и прошивка MicroPython на ESP8266
Чтобы скачать последнюю версию прошивки MicroPython для ESP8266, перейдите на страницу загрузки MicroPython и прокрутите до раздела ESP8266.
Вы должны увидеть похожую веб-страницу (см. рисунок ниже) со ссылками для загрузки .bin-файлов. Скачайте последний стабильный релиз. На момент написания этой статьи последний релиз — v1.17 (2021-02-02).bin. Не скачивайте Nightly-сборки — эти версии нестабильны и рекомендуются только для продвинутых программистов.
Примечание: если вы используете другую плату (например, PyBoard, WiPy или другую), перейдите на страницу загрузки MicroPython и скачайте подходящую прошивку для вашей платы.
Определение имени последовательного порта
Определение имени последовательного порта немного различается в разных операционных системах, поэтому для простоты мы рекомендуем найти имя последовательного порта ESP через Arduino IDE. Выполните следующие шаги:
Подключите плату к компьютеру
Откройте Arduino IDE
Перейдите в Tools > Port
Запишите имя последовательного порта ESP8266 (в нашем случае это COM4)
Закройте Arduino IDE
Важно: если вы подключили плату ESP8266 к компьютеру, но не можете найти доступный порт ESP8266 в Arduino IDE, это может быть одна из двух проблем: 1. отсутствуют USB-драйверы или 2. USB-кабель без проводов данных.
1. Если вы не видите COM-порт ESP, это часто означает, что у вас не установлены USB-драйверы. Внимательно посмотрите на чип рядом с регулятором напряжения на плате и проверьте его название.
Плата ESP8266 ESP-12E NodeMCU использует чип CP2102.
Найдите в Google ваш конкретный чип, чтобы найти драйверы и установить их в вашей операционной системе.
Вы можете скачать драйверы CP2102 на сайте Silicon Labs.
После установки перезапустите Arduino IDE, и вы должны увидеть последовательный порт в меню Tools > Port.
2. Если драйверы установлены, но вы не видите своё устройство, убедитесь, что вы используете USB-кабель с проводами данных.
USB-кабели от повербанков часто не имеют проводов данных (они только для зарядки). Поэтому ваш компьютер никогда не установит последовательное соединение с ESP8266. Использование правильного USB-кабеля должно решить проблему.
Поиск .bin-файла MicroPython
После загрузки .bin-файла ESP8266 он должен находиться в папке Downloads. В окне терминала перейдите в папку Downloads с помощью команды cd:
cd Downloads
Выведите список всех файлов в папке Downloads, чтобы убедиться, что .bin-файл находится именно там. В Windows используйте:
dir
В Mac OS X или Linux выполните следующую команду:
ls
Как видно на скриншоте выше, .bin-файл ESP8266 находится в папке Downloads: esp8266-20180511-v1.9.4.bin.
Очистка флеш-памяти ESP8266
Перед прошивкой MicroPython необходимо очистить флеш-память ESP8266. Подключив ESP8266 к компьютеру, удерживайте кнопку «BOOT/FLASH» на плате ESP8266:
Удерживая кнопку «BOOT/FLASH», выполните следующую команду для очистки флеш-памяти ESP8266:
python -m esptool --chip esp8266 erase_flash
Когда начнётся процесс «Erasing», вы можете отпустить кнопку «BOOT/FLASH». Через несколько секунд флеш-память ESP8266 будет очищена.
Примечание: если после сообщения «Connecting …» продолжают появляться новые точки, это означает, что ESP8266 не находится в режиме прошивки. Вам нужно повторить все описанные выше шаги и снова удерживать кнопку «BOOT/FLASH», чтобы убедиться, что ESP8266 перешёл в режим прошивки и успешно завершил процесс очистки.
Прошивка MicroPython на ESP8266 с помощью esptool.py
После очистки флеш-памяти ESP8266 вы наконец можете прошить прошивку MicroPython. Вам потребуется имя последовательного порта (COM7 в нашем случае) и расположение .bin-файла ESP8266. Замените следующую команду вашими данными:
python -m esptool --chip esp8266 --port <serial_port> write_flash --flash_mode dio --flash_size detect 0x0 <esp8266-X.bin>
В нашем случае окончательная команда выглядит так:
python -m esptool --chip esp8266 --port COM4 write_flash --flash_mode dio --flash_size detect 0x0 esp8266-20180511-v1.9.4.bin
Удерживайте кнопку «BOOT/FLASH» перед выполнением команды прошивки. Через несколько секунд вы должны увидеть следующее:
Ваш ESP8266 успешно прошит прошивкой MicroPython!
Примечание: если вы получили ошибку при попытке прошивки, выполните команду снова и убедитесь, что удерживаете кнопку «BOOT/FLASH» на ESP8266.
Устранение неполадок
Если при попытке выполнить команду esptool вы получаете ошибку разрешения, откройте командную строку от имени администратора (или используйте sudo в Linux).
Заключение
Надеемся, это руководство было для вас полезным. Теперь на вашем ESP32/ESP8266 должна быть прошита прошивка MicroPython. Чтобы узнать больше о MicroPython, прочитайте: Начало работы с MicroPython на ESP32 и ESP8266.