Программирование ARM ESP-IoT-Solution: быстрый старт Sat, November 01 2025  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


ESP-IoT-Solution: быстрый старт Печать
Добавил(а) microsin   

Здесь приведен перевод документации [1], предназначенной для упрощения установки среды разработки приложений ESP-IoT-Solution (Espressif IoT Solution). После выполненной установки вы сможете запускать простые примеры, которые покажут вам, как использовать ESP-IoT-Solution для настройки среды компиляции, создавать проект, выполнять сборку и прошивку firmware а память микроконтроллеров ESP, и т. п.

ESP-IoT-Solution содержит драйверы периферийных устройств и библиотеки, обычно используемые в разработке систем IoT. Предоставляются дополнительные компоненты для ESP-IDF, включая следующее:

● Драйверы устройств, такие как датчики, экраны LCD, звуковые устройства, устройства ввода, актуаторы и т. д.
● Библиотеки и соответствующая документация по управлению режимами пониженного энергопотребления, безопасности, шифрованию, системам хранения и т. п.
● Руководство по внедрению решений Espressif с открытым исходным кодом с точки зрения практического применения.

Версии ESP-IoT-Solution. Текущие спецификации различных версий ESP-IoT-Solution перечислены в следующей таблице. С течением времени эта информация может меняться, поэтому обращайтесь к первоисточнику [1].

Версия ESP-IoT-Solution Соответствующая версия ESP-IDF Основные изменения Статус
master >=v4.4 Поддерживается Component Manager [2] и новые чипы Новые фичи в ветке development
release/v1.1 v4.0.1 Обновлена версия IDF, удалены коды, которые перенесены в другие репозитории Поддержка прекращена
release/v1.0 v3.2.2 Устаревшая (legacy) версия Поддержка прекращена

Поскольку главная ветвь репозитория использует ESP Component Manager [2] для управления компонентами, каждый из компонентов это отдельный пакет, и каждый пакет может поддерживать различные версии ESP-IDF, что декларируется в его файле компонента which will be declared in the component’s idf_component.yml.

ESP-IDF. ESP-IDF это среда разработки интеллектуальных мобильных устройств (IoT development framework) для MCU серий ESP SoC, предоставляемая компанией Espressif. В этой среде разработки присутствуют:

● Библиотеки и заголовочные файлы для базовых компонентов, на основе которых строятся программные проекты для чипов ESP SoC.
● Общие утилиты и функциональные инструменты, используемые в процессе разработки и производства, т. е. сборки firmware, прошивки памяти, отладки и т. п.

Для дополнительной информации обратитесь к официальному руководству [3], см. также [4].

[Введение в ESP Series SoC]

Вы можете выбрать любую плату разработки для чипов серий ESP для начала работы с ESP-IoT-Solution. Это может быть как плата, предлагаемая среди плат Boards Component [5], так и любая другая совместимая плата. Такие платы в изобилии представлены на AliExpress и магазине OZON.

Чипы ESP SoC предоставляют следующие функциональные возможности:

● 2.4 ГГц Wi-Fi
● Bluetooth
● Высокопроизводительные процессоры с одним и двумя ядрами (в зависимости от модели чипа), которые могут работать на частоте до 240 МГц.
● Сопроцессор ULP [7] (Ultra-low-power co-processor, есть особенности в зависимости от модели чипа).
● Различные периферийные устройства, включая GPIO, I2C, I2S, SPI ,UART, SDIO, RMT, LEDC PWM, Ethernet, TWAI®, Touch, USB OTG и другие.
● Множество вариантов конфигураций памяти, включая объемы до 520 килобайт внутренней RAM и возможная поддержка внешней PSRAM.
● Поддерживаются функции безопасности, например аппаратное шифрование.

Чипы серий ESP SoC разработаны на основе 40 нм технологии, показывая лучшие параметры по энергопотреблению, технологиям беспроводной связи, универсальность и надежность в широком спектре применений.

Примечание: конфигурация может меняться в зависимости от модели чипа SoC, за дополнительной информацией обратитесь к документации по выбору чипа [6].

[Настройка рабочего окружения]

1. Установите ESP-IDF.

ESP-IoT-Solution полагается на базовый функционал и инструментарий ESP-IDF, поэтому сначала необходимо установить ESP-IDF, выполнив несложные шаги по установке (см. ESP-IDF Installation Step by Step). Имейте в виду, что разные версии ESP-IoT-Solution могут требовать разные версии ESP-IDF, см. таблицу выше или [1].

2. Установка ESP-IoT-Solution.

Для master-версии выполните команду:

$ git clone --recursive https://github.com/espressif/esp-iot-solution

Для версии release/v1.1 выполните другую команду:

$ git clone -b release/v1.1 --recursive https://github.com/espressif/esp-iot-solution

Для других версий используйте эту команду, заменив release/v1.1 на вашу целевую ветвь репозитория.

[Использование компонентов ESP-IoT-Solution]

Если вам просто нужно использовать компоненты в ESP-IoT-Solution, то мы рекомендуем устанавливать их ESP Component Registry.

Зарегистрированные компоненты в ESP-IoT-Solution перечислены в README.md. Вы можете напрямую добавлять компоненты из Component Registry в свой проект, используя команду idf.py add-dependency в директории вашего проекта. Например, запустите idf.py add-dependency "espressif/usb_stream" для добавления компонента usb_stream, этот компонент будет автоматически загружен в процессе работы CMake.

Подробности см. в руководстве IDF Component Manager [2].

[Сборка и загрузка]

1. Настройка переменных окружения.

Утилиты, установленные на описанных выше шагах, пока не добавлены в ваши переменные окружения PATH. Чтобы инструментарий сборки стал доступен из командной строки, выполните следующие шаги по добавлению переменных окружения:

Добавьте переменные окружения ESP-IDF. Для системы Windows откройте командную строку (Command Prompt, cmd.exe) и запустите команду:

%userprofile%\esp\esp-idf\export.bat

Для Linux и macOS запустите в терминале:

. $HOME/esp/esp-idf/export.sh

Помните, что указанные в команде пути должны соответствовать реальным путям на диске в вашей системе (в этих примерах показаны пути по умолчанию).

Добавьте переменные окружения IOT_SOLUTION_PATH. Для Windows запустите команду:

set IOT_SOLUTION_PATH=C:\esp\esp-iot-solution

Для Linux и macOS запустите:

export IOT_SOLUTION_PATH=~/esp/esp-iot-solution

Замечание: установленные переменные окружения описанными выше шагами будут действовать только в текущем терминале. Если вы закроете терминал, то повторите эти шаги для работы в новом терминале. Как вариант, можно добавить эти переменные окружения как постоянно действующие. Для Windows это можно сделать через графический интерфейс "Параметры среды" (Environment Variables). Для операционных систем семейства Linux тоже есть соответствующие инструменты, например в Ubuntu это файлы ~/.bashrc, /etc/environment или /etc/profile.d/ (см. врезку).

[Windows]

Краткая справка: что такое переменные окружения?

Это пара Имя=Значение, которые хранят важные для системы и программ данные, например:

● Пути к установленным программам (PATH).
● Имя домашней папки пользователя (USERPROFILE).
● Имя компьютера (COMPUTERNAME).

Они бывают двух типов:

● Переменные пользователя: действуют только для вашей учетной записи.
● Системные переменные: действуют для всех пользователей на этом компьютере (требуют прав Администратора).

Способ 1: через графический интерфейс (самый наглядный)

Это классический способ, работающий во всех версиях Windows.

1.Откройте окно "Параметры среды" (Environment Variables).

  ● Вариант A (быстрый): нажмите Win + R, введите sysdm.cpl и нажмите Enter.
  ● Вариант B: щелкните правой кнопкой мыши по "Этот компьютер" → "Свойства" → в правом меню выберите "Дополнительные параметры системы".

2. В открывшемся окне нажмите кнопку "Переменные среды..." в нижней части.

3. Редактируйте переменные.

  ● Чтобы создать новую переменную: в верхней (пользовательские) или нижней (системные) секции нажмите кнопку "Создать...". Введите имя и значение.
  ● Чтобы изменить существующую: выделите переменную и нажмите "Изменить...".
  ● Чтобы удалить: выделите и нажмите "Удалить".

    > Важнее всего: работа с переменной PATH
    > PATH — это список папок, в которых Windows ищет исполняемые файлы. Когда вы вводите команду в командной строке (например, python или node), система просматривает все папки из PATH.
    > При редактировании PATH вы увидите не простое поле, а список. Для добавления новой папки нажмите "Изменить..." → "Создать" и вставьте путь. Не перезаписывайте весь PATH, а только добавляйте новые строки, иначе можете сломать текущие настройки системы.

4. Примените изменения. Нажмите "ОК" во всех открытых окнах.

Способ 2: через Командную строку (CMD)

Быстрое решение для добавления или просмотра переменных в текущем сеансе.

● Просмотреть все переменные: set
● Просмотреть конкретную переменную: set ИМЯ (например, set PATH)
● Создать/Изменить переменную для ТЕКУЩЕГО сеанса:

    set ИМЯ=Значение (например, set MY_VAR=Hello)
    > Внимание! Такая переменная исчезнет после закрытия окна CMD.

● Добавить к существующей переменной (например, к PATH) для ТЕКУЩЕГО сеанса:

    set PATH=%PATH%;C:\MyNewFolder

Способ 3: через PowerShell

Более мощный и современный аналог CMD.

● Просмотреть все переменные: Get-ChildItem Env:
● Просмотреть конкретную переменную: $env:ИМЯ (например, $env:USERNAME)
● Создать/Изменить переменную для ТЕКУЩЕГО сеанса:

    $env:ИМЯ = "Значение" (например, $env:MY_VAR = "Hello")

● Добавить к существующей переменной для ТЕКУЩЕГО сеанса:

    $env:PATH += ";C:\MyNewFolder"

Способ 4: через Панель управления (Windows 10/11)

Альтернативный путь к тому же графическому интерфейсу, описанному в Способе 1.

1. Откройте Панель управления.

2. Перейдите в "Система и безопасность" → "Система".

3. В левом меню выберите "Дополнительные параметры системы".

4. Дальше действуйте как в Способе 1 (кнопка "Переменные среды...").

Способ 5: через Параметры Windows (Windows 10/11)

Более современный, но менее функциональный интерфейс.

1. Откройте Параметры (Win + I).

2. Перейдите в "Система" → "О программе".

3. В связанных параметрах нажмите "Дополнительные параметры системы".

4. Дальше действуйте как в **Способе 1**.

Важные замечания и подводные камни

1. Изменения вступают в силу по-разному:

  ● Новые переменные, созданные через графический интерфейс, станут доступны после перезапуска всех открытых программ (включая проводник и терминалы). Иногда проще просто перезагрузить компьютер.
  ● Измененные существующие переменные (кроме PATH) обычно подхватываются новыми процессами.
  ● Чтобы применить изменения к уже открытому **Командной строке или PowerShell — нужно закрыть и открыть их заново.

2. Будьте осторожны с переменной PATH! Никогда не удаляйте стандартные пути Windows (например, C:\Windows\system32). Добавляйте только свои. Всегда используйте кнопку "Изменить" и добавляйте новые пути как новые строки.

3. Для постоянных изменений в скриптах используйте графический интерфейс или специальные команды PowerShell/CMD, которые меняют реестр. Способы 2 и 3 меняют переменные только для текущего сеанса.

Как добавить в PATH через CMD/PowerShell навсегда? (для продвинутых)

Это требует прав администратора и изменения реестра.

● В CMD (от Администратора):

setx /M ИМЯ "Значение"

Пример: setx /M PATH "%PATH%;C:\MyTool"

    > Осторожно с setx и PATH! Команда имеет ограничение на длину строки и может обрезать ваш PATH. Лучше использовать графический интерфейс.

● В PowerShell (от Администратора):

[Environment]::SetEnvironmentVariable("ИМЯ", "Значение", "Machine") # Machine = для всех пользователей
[Environment]::SetEnvironmentVariable("ИМЯ", "Значение", "User")    # User = для текущего пользователя

Итог:

● Для разовых действий в текущем окне терминала — используйте set (CMD) или $env: (PowerShell).
● Для постоянного изменения переменных (особенно PATH) — используйте графический интерфейс (sysdm.cpl). Это самый безопасный и надежный способ.

[Ubuntu]

В других операционных системах Linux используются аналогичные инструменты для изменения переменных окружения.

Редактирование переменных окружения в Ubuntu — фундаментальная задача. Подход здесь сильно отличается от Windows и основывается на работе с текстовыми файлами.

Краткая справка: как работают переменные в Linux/Ubuntu? Переменные окружения задаются парами ИМЯ=Значение. Они наследуются дочерними процессами от родительских.

Основные файлы конфигурации (оболочки - shell):

~/.bashrc — для пользовательских настроек в не-входных интерактивных оболочках bash. Выполняется при каждом открытии нового окна терминала.
~/.profile (или ~/.bash_profile) — для пользовательских настроек во входных оболочках. Выполняется при входе в систему (например, при логине через графический интерфейс).
/etc/environment — системные настройки для всех пользователей (не зависит от shell).
/etc/profile и файлы в /etc/profile.d/ — системные настройки для всех пользователей (для bash и других совместимых shell).

Способы установки переменных описаны далее.

Способ 1: временная установка (для текущей сессии)

Переменная будет действовать только в текущем окне терминала и исчезнет после его закрытия. Установить переменную:

    export MY_VAR="my_value"

Добавить в PATH:

    export PATH="$PATH:/path/to/your/directory"

Просмотреть переменную:

    echo $MY_VAR
    echo $PATH

Просмотреть все переменные:

    env

.. или:

    printenv

Способ 2: постоянная установка для пользователя (через ~/.bashrc)

Это самый частый и рекомендуемый способ для добавления в PATH и установки своих переменных.

1. Откройте файл ~/.bashrc в текстовом редакторе (например, nano):

    nano ~/.bashrc

2. Добавьте в конец файла строки с вашими переменными:

    # Установка простой переменной
    export MY_APP_HOME="/opt/myapp"

    # Добавление каталога в PATH
    export PATH="$PATH:/path/to/your/directory"

    # Пример для JDK
    export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
    export PATH="$JAVA_HOME/bin:$PATH"

3. Сохраните файл и выйдите из редактора. В nano: Ctrl+X, затем Y для подтверждения, затем Enter.

4. Примените изменения в текущем терминале:

    source ~/.bashrc

Или просто закройте текущий терминал и откройте новое окно терминала.

Почему ~/.bashrc? Он гарантированно выполняется при каждом открытии терминала, что удобно для переменных, нужных при работе в командной строке.

Способ 3: постоянная установка для пользователя (через ~/.profile)

Используйте этот файл, если переменная должна быть доступна и в графических приложениях (запущенных из меню, например).

1. Откройте файл ~/.profile:

    nano ~/.profile

2. Добавьте переменные (так же, как и в .bashrc):

    export MY_VAR="value_for_graphical_apps"
    export PATH="$PATH:/path/to/gui/tool"

3. Сохраните файл и выйдите.

4. Для применения изменений нужно перезайти в систему (выйти и зайти заново), так как .profile читается при входе.

Способ 4: системные настройки для всех пользователей (через /etc/environment)

Используется для глобальных системных переменных, таких как глобальный PATH. Требует прав sudo.

1. Откройте файл от имени root:

    sudo nano /etc/environment

2. Добавьте переменные. Важно: синтаксис без export!

    # Простые переменные
    MY_SYSTEM_VAR="system_value"    

    # Добавление в глобальный PATH (используйте двойные кавычки для всего значения)
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/snap/bin:/opt/my_global_tool"

3. Сохраните файл и выйдите.

4. Перезагрузите компьютер или перезайдите в систему для всех пользователей. Простой source не сработает.

Способ 5: системные настройки через /etc/profile.d/

Более удобный и безопасный способ для добавления системных скриптов, чем правка /etc/profile.

1. Создайте файл с расширением .sh в директории /etc/profile.d/:

    sudo nano /etc/profile.d/my_custom_vars.sh

2. Добавьте переменные как в .bashrc (с export):

    # Установка системной переменной
    export GLOBAL_TOOL_PATH="/opt/global_tool"
    export PATH="$PATH:$GLOBAL_TOOL_PATH/bin"

3. Сделайте файл исполняемым:

    sudo chmod +x /etc/profile.d/my_custom_vars.sh

4. Изменения применятся при следующем входе пользователя в систему.

Практические примеры. Пример 1: Установка JAVA_HOME (классический случай):

1. Найдите, где установлена Java

update-alternatives --config java

Это вернет что-то вроде /usr/lib/jvm/java-11-openjdk-amd64/bin/java

2. Отредактируйте ~/.bashrc

nano ~/.bashrc

3. Добавьте в конец (без '/bin' в пути!)

export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
export PATH="$JAVA_HOME/bin:$PATH"

4. Примените изменения

source ~/.bashrc

5. Проверьте

echo $JAVA_HOME
java -version

Пример 2: Добавление каталога ~/bin в PATH

Многие программы рекомендуют складывать бинарники в ~/bin.

1. Создайте папку, если её нет

mkdir -p ~/bin

2. Добавьте в ~/.bashrc

echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc

3. Примените изменения

source ~/.bashrc

Важные замечания и подводные камни

1. Какой файл выбрать?

~/.bashrc — для всего, что связано с работой в терминале (самый частый случай).
~/.profile — если переменные нужны графическим приложениям.
/etc/environment — для глобальных системных путей и переменных.
/etc/profile.d/ — для установки системного ПО (например, Docker, Node.js через сторонний репозиторий).

2. Порядок в PATH имеет значение!

PATH="$PATH:/new/path" — система будет искать в /new/path в последнюю очередь.
PATH="/new/path:$PATH" — система будет искать в /new/path в первую очередь. Это полезно, если вы хотите переопределить системную команду своей версией.

3. Проверка синтаксиса. После редактирования файлов всегда делайте source ~/.bashrc. Если терминал перестал работать — вы где-то ошиблись в синтаксисе (например, забыли кавычку). Проверьте правки.

4. Для применения изменений из ~/.profile и /etc/environment нужно перезайти в систему.

Итог:

● Для временного тестирования — используйте export в командной строке.
● Для постоянных настроек в терминале — редактируйте ~/.bashrc.
● Для глобальных системных настроек — используйте /etc/environment или /etc/profile.d/.

2. Установка цели сборки.

ESP-IDF поддерживает несколько чипов, таких как esp32, esp32s2 и других. Установите цель сборки в соответствие с используемым вашим чипом перед выполнением сборки (по умолчанию, если вы ничего не установили, установится цель сборки esp32). Например, если вы используете микроконтроллер ESP32-C3, то нужно установить цель сборки esp32c3, это делается командой, запущенной в директории проекта:

$ idf.py set-target esp32c3

Для примеров из ESP-IoT-Solution, основанных на Boards Component [5], вы можете перейти в Board Options -> Choose Target Board в menuconfig для выбора целевой платы (target board):

$ idf.py menuconfig

3. Сборка программы и её загрузка программы в память чипа.

Используйте idf.py для сборки и загрузки программы командами:

$ idf.py -p PORT build flash

В этой команде надо заменить PORT на имя последовательного порта, через который подключена к компьютеру ваша плата. На Windows имена порта имеют вид наподобие COMx; На Linux это может быть порт /dev/ttyUSBx или /dev/ttyACMx; macOS обычно использует имена /dev/cu.

4. Просмотр лога отладки.

В программе можно выводить сообщения в лог функцией printf и макросами наподобие ESP_LOGI, ESP_LOGW, ESP_LOGE. Просматривать лог можно командой:

$ idf.py -p PORT monitor

[Ссылки]

1. ESP-IoT-Solution Get Started site:espressif-docs.readthedocs-hosted.com.
2. ESP-IDF Component Manager.
3. ESP-IDF Programming Guide site:docs.espressif.com.
4. Установка среды разработки ESP-IDF для ESP32.
5. Boards Component site:espressif-docs.readthedocs-hosted.com.
6. ESP Product Selector site:products.espressif.com.
7. ESP32: программирование сопроцессора ULP.

 

Добавить комментарий


Защитный код
Обновить

Top of Page