В чем разница между ESP32 и ESP8266? Что следует использовать в своих проектах: ESP32 или ESP8266? В этой статье мы сравним ESP32 с ESP8266 и рассмотрим плюсы и минусы каждой платы.
ESP32 и ESP8266 — это недорогие Wi-Fi модули, идеально подходящие для любительских проектов в области интернета вещей (IoT) и домашней автоматизации.
Оба чипа имеют 32-битный процессор. ESP32 — это двухъядерный процессор с частотой 160…240 МГц, в то время как ESP8266 — это одноядерный процессор, работающий на частоте 80 МГц.
Эти модули поставляются с выводами GPIO (интерфейс ввода/вывода), которые поддерживают широкий спектр протоколов, таких как SPI, I2C, UART, ADC, DAC, PWM.
Самое приятное то, что эти платы поставляются с интегрированной беспроводной сетью, что отличает их от других микроконтроллеров, таких как Arduino. Это означает, что вы можете легко управлять и контролировать устройства удаленно через Wi-Fi или Bluetooth (в случае ESP32) по очень низкой цене.
Кроме того, если вам не нужно использовать его беспроводные возможности, вы можете использовать ESP32/ESP8266 для управления входами и выходами, как это было бы с Arduino. Однако вы должны принять во внимание, что в то время как Arduino работает с логикой 5 В, ESP32 и ESP8266 работают только с 3,3 В.
Технические характеристики: ESP32 против ESP8266
ESP32 является преемником ESP8266. Он имеет дополнительное ядро процессора, более быстрый Wi-Fi, больше GPIO и поддерживает Bluetooth 4.2 и Bluetooth с низким энергопотреблением. Кроме того, ESP32 поставляется с сенсорными контактами, которые можно использовать для пробуждения ESP32 из глубокого сна, встроенным датчиком эффекта Холла и встроенным датчиком температуры (последние версии ESP32 больше не поставляются со встроенным датчиком температуры).
Обе платы очень дешевы, но ESP32 стоит немного дороже. В то время как ESP32 может стоить от 6 до 12 долларов, ESP8266 может стоить от 4 до 6 долларов (но это зависит от того, где вы их приобретаете).
В следующей таблице показаны основные различия между чипами ESP8266 и ESP32:
Использовать просто чипы ESP32 или ESP8266 сложно и непрактично, особенно при тестировании и создании прототипов. В большинстве случаев вы захотите использовать платы разработки ESP32 и ESP8266. Эти платы поставляются со всеми необходимыми схемами для питания чипа, подключения его к компьютеру, схемой для легкой загрузки кода, контактами для подключения периферийных устройств, встроенными светодиодами питания и управления и другими полезными функциями.
Платы для разработки ESP32 и ESP8266, которые мы используем чаще, — это плата разработки ESP32 DEVKIT DOIT и комплект ESP8266 ESP-12E NodeMCU Kit. Однако есть много других моделей плат для разработки, из которых вы можете выбирать.
Большее количество GPIO на ESP32
ESP32 имеет большее количество GPIO чем ESP8266. Вы можете сами решать, какими выводами будут UART, I2C, SPI – для этого вам просто нужно прописать их в коде. Это возможно благодаря функции мультиплексирования микросхемы ESP32, которая позволяет назначать несколько функций одному и тому же выводу. Если вы не установите их в коде, они будут на выводах, определенных по умолчанию, как показано на следующем рисунке (это пример для платы ESP32 DEVKIT V1 DOIT — расположение выводов может меняться в зависимости от производителя).
Для сравнения приведем распиновку для комплекта ESP8266 ESP-12E NodeMCU Kit.
ШИМ, АЦП и многое другое
Вы можете установить сигналы PWM в любом GPIO с настраиваемыми частотами и рабочим циклом, установленными в коде.
Что касается аналоговых выводов, то они статичны. ESP32 поддерживает измерения на 18 каналах (выводы с аналоговой поддержкой) по сравнению с одним 10-битным выводом АЦП на ESP8266. ESP32 также поддерживает два 8-битных канала ЦАП.
Кроме того, ESP32 содержит 10 емкостных датчиков GPIO, которые обнаруживают прикосновение и могут использоваться, например, для запуска событий или вывода ESP32 из глубокого сна.
Arduino IDE — ESP32 против ESP8266
Есть много способов запрограммировать платы ESP32 и ESP8266. В настоящее время обе платы можно программировать с помощью среды программирования Arduino IDE.
Это хорошая вещь, особенно для тех, кто привык программировать Arduino. Хотя вы можете запрограммировать обе платы с помощью Arduino IDE, они могут быть несовместимы с одними и теми же библиотеками и функциями.
Некоторые библиотеки только совместимы с одной из плат. Это означает, что в большинстве случаев ваш код для ESP8266 не будет совместим с ESP32. Однако для адаптации вам будет достаточно внести несколько изменений.
MicroPython Firwmare — ESP32 против ESP8266
Еще один популярный способ программирования плат ESP32 и ESP8266 — использование программы MicroPython.
MicroPython — это повторная реализация Python 3, предназначенная для микроконтроллеров и встроенных систем. MicroPython очень похож на обычный Python. Итак, если вы уже знаете, как программировать на Python, вы также сможете программировать и на MicroPython.
В MicroPython большинство скриптов Python совместимы с обеими платами (в отличие от использования Arduino IDE). Это означает, что в большинстве случаев вы можете использовать один и тот же сценарий для ESP32 и ESP8266.
Что выбрать: ESP32 или ESP8266?
Итак, на этом этапе вы можете спросить: что мне купить: ESP8266 или ESP32?
Это действительно зависит от того, чем вы хотите заниматься. Есть место для обеих плат, и у обеих есть свои плюсы и минусы.
ESP8266 дешевле, чем ESP32. Хотя у ESP8266 не так много функций, он отлично будет работать в большинстве простых проектов IoT. Однако у него есть некоторые ограничения. Когда дело доходит до использования GPIO у него просто может не хватить контактов для более сложных проектов. Если это так, вы должны использовать ESP32.
ESP32 намного мощнее ESP8266, поставляется с большим количеством GPIO, с большим количеством функций, более быстрым Wi-Fi, а также поддерживает Bluetooth.
Многие думают, что с ESP32 труднее иметь дело, чем с ESP8266, потому что он более сложный. На наш взгляд, ESP32 так же просто запрограммировать, как и ESP8266, особенно если вы собираетесь программировать его с использованием «языка Arduino» или MicroPython. У ESP32 тоже есть минусы. ESP32 дороже, чем ESP8266.
Итак, если вы создаете простой проект IoT, ESP8266 может помочь вам из-за более низкой цене. Кроме того, поскольку ESP8266 «старше», чем ESP32, некоторые библиотеки и функции лучше разработаны для ESP8266, и вы найдете больше ресурсов (форумы, люди с такими же проблемами и способы их решения и т. д.). Однако со временем ESP32 получит более широкое распространение, и эти различия в плане разработки и библиотек не будут заметны.
Для проектов IoT все же лучше перейти на модуль ESP32. Он более универсален и имеет гораздо больше функций, таких как Bluetooth, различные источники пробуждения, множество периферийных устройств и многое другое. К тому же разница в цене, на наш взгляд, не имеет большого значения. Мы думаем, что как только вы перейдете на ESP32, вы больше не захотите возвращаться к ESP8266.