Андрей Смирнов
Время чтения: ~10 мин.
Просмотров: 11

Знакомимся с ESP32, часть 1: установка в Arduino IDE

Микроконтроллер ESP32 – это одна из самых доступных и мощных платформ для создания умных ардуино-проектов с поддержкой WiFi. Придя на смену ESP8266, этот чип дал новые возможности для разработчиков, хотя по-прежнему остались старые проблемы с поддержкой и документацией. В этой статье вы найдете описание характеристик, распиновку микросхемы, примеры программирования с помощью Arduino IDE

Описание микроконтроллера ESP32

Фирма Espressif выпустила мощный недорогой микроконтроллер ESP32 летом 2016 года. Устройство представляет собой систему на кристалле, построенную по технологии TSMC 40 нм, с Wi-Fi и Bluetooth контроллерами. Оно оснащено двухъядерным 32-битным процессором, который работает на частотах 80, 160 или 240 МГц. Также в систему интегрированы антенные коммутаторы, радиочастотные компоненты, фильтры, усилители, модули управления питанием. Подключается ESP32 к компьютеру через обычный USB провод.

NodeMCU-32-S-1.jpg
Модуль ESP32 NodeMCU

Характеристики чипа

Технические характеристики ESP32:

  • Двух- или одноядерный 32-битный процессор Tensilica Xtensa LX6;
  • Тактовая частота – 160 или 240 МГц;
  • 520 Кб SRAM;
  • Максимальный ток потребления 260 мА, в спящем режиме – 10 мА;
  • Стандарты беспроводной связи – Wi-Fi: 802.11 b / g / N, Bluetooth: v4.2 BR/EDR and BLE;
  • Наличие датчиков температуры, Холла, тач-сенсоров;
  • Инфракрасное дистанционное управление;
  • Можно подключать двигатели и светодиоды через ШИМ разъем;
  • Стандарт IEEE 802.11 с поддержкой WFA, WPA/WPA2 и WAPI;
  • Возможность безопасной загрузки;
  • Шифрование флэш диска.
4fe0a61f-b527-497c-99cc-050c63cd9d81.jpg
Микросхема ESP32

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

Программирование модуля ESP32 может производиться на самых разных платформах, и средах, вот небольшой список наиболее популярных вариантов:

  • Arduino IDE;
  • Espressif IoT Development Framework;
  • Espruino;
  • PlatformIO;
  • Pymakr IDE.

Большинство проектов реализуется на Arduino IDE и Espruino.

Использование ESP 32

Хоть плата ESP32 появилась недавно, она уже активно используется в коммерческих проектах, связанных с мобильными приложениями, электроникой и задачами IoT. Например, на ее базе построен светодиодный браслет IoT группы Alibaba. Он представляет собой живой беспроводной экран, в котором каждый браслет работает как пиксель. Также на основе микроконтроллера реализована биометрическая система отслеживания посещаемости и проекты, связанные с анализом климатических условий. Имея плату ESP32 и датчики температуры, влажности и давления, можно самостоятельно собрать метеостанцию. ESP32 используется в музыкальных плеерах, помощниках с голосовым управлением, аудиогарнитуре.

Распиновка ESP32

Микроконтроллер оснащен 48 контактами плюс 1 большой тепловой контакт, которые обладают разными функциями. Выводы микросхемы:

  • 18 каналов 12-разрядного АЦП;
  • 10 GRIO портов;
  • 3 SPI;
  • 3 UART;
  • 2 I2C;
  • 16 ШИМ выводов;
  • 2 8-битных ЦАП вывода;
  • 2

Расположение выводов зависит от производителя. Например, есть плата ESP32 DEVKIT V1 DOIT, у которой 36 контактов. Распиновка представлена на рисунке ниже.

Raspinovka.jpg
Распиновка ESP32

Одним из самых популярных модулей является ESP-WROOM-32. Распиновка также приведена на картинке.

Распиновка ESP WROOM 32

К портам GRIO 0, 4, 2, 15, 13, 12, 14, 27, 33 и 32 подключены сенсорные выводы. Они могут использоваться для вывода ESP32 из глубокого сна. Они фиксируют любое изменение электрического заряда.

