Программирование модуля ESP32 с помощью Arduino IDE


Ранее на нашем сайте мы уже рассматривали начало работы с модулем ESP32, в котором мы рассматривали его программирование с помощью Arduino IDE. Но на момент написания той статьи в Arduino IDE еще не было официальной поддержки модуля ESP32, поэтому его поддержку в Arduino IDE приходилось добавлять используя инструмент GIT. Теперь же, когда в Arduino IDE есть официальная поддержка модулей (плат) ESP32, в использовании инструмента GIT уже нет никакой необходимости и используя описанный ниже подход вы сможете подготовить Arduino IDE для программирования модуля ESP32.

Программирование модуля ESP32 с помощью Arduino IDE

Необходимые компоненты

  1. Модуль ESP32 (купить на AliExpress).
  2. Arduino IDE.
  3. Кабель для программирования micro USB.

Основные аппаратные возможности модуля ESP32

При внешнем взгляде на модуль ESP32 видно, что он по размеру немного больше чем модуль ESP8266-01 и его контакты расположены более удобно на его плате. Внешний вид модуля ESP32 показан на следующем рисунке.

Внешний вид модуля ESP32

Как вы можете видеть из представленного рисунка, "сердцем" модуля является 32-битный микропроцессор. Далее кратко рассмотрим назначение основных элементов модуля.

Micro-USB jack: данный разъем используется для подключения модуля ESP32 к компьютеру с помощью USB кабеля. С его помощью можно программировать модуль с компьютера, а также осуществлять последовательную связь.

Кнопка EN: это кнопка сброса модуля ESP32. Нажатие этой кнопки прекращает выполнение кода программы, которая запущена в модуле.

Кнопка загрузки (Boot Button): эта кнопка используется для загрузки программы в модуль ESP32. Ее необходимо нажимать после нажатия кнопки загрузки программы в Arduino IDE. Когда эта кнопка нажата вместе с кнопкой EN, модуль переходит в режим загрузки прошивки (firmware). Не экспериментируйте с этим режимом если вы не понимаете суть происходящих при этом процессов.

Светодиод красного цвета (Red LED): данный светодиод сигнализирует о том, что на модуль подано питание.

Светодиод синего цвета (Blue LED): данный светодиод подключен к контакту GPIO модуля. Его можно включать/выключать в программе. На некоторых клонированных китайских модулях ESP32 этот светодиод может быть также красного цвета.

Контакты ввода/вывода (I/O pins): данные контакты могут выполнять функции цифрового ввода/вывода, аналогового ввода/вывода, ШИМ (PWM), IIC, SPI, ЦАП (DAC) и многое. Более подробно про назначение данных контактов вы можете прочитать в даташите на модуль ESP32.

ESP-WROOM-32: "сердце" модуля ESP32. Это 32-битный микропроцессор, разработанный компанией Espressif systems.

Основные технические характеристики модуля ESP32 представлены в следующей таблице.

Число ядер процессора 2
Архитектура 32 бита
Wi-Fi есть
Bluetooth есть
RAM (ОЗУ) 512 KB
FLASH 16 MB
Число контактов 30-38 (в зависимости от модификации модуля)
Коммуникационные протоколы SPI, IIC, I2S, UART, CAN
Каналы АЦП 18
Разрешение АЦП 12 бит
Каналы ЦАП 2
Разрешение ЦАП 8 бит

Далее перейдем к подготовке среды Arduino IDE к работе с модулем.

Удаление старых версий плат ESP32 из Arduino IDE

Если вы подключаете свой модуль ESP32 к Arduino IDE, то данный пункт статьи можно полностью пропустить. Если же вы ранее добавляли поддержку плат ESP32 в Arduino IDE с помощью инструмента GIT (к примеру, как описано в данной статье), то вам необходимо будет удалить каталог Espresiff из каталога Arduino. Пользователи операционной системы Windows могут найти этот каталог по адресу Documents/Arduino/hardware. Удалите данный каталог Espresiff прежде чем переходить к выполнению других пунктов статьи.

Удаление каталога Espresiff из каталога Arduino

Подготовка Arduino IDE к программированию ESP32

Шаг 1. Скачайте дистрибутив Arduino IDE по адресу https://www.arduino.cc/en/Main/Software, после чего установите его. Если у вас Arduino IDE уже установлена, то убедитесь что у вас свежая ее версия.

Шаг 2. Откройте Arduino IDE и в ней выберите пункт меню Files -> Preferences, в открывшемся окне найдите поле “Additional Boards Manager URLs:” (выделено красной рамкой на рисунке ниже).

Вход в панель настроек Arduino IDE

Шаг 3. Это поле может быть пустым или оно может содержать некоторую информация если до этого вы в Arduino IDE работали с модулем ESP8266.

Если это поле пустое, то просто добавьте в него строку: https://dl.espressif.com/dl/package_esp32_index.json.

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

Добавление необходимого URL в Arduino Ide

После этого нажмите OK.

Шаг 4. Выберите пункт меню Tools -> Boards -> Board Managers чтобы открыть окно менеджера плат (Board manager), в открывшемся окне выполните поиск ESP32. Если в предыдущем окне был вставлен правильный URL, то на экране вы должны увидеть картину, показанную на рисунке ниже, после этого нажмите на кнопку Install и ваша плата (ESP32) будет установлена в Arduino IDE.

Поиск библиотеки для работы с ESP32 в менеджере плат Arduino IDE

Шаг 5. Убедитесь в том, что у вас есть активное интернет соединение и подождите пока установка полностью завершится. Этот процесс может занять до нескольких минут и зависит от скорости вашего интернет соединения.

Установка библиотеки для работы с ESP32 в Arduino IDE

Теперь наша Arduino IDE подготовлена к программированию модуля ESP32.

Программирование ESP32 с помощью Arduino IDE

Шаг 1. Подключите ваш модуль ESP32 к компьютеру с помощью кабеля micro-USB. Убедитесь в том, что на модуле загорится светодиод красного цвета – это будет свидетельствовать об успешной подаче питания на модуль.

Шаг 2. Откройте Arduino IDE, в ней выберите пункт меню Tools -> Boards и в нем выберите плату ESP32Dev как показано на следующем рисунке.

Выбор платы ESP32Dev в Arduino IDE

Шаг 3. Откройте диспетчер устройств в Windows и в нем посмотрите COM порт, к которому подключен модуль ESP32. В нашем случае, как показано на следующем рисунке, он подключен к порту COM 8.

Определение COM порта, к которому подключен модуль ESP32, в диспетчере устройств

Шаг 4. Вернитесь снова в Arduino IDE и в ней в пункте меню Tools -> Port выберите COM порт, к которому подключен модуль ESP32. После этого вы должны увидеть как в правом нижнем углу появится информация о том, с каким COM портом вы работаете.

Отображение используемого порта в Arduino IDE

Шаг 5. Загрузите в модуль программу для мигания светодиодом (Blink Program) чтобы убедиться в том, что ваши программы будут корректно загружаться из Arduino IDE в ваш модуль ESP32. После загрузки данной программы встроенный светодиод модуля должен начать мигать с интервалом 1 секунда.

Как видите, эта программа мигания светодиодом для модуля ESP32 очень похожа на аналогичную программу для платы Arduino, отличие заключается лишь в том, что в плате Arduino ее встроенный светодиод подключен к контакту 13, а в модуле ESP32 он подключен к контакту 2.

Шаг 6. Для загрузки кода программы в модуль нажмите на кнопку upload в Arduino IDE, после этого вы в ее консоли должны увидеть процесс загрузки программы в модуль как показано на следующем рисунке – это будет свидетельствовать о том, что все идет нормально.

Процесс загрузки программы из Arduino IDE в модуль ESP32

Примечание: для некоторых модулей во время загрузки программы необходимо удерживать кнопку загрузки (Boot button) чтобы процесс загрузки прошел без ошибок.

Тестирование работы программы мигания светодиодом

Также вы можете загрузить в модуль ESP32 другие примеры программ и посмотреть на их работу. Эти примеры программ вы можете найти в Arduino IDE в пункте меню File -> Example -> ESP32.

Исходный код программы (скетча)

(Проголосуй первым!)
Загрузка...
14 866 просмотров

Комментарии

Программирование модуля ESP32 с помощью Arduino IDE — 24 комментария

  1. Здравствуйте
    Существует ли гайд по переделке сктчей под ардуино на esp32? Или список различий со стороны кода

    • Добрый день. К сожалению, не могу подсказать, не занимался данным вопросом.

  2. Доброго времени суток, у меня почему то не скомпилился Ваш вариант кода. Пришлось заменить 1 строку с
    int LED_BUILTIN = 2; на #define LED_BUILTIN 2 и только после этого заработало - чертовщина какая то, честное слово. В чём может быть причина? На Ваш взгляд. Может криво встала сама Arduino IDE, либо подключить какую нибудь стандартную библиотеку, там порыться в настройках самой IDE. Мне самому очень любопытно!

    • Добрый вечер. Честно говоря, не знаю. Но в программах для плат Ардуино обычно номера контактов все таки задавались через define. Я уже не помню почему именно тут было решено использовать int. Может быть, с типами данных какая то нестыковка и Arduino IDE не хочет чтобы для обозначения номера контакта (а их количество номеров очень ограничено, хватило бы и однобайтовой переменной) использовалась переменная типа int

  3. Здравствуйте,я так и не понял почему мне стоит всегда удерживать boot при компилации,хочется всетаки исправить такую проблему,ибо не удобно с таким работать,связано ли это с прошивкой?

    • Добрый день. Так заложено производителем этих модулей, но на некоторых моделях модулей можно не удерживать кнопку. Возможно, смена прошивки на более новую устранит эту проблему (хотя вы первый кто об этом написал, больше вроде никто не жаловался), но я не изучал данный вопрос. Не могу здесь помочь, к сожалению

  4. Здравствуйте, можете помочь в написании скетча с датчиком MQ-3 на ESP32 модуле?

  5. admin-new можно ли как то с вами связать? например по почте. если пару вопросов по esp32, оплачу

  6. официальный сайт программу не загружает пока нет пожертвований у меня во всяком случае длальше этого окна дело не сдвинулось

    • Ардуино проект бесплатный!!! Единственное неудобство скачивания с ОФ сайта это ссылка высылаемая на почту.

  7. всё это похоже на сумасшествие я делаю как вы говорите но ничего не получается даже есп32 в разделе менеджер план не появляется. похоже мы так сильно отстали, что даже то что рекомендовано для любителей нам не даётся. думаю я в бешенстве потратил на этого робота тысяч пять но эта хрень так и не работает уже месяц

    • Добрый вечер.
      На ее официальном сайте (https://www.arduino.cc/en/software) есть информация что на Windows 7 она работает, также она работает на 32-битной Linux. Но работает ли она на 32-битной Windows 7, честно говоря, не знаю и лично не пробовал. Но почему бы вам не попробовать ее скачать и поставить? Она же сравнительно немного весит

      • Работает с ограничениями только в версиях 1.*.* а вот начиная с 2.*.* уже не поддерживается! Проверил лично, при чём от версии винды не зависит, что 7, что 10 (на 11 винду 32 битную версию не стал проверять)

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *