Узнайте, как программировать платы ESP32 и ESP8266 NodeMCU с помощью VS Code (Microsoft Visual Studio Code) с расширением PlatformIO IDE.
В этом уроке мы рассмотрим следующие темы:
- Установка расширения PlatformIO IDE на VS Code
- Обзор быстрого интерфейса Visual Studio
- Обзор IDE PlatformIO
- Загрузка кода с помощью PlatformIO IDE: ESP32/ESP8266
- Изменение скорости передачи данных последовательного монитора – PlatformIO IDE
- Установка библиотек в PlatformIO IDE
Установка VS Code
Перейдите на https://code.visualstudio.com/и загрузите стабильную сборку для своей операционной системы
Для программирования плат ESP32 и ESP8266 с помощью PlatformIO IDE на вашем компьютере должен быть установлен Python 3.5 или выше. Перейдите на python.org/downloadи загрузите Python 3.8.5 или более новую версию/
Установка расширения PlatformIO IDE на VS Code
Платы ESP32и ESP8266 можно запрограммировать с помощью VS Code с расширением PlatformIO IDE. Выполните следующие шаги, чтобы установить расширение PlatformIO IDE.
Откройте код VS:
- Щелкните значок « Расширения»или нажмите Ctrl+ Shift+ X, чтобы открыть вкладку « Расширения ».
- Найдите « IDE PlatformIO»
- Выберите первый вариант
- Наконец, нажмите кнопку « Установить» (Примечание: установка может занять несколько минут).
Обзор быстрого интерфейса VS Code
Откройте код VS. На следующем экране печати показано значение каждого значка на левой боковой панели и его ярлыков:
- Проводник
- Поиск по файлам
- Управление исходным кодом (с помощью gist)
- Запустите и отладьте свой код
- Управление расширениями
Кроме того, вы можете нажать Ctrl+ Shift+ Pили перейти в View> Command Palette…, чтобы отобразить все доступные команды. Если вы ищете команду и не знаете, где она или ее ярлык, вам просто нужно перейти в палитру команд и найти ее.
Внизу есть синяя полоса с командами PlatformIO.
Вот что делает значок слева направо:
- Главная страница PlatformIO
- Сборка/компиляция
- Загрузить
- Чистый
- Серийный монитор
- Новый терминал
Если вы наведете указатель мыши на значки, он покажет, что делает каждый значок.
Кроме того, вы также можете щелкнуть значок PIO, чтобы просмотреть все задачи PlatformIO.
Если задачи не отображаются в вашей среде IDE, когда вы щелкаете значок, вам может потребоваться щелкнуть значок с тремя точками вверху и включить задачи PlatformIO, как показано ниже.
Обзор IDE PlatformIO
Чтобы вы получили общее представление о том, как PlatformIO работает с кодом VS, мы покажем вам, как создать, сохранить и загрузить скетч «Мигающий светодиод» на вашу плату ESP32 или ESP8266.
Создать новый проект
В VS Code щелкните значок «PlatfomIO Home» . Нажмите + Новый проект, чтобы начать новый проект.
Дайте вашему проекту имя (например , Blink_LED) и выберите плату, которую вы используете. В нашем случае мы используем DOIT ESP32 DEVKIT V1. Framework должен быть « Arduino», чтобы использовать ядро Arduino.
Вы можете выбрать местоположение по умолчанию для сохранения вашего проекта или пользовательское местоположение.
По умолчанию это путь Documents> PlatformIO> Projects. Для этого теста вы можете использовать расположение по умолчанию. Наконец, нажмите «Готово».
В этом примере мы будем использовать плату DOIT ESP32 DEVKIT. Если вы используете плату ESP8266 NodeMCU, процесс очень похож, вам просто нужно выбрать плату ESP8266:
Проект Blink_LED должен быть доступен на вкладке Explorer.
VS Code и PlatformIO имеют структуру папок, отличную от стандартного проекта .ino. Если вы нажмете на вкладку Explorer, вы увидите все файлы, созданные в папке вашего проекта. Может показаться, что нужно работать с большим количеством файлов. Но не волнуйтесь, обычно вам достаточно иметь дело с одним или двумя из этих файлов.
Предупреждение:не следует удалять, изменять или перемещать папки и файл platformio.ini . В противном случае вы больше не сможете скомпилировать свой проект с помощью PlatformIO.
файл platformio.ini
Файл platformio.ini— это файл конфигурации PlatformIO для вашего проекта. Он показывает платформу, плату и структуру для вашего проекта. Вы также можете добавить другие конфигурации, такие как включаемые библиотеки, параметры загрузки, изменение скорости передачи данных Serial Monitor и другие конфигурации.
- платформа: что соответствует SoC, используемому платой.
- board: используемая вами плата разработки.
- framework: программная среда, в которой будет выполняться код проекта.
С ESP32 и ESP8266, если вы хотите использовать скорость передачи данных 115200 в своем последовательном мониторе, вам просто нужно добавить следующую строку в файл platformio.ini.
monitor_speed = 115200
После этого обязательно сохраните внесенные в файл изменения, нажав Ctrl+ S.
В этот файл вы также можете включить идентификатор библиотек, которые вы будете использовать в своем проекте, используя lib_deps директива, как мы увидим позже.
папка src
Папка src— это ваша рабочая папка. В папке srcесть файл main.cpp . Вот где вы пишете свой код. Нажмите на этот файл. Структура программы Arduino должна открываться с помощью настраивать()а также петля()функции.
В PlatformIO все ваши скетчи Arduino должны начинаться с #include <Arduino.h>.
Загрузка кода с помощью PlatformIO IDE: ESP32/ESP8266
Скопируйте следующий код в файл main.cpp.
#include <Arduino.h>
#define LED 2
void setup()
{// put your setup code here, to run once:
Serial.begin(115200);
pinMode(LED, OUTPUT);
}
void loop()
{ // put your main code here, to run repeatedly:
digitalWrite(LED, HIGH);
Serial.println("LED is on");
delay(1000);
digitalWrite(LED, LOW);
Serial.println("LED is off");
delay(1000);
}
Этот код мигает встроенным светодиодом каждую секунду. Он работает с платами ESP32 и ESP8266 (обе имеют встроенный светодиод, подключенный к GPIO 2).
Мы рекомендуем вам скопировать этот код вручную, чтобы вы увидели автодополнение и другие интересные функции IDE в действии. Кроме того, если у вас есть синтаксическая ошибка где-то в вашей программе, она будет подчеркнута красным цветом еще до компиляции.
После этого нажмите Ctrl+ Sили выберите « Файл»> « Сохранить» , чтобы сохранить файл.
Теперь вы можете щелкнуть значок «Загрузить», чтобы скомпилировать и загрузить код. Кроме того, вы можете перейти в меню «Задачи проекта PIO» и выбрать « Загрузить» .
Если код успешно загружен, вы должны получить следующее сообщение.
После загрузки кода встроенный светодиод ESP32 или ESP8266 должен мигать каждую секунду.
Теперь щелкните значок последовательного монитора, и вы должны увидеть, что он печатает текущее состояние светодиода.
Примечание:если вы не видите окно терминала, перейдите в меню «Терминал» > «Новый терминал».
Обнаружить COM-порт
PlatformIO автоматически определит порт, к которому подключена ваша плата. Чтобы проверить подключенные устройства, вы можете перейти на главную страницу PIOи щелкнуть значок « Устройства» .
Исправление проблем
Если при попытке загрузить код вы получаете следующую ошибку: « Не удалось подключиться к ESP32: истекло время ожидания заголовка пакета», это обычно означает, что ваша плата не находится в режиме прошивки, когда вы загружаете код.
Когда это произойдет, вам нужно нажать встроенную кнопку BOOT ESP32, когда вы начнете видеть много точек в окне отладки.
Если вы не хотите каждый раз нажимать кнопку BOOT при загрузке нового кода, вы можете следовать этому руководству: [РЕШЕНО] Не удалось подключиться к ESP32: истекло время ожидания заголовка пакета.
Изменение скорости передачи данных последовательного монитора – PlatformIO IDE
Скорость передачи по умолчанию, используемая PlatformIO, составляет 9600. Однако можно установить другое значение, как упоминалось ранее. В Проводнике файлов в папке проекта откройте файл platformio.iniи добавьте следующую строку:
monitor_speed = baud_rate
Например:
monitor_speed = 115200
После этого сохраните этот файл.
Установка библиотек ESP32/ESP8266 в PlatformIO IDE
Следуйте следующей процедуре, если вам нужно установить библиотеки в PlatformIO IDE.
Щелкните значок « Домой», чтобы перейти на домашнюю страницу PlatformIO. Щелкните значок « Библиотеки» на левой боковой панели.
Найдите библиотеку, которую хотите установить. Например Adafruit_BME280.
Нажмите на библиотеку, которую вы хотите включить в свой проект. Затем нажмите «Добавить в проект».
Выберите проект, в котором вы хотите использовать библиотеку.
Это добавит идентификатор библиотеки, используя lid_depsдиректива в файле platformio.ini . Если вы откроете файл platformio.iniвашего проекта , он должен выглядеть так, как показано на следующем рисунке.
Кроме того, в окне библиотеки, если вы выберете вкладку « Установка» и немного прокрутите, вы увидите идентификатор библиотеки. Вы можете выбрать любой из этих идентификаторов в зависимости от параметров, которые хотите использовать. Идентификаторы библиотеки выделены красным цветом.
Затем перейдите к файлу platformio.iniвашего проекта и вставьте идентификатор библиотеки в этот файл, например:
lib_deps = adafruit/Adafruit BME280 Library@^2.1.0
Если вам нужно несколько библиотек, вы можете разделить их имена через запятую или поместить их в разные строки. Например:
lib_deps =
arduino-libraries/Arduino_JSON @ 0.1.0
adafruit/Adafruit BME280 Library @ ^2.1.0
adafruit/Adafruit Unified Sensor @ ^1.1.4
PlatformIO имеет встроенный мощный менеджер библиотек, который позволяет вам указывать пользовательские зависимости для каждого проекта в файле конфигурации проекта platformio.ini,используя lib_deps. Это укажет PlatformIO автоматически загружать библиотеку и все ее зависимости при сохранении файла конфигурации или при компиляции проекта.
Откройте папку проекта
Чтобы открыть существующую папку проекта на PlatformIO, откройте VS Code, перейдите на главную страницу PlatformIO и нажмите «Открыть проект». Просмотрите файлы и выберите папку проекта.
PlatformIO откроет все файлы в папке проекта.
Цветовые темы VS Code
VS Code позволяет выбирать между различными цветовыми темами. Перейдите к значку « Управление» и выберите « Цветовая тема». Затем вы можете выбрать одну из нескольких светлых и темных тем.
Список ярлыков
Полный список сочетаний клавиш VS Code для Windows, Mac OS X или Linux можно найти по следующей ссылке: