25 февраля 2023 г.
1454

Работа в PlatformIO

PlatformIO - это IDE для написания программ к микроконтроллерам, таких как arduino, esp и других, и их программирования.

Установка PlatformIO IDE

Для работы в PlatformIO IDE нужно установить соответствующие расширение в vs code. После установки слева появится значок PlatformIO. При нажатии на него откроется интерфейс IDE.

    В меню слева есть несколько разделов:
  • Home - быстрый доступ к некоторым опциям;
  • Project - добавление каталога с проектом, создание нового проекта, открытие уже созданного;
  • Inspect - построение отчета об использовании памяти;
  • Libraries - поиск, установка, удаление библиотек;
  • Boards - список поддерживаемых микроконтроллеров;
  • Platforms - платформы;
  • Devices - список подключенных устройств, можно увидеть к какому com-порту подключено устройство.

Создание проекта

Для создания проекта нужно перейти в Home или Project и нажать Create New Project. В открывшемся окне ввести название проекта, выбрать board, в случае с esp32 нужно выбрать Espressif ESP32 Dev Module, в поле Framework указать Arduino. Можно снять галку Location и выбрать место, в котором будет создан проект. После нажатия кнопки Finish будет создан проект.

Настройки проекта указываются в файле platformio.ini, изначально в него записана параметры, которые были указаны при создании проекта
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
Можно добавить еще несколько параметров, точкой с запятой обозначается комментарий
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
upload_port = COM18       ;порт, по которому подключен микроконтроллер к компьютеру, для загрузки прошивки
upload_speed = 115200     ;скорость загрузки прошивки
monitor_speed = 115200    ;скорость обмена данными с serial monitor
monitor_port = COM18      ;порт, по которому подключен микроконтроллер к компьютеру, для обмена данными с serial monitor

lib_extra_dirs = C:\platformio_libs   ;каталог с библиотеками 

В папке src находится файл main.cpp, в котором пишется код прошивки.

Для прошивки нужно подключить контроллер по usb к компьютеру, на вкладке Devices можно посмотреть к какому com-порту подключено устройство и прописать его в platformio.ini. Прошивка осуществляется по кнопке Upload в левом нижнем углу окна vs code.

Библиотеки

Если к проекту нужно подключить дополнительные библиотеки, которых нет в фреймворке, то нужно либо перечислить их, либо указать путь к ним в файле platformio.ini.
С помощью lib_deps указывается список библиотек
[env:esp32dev]
lib_deps = 
  espressif/esp32-camera            ;будет загружена последняя версия
  espressif/esp32-camera @ 2.0.0    ;будет загружена указанная версия
С помощью lib_extra_dirs указывается путь к каталогу с библиотеками, которые скачаны вручную и распакованы
[env:esp32dev]
lib_extra_dirs = C:\platformio_libs   ;каталог с библиотеками 

Запись файлов в память SPIFFS

Микроконтроллеры esp имеют флеш-память, в которую можно записать файлы, например html файл web-страницы, который будет выводится микроконтроллером.

В каталоге проекта нужно создать каталог data (обязательно с таким названием), в него вложить нужные файлы. Затем открыть PlatformIO и в меню действий PROJECT TASKS нажать Upload Filesystem Image.

Решение ошибки при прошивке

Некоторые платы esp32 не переходят в режим прошивки автоматически при загрузке нового кода.

Для того, чтобы произошла загрузка нужно нажать на кнопку boot на самом микроконтроллере и удерживать ее все время прошивки.

Чтобы плата esp32 автоматически перешла в режим прошивки, можно подключить электролитический конденсатор 10 мкФ между контактом EN и GND. При этом не нужно будет нажимать кнопку boot при прошивке.