Перейти к содержимому

ESP32: чипы, модули, платы…

Добрый день, уважаемый читатель! В данной статье мы поговорим про усы, лапы, и хвост; (тьфу, крылья, ноги, хвосты, опять не то) чипы, модули и платы ESP32.

КдПВ: усы, лапы и хвост - все документы на месте

КдПВ: усы, лапы и хвост – все документы на месте

Разбираться в модулях Esspressif, которые поставляет компания, дело неблагодарное. В списке доступных к заказу их несколько сотен. На Ali, конечно, предлагают поменьше, но новичкам всё равно ничего не понятно. Это даже хуже, чем выбирать смартфон от Xiaomi. Но всё таки давайте попробуем разобраться.

 

Для начала определимся с терминологией. В этой статье (да и в других статьях цикла) я буду использовать следующие термины:

  • чип – собственно микроконтроллер (или core в документации espressif, он же Жора SoC {System On Crystal – система на одном кристалле}, он же Гога MCU {MicroController Unit}); то есть собственно микросхемка без антенны, кварцевого резонатора, микросхемы FLASH-памяти и прочей обвязки
  • модуль – готовый микромодуль с напаянными внутри чипом, памятью, антенной или разъемом; чаще всего закрыт экраном с маркировкой
  • плата – как правило под этим термином я буду понимать различные отладочные платы с установленным модулем, USB-конвертором и стабилизатором

Добрый день, уважаемый читатель! В данной статье мы поговорим про усы, лапы, и хвост; (тьфу, крылья, ноги, хвосты, опять не то) чипы, модули и платы ESP32.-2


Линейки чипов Espressif

Если обратиться к сайту производителя, то можно увидеть, что компания сейчас выпускает четыре линейки продукции: ESP8266, ESP32, ESP32-S и ESP32-C.

Продукция Espressif на текущий момент

Продукция Espressif на текущий момент

  • ESP8266 – предшественник ESP32 на базе 32-разрядного RISC-процессора Tensilica® L106, с максимальной тактовой частотой 160 МГц. Я пользовался модулями этой линейки несколько лет, на мой взгляд, модуль получился не очень удачным, особенно в первое время (ESP-01 и т.д.). Производитель заявляет поддержку FreeRTOS, но поддержка эта “так себе”. Хотя для опытов с Arduino и WiFi вполне сгодится. Мы не будем его рассматривать.
  • ESP32 – “классический” ESP32. созданный в 2016 году на базе двухъядерного процессора Xtensa® 32­bit LX6 (или одноядерного в некоторых случаях) с максимальной тактовой частотой 240 МГц. Работает с использованием относительно старых протоколов WiFi 2.4 MHz. Самая популярная линейка среди самодельщиков, так как его возможностей хватает “с избытком”, множество предложений на Aliexpress, а цена невелика (даже по сравнению с ESP8266).
  • ESP32-S(2,3) – относительно новая (2020 год) линейка ESP32 базе процессора следующего поколения Xtensa® 32-bit LX7 с максимальной тактовой частотой 240 МГц. В качестве основных преимуществ по сравнению с предыдущей линейкой производитель отмечает улучшенную криптографию (шифрование FLASH памяти, безопасную загрузку прошивки, защиту от атак) и поддержку современных беспроводных протоколов связи. Имеет большее количество GPIO, чем классическая ESP32. Но меньшее количество встроенной памяти (см. таблицу ниже). Судя по платам, имеющимся в продаже на Aliexpress, модули имеют поддержку USB (ttyACM0) непосредственно в чипе.
  • ESP32-C(2,3,6) – недорогая линейка на базе одноядерного RISC-V процессора, предназначенная в первую очередь для встраиваемых устройств типа “умных розеток” и “умных лампочек”. Это скорее не “урезанный” ESP32, а “усовершенствованный” ESP8266. В отличие от ESP8266 новый SoC имеет поддержку безопасной загрузки, флэш-шифрования и современных беспроводных стандартов связи. Имеет меньшее количество GPIO, чем классическая ESP32, (но у нее и назначение другое). Судя по платам, имеющимся в продаже на Aliexpress, модули имеют поддержку USB (ttyACM0) непосредственно в чипе (но это не точно).

Сравнение характеристик процессора и памяти для различных линеек из официальной документации: https://docs.espressif.com/projects/esp-idf/en/release-v5.0/esp32/hw-reference/chip-series-comparison.html

Сравнение характеристик процессора и памяти для различных линеек из официальной документации: https://docs.espressif.com/projects/esp-idf/en/release-v5.0/esp32/hw-reference/chip-series-comparison.html

Сравнение характеристик периферии для различных линеек из официальной документации: https://docs.espressif.com/projects/esp-idf/en/release-v5.0/esp32/hw-reference/chip-series-comparison.html

Сравнение характеристик периферии для различных линеек из официальной документации: https://docs.espressif.com/projects/esp-idf/en/release-v5.0/esp32/hw-reference/chip-series-comparison.html

В данной статье я буду рассматривать в основном чипы и модули “базовой линейки” ESP32, так как про ESP8266 – уже не интересно, а ESP32-S и ESP32-С я лично ещё не пользовался (ну вот не было такой необходимости), поэтому поделиться опытом я не могу. А зачем писать про то, чего сам не знаешь? Если у Вас есть желание подробнее ознакомиться с новыми сериями, Вы можете сделать это самостоятельно на сайте производителя. Но судя по поиску на AliExpress, новые модули пока не сильно распространены.

 


Чипы классической линейки ESP32

В настоящее время Espressif производит модули ESP32 на базе следующих чипов (SoC):

  • ESP32-D0WDQ6 – исторически самый первый чип, выпущенный Espressif, сейчас не доступен для заказа. Модули на основе этого чипа я рассматривать так же не буду (а смысл?).
  • ESP32-D0WD – некоторое время основной SoC, на основе которого создавались модули ESP32-WROOM-32, ESP32-WROOM-32D, ESP32-WROOM-32U и серии ESP32-WROWER (не все модели! подробности ниже). Имел некоторые аппаратные проблемы, поэтому в конце концов был снят с производства и заменен на исправленную версию ESP32-D0WD-V3 и сейчас не доступен для заказа на сайте Espressif, но его вполне ещё можно купить на Aliexpress.
  • ESP32-D0WD-V3исправленная версия ESP32-D0WD с маркировкой ECO V3. Например исправлена ошибка кэша при работе с внешним ОЗУ (PSRAM), если таковое присутствует в модуле. Если есть желание, можете ознакомиться со списком изменений самостоятельно ( или на форуме ).
  • ESP32-D0WDR2-V3 – этот более продвинутый вариант ESP32-D0WD-V3, который имеет на борту 2 МБ встроенной PSRAM. Используется только в продвинутом модуле ESP32­-WROOM-­DA.
  • ESP32-S0WD – “урезанный” одноядерный вариант ESP32-D0WD. Собственно этим всё сказано. Не вижу смысла, но производителю виднее. На Aliexpress присутствует только в виде чипов и модулей, плат на основе этого чипа нет. Видимо, спроса нет.
  • ESP32-U4WDH – ещё один вариант ESP32, данные о нем весьма противоречивы: на сайте Espressif написано, что это одноядерный модуль с частотой 160 MHz и с 24 GPIO, а судя по datasheet- это вполне себе обычный ESP32 с 28 выводами GPIO. На Aliexpress отсутствует.
  • ESP32-PICO-V3-02 – в основе этого модуля лежит тот же самый чип ESP32 (ECO V3), но разработанный с использованием маломощной технологии TSMC 40 нм. На Aliexpress присутствует только в виде чипов и модулей.

Модули классической линейки ESP32

На первый взгляд, во всей этой “мешанине” модулей, выпускаемых Espressif, легко запутаться. Но если разобраться, то всё оказывается просто и логично довольно (на самом деле не всегда).

Во первых – название серии модулей (после ESP32-) определяет, есть ли в модуле дополнительная внешняя оперативная память или другие конструктивные особенности. На данный момент компания Espressif выпускает три “классических” серии модулей ESP32 (повторюсь, модули линеек ESP32-S и ESP32-С, я не буду рассматривать в рамках данной статьи):

  • Серия ESP32-WROOM – модули на базе чипа ESP32-D0WD и его модификаций со встроенной флэш-памятью. Эти модули поддерживают Wi-Fi и Bluetooth/Bluetooth LE и обеспечивают высокую двухъядерную производительность. Самая массовая и популярная серия, на Aliexpress присутствует в самых разных вариантах.
  • Серия ESP32-WROVER – по сути это тот же самый ESP32-D0WD, только дополнительно оснащенный “внешней” памятью SPIRAM (другое название PSRAM)*. То есть вне чипа, но внутри модуля. Из-за этого он имеет большие габариты. WROWER хорошо подходит для приложений, требующих больше памяти, например при обработке видео или ИИ.
  • Серия ESP32-MINI – основана на ESP32-U4WDH, что обеспечивает экономичное решение для простых приложений подключения на основе Wi-Fi и Bluetooth/Bluetooth LE. Стоимость модулей на Ali выше, чем обычных, а единственная отладочная плата имеет совершенно “конский” ценник.

* Примечания к ESP32-WROVER:
1. Из-за того, что выводы MCU IO16 и IO17 заняты в интерфейсе QSPI для подключения SPIRAM, их нельзя использовать (да они и не выведены на контакты).
2. SPIRAM это совсем НЕ то же самое, что интегрированная в чип SRAM! Доступ к SPIRAM осуществляется MCU не непосредственно, а постранично через буферизированное “окно” в адресном пространстве. Поэтому “внешняя” память SPIRAM работает существенно медленнее обычной. В некоторых приложениях (связанных с обработкой видео, например), это может быть критичным. По умолчанию SPIRAM не доступна для malloc() и calloc(), её нужно “подключать” через sdkconfig.
Кроме того, есть подозрения (лично видел issue на github), что SPIRAM гораздо быстрее фрагментируется, чем обычная. Впрочем это может быть чисто программной проблемой, которую можно устранить.

Буква на конце маркировки (D, U, E, I и т.д.) определяет конструктивные особенности модуля:

  • Если буква на конце маркировки отсутствует, то чип внутри такого модуля может стоять какой угодно – либо новый ESP32-D0WD-V3, либо ESP32-D0WD, либо вообще доисторический ESP32-D0WDQ6. Одно известно совершенно точно: такие модули имеют печатную антенну. На AliExpress модулей с обозначением ESP32-WROOM-32 сейчас “пруд пруди”, но сайт производителя уверяет нас, что без буквы маркированы только устаревшие модули (на базе ESP32-D0WDQ6), давно снятые с производства. Могу предположить, что это могут быть “не совсем оригинальные” модули, но это не точно. Как правило, встречаются на платах ESP32 DevKit V1 и подобных (на ESP32 DevKitС V4, имеющихся в моем распоряжении, стоят модули с буквами D или E).
  • Буква D или E обозначает модули с печатной антенной. Буква D на конце маркировки модуля указывает на чип ESP32-D0WD, буква E указывает на новый чип ECO V3 (ESP32-D0WD-V3). На первый взгляд, существенных отличий модулей с буквой Е по от предыдущих моделей нет. Но если взглянуть на контакты модуля, можно заметить, что часть контактов, задействованных в QSPI интерфейсе (через который может подключаться внешняя FLASH память), не подключена. Но для абсолютного большинства “любительских” применений эти контакты всё равно не имеют никакого значения, так что разницы вы не заметите.
  • Буква U (для WROOM) или I (для WROWER) на конце маркировки модуля указывает на то, что вместо печатной антенны установлен разъем U.FL / IPEX для подключения внешней антенны. Модули с печатной антенной MIFA (Meandered Inverted-F Antenna) удобно применять, когда в точке размещения модуля сигнал WiFi достаточно сильный (или вообще не требуется подключение к сети). Модули с разъемом U.FL / IPEX (имеющие букву U в названии) подойдут, если вы хотите установить ESP32 в металлическом боксе или если уровень сигнала WiFi оставляет желать лучшего (во дворе, в гараже и т.д.). Но антенну придется прикупить отдельно.

Внимание! На модуле с внешней антенной нельзя активировать WiFi, если антенна не подключена – можно спалить передатчик. Я уже это проверил и убедился – это действительно так.

В качестве иллюстрации приведу картинки с одного известного сайта наших постоянных поставщиков:

ESP32-WROOM-32E с печатной антенной. Источник: aliexpress.com

ESP32-WROOM-32E с печатной антенной. Источник: aliexpress.com

ESP32-WROOM-32U с разъемом для внешней антенны. Источник: espressif.com

ESP32-WROOM-32U с разъемом для внешней антенны. Источник: espressif.com

____________________________________________________________________________________

Размер установленной FLASH-памяти. На сайте Expressif доступны модули c 4 MB или 8 MB или 16 MB FLASH памяти. На AliExpress так же есть в продаже модули WROOM с 8 или 16 MB, но только в виде собственно модулей (плат я не видел, но это не большая проблема). Больший размер FLASH может пригодится для накопления каких-либо данных без использования microSD карт.

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

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

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

Ну надо же что-то написать:

  • Процессор: Xtensa® dual-/single-core 32-bit LX6 с тактовой частотой 80 / 160 / 240 MHz
  • ROM: 448 KB
  • SRAM: 520 KB
  • FLASH: 4 / 8 / 16 MB
  • WiFi: IEEE 802.11 b/g/n; 2.4 GHz; HT20/40; up to 150 Mbps
  • GPIO: WROOM 26 / WROWER 24
  • ADC: 12-bit до 18 каналов (на самом деле не совсем)
  • DAC: 2 × 8-bit
  • PWM: Motor PWM, LED PWM до 16
  • Интерфейсы: 4 × SPI | 2 × I2S | 2 × I2C | 3 × UART | 1 host (SD/eMMC/SDIO) | 1 slave (SDIO/SPI) и т.д.

Хочу обратить ваше внимание только на то, что, согласно спецификации, выводы GPIO допускают ток аж до 40 mA “высокого” уровня и до 28 mA “низкого” уровня. Это позволяет управлять различными слаботочными устройствами типа светодиодов напрямую, без применения коммутирующих транзисторов, нужно только учитывать напряжение на выводе не более 3.3В.

 


Модули ESP32

В списке приведены основные модули, которые можно приобрести в настоящее время. Редкие модели я не буду рассматривать, но внизу есть ссылка на сайт espressif, где вы можете найти информацию по любым модулям. Сам я использую пока что только модули серий WROOM и WROWER.

Кликните по названию, чтобы открыть официальную документацию.

  • ESP32-WROOM-32D / ESP32-WROOM-32U. Несколько устаревшие модули на основе чипа ESP32-D0WD, на текущий момент сняты с производства и не доступны к отгрузке на сайте Espressif. Но на складах AliExpress, их, видимо ещё достаточно, и их легко можно заказать.
  • ESP32-WROOM-32E / ESP32-WROOM-32UE. Новые модули на основе “исправленных” чипов ESP32-D0WD-V3, уже доступны к заказу на AliExpress, но стоят пока немного дороже.
  • ESP32-WROWER-32B / ESP32-WROWER-32IB. Старая версия модулей на ESP32-D0WD с дополнительной памятью SPIRAM. На текущий момент эти модули сняты с производства, они не доступны к отгрузке на сайте Espressif. В дикой природе (читай: ali) уже почти не встречаются. Из-за проблем с внешней SPIRAM на старых чипах, китайцы стали ставить новые V3 чипы вначале на WROVER серию, а только потом уже и на WROOM.
  • ESP32-WROWER-32E / ESP32-WROWER-32IE. Новые модули на основе “исправленных” чипов ESP32-D0WD-V3 с дополнительной памятью SPIRAM. В основном эти модули сейчас доступны к заказу на сайте AliExpress.
  • ESP32-SOLO-1 (на чипе ESP32-S0WD). “Облегченная” одноядерная версия ESP32-WROOM-32D, сейчас снята с производства, но её всё ещё можно заказать у “китайских друзей”. Лично я не использовал, так как не вижу особого смысла для себя в одноядерных модулях.

Есть ещё несколько модулей в классической серии, но они редко распространены в дикой природе (aliexpress – прим.авт.). Информацию по другим модулям вы можете найти здесь.

В заключение хочу отметить, что если вы хотите разрабатывать устройства, используя “чистые” модули ESP32-WROOM, то я рекомендую приобрести вот такую плату с загадочным названием “тесты доска горелки“, с помощью которой можно легко прошить модуль, а уже потом впаять его в готовую плату:

Плата "тесты доска горелки". Источник: aliexpress.com

Не пугайтесь – это не приспособление для сжигания инструмента, как нам вещает сайт.

 


Платы ESP32

На AliExpress можно найти платы разработчика на любой вкус и кошелек. Я редко использую собственно “чистые” модули, только когда требуется особая компактность. В большинстве случаев гораздо удобнее использовать готовые платы с уже напаянным модулем, стабилизатором питания и интерфейсом USB. Если использовать специальные разъемы, то можно легко снимать плату для перепрошивки или замены, а под ней можно разместить дополнительные компоненты в целях компактности. На рисунке ниже пример устройства под плату ESP32 DevKitС V4.

Пример платы, рассчитанной под ESP32 DevKit V4

Пример платы, рассчитанной под ESP32 DevKit V4

Однако, использование “плат разработчика” накладывает некоторые ограничения, которые следует учитывать. Рассмотрим их ниже на примере ESP32 DevKitC V4.

ESP32 DevKitС V4

“Официальная” (разработка Espressif) и самая популярная плата на основе “классической” линейки ESP32-WROOM или ESP32-WROVER. Кстати, продаются также “пустые” платы (без модуля), на который вы можете припаять любой выбранный модуль самостоятельно.

ESP DevKit V4. Источник: https://docs.espressif.com/projects/esp-idf/en/stable/esp32/hw-reference/esp32/get-started-devkitc.html

ESP DevKit V4. Источник: https://docs.espressif.com/projects/esp-idf/en/stable/esp32/hw-reference/esp32/get-started-devkitc.html

Если обратиться к документации, можно увидеть следующую схему выводов платы:

Распиновка ESP32-DevKitC

Распиновка ESP32-DevKitC

Что очень удобно, из под ESP-IDF для большинства интерфейсов можно использовать произвольные выводы, а не только заранее определенные. Но не всё так гладко, как кажется сначала.

Ограничения выводов ESP32 DevKitС

Согласно документации, модуль WROOM-32 имеет 34 GPIO. Но, не все контакты можно использовать в своих проектах.

  • Нельзя использовать GPIO 6-11 (D0, D1, D2, D3, SCK, CMD), так как эти выводы используются для доступа к FLASH памяти. Сразу исключайте их из своих проектов, причём это справедливо и при использовании “чистых” модулей. Кстати, на новых модулях ECO V3 (с индексами E) они просто не выведены. Профессиональные разработчики, которые используют эти контакты для подключения своих flash модулей, очень расстроены этим фактом.
  • Нельзя использовать порт SERIAL 0: GPIO 1 и GPIO 3 (RX, TX), так как он использован для подключения USB конвертора. Если вам очень необходим “основной” serial – используйте модуль вместо платы.
  • Не рекомендуется использовать GPIO 0, так как он используется для прошивки микроконтроллера через UART0. Это основной вывод из так называемых “Strapping Pins” / “Биты обвязки“. ESP32 войдет в режим прошивки, когда GPIO 0 удерживается на низком уровне при сбросе. Таким образом, внешняя подтяжка GPIO 0 нарушит работу системы прошивки через UART0. Но его вполне можно использовать для управления нагрузкой, если это крайне необходимо.
  • GPIO 2, 5, 12, 15, судя по схеме модуля, на платке никуда не задействованы, но так же помечены как “Strapping Pin Functions” / “Биты обвязки“. Это означает, что состояние этих выводов считывается процессором по время работы системы сброса микроконтроллера (в том числе сброс при включении питания, сброс по сторожевому таймеру RTC и сброс по BrownOut). Защелки на этих выводах удерживают логические уровни до тех пор, пока микропроцессор не будет перезапущен. Биты обвязки настраивают режим загрузки устройства, рабочее напряжение VDD_SDIO и другие начальные настройки системы. Использовать эти выводы можно, но очень осторожно. Возможно придется вытащить плату с модулем или сам модуль из панельки для перепрошивки через последовательный порт.
    GPIO 0 (повторюсь) должен иметь низкий уровень “0“, чтобы войти в режим загрузки микропрограммы через последовательный порт UART0. Иначе будет использован обычный режим запуска.
    GPIO 2 должен быть либо оставлен неподключенным/плавающим, либо иметь низкий уровень, чтобы войти в режим загрузки прошивки через UART0.
    GPIO 5 каким-то образом связан с внешней flash-памятью, хотя лично мне из документации сложно понять, как именно.
    GPIO 12 управляет напряжением питания внешней flash-памяти. Если установлено значение “1“, напряжение флэш-памяти (VDD_SDIO) составляет 1,8 В вместо 3,3 В по умолчанию. Это может препятствовать прошивке и загрузке, если используется флэш-память 3,3 В, а этот контакт вытянут на высокий уровень, что приводит к физическому отключению флэш-памяти по питанию. Имеет внутреннюю слабую подтяжку к земле, поэтому по умолчанию на данном выводе будет низкий уровень.
    GPIO 15 управляет отладочными сообщениями при запуске микроконтроллера. Если задано значение “0“, отключаются загрузочные сообщения, распечатываемые загрузчиком. Имеет внутреннюю слабую подтяжку к питанию, поэтому по умолчанию на данном выводе будет высокий уровень.
    * GPIO 4 так же включен в список GPIO_STRAP, но в настоящее время никак не используется. Поэтому вы можете использовать его по своему желанию абсолютно свободно.
  • Если вы используете плату с ESP32-WROWER или ESP32-SOLO-1 на борту, то вы не сможете использовать GPIO 16 и 17, так как они задействованы в QSPI интерфейсе, причём это справедливо и при использовании “чистых” модулей (о чем я писал выше).
  • GPIO 34,35,36,39 можно использовать только “на вход”, следовательно, нельзя подключать к ним светодиоды, зуммеры, датчики типа DHT22 и DS18B20 и управлять какой-либо нагрузкой.
  • Документация обещает нам 16 выводов, доступных как ADC в двух отдельных каналах. Мало того, что сам ADC реализован “чудесато”, так оказывается, что канал ADC 2 нельзя использовать, если вы подключены к WiFi. Более подробно о ADC поговорим в отдельной статье.

На данной плате установлен красный светодиод, который не подключен ни к одному из выводов, а просто и тупо отображает наличие питания 5В на плате. При использовании данной платы в каком-либо устройстве на постоянной основе светящийся светодиод может только мешать (подсвечивать корпус изнутри), да это ещё и лишний потребляемый ток впустую. Поэтому я просто сдуваю светодиод паяльным феном. Можно аккуратно “сковырнуть” его тонкой отверткой, но будьте очень аккуратны – можно легко повредить соседнюю дорожку к кнопке сброса.

Я использую примерно такой excel-файл для распределения выводов на те или иные функции в проекте:

Добрый день, уважаемый читатель! В данной статье мы поговорим про усы, лапы, и хвост; (тьфу, крылья, ноги, хвосты, опять не то) чипы, модули и платы ESP32.-12

В пустых ячейках “Назначение в проекте” записываю функции, которые будут назначены этим выводам. И только после распределения выводов переношу эти данные в код проекта. Это очень удобно и наглядно, не нужно постоянно держать в памяти номера выводов, которые не рекомендуется использовать и почему. Скачать пример такого файла можно по ссылке.

Есть и ещё платы разработки, выпускаемые Espressif, но в рамках данной статье я не буду их рассматривать. Не пробовал, не знаю…

 


Клоны и модификации

Существует просто огромное количество плат на основе ESP32, я просто “пробегусь” по некоторым из них, которые у меня есть или просто мне приглянулись.

ESP32 DevKit V1 38 pin

ESP32 38 Pin. Источник: aliexpress.com

ESP32 38 Pin. Источник: aliexpress.com

Очень похожая на ESP32 DevKitС V4 плата. Отличие состоит в том, что светодиод подключен не к питанию, а к одному из GPIO, поэтому может как использоваться как индикатор. Кроме того, данная плата не предусматривает установку модулей WROVER. Из-за того, что модуль напаян поверх платы, “дальнобойность” WiFi может быть немного ниже. В принципе нормальная платка, до сих пор где-то работает.

ESP32 DevKit V1 30 pin

ESP32 30 Pin. Источник: aliexpress.com

ESP32 30 Pin. Источник: aliexpress.com

Модификация предыдущей платы, из которой исключены контакты GPIO 6-11, которые всё равно нельзя использовать. Из-за этого платка получилась немного компактнее. Долго лежала в коробке, в прошлом году собрал на ней термостат. В термостате проработала всю зиму на улице, и ничего, жива…

NodeMCU-32 v1.3

ESP32 30 Pin. Источник: aliexpress.com

NodeMCU-32 v1.3. Источник: datasheet

Ещё одна похожая на ESP32 DevKitС плата. Расположение выводов совпадает полностью, но нумерация нанесена на обратную сторону, что несколько затрудняет отладку при подключении щупов и сборке прототипов на монтажных платах. Использован другой тип преобразователя USB-интерфейсов, так что, возможно, придется установить ещё один драйвер в систему. Ещё одно отличие – наличие дополнительного светодиода на GPIO2, который можно использовать для какой-либо индикации в тестовых проетах.

ESP32 CAM

ESP32-CAM. Источник: aliexpress.com

ESP32-CAM. Источник: aliexpress.com

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

ESP32 MINI

ESP32 MINI. Источник: aliexpress.com

ESP32 MINI. Источник: aliexpress.com

Миниатюрная версия для упрощенной сборки устройств в виде “этажерки”. Существуют подходящие по размерами и контактам платы с реле и различными сенсорами, что позволяет без пайки и проводов собрать необходимое устройство.

Некоторые из плат расширения с ESP32 MINI. Источник: aliexpress.com

Некоторые из плат расширения с ESP32 MINI. Источник: aliexpress.com

Прекрасно подойдет в качестве “детского” конструктора, паять ничего не придется. Но если делать на основе нее прибор, то разводить дорожки не очень удобно. Впрочем, если заказать плату на заводе в Китае, то можно и на ней. Но тогда уж лучше сразу под “чистый” модуль заказывать плату.

Wemos D1 R32: ESP32 в форм-факторе Arduino

Wemos D1 R32. Источник: aliexpress.com

Wemos D1 R32. Источник: aliexpress.com

Если вы привыкли работать с “большими” платами Arduino, то вам может понравиться данная плата. Но она больше подходит для опытов, чем для реальной эксплуатации.

 

WT32-SC01: ESP32 с 3,5′ LCD экраном

WT32-SC01. Источник: aliexpress.com

WT32-SC01. Источник: aliexpress.com

Если Вам нужен достаточно большой LCD экран, можно найти версию ESP32 с интегрированным экраном размером до 4 дюймов. Мне понадобилась панель управления умным домом, заказал вот такую, жду…

Релейный модуль с ESP32

Релейный модуль с ESP32. Источник: aliexpress.com

Релейный модуль с ESP32. Источник: aliexpress.com

Для удаленного управления нагрузкой можно заказать вот такую плату с реле. Реле может быть и больше, на плате может быть так же блок питания 220В или стабилизатор 12В. Иногда есть модели с корпусами. Но для меня такая плата не очень удобна – так как я предпочитаю взваливать на хрупкие плечи ESP множество задач и задействую выводы по максимуму. Здесь же без танцев с бубном и “колхоза” только ничего не подключить.

Kincony

В заключение хотелось бы отметить одного китайского производителя плат для “самоделкиных”, называется он Kincony. Меня очень заинтересовала их продукция, выбрать можно на любой вкус и кошелек. Можете считать это рекламой, хотя я с магазином никак не связан.

Одна из плат. Источник: aliexpress.com

Одна из плат. Источник: aliexpress.com

Надеюсь, статья помогла вам понять “что есть что” в мире ESP32.

 


Полезные ссылки

Как всегда, в заключении привожу список полезных ссылок и источников информации для статьи:

  1. ESP-IDF :: ESP32-DevKitC V4 Getting Started Guide
  2. Espressif.com

На этом пока всё, до встречи на сайте и на telegram-канале!. Если Вам понравилась статья – кликните на любое рекламное объявление, этого будет вполне достаточно для поддержки автора.

🔶 Полный архив статей вы найдете здесь

