Visual studio esp8266 настройка
Система на кристалле SoC (System on crystal) ESP8266 от китайского производителя Espressif предоставляет возможность простой разработки программируемых модулей с доступом к беспроводной сети WLAN. ESP8266 не имеет встроенной Flash — памяти программ, а вместо нее использует внешнюю микросхему QSPI Flash .
Основные характеристики ESP8266 :
- RISC процессор Tensilica L106 с тактовой частотой 160 МГц
- Максимальный объем внешней Flash — памяти программ до 16 Мбайт
- Частота внешнего тактового резонатора от 24МГц до 52 МГц
- Встроенный высокочастотный 2,4 ГГц приемо-передатчик с поддержкой стандартов IEEE802.11b/g/n
- Встроенный стек протоколов TCP/IP и полная поддержка протокола 802.11b/g/n WLAN MAC
- Доступные для программирования периферийные интерфейсы GPIO, SDIO, SPI, HSPI, I2C, I2S, UART, PWM, IRDA, ADC
На основе ESP8266 китайская промышленность выпускает большое количество недорогих WiFi модулей. Для своих экспериментов я приобрел в разное время два таких модуля: ESP-12F и ESP-14.
Оба модуля изображены на следующей картинке.
Отличия между модулями заключаются в основном в объеме Flash памяти программ и наличии в ESP-14 встроенного микроконтроллера STM8.
Дополнительный микроконтроллер добавлен для взаимодействия с модулем ESP8266 посредством передачи AT — команд.
Видимо идея оказалась не очень удачной и судя по отсутствию документации на модуль ESP-14 на сайте производителя этот модуль был снят с производства.
Оба модуля расположены на печатной плате размером 24 x 16 (мм) с антенной в виде печатного проводника. Все компоненты модулей закрыты защитным металлическим экраном.
Шаг выводов для запаивания модуля составляет 2 мм, общее количество выводов равно 22 , расположение выводов на обеих модулях отличается.
Для программирования модулей на основе ESP8266 используется UART, режим программирования активируется установкой низкого логического уровня на выводе GPIO0.
Для удобства подключения соединительных проводов я запаял оба модуля на платы-переходники.
Подключение к компьютеру осуществляется адаптером USB-UART на основе микросхемы CP2102.
Существует также большое количество модулей на основе ECP8266 с встроенным преобразователем USB-UART, которые не требуют от пользователя навыков работы с паяльником и готовы к работе сразу после включения.
Программирование ESP8266 в Arduino-IDE
Загрузить Arduino-IDE можно с официального сайта Arduino.
Среда разработки Arduino-IDE очень простая и к тому же кросс-платформенная .
Исходный файл с текстом программы на языке С++ называется в Arduino-IDE скетчем.
Это основной и единственный модуль программы, из которого могут быть вызваны многочисленные библиотечные функции (или созданы объекты на основе библиотечных классов).
Строго говоря язык программирования Arduino только основан на C++ , на самом деле он имеет значительно меньше возможностей и намного проще языка С++.
Любая программа (скетч) в Arduino-IDE должна иметь две обязательные функции setup() и loop().
Как несложно догадаться из названий этих функций внутри setup() необходимо выполнить начальную инициализацию , а в loop() крутиться основной цикл программы.
По-умолчанию программа для Arduino однозадачная , код программы выполняется внутри бесконечного цикла , но возможно также использовать планировщик задач FreeRTOS.
Для этого необходимо задействовать библиотеку FreeRTOS.
На момент написания данной статьи поддержки FreeRTOS для ESP8266 в библиотеках Arduino не оказалось.
Хотя производитель Espressif уже портировал FreeRTOS на ESP8266 в своем RTOS-SDK.
Признаюсь откровенно для стабильных версий такой способ добавления ESP8266 в Arduino-IDE не работает.
Другой способ добавления поддержки ESP8266 в Arduino-IDE заключается в клонировании git — репозитория.
Я рекомендую воспользоваться именно этим способом :
Также можно установить бинарный инструментарий для программирования ESP8266, для этого необходимо наличие установленного Python 2.7 .
cd esp8266/tools
python get.py
Далее необходимо выбрать Generic ESP8266 Module в меню Tools->Board.
Настройки модуля ESP-12F у меня выглядят следующим образом :
В разделе Examples for Generic ESP8266 Module меню File->Examples можно выбрать интересующий пример для программирования ESP8266.
Компиляция и загрузка прошивки в плату осуществляется нажатием на кнопку Upload в верхнем меню Arduino. Плата должна быть подключена к USB-UART адаптеру, GPIO0 = 0. Также должен быть выбран правильный номер COM — порта в меню Tools->Port.
Если вы работаете в операционной системе Linux, то необходимо разрешить доступ к устройству COM-порта, например добавить себя в группу dialout владельцев файла /dev/ttyUSB0 :
$sudo usermod -a -G dialout
$sudo systemctl reboot
Из Arduino-IDE можно вызывать функции ESP API . Для проверки такой возможности откройте пример File->Examples->ESP8266->TestEspApi.
В этом примере я изменил скорость работы UART c 74880 на 9600, иначе на экран выводился мусор.
Описание функций ESP API находиться в документации ESP8266 Non-OS SDK API Reference.
Документация для программирования ESP8266 из Arduino-IDE находиться по этой ссылке Welcome to ESP8266 Arduino Core’s documentation!
В примерах также есть обновление прошивки модуля по воздуху OTA (Over the air).
Для проверки данной возможности откройте пример File->Examples->ArduinoOTA->BasicOTA.
В примере необходимо подставить название своей беспроводной сети и код доступа к ней :
В этой статье приведены пошаговые инструкции по установке и настройке расширения PlatformIO в Visual Studio Code для дальнейшего программирования Arduino, ESP32, ESP8266, Maixduino, Raspberry Pi и не только.
Visual Studio Code
VS Code также имеет множество доступных расширений, которые улучшают его функциональные возможности. Одним из таких расширений является PlatformIO.
Установка Visual Studio Code
Загрузить VS Code можно бесплатно с официального сайта, Здесь вы можете выбрать, на какую операционную систему вы хотите установить VS Code.
Как только IDE будет загружена, дважды щелкните на exe-файл для установки. При нажатии на исполняемый файл должно отобразиться следующее лицензионное соглашение:
Выберите I accept the agreement и нажмите Next.
Здесь можно сохранить значения по умолчанию. Нажмите Next.
При первом запуске вы увидите такое окно (см. ниже):
PlatformIO
PlatformIO может использоваться с VS Code для предоставления мощного набора инструментов, которые помогут вам в разработке на Ардуино. Из этого материала вы узнаете как установить расширение PlatformIO для дальнейшей разработки под платы Arduino.
Установка PlatformIO в VS Code
Чтобы установить расширение PlatformIO, нужно Открыть средство просмотра расширений, нажав Ctrl+Shift+X и набрать PlatformIO в строке поиска, выбрать первый найденный результат и установить, нажав кнопку Install, как показано на рисунке ниже.
Установка PlatformIO может занять немного времени. Во время установки PlatformIO может запросить установку Python (появится уведомление в нижнем правом углу, см. ниже).
Нажмите Install Python, чтобы начать установку Python.
Нажмите Open, чтобы открыть ссылку с инструкциями по установке Python. Пожалуйста, выберите Add Python to Path (см. ниже), в противном случае команда python будет недоступна.
Вернитесь в окно Visual Studio Code и нажмите кнопку Try again (см. ниже).
После завершения установки появится уведомление в нижнем правом углу (см. ниже), что нужно перезагрузить IDE для завершения процесса.
После перезагрузки значок PlatformIO (см. ниже) должен появиться в левом поле Visual Studio Code.
Установка Arduino Framework
Следующим шагом является загрузка платформы Atmel AVR (Arduino), Espressif 32 (ESP32) и т.п. в Visual Studio Code. Нажмите на значок PlatformIO в левом поле, чтобы открыть меню Quick Access (или нажмите на домик в самом низу). Выберите Platforms, а затем Embedded, как показано на рисунке ниже.
При нажатии на Atmel AVR откроется страница установки (см. ниже), нажмите кнопку Install для продолжения.
Установка библиотек
Создание и загрузка примера Blink
PlatformIO может автоматически определять, на каком порту установлен ваш Arduino Uno. Чтобы всё работало, нам необходимо подключить нашу плату к USB-порту до запуска Visual Studio Code.
Вы можете получить доступ к стандартному набору примеров Arduino, выбрав PIO Home в меню быстрого доступа платформы (см. ниже), а затем выбрав Project Examples.
После чего открывается выпадающий список, в котором перечислены все примеры. Выберите arduino-blink и нажмите Import.
Visual Studio Code теперь должен открыть проект blink. Структура папок отличается от структуры стандартного проекта Arduino, где расширение файлов .ino. Основной файл исходного кода называется blink.cpp и хранится в папке src (см. ниже).
Выбрав Devices в меню быстрого доступа платформы (см. ниже), вы сможете найти список COM-портов.
Установим программное обеспечение, необходимое для разработки приложений ESP32.
Официальной программной средой для разработки приложений ESP32 является платформа ESP-IDF (Espressif’s IoT Development Framework). Она представляет собой самодастаточный набор средств для создания программного обеспечения с использованием языков программирования C и C++. ESP-IDF ориентирована на разработку, как общих приложений, так и IoT проектов.
ESP-IDF поддерживает огромное количество программных компонентов, таких как RTOS, драйверы периферийных устройств, сетевой стек, различные протоколы и прочее.
Схематично компоненты ESP-IDF выглядят так.
Установка ESP-IDF.
Платформа ESP-IDF использует кросс-компиляторы, OpenOCD, CMake и инструмент сборки Ninja. Также требуется Python и Git.
Можно инсталлировать все это отдельно, но для простоты установки компания Espressif Systems разработала инсталлятор, который делает это все в автоматическом режиме. Что немаловажно, кроме собственно установки, инсталлятор задает переменные окружения Windows. Т.е. после завершения установки можно сразу пользоваться средой.
Загружаем файл инсталлятора по этой ссылке.
Разрешаем установку всего: Python, Git, ESP-IDF.
Выбираем последнюю версию, задаем рабочую папку.
Процесс длится довольно долго.
На рабочем столе появился ярлык.
Уже можно работать. Проверим основные функции.
Запускаем иконку. Открывается интерпретатор командной строки, подготавливается работа с ESP-IDF.
Попробуем компилировать проект примера, например, blink.
Перейдем в папку с проектом blink.
cd examples\get-started\blink
Компилируем проект командой idf.py build.
В первый раз сборка программы длится довольно долго.
В результате проект компилировался успешно, о чем сообщает надпись Project build complete.
Попробуем загрузить программу в FLASH микроконтроллера.
idf.py –p COM8 flash
COM8 – это номер виртуального COM-порта. Он появляется после установки драйвера конвертера USB-UART. Обычно в отладочных платах ESP32 используется преобразователь интерфейсов CP2102. Предварительно надо установить для него драйвер и посмотреть номер виртуального порта.
Панель управления -> Система -> Диспетчер устройств -> Порты (COM и LPT)
У меня 8. У вас может быть другой.
И, конечно, надо подключить к компьютеру плату.
Но светодиод не мигает.
Открываем любым текстовым редактором D:\esp\esp-idf\get-started\blink\main\blink.c.
В строке определяющей номер вывода светодиода ставим 2.
В примере использовалась другая отладочная плата, в которой светодиод подключен к другому выводу.
Заново компилируем и загружаем в FLASH.
Теперь компиляция длится 3 секунды и светодиод замигал.
Проверим еще монитор. Команда
idf.py –p COM8 monitor
Все прекрасно работает. Но пользоваться командной строкой очень неудобно.
Добавим к нашей среде редактор.
Установка и настройка редактора Visual Studio Code (VS Code).
Visual Studio Code – это редактор исходного кода, разработанный Microsoft. Используется для кроссплатформенной разработки приложений.
Существует специальное расширение VS Code для ESP-IDF. По моему опыту и мнению многих других программистов оно не работает нормально. К тому же, можно вполне обойтись без него.
Устанавливаем Visual Studio Code по ссылке.
Загружаем стабильную версию.
Запускаем VS Code.
Копируем проект blink.
Я создал папку blink1 в моем рабочем каталоге.
Копировал в нее содержимое каталога blink без папки build.
Открываем папку blink1 в VS Code.
File -> Open Folder
Основной файл blink.c.
Номер вывода светодиода уже изменен.
Откроем терминал и попытаемся компилировать проект.
Terminal -> New Terminal
Командой idf.py build.
Терминал не конфигурирован для ESP-IDF.
Создаем пользовательскую конфигурацию.
File -> Preference -> Settings ->User
Features -> Terminal -> Edit in settings.ison
Добавляем следующий блок.
"terminal.integrated.shell.windows" : "cmd.exe",
"terminal.integrated.shellArgs.windows" : [
"/k",
"D:/esp/esp-idf/export.bat"
]
Если впереди было что-то еще, то добавляем запятую. У меня файл settings.ison выглядит так.
File -> Save
idf.py build
В первый раз долго, потому что мы удалили папку build.
Теперь компиляция проходит без ошибок.
Загружаем программу в FLASH микроконтроллера командой
idf.py –p COM8 flash
Проверяем работу монитора.
idf.py –p COM8 monitor
Монитор тоже работает.
Набирать директивы в командной строке не очень удобно. Проблему можно решить установкой расширения VsCode Action Buttons.
Нажимаем кнопку Extensions в левом вертикальном меню.
В поле Search Extensions начинаем набирать название расширения, пока оно не появится в списке.
Дальше Extension settings и Edit in settings.json.
Добавляем блок установки кнопок с названиями Build, FLASH, Monitor.
Окончательно setting.json у меня выглядит так.
Слева внизу появилось новое меню.
Теперь нет необходимости набирать команды. Можно нажимать кнопки.
Еще одно расширение создает дополнительное меню.
Называется Shortcut menu bar.
После установки справа вверху появляется меню, конфигурацию которого можно изменять.
В зависимости от формата дисплея компьютера иногда панель терминала удобнее разместить не внизу, а справа.
Делается это нажатием правой кнопки мыши по закладке Terminal.
Дальше Move Panel Right.
Все. Среда программирования установлена и готова к использованию
В следующем уроке будем разбираться в проекте ESP-IDF.
Автор публикации
Эдуард
13 комментариев на « Урок 2. Установка среды программирования ESP-IDF совместно с Visual Studio Code. »
Установка ESP-IDF. на компьютере почемуто не ставится,хотя на ноуте встал без проблем. 7ка Sp1 64
Здравствуйте!
В пути не должно быть каталогов с кириллическими символами. Может в этом дело.
Здравствуйте, подскажите пожалуйста в чём проблема?
Через окно терминала VSC не грузится во flash
Хотя эта же команда через ESP-IDF проходит без проблем.
Здравствуйте!
А в пути к проекту имен с кириллическими символами нет?
Наберите команду заново. У вас у черточки перед p код символа 96. Может в окне комментариев переправилось.
idf.py –p COM3 f
69 64 66 2E 70 79 20 96 70 20 43
Да, спасибо всё заработало, ввёл заново пробел и чёрточку. Изначально я эти команды не набирал, а скопировал из урока. Ещё раз спасибо! а то уже мозг вскипел))
Мучения с Visual Studio Code мотивировали прикрутить ESP-IDF к Notepad++ с помощью плагина NppExec, предоставляющего возможность работы с консолью.
Удалось, не выходя из Notepad++, запускать компиляцию и загрузку во Flash для проектов из ESP-IDF и Arduino IDE, а также открывать окно терминала в редакторе.
Настройка среды ESP8266 RTOS v3.0 и компиляция кода VS
Настройка среды ESP8266 RTOS v3.0 и компиляция кода VS
Из-за необходимости работы мне нужно использовать ESP8266 для подключения к платформе JD Microlink, поэтому в следующей конфигурации среды есть еще кое-что о том, как скомпилировать esp-joylink в ESP8266_RTOS_SDK. Если вам это не нужно, пожалуйста, игнорируйте его автоматически 😉
1. Конструкция среды ESP8266 RTOS v3.0(Среда Windows)
1. Загрузите цепочку инструментов esp32_win32_msys2_environment_and_toolchain
После ESP-IDF V4.0 системой сборки по умолчанию является CMake, но для предыдущей версии в основном используется традиционная система сборки GNU Make. В Windows нет встроенной среды «make», поэтому не только для установки цепочки инструментов компиляции, но и для установки среды, совместимой с GNU (например, MSYS2).
Essence предоставила набор инструментов ESP32 и MSYS2 под Windows, поэтому наша первоначальная конструкция среды начинается с загрузки этого сжатого пакета: esp32_win32_msys2_environment_and_toolchain
Поскольку это всего лишь среда компиляции, компилируемый проект SDK необходимо позднее поместить в этот распакованный каталог, чтобы его можно было распаковать в заранее подготовленный каталог.
2. Настройте среду компиляции
2.1 Загрузить набор инструментов для компиляции ESP8266
Поскольку цепочка инструментов esp32_win32_msys2_environment_and_toolchain компилирует ESP32, и мы хотим скомпилировать ESP8266, нам нужно загрузить его отдельно в цепочку инструментов компиляции ESP8266:xtensa-lx106-elf Необходимо обратить внимание на версию набора инструментов
2.2 Поместите загруженную цепочку инструментов в каталогmsys/opt расстегнуть молнию
Распаковка должна быть разархивирована с правами администратора WinRAR.В сети говорится, что многие друзья вышли на яму;
msys - это папка, которую мы получили после распаковки esp32_win32_msys2_environment_and_toolchain
После распаковки посмотрите размер xtensa-lx106-elf
2.3 Загрузить ESP8266_RTOS_SDK
Esp-idf - это среда разработки ESP32, а ESP8266_RTOS_SDK - среда разработки ESP8266. Например, esp-joylink, который я хочу скомпилировать следующим, требование к его компиляции состоит в том, что ветвь ESP8266_RTOS_SDK должна бытьrel3.2Итак, нам нужно скачать инженерную среду ESP8266, прежде чем мы начнем официально запускать код:ESP8266_RTOS_SDK
При клонировании ESP8266_RTOS_SDK рекомендуется использовать следующую команду, на которую следует обратить внимание: use - recursive, для совместной загрузки подмодулей
На следующем рисунке показаны требования к компиляции и загрузке esp-joylink.Если вам не нужно разрабатывать esp-joylink, а просто хотите запустить демонстрационную версию ESP8266 или другую, вам нужно определить конкретную ветку SDK или выбрать самую последнюю. Не беспокойся об этой ветке.
// ----------------------------- Сплит-линия: требования esp-joylink для ветки ESP8266_RTOS_SDK -------- ------------------------ //
// ------------------------------------ Сплит линия: если вы не используете esp8266 для подключения к Jingdong, вы можете проигнорировать его --------------------------------------------- //
2.4 Запустите mingw32
2.4.1 Запуск mingw32 создаст каталог имени пользователя и соответствующую конфигурацию среды под home
2.5 Установите esp32_toolchain
В каталоге msys32 / etc / profile.d откройте esp32_toolchain.sh в текстовом виде и измените конфигурацию.Нужно правильно настроить, 90% компиляции не удаются, проблема кроется здесь.Предложить метод открытия, использоватьVS CodeОткройте, не используйте Notepad ++, конкретная причина, если не сказать много, ищите, если вам интересно, что Notepad ++ делает в конце октября 2019 года.
Примечание. При настройке IDF_PATH выберите ESP8266_RTOS_SDK, который мы указали в домашнем пути, и вставьте следующее в IDF_PATH.Но вам нужно заменить «\» на «/», конкретный путь зависит от того, где вы на самом деле храните SDK。
// --------------------------- Сплит-линия: поместите esp-joylink в каталог ESP8266_RTOS_SDK --------- ------------------------ //
3. Компилировать
Компиляция ESP8266 RTOS v3.0 требует двух шагов: 1. Заставьте menuconfig настроить содержимое компиляции 8266 2. Скомпилировать
3.1 make menuconfig
Запустите mingw32, а затем откройте путь к каталогу, который нужно скомпилировать, например, мне нужно скомпилировать пример / get-start / project_template проекта в SDK, сначала откройте путь к project_template, а затем введите: make menuconfig
Если вы думаете, что CD слишком много проблем, вы можете напрямуюcd + перетащите файл для компиляции прямо в командную строку, Войти
Если путь проекта, выбранный для компиляции, правильный, после ввода make menuconfig появится следующий интерфейс. Конкретная конфигурация здесь повторяться не будет.
3.2 make -j
Во-вторых, компиляция кода VS
1. VS код загрузки и настройки
1.1 VS Код загрузки
Загрузите и установите VS Codeссылка на скачивание
1.2 VS Конфигурация кода
Задать настройки конфигурации VS Code.json
Измените терминал VS Code на msys32 cmd
Среди них путь msys2_shell.cmd изменяется в соответствии со своим собственным путем.,Обратите внимание, что это "\\", Сохранить и выйти
2. VS составление кода
Краткое знакомство с большой ямой, с которой я столкнулся :(
После подтверждения правильности конфигурации вашей среды и ее компиляции появится следующая ошибка
После поиска в Интернете не существует подходящего мне решения. Позже мне посчастливилось обнаружить, что оно может быть вызвано двумя проблемами. Решения заключаются в следующем:
удостовериться esp32_win32_msys2_environment_and_toolchainЯвляется ли последний . версия ссылки, которую я имел на официальном сайте Espressif является20181001, Но позже на другом китайском сайте, нашел последнюю версию20190611… (Я потратил n дней)
Загрузка ESP8266_RTOS_SDK При загрузке загрузите соответствующие подмодули, поэтому используйте команду при клонировании SDK
Наконец, с удовольствием накатить код
Интеллектуальная рекомендация
совместный запрос mysql с тремя таблицами (таблица сотрудников, таблица отделов, таблица зарплат)
1. Краткое изложение проблемы: (внизу есть инструкция по созданию таблицы, копирование можно непосредственно практиковать с помощью (mysql)) Найдите отделы, в которых есть хотя бы один сотрудник. Отоб.
[Загрузчик классов обучения JVM] Третий день пользовательского контента, связанного с загрузчиком классов
IP, сеанс и cookie
Читайте также: