Esp32 что это такое

Микроконтроллер ESP32 и проекты Arduino

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

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

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

Esp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такоеМодуль ESP32 NodeMCU

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

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

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

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

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

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

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

Распиновка ESP32

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

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

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

Esp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такое Распиновка 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:\Users\User\Documents\Arduino\hardware\espressif\esp32.

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

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

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

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

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

Esp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такое Пример схемы ESP8266

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

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

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

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

Источник

ESP32-C3: первое знакомство. Заменим ESP8266?

Новая игрушка

В ноябре 2020 года Espressif анонсировала новую SoC под названием ESP32-C3. Они разослали несколько инженерных прототипов для тестирования и первого ознакомления.

Esp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такоеESP32-C3-DevKitM-1

Так довелось, что мне попался один из них на руки и я успел немного поиграться с ним. Надеюсь, мой краткий опыт будет интересен сообществу, так как тут есть на что посмотреть и ESP32-C3 имеет хороший шанс получить свою нишу в мире встраиваемых систем, так и в области DIY. Меня как раз больше интересует подход со стороны DIY, поэтому статья будет больше с этим уклоном.

В чём разница?

ESP32-C3 пытается занять нишу между ESP32/ESP32-S и нашим старым другом ESP8266. Даже больше хочет вытеснить ESP8266, чем быть дополнением к линейке ESP32.

Не знаю что там будет с ценами, но переход на RISC-V, упрощение периферии и прочее может сделать ESP32-C3 достаточно привлекательным, что бы он смог заменить ESP8266 полностью. В итоге мы получим достойную замену старичку, с которым мы вместе с 2014 года.

В таблице ниже я привёл основные отличия ESP32-C3 от предыдущих ESP32 и ESP32-S2. Так же у Espressif недавно был анонсирован ESP32-S3 с двумя ядрами, но я пока не буду его приводить ниже в силу отсутствия его в широкой продаже.

Количество ядер CPU

Как ESP8266, но не все выводы такие же

DevKit плата

ESP32-C3 приехал ко мне в виде платы ESP32-C3-DevKitM-1, на которой установлен модуль ESP32-C3-Mini-1 со встроенной 4 МБ флеш-памятью.

Esp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такоеESP32-C3-DevKitM-1 вид сверху и снизу

Так же на этой плате стоит USB-Serial конвертер CP2102 для подключения и прошивки по USB. На GPIO подключен RGB светодиод WS2812.

Сам модуль ESP32-C3-Mini-1 физически по размеру заметно меньше того же ESP-12E на базе ESP8266. И в то же время ESP32-C3 имеет намного больше возможностей.

«Engineering Sample Notes»

С платой была одностраничное приложение с некоторыми пометками.

Например, там написано, что потребление на DevKit’е ещё не достаточно оптимизировано и потому не рекомендуется для оценки в Deep-sleep режиме.

Так же сказано, что в данной версии чипа поддержка USB Serial/JTAG отсутствует, но она будет присутствовать в финальной версии.

Текущая версия ESP-IDF в процесс работы по добавлению поддержки ESP32-C3. Работа в этом направлении ведётся в ветках «master» и «release/v4.3».

Поддержка ESP-IDF

ESP-IDF является официальным фреймворком для разработки под ESP32. Сама среда поддерживает всю линейку ESP32. Большинство примеров можно собрать под Xtensa LX6/LX7, так и под RISC-V. Переключение сводится к одной команде «idf.py set-target esp32c3», которая выставляет riscv32-esp-elf- и прочие параметры в sdkconfig. Теперь после компиляции у нас готова прошивка для нового ESP32-C3.

Предварительно надо подготовить окружение в зависимости от ОС: Windows, Linux или macOS.

Установочный скрипт скачает компиляторы и дополнительные пакеты для ESP-IDF. После этого надо импортировать окружение для начала работы:

Рекомендую для проверки собрать «hello world»:

Не все примеры собираются под ESP32-C3, но Espressif активно работает над ESP-IDF для поддержки этого чипа.

CoreMark

Ради интереса запустил CoreMark бенчмарк для оценки производительности нового RISC-V ядра и сравнил эти данные с предыдущим ESP32 (к сожалению, у меня нет ESP32-S2 для более широкого сравнения).

Ниже приведены попугаи для разной частоты процессора и для общего ознакомления добавлены значения при компиляции с выключенными оптимизациями (-O0):

Я сделал измерения ESP32-C3 на 80 МГц, но значения получились ровно в два раза ниже, что и предполагалось и поэтому в таблице не привожу.

В попугаях RISC-V получился примерно на 24% быстрее. Конечно, обычные задачи, которыми мы загружаем такие микроконтроллеры будут сильно отличаться от синтетических бенчмарков, но было интересно посмотреть.

Надо так же не забывать, что ESP32 поддерживает работу на частоте 240 МГц, а у ESP32-C3 максимальная частота только 160 МГц. Так же ESP32 имеет два ядра, которые можно задействовать в зависимости от задач.

Но повышенная частота 240 МГц так же скажется на потреблении устройства. То есть, ESP32-C3 за каждый попугай будет просить меньше электронов (я не измерял потребление, но есть несколько замеров других наблюдателей).

ESP RainMaker

Вместе с этой новой платой Espressif продвигает платформу ESP RainMaker. Это некая среда, которая позволяет быстро создавать концепты и прототипы для IoT устройств.

На ESP32-C3-DevKitM-1 плате уже была прошивка ESP RainMaker, с которой можно получить общее представление об этом платформе.

Идея примерно такова:

На плате настроен обычный бинарный переключатель. При подключении платы через USB консоль мы получаем QR код, который надо отсканировать в приложении ESP RainMaker (доступно для Android и iOS) для первоначальной конфигурации настроек WiFi и добавлении этого устройства в приложение.

После этого можно управлять встроенным RGB светодиодом на плате через Espressif облако, которое находится на Amazon AWS.

ESP RainMaker SDK позволяет создавать разнообразные устройства, не только бинарный переключатель как в примере. Это может быть датчик измерения температуры или влажности, LCD экран, несколько выключателей сразу или много разных устройств вместе сразу. В последнем случае одна плата будет показана как несколько устройств в приложении.

Для того, что бы поиграться с ESP RainMaker не обязательно ждать когда можно купить ESP32-C3. Сама платформа замечательно работает на ESP32 и ESP32-S2. Для сборки прошивки достаточно иметь настроенный ESP-IDF:

В консоле появится QR код и дальше уже всё в приложении.

Выводы

Большее количество микроконтроллеров для фанатов DIY всегда позитивно, так как при большем выборе можно подобрать более подходящий МК и плату в зависимости от того, что более важно в новом проекте.

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

Отдельное спасибо Espressif за то, что сделали WiFi доступным для встраиваемых устройств 7 лет назад. А там и другие производители подтягиваются. Мы только в плюсе.

Источник

ESP32: знакомимся, пишем и запускаем первую прошивку

Всем привет. Несколько дней назад мне достался экземпляр ESP32 Demo Board V2, о чем я сразу радостно заявил у себя на FB. Конечно, ведь получить его сейчас не очень просто: первая партия (штук 600), которая поступила на продажу на Seeed Studio разлетелась за считанные часы!

Esp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такое

Но как разработчик и hardware интегратор Open-Source библиотеки для Blynk, я часто получаю ранний доступ к различным девайсам. Blynk позволяет быстро прототипировать и строить iOS/Android Apps для интернета вещей, используя drag’n’drop блоки прямо на телефоне.

Плата, которая попала мне в руки, выглядит вот так:

Esp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такое

ESP32 обещает снова совершить революцию в мире IoT, как в свое время совершил его младший брат ESP8266 (и я искренне надеюсь, что так и будет). Если Вы раньше ничего не слышали о ESP8266 — читайте, например здесь и здесь (ну и гугл).

Что же собой представляет новый ESP32? Даже с первого взгляда понятно, что это очень мощная платформа. Например, Иван Грохотков (разработчик поддержки Arduino для ESP8266) опубликовал фото игры DOOM на ESP32:

Характеристики ESP32

Esp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такое

Более детальная (и практически полная) информация есть на офф. сайте Espressif Systems. ESP32 будет доступен (как минимум) в нескольких видах:

Esp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такое

