Короткий ответ для тех, кто пришёл за ним, а не за нашими оправданиями. Если нужен Wi-Fi или Bluetooth, больше производительности и памяти, берите ESP32. Если вы только начинаете, хотите максимально простую и прощающую ошибки плату с огромным количеством готовых примеров, берите Arduino Uno. Если проект серьёзнее светодиода, вам, скорее всего, пригодятся обе: именно так у нас в лаборатории и получилось.
Вопрос «esp32 или arduino, что выбрать» на самом деле не про то, какая плата лучше. Они решают разные задачи и ломаются по-разному. ESP32-WROOM-32E у нас называют мозгом половины прототипов: двухъядерный процессор, Wi-Fi и Bluetooth на борту. Arduino Uno R3 на ATmega328P — ветеран, который пережил больше замыканий, чем весь остальной инвентарь вместе взятый. Один из них умеет думать быстро, другой умеет не умирать.
Что это вообще за платы
Arduino Uno R3 построена на 8-битном микроконтроллере ATmega328P. У неё 14 цифровых пинов, несколько аналоговых входов, питание по USB и простая среда разработки. Она не умеет Wi-Fi, у неё немного оперативной памяти, а процессор по современным меркам работает медленно. Но всё, что вы к ней подключили, обычно просто работает.
ESP32-WROOM-32E — это модуль с двухъядерным 32-битным процессором Xtensa LX6, встроенными Wi-Fi и Bluetooth и заметно большими возможностями по памяти и частоте. Точные цифры зависят от варианта модуля и платы, на которой он стоит, поэтому мы их не приводим: смотрите документацию на вашу конкретную модель. Общий порядок такой, что ESP32 заметно мощнее Uno в большинстве показателей.
Уровни логики: 5 В против 3,3 В
Это пункт, на котором тихо умирают платы. Arduino Uno работает с логикой 5 В: на её выходах высокий уровень примерно 5 В. ESP32 питается от 3,3 В, и её пины рассчитаны на 3,3 В. Подать на пин ESP32 сигнал 5 В без согласования значит подвергнуть кристалл испытанию, которого он не заслужил. Общее правило из документации, а не наш лабораторный замер: перед подключением 5-вольтового датчика к ESP32 используйте делитель напряжения или специальный преобразователь уровней.
Обратное направление проще. Сигнал 3,3 В с ESP32 Uno обычно распознаёт как высокий уровень, но граница там тонкая, поэтому для ответственных соединений лучше проверять документацию на датчик. Перед любым подключением мы советуем измерить напряжение на пине, и как пользоваться мультиметром для этого, можно прочитать в нашей инструкции.
Пины: сколько и какие
На Arduino Uno пины предсказуемы: 14 цифровых, из них часть умеет ШИМ, несколько аналоговых входов. Почти любой пин можно использовать как вход или выход без сюрпризов. Это одна из причин, по которым Uno любят начинающие.
У ESP32 пинов много, но не все они одинаковы. Часть пинов работает только на вход, некоторые влияют на загрузку чипа, а часть аналоговых входов конфликтует с Wi-Fi. Мы узнали об этом на практике: в истории про мигающий светодиод на ESP32 светодиод не загорался, потому что мы подключили его к пину IO34, а он работает только на вход. Плата была исправна, прошивка была исправна, виновата была наша уверенность. Прежде чем назначать пин, проверьте его возможности в документации.
Wi-Fi, Bluetooth и «умные» задачи
Главное преимущество ESP32 в том, что связь уже встроена. Датчик, который отправляет данные в сеть, робот, которым управляют со смартфона, веб-страница на самой плате: всё это на ESP32 решается без дополнительных модулей. У Arduino Uno сеть появляется только вместе с внешней платой расширения, а это лишние провода, лишнее питание и лишние причины для отладки.
Если ваш проект должен выходить в сеть или общаться по Bluetooth, вопрос «arduino uno или esp32 для новичка» отпадает: берите ESP32. Если же проект целиком локальный (мигает, вращает, измеряет и показывает на экране), Wi-Fi вам не нужен, и платить за него сложностью смысла нет.
Простота и экосистема
Arduino Uno выигрывает по простоте. Огромное количество учебников, примеров и готовых библиотек написано под неё, а большинство ошибок уже кем-то описано. Плата прощает многое: питается она проще, логика 5 В совпадает с большинством учебных модулей, а пины предсказуемы.
ESP32 тоже можно программировать в привычной среде Arduino IDE и теми же знакомыми функциями, поэтому порог входа ниже, чем может показаться. Но под капотом там больше нюансов: питание 3,3 В, особые пины, режим загрузки, потребление при работе Wi-Fi. Ответ на вопрос «чем esp32 лучше arduino» звучит так: возможностями. Ответ на вопрос «чем Arduino лучше ESP32» звучит так: тем, что она спускает вам больше ошибок.
Цена
Конкретных сумм мы приводить не будем: они зависят от магазина, региона и того, оригинал вы покупаете или клон. Общий ориентир, не лабораторный замер: обычно ESP32 сопоставима по цене с Uno или стоит дешевле, особенно если считать, что Wi-Fi и Bluetooth уже входят в комплект. Оригинальная плата Arduino традиционно стоит дороже клонов. Вывод: цена не должна быть решающим аргументом.
Когда что брать: честная таблица
- Берите Arduino Uno, если: вы новичок и хотите, чтобы плата прощала ошибки; проект локальный и не требует сети; вам нужна логика 5 В, в том числе для датчиков и модулей, рассчитанных на 5 В; вы собираете учебный проект по готовому описанию.
- Берите ESP32, если: нужен Wi-Fi или Bluetooth; нужен запас производительности и памяти; проект работает с данными, сетью, камерой или веб-интерфейсом; вы готовы разбираться с пинами и уровнями 3,3 В.
- Берите обе, если: проект большой, и роли можно разделить. ESP32 общается с внешним миром, а Arduino отвечает за простую и надёжную работу с моторами и датчиками. Так устроена и наша лаборатория: обе платы у нас в строю.
Почему мы взяли обе
В лаборатории ESP32 отвечает за прототипы, где нужны связь и вычисления. Arduino Uno остаётся рабочей лошадью там, где нужно просто надёжно включать, выключать и измерять. В истории про H-мост именно Arduino управляла мотором платформы, и остальной стенд при этом проявлял стабильное спокойствие. Выбирать одну из двух нам никогда не приходилось: достаточно было вовремя понять, какая из них нужна для задачи.
Конечно, это не лабораторный стандарт и не рекомендация на все случаи. Просто плата, которая работает в нашем окружении, не обязательно будет лучшей в вашем.
Техника безопасности
OP_04 пришла с коротким списком.
- Не подавайте 5 В на пины ESP32. Сначала проверьте уровни, потом включайте.
- Питание. Подключайте платы к источнику, рассчитанному на них, и не путайте полярность.
- Моторы и нагрузки. Не подключайте мотор напрямую к пину платы. Нужен драйвер или транзистор, иначе пострадает пин, а то и вся плата.
- Пайка и измерения. Не паяйте под напряжением и не трогайте платы мокрыми руками.
Итог
Берите Arduino Uno, если хотите начать с самого простого и надёжного. Берите ESP32, если вам нужны связь и запас мощности. Берите обе, если проект растёт, а бюджет позволяет. И в любом случае проверяйте напряжение на пинах до подключения, а не после.
Если вы выбрали плату с первого раза и ни разу не пожалели, значит, мы что-то упустили. Проверьте, не перепутали ли вы напряжения.