ESP32 vs. ESP8266: Какой микроконтроллер подходит именно вам?
ESP32 vs. ESP8266. Если у вас есть проект Интернета вещей, вы неизбежно столкнётесь с выбором между этими двумя тяжеловесами среди микроконтроллеров. Оба — хорошо известные микроконтроллеры, и не без причины. Это маленькие, маломощные микроконтроллеры с поддержкой Wi-Fi и 32-битными процессорами, идеально подходящие для управления широким спектром электронных проектов.
Но как определить, какой из них лучше подходит для вашего проекта?
Давайте начнём со сравнения этих двух, чтобы помочь вам принять решение. Мы не будем сосредоточиваться исключительно на самом быстром МК, самом энергоэффективном или предлагающем лучшее соотношение цены и качества. Вместо этого мы рассмотрим различные факторы, включая вычислительную мощность, возможности подключения, аппаратные характеристики, среды разработки, цены и многое другое.
Итак, давайте сравним ESP32 и ESP8266.
Введение
ESP8266
ESP8266 — это недорогой Wi-Fi микрочип со встроенным стеком TCP/IP и возможностями микроконтроллера, выпущенный в 2014 году компанией Espressif Systems в Шанхае, Китай.
Он быстро завоевал популярность благодаря своей простоте и низкой стоимости. Он работает на процессоре Tensilica Xtensa LX3 и предназначен главным образом для умных устройств, носимой электроники и проектов с поддержкой Wi-Fi.
ESP32
ESP32, представленный в 2016 году, является преемником ESP8266 и предлагает ряд улучшений по сравнению с ним. К ним относятся более быстрый процессор, более быстрый Wi-Fi, поддержка Bluetooth, большее количество GPIO-выводов и множество других функций. Более того, он оснащён двухъядерным микропроцессором Tensilica Xtensa LX6, что значительно расширяет его вычислительные возможности.
Вычислительная мощность и память
ESP8266 оснащён 32-битным одноядерным процессором Tensilica Xtensa L106, работающим на частоте 80 МГц, с возможностью разгона до 160 МГц. Он имеет 32 КБ оперативной памяти для инструкций, 80 КБ пользовательской RAM и внешнюю QSPI флеш-память — от 512 КБ до 4 МБ.
ESP32 имеет несколько более мощный процессор. Он может похвастаться двухъядерным микропроцессором Tensilica Xtensa LX6, способным работать на частоте до 240 МГц. Он включает 520 КБ SRAM и поддерживает внешнюю флеш-память объёмом до 16 МБ.
Эта увеличенная вычислительная мощность и объём памяти делают ESP32 подходящим для более требовательных задач.
Победитель: ESP32
Беспроводная связь
Оба микроконтроллера поддерживают Wi-Fi, но ESP32 включает дополнительные функции, такие как Wi-Fi Direct.
Кроме того, ESP32 обладает возможностями Bluetooth v4.2 BR/EDR и BLE (Bluetooth Low Energy), которых нет у ESP8266. Это делает ESP32 более универсальным в плане беспроводной связи.
Победитель: ESP32
Периферийные интерфейсы
При сравнении двух микроконтроллеров важно знать, какими типами периферийных интерфейсов они обладают. Эти интерфейсы являются основным средством, с помощью которого микроконтроллеры взаимодействуют с датчиками и другими устройствами, и они оказывают большое влияние на сложность и тип проектов, которые вы можете создавать.
Ниже приведено сравнение периферийных интерфейсов, предоставляемых ESP8266 и ESP32:
Периферийный интерфейс |
ESP8266 |
ESP32 |
|---|---|---|
GPIO |
17 программируемых GPIO |
34 программируемых GPIO |
АЦП |
10-битный SAR АЦП на 1 канале |
12-битный SAR АЦП до 18 каналов |
ШИМ |
4 канала |
16 каналов |
Интерфейс I2C |
1 |
2 |
Интерфейс I2S |
2 |
2 |
Интерфейс SPI |
2 |
4 |
Интерфейс UART |
2 |
3 |
Интерфейс CAN |
Нет |
1 |
Ethernet |
Нет |
10/100 Мбит/с |
Сенсорный датчик |
Нет |
10 GPIO |
ИК-контроллер дистанционного управления |
Нет |
TX/RX, до 8 каналов |
SDIO/SPI slave-контроллер |
Нет |
Да |
Счётчик импульсов |
Нет |
Полное квадратурное декодирование |
Победитель: ESP32
Встроенные датчики
Когда речь идёт о встроенных датчиках, ESP8266 довольно минималистичен — у него нет никаких встроенных датчиков.
ESP32, с другой стороны, более продвинут и включает несколько встроенных датчиков. Обычно он поставляется с:
Датчик Холла, способный обнаруживать магнитные поля. Это может быть полезно для таких приложений, как определение присутствия магнита или измерение напряжённости магнитного поля.
Ёмкостный сенсорный датчик, который может использоваться для сенсорного ввода.
Датчик температуры, предназначенный для измерения внутренней температуры чипа, а не температуры окружающей среды, что может быть полезно для мониторинга состояния микроконтроллера.
Эти интегрированные датчики в ESP32 обеспечивают больше функциональности «из коробки», позволяя создавать проекты без необходимости в дополнительных компонентах.
Победитель: ESP32
Управление питанием
Обе платы имеют продвинутые технологии энергосбережения для эффективного снижения энергопотребления.
ESP8266 предлагает четыре режима питания: активный, спящий режим модема (modem-sleep), лёгкий сон (light-sleep) и глубокий сон (deep-sleep). Согласно техническому описанию, в активном режиме, при одновременной работе всех функций, он может потреблять до 80 мА. В отличие от этого, режим глубокого сна чрезвычайно эффективен и потребляет всего 20 мкА.
ESP32, с другой стороны, с его более быстрым процессором и увеличенным объёмом флеш-памяти, имеет более высокие требования к питанию и потребляет до 240 мА в активном режиме. Чтобы компенсировать это, он вводит два дополнительных режима пониженного энергопотребления: гибернацию и режим отключения питания. Режим гибернации имеет впечатляюще низкое потребление — всего 5 мкА, а режим отключения питания снижает его ещё больше — до всего лишь 1 мкА.
Благодаря более низкому энергопотреблению в активном режиме, ESP8266 лучше подходит для простых, маломощных проектов, работающих от батарейного блока.
Победитель: ESP8266
Программирование и поддержка сообщества
Как ESP8266, так и ESP32 поддерживаются Arduino IDE и нативным ESP-IDF (Espressif IoT Development Framework). Arduino IDE подходит для небольших проектов, но для более крупных и сложных проектов рекомендуется использовать ESP-IDF через расширение Visual Studio Code или плагин Eclipse.
Кроме того, обе платы поддерживают программирование на MicroPython, Lua, JavaScript и других языках (полный список доступен на вики), что делает их доступными для широкого круга программистов. Помимо этого, сообщество разработчиков вокруг обоих модулей является активным и растущим, с множеством онлайн-форумов, обширными библиотеками и руководствами.
Таким образом, с точки зрения поддержки программирования и ресурсов сообщества, между двумя платами практически нет конкуренции; обе предоставляют обширный спектр поддерживаемых языков и ресурсов.
Победитель: Ничья
Цена: Какая плата предлагает наибольшую выгоду?
ESP8266 обычно дешевле ESP32, что делает его более экономичным вариантом для простых проектов. ESP32, с его дополнительными функциями и возможностями, стоит несколько дороже, что оправдано его увеличенной вычислительной мощностью и универсальностью.
Однако разница в цене между ними в последние годы сократилась. В зависимости от того, где вы покупаете, обычно можно найти обе платы в продаже примерно по одной и той же цене. В таких случаях ESP32 с его лучшими возможностями подключения может оказаться более выгодной сделкой за ту же цену.
Победитель: Ничья
Полное сравнение
Вот таблица, которая подробно сравнивает характеристики и функции ESP8266 и ESP32. Эта таблица служит справочной точкой, обобщая возможности и предложения каждого микроконтроллера.
Характеристика |
ESP8266 |
ESP32 |
|---|---|---|
Процессор |
Tensilica Xtensa L106, 32-бит, одноядерный |
Tensilica Xtensa LX6, 32-бит, двухъядерный |
ОЗУ |
128 КБ |
520 КБ |
Тактовая частота |
80/160 МГц |
160/240 МГц |
Рабочее напряжение |
2,5–3,6 В |
2,2–3,6 В |
Рабочая температура |
–40 °C … +125 °C |
–40 °C … +125 °C |
Флеш-память |
До 4 МБ (обычно от 512 КБ до 1 МБ) |
4 МБ |
Поддержка внешней флеш-памяти |
До 16 МБ |
До 16 МБ |
Память RTC |
512 байт (внутри системной ОЗУ) |
16 КБ |
Wi-Fi |
802.11b/g/n |
802.11b/g/n |
Bluetooth |
Нет |
Bluetooth 4.2, BLE |
Ethernet |
Нет |
10/100 Мбит/с |
Интерфейс I2C |
1 |
2 |
Интерфейс I2S |
2 |
2 |
Интерфейс SPI |
2 |
4 |
Интерфейс UART |
2 |
3 |
Интерфейс CAN |
Нет |
1 |
АЦП |
10-битный SAR АЦП на 1 канале |
12-битный SAR АЦП до 18 каналов |
ШИМ |
4 канала |
16 каналов |
Сенсорный датчик |
Нет |
Да |
Датчик температуры |
Нет |
Да |
Датчик Холла |
Нет |
Да |
GPIO |
17 программируемых выводов |
34 программируемых вывода |
ИК-контроллер дистанционного управления |
Нет |
TX/RX, до 8 каналов |
SDIO/SPI slave-контроллер |
Нет |
Да |
Счётчик импульсов |
Нет |
Полное квадратурное декодирование |
Цена |
$ ($5 – $6) |
$$ ($6 – $9) |
Какой из них стоит купить?
Итак, ESP32 одерживает победу и претендует на корону короля мира Wi-Fi-совместимых МК.
Но это не означает, что ESP32 является лучшим выбором в каждом случае. В конечном счёте, ваш выбор микроконтроллера будет больше зависеть от конкретных требований вашего проекта, чем от голых цифр. ESP32 явно выигрывает в большинстве сравнений, но он отстаёт в простоте и энергоэффективности. Это объясняет, почему ESP8266 остаётся популярным выбором для многих, несмотря на то, что он не является лучшим по производительности.
Подводя итог, для простых, маломощных проектов на основе Wi-Fi предпочтительным выбором является ESP8266. С другой стороны, если вам нужна большая вычислительная мощность, дополнительная память и такие функции, как Bluetooth, ESP32 — явный победитель.