» Модуль AI-Thinker ESP3212, похожий на ESP-12F ($6.9). На ESP3212 нет ножек для SD-card, в отличии от WROOM-32.

Esp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такоеEsp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такое

Осторожно! Практически все упоминания о ESP32 до 09.2016 на самом деле о ESP31B, что вообще не то же самое.

Настройка среды разработки

На оффсайте сейчас можно найти ссылки на два SDK:

» ESP31_RTOS_SDK — SDK для ESP31B, построена на FreeRTOS.
» Espressif IDF (IoT Development Framework) — Official development framework for ESP32.

Хоть это и не очевидно с описания на сайте, но для релизной версии нам подходит только ESP-IDF. Есть инструкции по установке для linux, windows, macos.

У меня 64-bit Ubuntu Linux. Сначала скачал компилятор:

Пишем Hello World

Espressif подготовил для нас темплейт проект, так что начать очень просто:

Собираем и заливаем на плату

Чтоб собрать проект, сначала надо настроить окружение:

Теперь подключаем плату, включаем питание, и смотрим на каком порту она появилась (у меня это /dev/ttyUSB3). Запускаем конфигуратор:

Esp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такое

Надо зайти в «Serial flasher config» и установить «Default serial port» на порт платы. Можно еще посмотреть другие настройки.
Все, сохраняем и выходим.

Если все хорошо, заливаем на плату:

Подключаемся к плате используя Putty (screen, или другой эмулятор терминала). Передергиваем питание, и видим:

Отладка

Ну что ж, осталось только дождаться наличия ESP32 в магазинах, стабилизации SDK (надеюсь, оно будет изначально намного стабильнее, чем ESP8266). Функция Bluetooth тоже пока не доступна. В скором времени (по моим данным, очень скоро) должны появиться бета-поддержка Arduino IDE и MicroPython, чуть потом Espruino и что-то похожее на NodeMCU.

Источник

ESP32 и Ардуино

Esp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такое

Случилось то, чего все так долго ждали и о чём так много говорили — новые модули ESP32 стали широко продаваться и пошли в народ. Сегодня мы поговорим об этих модулях с точки зрения непрофессионального пользователя, привыкшего работать с Ардуино и создавать небольшие проекты для домашней автоматизации или просто для удовольствия и самообучения.

Работает ли это вообще? Что там с поддержкой этих модулей в Arduino IDE? Стоит ли платить больше или лучше ограничиться ставшим уже привычным ESP8266? Мы постараемся вместе ответить на все эти вопросы, а в конце статьи я дам ссылку на реальное воплощение работы ESP32 с Ардуино — дистрибутив бесплатной версии Arduino Mega Server для платформы ESP32.

Спецификации

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

Оставим это профессионалам (или тем, кто считает себя таковым) и сосредоточимся на практической стороне вопроса, понятной и доступной простому смертному.

Цена вопроса

Начнём с цены. На данный момент модуль ESP32 в китайских интернет-магазинах стоит 350 рублей и 500 в варианте платы с обвязкой и USB интерфейсом. Это против 100 и 160 рублей для модуля ESP8266, соответственно. Как видим, разница в три с лишним раза, хотя абсолютные значения невелики, каждый, при желании, может позволить себе потратить 350 — 500 рублей на микроконтроллер. Для сравнения, Arduino Mega 2560 в том же Китае стоит 600 рублей, а в России около 1000 (плюс ещё стоимость Ethernet Shield).

Осталось только выяснить, стоит ли платить в три раза больше, чем за ESP8266 и что мы за это получим. (Забегая вперёд скажу, что на мой взгляд, безусловно стоит.)

Поддержка в Arduino IDE

Для того, чтобы что-то сделать с модулем, нужно сначала иметь его поддержку в Arduino IDE. На данный момент поддержка ESP32 в Arduino IDE находится хоть и на начальном, но вполне приличном и работоспособном уровне. Те, кто боится встретить тут непреодолимые трудности, может не беспокоиться — основные функции работают нормально и вы, скорее всего, не заметите никакой разницы по сравнению с работой на других контроллерах.

Несколько хуже дела обстоят с драйверами устройств, но это, безусловно, временное явление. Модуль настолько популярен, что поддержка любой периферии неизбежно появится в ближайшее время.

Добавление поддержки ESP32 в Arduino IDE

Теперь немного практической информации об инсталляции поддержки ESP32 в Arduino IDE. Интернет полон инструкциями на эту тему, вы их также можете в изобилии найти в нём. Замечу только, что все инструкции делятся на «старые», там, где упоминается Python и «новые», где упоминается GIT. Вам, естественно, нужно руководствоваться новыми.

Из множества инструкций лучшей можно назвать (как это ни странно) официальную инструкцию от производителя модуля.

Которой я и рекомендую пользоваться. Единственное замечание: GIT использовать необязательно, можно просто скачать дистрибутив и распаковать его в нужную директорию.

Примечание. Все нижеизложенное касается инсталляции под Windows 7 64-bit, поскольку все эксперименты я производил именно на ней, в других операционных системах пути могут отличаться от указанных.

Файлы дистрибутива должны находиться в папке

где C: — это имя вашего диска с Windows, а User — это имя пользователя в операционной системе (и то и другое у вас может отличаться от указанных).

Неочевидные моменты инсталляции ESP32

Многие пользователи жалуются, что у них ничего не работает и не появляется поддержка ESP32 в Arduino IDE. Тут дело вот в чём: поскольку драйвера ESP32 только разрабатываются, то несколько изменён порядок расположения системных директорий. В качестве папки для расположения скетчей в настройках Arduino IDE должна быть указана папка

(с теми же поправками на диск и имя пользователя), а файлы дистрибутива должны располагаться внутри этой папки так, как рекомендует производитель. Если не будет учтён этот момент, то поддержка ESP32 в Arduino IDE не появится и ничего работать не будет.

Версии Arduino IDE

Часто приходится слышать, что поддержка ESP32 есть только в последних версиях Arduino IDE, это не так — ESP32 прекрасно работает в более ранних версиях, например, дистрибутив Arduino Mega Server для ESP32 разрабатывался в версии 1.6.5 r2.

Преимущества ESP32

Теперь поговорим о преимуществах ESP32 перед его предшественником, ESP8266. На таких очевидных вещах как мощность процессора и объём оперативной памяти я останавливаться не буду, скажу только, что нужно сильно постараться, чтобы загрузить ESP32 полностью на задачах DIY и домашней автоматизации.

Ахиллесовой пятой его предшественника, модуля ESP8266, было (и есть) экстремально малое количество выводов. После работы с такими контроллерами как Arduino Mega и Arduino Due с их десятками цифровых и аналоговых пинов, работа с ESP8266 вызывает недоумение: счёт GPIO идёт буквально на единицы и это сильно ограничивает применение этого модуля в реальных проектах.

Esp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такое

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

В случае необходимости к ним можно добавить ограниченно функциональные и работающие только на вход

Если пожертвовать некоторыми возможностями и не использовать в конкретных проектах Serial, SPI или I2C, то к этому числу можно добавить ещё 8 пинов

Ну и возможно удастся использовать ещё 6 выводов, которые предназначены для работы с внутренней флеш-памятью (например, если подключить внешнюю SD карту)

Как видим, с ESP8266 нет никакого сравнения — новый модуль выглядит просто отлично по количеству возможных подключений и это очень ценно в реальных проектах, в которых дорог каждый пин.

Скорость работы

Я уже упоминал мощный процессор, теперь несколько слов нужно сказать о скорости сетевой работы. Я затрудняюсь сказать с чем это связано, возможно с мощным процессором, возможно с оптимизацией сетевого стека, но модуль ESP32 под управлением Arduino Mega Server показал рекордную сетевую производительность.

Esp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такое

Загрузка страницы с объёмным кодом CSS и JavaScript и обилием графики занимает всего одну с небольшим секунды — быстрее, чем на любом другом протестированном контроллере, включая проводные контроллеры с W5100 и W5500 Ethernet интерфейсом.

Применительно к Arduino Mega Server это снимает все ограничения на использование графики и любых JavaScript библиотек как по размеру, так и их количеству.

Прочие достоинства

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

Примеры работы с кодом

Энергонезависимая память

Это то, что применительно к Arduino Mega мы привыкли называть EEPROM. В ESP32 этой памяти нет как таковой, но у этого модуля есть её аналог и соответствующая библиотека для работы с ней. Называется эта память «NVS» (Non-volatile storage).

Но для нас нет никакой разницы — можно точно так же сохранять значения и читать их после выключения и последующего включения контроллера.

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

Создаём объект prefs

Инициализируем хранилище с идентификатором, например, «nvs»:

false относится в выбору режима чтение/запись, в данном случае и чтение и запись. Сохраняем байт под именем «addr»:

Читаем сохранённый байт:

Подобным же образом можно сохранять и читать значения любых других типов данных. Теперь удаляем хранилище.

Если разобраться, то это даже проще, чем работа со стандартной энергонезависимой памятью EEPROM на контроллерах Ардуино.

AnalogWrite()

Ещё одно нововведение, которое может поставить в тупик начинающего пользователя — в ESP32 отсутствует привычная функция AnalogWrite(). В первый момент это очень непривычно, но на самом деле эта функция всего лишь заменена своим более функциональным аналогом.

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

В данном случае нас интересует файл работы с ШИМ и светодиодами, который мы подключаем следующей инструкцией:

Далее нам нужно установить номер канала (0), частоту ШИМ (например, 50 Гц) и разрешение (8 бит).

Номера каналов могут устанавливаться в диапазоне от 0 до 15, а разрешение от 1 до 16 бит. При выборе разрешения 8 бит, диапазон данных, управляющих ШИМ, будет находиться в интервале от 0 до 255.

Далее нам нужно привязать наш канал (0) к какому-либо выводу GPIO, в данном случае к выводу 22:

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

Всё, теперь мы можем управлять, например, яркостью свечения светодиода, просто указывая номер канала и значение ШИМ (яркости) из диапазона от 0 до 255.

Прочие примеры кода на ESP32

Дистрибутив Arduino Mega Server, ссылку на который я дам в конце статьи, кроме полностью работоспособной системы являет собой обширный сборник структурированного кода, протестированный и проверенный на работоспособность на модуле ESP32. Вы можете его использовать как обучающее пособие для вхождения в тему программирования под ESP32.

Стабильность работы

Arduino Mega Server для ESP8266 имеет подтверждённые аптаймы в несколько месяцев и демонстрирует абсолютно стабильную работу и у меня нет никаких причин думать, что у модуля ESP32 могут быть какие-то проблемы со стабильностью. По крайней мере за всё время создания дистрибутива AMS для ESP32 я не наблюдал ни единого сбоя или несанкционированной перезагрузки модуля. Всё работает очень чётко и предсказуемо.

Arduino Mega Server для ESP32

Это ещё один представитель экосистемы AMS, включающей в себя контроллеры и платы Arduino Mega, Due, 101, M0, AMS Home, ESP8266, Sonoff, ESP32, OLIMEX ESP32-EVB и т. д. Благодаря мощному процессору и быстрой сетевой работе модуля ESP32, интерфейс Arduino Mega Server содержит обилие графики и скриптов и это никак не сказывается на скорости его работы — страницы загружается почти мгновенно.

Esp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такое

Всё работает стабильно и предсказуемо, никаких сбоев или неадекватного поведения системы или модуля не выявлено. Ниже приведён лог загрузки AMS, из которого можно узнать некоторые подробности о системе.

Esp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такое

Температура модуля, измеряемая встроенным датчиком температуры колеблется от 50 градусов Цельсия при старте до 55 градусов в процессе работы. Во время работы ток потребления модуля составляет около 130 мА.

Перспективы

Esp32 что это такое. Смотреть фото Esp32 что это такое. Смотреть картинку Esp32 что это такое. Картинка про Esp32 что это такое. Фото Esp32 что это такое

Заключение

Вот, собственно и всё, что я могу сказать о новом модуле ESP32 и его работе с Ардуино. Впечатления он оставляет исключительно положительные, мне по крайней мере, было очень приятно и интересно с ним работать. Немного портит картину отсутствие библиотек для поддержки датчиков и периферии, но это временное явление и вскоре с этим всё будет в порядке.

Источник

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

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