15 комментариев для “ESP32: чипы, модули, платы…”

  1. Очень полезная статья, спасибо. После прочтения задумался о том какие недавно купил модули. На шильдике написано ESP32-WROOM-32 без каких либо дополнительных букв. Но тем не менее esptool.py выдает: Chip is ESP32-D0WD-V3 (revision 3)

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

      Да, кстати, тоже попадались такие. Но сайт espressif говорит, что без букв на конце это старый чип, снятый с производства. Так что кому верить – неизвестно. Я подозреваю, что это может быть не родной модуль. Просто собирают на другом заводе, используя родные чипы. Выяснить можно, прогрев модуль феном и сняв крышечку.
      У меня термостат в гараже уже год на таком работает, вроде бы все ок. Зиму пережил нормально.

      1. Дмитрий

        Судя по тому что подавляющее большинство модулей и плат продающихся на Ali имеют маркировку отличающуюся от той что описана на сайте Espressif, похоже что это все “не совсем оригинальные” модули на базе на базе чипов Espressiff и узнать что там внутри можно только считав chip revision.
        Существуют следующие chip revision (от этого зависит errata)
        0 – в последнее время не попадались
        1.0 (1.1) выпускались в двух вариантах D0WDQ6 (QFN48 6×6 mm) и D0WD (QFN48 5×5 mm) – отличаются только размером корпуса чипа. Сам чип один и тот же. Сам Espressif выпускал модули WROOM-32 (D0WDQ6) и WROOM-32D (D0WD). Модули отличаются тольк размером, если вы используете платы то никакой разницы нет (chip revison один и тот же)
        3.0 (3.1) – чип D0WD-V3, модуль от Espressif WROOM-32E
        Судя по последним заказам на Ali практически все модули “не совсем оригинальные”, если обозначение модуля WROOM-32, то будет revision 1. Что там внути D0WDQ6 или D0WD “без вскрытия” не узнаешь, да и это значения не имеет, если обозначение модуля WROOM-32E то скорее всего будет revision 3.

        1. “На Ali модули и платы “не совсем оригинальные”” – тут даже никто спорить не будет, так оно и есть. Китайцы у китайцев “тырят”…
          PlatformIO, насколько я помню, показывает версию чипа не только в виде версии, но в “расшифровке”. Хотя, может быть я и ошибаюсь, проверить не на чем

  2. Мне понравился обзор и я прикупил плату с модулем ESP32-WROOM-32E +4 реле и два источника питания. Изучил даташит и возникли вопросы прошивки.
    Собираюсь использовать программатор USB-UART CP2102. Но у него нет DTR. На периферийной схеме модуля указана перемычка JP2 и кнопка SW1 активации модуля. Может это можно использовать для прошивки?
    Еще вопрос по источникам питания. Использовать 3,3 для подачи на программатор ?

    1. Разобрался с релейной платой. там есть обе кнопки для ручного управления прошивкой EN и BOOT. Беспокоит только подача питания. Подключу релейную плату к внешнему источнику (12В) а пин 3,3в программатора с 3V3 на модуле. Правильно?

      1. Для подключения адаптера, на мой взгляд, по минимуму достаточно трех проводов – RX, TX и GND. Питание адаптер и от USИ прекрасно получит.

      2. Использую плату очень похожую на ESP32 DevKit V1 38 pin, указанную на сайте.
        Возникла проблема запуска платы от внешнего блока питания. Замечен не стабильный запуск МК, хотя от компьютера запускается без проблем.
        Решение найдено на просторах интернета, подключить Электролитический конденсатор на 10мкФ к ножке EN и GND(есть на самом чипе, не обязательно припаивать к пину платы).
        В итоге, плата ESP32 стабильно запускается, без зависания. и БОНУС автоматически переходит в режим прошивки, кнопку не надо нажимать.

        1. Ну так это просто значит, что китайцы запаяли дохлый конденсатор 😁, либо на емкости сэкономили 🤷‍♂️, по схеме он там есть
          Я давно уже V1 не заказывал. V4 – полна коробка. С ними проблем вроде бы нет, если сам с выводами не начудишь.

          1. Нашел конденсатор, похоже реально на емкости сэкономили :D, выглядит крохотным. С выводами у меня получается чудить, 1.8 В подавал на вход. в итоге был дребезг. (не до конца понятно почему программно получилось дребезг убрать, лучше напряжение поднять.)

  3. Николай

    Почти все Ваши статьи прочитал. Очень интересно и полезно. Большое
    спасибо за этот труд. У меня есть два вопроса.
    Когда ожидается статья по ADC? мне надо измерять напряжение на аккумуляторах
    3.7В, 12В и 24В. Интересно как правильно обвязать вывод. И ещё, планируется ли
    статья по OTA?
    Мне очень интересны эти вопросы и реализация в ESP32-IDF.

    1. Добрый день!
      Сначала отвечу на второй вопрос: по OTA статья планируется, но для этого потребуется изучить TLS-соединения и разметку FLASH-памяти, без этого никак не получится, иначе не ясно будет “что к чему”. А времени особо нет. Да и интерес читателей к каналу на Дзене угас почти совсем.

      По поводу ADC – там все сложно. Дело в том, что статья уже была в черновиках, а с приходом IDF 5.0.0 все изменилось принципиально, весь API. Черновик уже не актуален. Желания переписывать уже нет.
      По поводу обвязки – я использую обычный резистивный делитель, чтобы вогнать диапазон 0-12 в заданный. Хорошо бы использовать “точные” резисторы с малым температурным коэффициентом, чтобы показания не плавали. Я использовал старые “советские”, они всяко лучше китайских резюков со стальными выводами.
      Про ADC я уже немного писал в статье https://kotyara12.ru/iot/esp32pinout/, и собственно по аппаратной части мне собственно добавить нечего.

  4. Всем доброго времени суток!Может кто-нибудь знает,что означают цифры на конце модели чипа esp32-pico-v3-02?.Буду признательна знатоку.

    1. Добрый день, Елена! Самое логичное – посмотреть у производителя. Ссылка в статье есть: https://products.espressif.com/#/product-selector?names=
      Там есть в таблице и pico-v3, и pico-v3-02. У 02 меньше GPIO, но больше Flash и есть встроенная PSRAM
      Flash (MB): 4 / 8
      PSRAM (MB): 0 / 2
      GPIO: 31 / 29
      Certification: BT Certification / BT SIG

  5. Здравствуйте! На официальном сайте esp32 появился новый чип esp32-h, возможно, стоит его упомянуть в статье. Спасибо.

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

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