Порты с 34 по 39 используются только для ввода информации. На них отсутствуют подтягивающие резисторы, поэтому их нельзя использовать как выходы.

На некоторых платах отображаются контакты 6-11. Они подсоединены к к интегрированной SPI flash. Их не используют в проектах.

Есть различные версии платы ESP32 размерами 5х5 мм или 6х6 мм. Также на основе ESP32 существуют модули SMT для интегрирования в другие платы.

Отличия esp32 от esp8266

Платформы ESP8266 и ESP32 произведены одной компанией Espressif. Микроконтроллер ESP32 отличается от своего предшественника улучшенными характеристиками,  увеличенным функционалом и большим объемом памяти. Стоимость нового прибора дороже примерно в 2 раза.

Важным преимуществом ESP32 является более быстрый Wi-Fi и Bluetooth. В ESP32 установлен более мощный процессор, позволяющий реализовывать сложные проекты. Эта платформа подходит для приложений, в которых требуется интернет или новые интерфейсы. Для более дешевых разработок используется ESP8266.

Объем памяти у нового устройства ESP32 увеличен – 512 Кб против 160 Кб ESP8266. Также ESP32 отличается большим количеством выводов GRIO. К нескольким контактам на ESP32 прикреплены емкостные сенсорные датчики и датчик температуры. На обоих устройствах контакты GRIO можно использовать по-разному.  ESP32 имеет 18 12-битных АЦП каналов. У его предшественника есть всего 1 10-битный вывод АЦП.

Мощность процессора значительно влияет на скорость работы. Модуль ESP32 показывает рекордную производительность по сравнению с предшественником ESP8266. Загрузка страницы с длинным скетчем и множеством графики занимает секунды.

Из недостатков ESP32 можно выделить отсутствие библиотек для поддержки сенсоров и малое количество драйверов. Это связано с тем, что плата появилась в продаже недавно. Но учитывая все преимущества микроконтроллера и его перспективы, эта проблема будет решена уже в ближайшее время.

Настройка Arduino IDE для работы с ESP32

Изначально изделия от компании Espressif поставляются с прошивкой, позволяющей работать с помощью AT команд. Это не всегда удобно, поэтому лучше программировать плату в привычной среде разработки – Arduino IDE.

Чтобы начать создавать проекты на ESP32, сначала нужно иметь его поддержку в среде разработки Arduino IDE. Поддержка в настоящий момент находится на начальном, но работоспособном уровне. Проблемы могут возникнуть с драйверами устройств, но из-за популярности модуля вскоре будет поддерживаться вся периферия.

В первую очередь нужно скачать Arduino IDE и официальную инструкцию с сайта https://github.com/espressif/arduino-esp32. Нужно загрузить файлы дистрибутива и поместить в папку C:UsersUserDocumentsArduinohardwareespressifesp32.

Так как плата ESP32 новая и поддержка в среде разработки Ардуино появилась недавно, то могут возникнуть сложности с установкой. Это связано с тем, что драйвера только разрабатываются и изменен порядок расположения системных директорий. Все скетчи должны быть расположены в папке C:UsersUserDocumentsArduino. Файлы дистрибутива должны быть размещены внутри этой папки, как советует производитель. Если этого не учесть, то поддержка в Ардуино ESP32 будет отсутствовать.

После установки можно открыть Arduino IDE. Затем нужно перейти в настройки и в менеджере плат выбрать нужную. Теперь можно прошивать модуль.

Проверка модуля и подключение к Arduino IDE

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

  • Модуль ESP32;
  • Источник питания на 3 В;
  • Кнопка;
  • Резисторы;
  • USB кабель для подключения к компьютеру;
  • Провода;
  • Светодиод;
  • USB-TTL конвертор.

Собирается это все согласно схеме ниже.

Пример схемы ESP8266

Затем нужно загрузить тестовый код, прописав в нем номер COM порта, к которому подключен модуль, и тип платы. После загрузки скетча должен замигать светодиод.

Настройка официальной среды разработки ESP-IDF (Espressif IoT Development Framework)

Среду ESP-IDF можно установить на Windows. Для этого нужно:

  • Скачать с официального сайта среду разработки;
  • Распаковать архив, поместить его на диск C;
  • Затем появится каталог msys32, в который нужно перейти и запустить программу mingw32.exe;
  • Появится окно терминала, где нужно создать каталог с именем esp;
  • Нужно перейти в созданный каталог;
  • Подключить необходимые библиотеки с помощью команды git clone –recursive https://github.com/espressif/esp-idf.git;
  • Затем устанавливаются пакеты Python командой python -m pip install –user -r $IDF_PATH/requirements.txt.

После этого можно начинать работу. В каталоге esp-idfexamples есть различные примеры скетчей для работы с модулем.

Уже полюбивший всем модуль esp8266 давно получил продолжение в виде модуля esp32.

Это микроконтроллер стал лучше старого во многих показателях, также он обладает новыми функциями.

В данной картинке разработчики прописали те параметры, которые изменились из перехода от esp8266 к esp32.

Но разбор характеристик этой системы уже было на этом ресурсе, можете посмотреть, мы можем сразу перейти к началу работы с этой платой.

Первое, что мы должны сделать — это зайти на github и найти инструкцию по скачивании ПО для esp32, чтобы мы могли через arduino ide программировать нашу плату. Переходим по ссылке:

https://github.com/espressif/arduino-esp32/tree/master/docs/arduino-ide

На этой странице будет две нужные нам ссылки под разные ОС. У меня windows 10, поэтому я вам расскажу подробно о скачивании на эту ОС.

Открывается установочник, в которым вы можете выбрать нужные вам параметры.

Я выбрал такие параметры.

  1. Устанавливаем в папку Arduino.
  2. В выборе компонентов убрал интеграцию с w. explorer.
  3. Дальше оставил все стандартные параметры, которые предлагались пользователю.

После скачивания открываем появившейся приложение Git GUI

Выбираем “Clone Existing Repository”

Появятся два слота, куда необходимо записать следующие:

  1. https://github.com/espressif/arduino-esp32.git
  2. «Место папки хранения скетчей Arduino» + /hardware/espressif/esp32

У меня вышла такая ссылка — D:/Arduino/hardware/espressif/esp32

И нажимаем на кнопку “Clone”.

После скачивания, нужно будет зайти в папку esp32, которая появилась в итоге скачивания. Это вы должны зайти в папку скетчей для Ардуино и пойти по ссылкам (папкам) /hardware/espressif/esp32, которые мы обозначали при клонировании репозитория. Заходим в папку “Tools” и включаем установочник get.exe. Он скачает необходимую библиотеку для работы с esp32.

Дальше уже можем открывать arduino ide и смотреть менеджер плат, там должно появится большое ответвление в выборе нескольких видов отладочных и обычных микроконтроллеров esp32. Выберите нужный вариант платы. Часто встречаемся ESP32 dev module или NodeMCU – 32s. Проверьте, что компьютер видит плату как микроконтроллер, на некоторые виды esp необходимо вручную искать драйвера.

Для проверки работоспособности платы и то, что вы все правильно сделали, можно открыть папку с примерами (доступные в начале примеры скетчей) и найти wifi scan. Если скетч загрузился, то теперь вы можете успешно работать с esp32.

Также этот скетч может послужить проверкой работы wi-fi модуля на плате, и если настроить сериал порт в arduino ide на скорость 115200 бод, то можем увидеть ближайшие wifi точки от модуля.

Также, еще скажу, что в конце сайта (когда вы выбрали свою ос и скачивали git) есть пример обновления ПО для esp32. Библиотека часто обновляется и там описывается как обновить ваши данные.

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

На этом останавливаться не будем, скоро будет выложен первый хороший пример работы esp32, но так как многие из вас работают все еще на esp8266, то также и по этой плату будет сделано много интересных опытов. Удачи вам и становитесь умнее вместе с вашим домом!

Всем привет! С этого поста я начинаю серию «Знакомимся с ESP32». В этой части я опишу сам микроконтроллер, а так же процесс установки в Arduino IDE. Поехали!

1509176387191194418.png

ESP32 — это современный микроконтроллер от компании Espressif Systems, который был выпущен совсем недавно. Под «недавно» я имею в виду лето 2016. Он имеет очень нескромные характеристики:

-Двухъядерный 32-х битный процессор, работающий на частоте 80, 160 или 240 МГц (нуВ  плюс ещё одно энергосберегающее ядро с урезанным набором команд и на частоте 32 КГц)

-520 КБ оперативки

-448 КБ flash-памяти (на самом деле доступно больше, рассмотрим далее)

-Питание 2.2 — 3.6В

-Дополнительно внешняя flash-память на 4-16 МБ (о чём я говорил ранее)

-Wi-Fi 802.11n с максимальной скоростью 150 Мбит в секунду

-BT 4.2 BR/EDR и Low Energy

-АЦП 12-бит х18

-ЦАП 8-бит х2

-Встроенный датчик температуры

-SPI х4

-I2S x2

-I2C x2

-UART x3

-Ethernet контроллер

-CAN 2.0

-Инфракрасный контроллер, причём, как на приём, так и на передачу

-PWM на всех портах вроде

-Встроенный датчик Холла

-Куча периферии для криптографии (шифровальщики, хешеры, ГСЧ)

А так же энергопотребление:

-При передаче Wi-Fi 160-260 мА

-Без Wi-Fi и BT 20 мА

-Режим «мягкого» сна 0.8 мА

-Режим «глубокого» сна 10 мкА

-Гибернизация со включенным ядром низкого энергопотребления 5 мкА

АХТУНГ! Вы часто будете встречать слово RTC при использовании ESP32. Однако, это не Real Time Clock, а ядро низкого энергопотребления.

Я заказал отладочную плату на Али, которая обошлась мне в 335 рублей, это без доставки.

Установка

1. Скачиваем Arduino IDE

2. Устанавливаем Git с сайта

3. Запускаем Git GUI

3.1. Выбираем Clone Existing Repository

3.2. В Source Location пишем

https://github.com/espressif/arduino-esp32.git

3.3. В Target Directory пишем

C:/Users/[ИМЯ_ПОЛЬЗОВАТЕЛЯ]/Documents/Arduino/hardware/espressif/esp32

3.4. Нажимаем Clone

4. Открываем директорию

C:/Users/[ИМЯ_ПОЛЬЗОВАТЕЛЯ]/Documents/Arduino/hardware/espressif/esp32/tools

и запускаем файл get.exe

5. Подключаем нашу плату

5.1. Если драйвера сами не установились, то устанавливаем драйвера для CP210x (у меня был CP2102) отсюда

6. Запускаем Arduino IDE

7. Выбираем плату в Tools > Board (Инструменты > Плата) (У меня DOIT ESP32 DEVKIT V1)

8. Выбираем COM-порт, в который установилась плата

8.1. Как определить порт?

8.1.1. Открываем диспетчер устройств

8.1.2. Раскрываем группу «Порты (COM и LPT)»

8.1.3. Смотрим название устройств. Среди них должно быть что-то подобное

1509175842136152384.png

COM7 — это и есть наш порт.

9. Выбираем любой пример (например, вот)

10. Загружаем, нажав Ctrl+U

10.1. В некоторых инструкциях говорят, что во время загрузки нужно нажать кнопку BOOT на плате. Однако, у меня всё завелось и без неё.

Поздравляю, теперь вы загрузили свою первую программу на ESP32! Ждите следующих частей, в которых я расскажу некоторые тонкости и трудности, с которыми я столкнулся.

409Используемые источники:

  • https://arduinomaster.ru/platy-arduino/esp32-arduino-raspinovka-arduino-ide/
  • https://arduinoplus.ru/nachalo-raboti-esp32/
  • https://pikabu.ru/story/znakomimsya_s_esp32_chast_1_ustanovka_v_arduino_ide_5442448

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации