ESP32 — это серия недорогих и энергоэффективных систем на кристалле (SoC) микроконтроллеров, разработанных компанией Espressif. Они включают возможности беспроводной связи Wi-Fi и Bluetooth и имеют двухъядерный процессор. Если вы знакомы с ESP8266, то ESP32 — его преемник, оснащенный множеством новых функций.
Содержание
- Введение в ESP32
- Характеристики ESP32
- ESP32 vs ESP8266
- ESP32 с Arduino IDE
Введение в ESP32
Сначала давайте разберемся, что такое ESP32? ESP32 — это серия микроконтроллеров на кристалле, разработанных компанией Espressif.
Почему они так популярны? В основном благодаря следующим характеристикам:
- Низкая стоимость: можно приобрести ESP32, начиная с $6, что делает его легко доступным для широкой публики;
- Низкое энергопотребление: ESP32 потребляет очень мало энергии по сравнению с другими микроконтроллерами, и поддерживает режимы низкого энергопотребления, такие как глубокий сон для экономии энергии;
- Возможности Wi-Fi: ESP32 может легко подключиться к Wi-Fi сети для доступа в интернет (режим станции) или создать собственную беспроводную Wi-Fi сеть (режим точки доступа), чтобы другие устройства могли подключаться к нему — это важно для IoT и проектов домашней автоматизации, вы можете использовать несколько устройств, которые общаются друг с другом, используя свои возможности Wi-Fi;
- Bluetooth: ESP32 поддерживает классический Bluetooth и Bluetooth с низким энергопотреблением (BLE), что полезно для различных IoT приложений;
- Двухъядерный процессор: большинство ESP32 двухъядерные — они оснащены двумя 32-битными микропроцессорами Xtensa LX6: ядро 0 и ядро 1.
- Богатый интерфейс периферийного ввода/вывода: ESP32 поддерживает широкий спектр периферийных устройств ввода (считывание данных из внешнего мира) и вывода (отправка команд/сигналов во внешний мир), таких как емкостное касание, АЦП, ЦАП, UART, SPI, I2C, PWM и многое другое.
- Совместимость с "языком программирования" Arduino: те, кто уже знаком с программированием плат Arduino, будут рады узнать, что они могут программировать ESP32 в стиле Arduino.
- Совместимость с MicroPython: вы можете программировать ESP32 с помощью прошивки MicroPython, которая представляет собой повторную реализацию Python 3, ориентированную на микроконтроллеры и встроенные системы.
Характеристики ESP32
Если вы хотите получить более технические и конкретные данные, можете ознакомиться со следующими детальными характеристиками ESP32 (источник: http://esp32.net/) — для получения дополнительной информации, ознакомьтесь с техническим описанием):
-
Беспроводная связь:
- WiFi: скорость передачи данных 150,0 Мбит/с с HT40
- Bluetooth: BLE (Bluetooth Low Energy) и классический Bluetooth
-
Процессор: Двухъядерный 32-битный микропроцессор Tensilica Xtensa LX6, работающий на частоте 160 или 240 МГц
-
Память:
- ПЗУ: 448 КБ (для загрузки и основных функций)
- SRAM: 520 КБ (для данных и инструкций)
- Быстрая SRAM RTC: 8 КБ (для хранения данных и основного ЦПУ во время загрузки RTC из режима глубокого сна)
- Медленная SRAM RTC: 8 КБ (для доступа сопроцессора во время глубокого сна)
- eFuse: 1 Кбит (из которых 256 бит используются для системы (MAC-адрес и конфигурация чипа), а оставшиеся 768 бит зарезервированы для пользовательских приложений, включая шифрование флэш-памяти и идентификатор чипа)
- Встроенная флэш-память: флэш-память, подключенная внутренне через IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 и SD_DATA_1 на чипах ESP32-D2WD и ESP32-PICO-D4.
- 0 МБ (чипы ESP32-D0WDQ6, ESP32-D0WD и ESP32-S0WD)
- 2 МБ (чип ESP32-D2WD)
- 4 МБ (модуль SiP ESP32-PICO-D4)
-
Низкое энергопотребление: гарантирует, что вы можете использовать, например, АЦП-преобразования даже в режиме глубокого сна.
-
Ввод/вывод периферийных устройств: интерфейс периферийных устройств с DMA, который включает емкостное касание, АЦП, ЦАП, I²C, UART, SPI, I²S, RMII, PWM и многое другое.
-
Безопасность: аппаратные ускорители для AES и SSL/TLS.
Основные различия между ESP32 и ESP8266
Сравнение | ESP8266 | ESP32 |
---|---|---|
MCU | Xtensa Одноядерный 32-битный L106 | Xtensa Двухъядерный 32-битный LX6 с 600 DMIPS |
Wi-Fi 802.11 b/g/n | HT20 | HT40 |
Bluetooth | НЕТ | Bluetooth 4.2 и BLE |
Типовая частота | 80 МГц | 160 МГц |
SRAM | НЕТ | ДА |
GPIO | 22 | 30 |
Аппаратный/программный PWM | Нет / 8 каналов | Нет / 8 каналов |
SPI/I2C/I2S/UART | 2/1/2/2 | 4/2/2/2 |
ADC | 10-бит x 1 канал | 12-бит x 18 каналов |
DAC | НЕТ | 8-бит x 2 канала |
CAN | НЕТ | ДА |
Интерфейс Ethernet MAC | НЕТ | ДА |
Датчик касания | НЕТ | ДА |
Потребление энергии | 20uA | 10uA в режиме глубокого сна |
Безопасность | НЕТ | Защищенная загрузка, шифрование флэш-памяти. OTP 1024-бит |
Датчик температуры | НЕТ | ДА |
Датчик Холла | НЕТ | ДА |
Рабочая температура | -40ºC до 125ºC | -40ºC до 125ºC |
Цена | (3$ – 6$) | (6$ – 12$) |
Установка ESP32 в Arduino IDE
Чтобы начать программировать ESP32 с использованием Arduino IDE, вам нужно сначала установить необходимые инструменты и настроить среду разработки. Следуйте шагам ниже:
Шаг 1: Установите Arduino IDE
Если у вас еще нет установленной Arduino IDE, скачайте и установите её с официального сайта Arduino. Выберите версию, подходящую для вашей операционной системы (Windows, macOS или Linux), и следуйте инструкциям по установке.
Шаг 2: Добавьте ESP32 в Arduino IDE
- Откройте Arduino IDE.
- Перейдите в меню Файл -> Настройки.
- Найдите поле "Дополнительные ссылки для менеджера плат" и вставьте туда следующий URL: https://dl.espressif.com/dl/package_esp32_index.json
- Нажмите OK.
Шаг 3: Установите платформу ESP32
- Перейдите в меню Инструменты -> Плата -> Менеджер плат.
- В окне менеджера плат введите в поле поиска "ESP32".
- Найдите платформу "ESP32 by Espressif Systems" и нажмите кнопку Установка.
- Подождите, пока установка завершится. Это может занять несколько минут.
Шаг 4: Выберите ESP32 Dev Module
- Если вы используете ESP32 Dev Module, обязательно выберите его в списке плат. Перейдите в меню Инструменты -> Плата и выберите ESP32 Dev Module.
Шаг 5: Установите драйверы (если требуется)
Если вы не видите COM-порт в Arduino IDE, вам, вероятно, нужно установить драйверы USB-to-UART на вашем компьютере. Большинство плат ESP32 используют либо чип CP210x, либо CH340, в зависимости от используемой вами платы.
Если вам нужно установить драйверы CP210x, мы рекомендуем ознакомиться с этим руководством: Install ESP32/ESP8266 USB Drivers – CP210x USB to UART Bridge
Шаг 6: Загрузите пример кода
- Перейдите в меню Файл -> Примеры -> WiFi и выберите пример WiFiScan
- Нажмите кнопку Загрузить (иконка со стрелкой вправо), чтобы скомпилировать и загрузить код на плату.
Шаг 7: Откройте монитор порта
- Откройте Монитор порта в меню Инструменты -> Монитор порта.
- Убедитесь, что скорость соединения установлена на 115200 бод.
- Наблюдайте за выводом данных с платы в реальном времени.
Возможные проблемы и решения
Если вы попытаетесь загрузить новый эскиз в ESP32 и получите сообщение об ошибке «Произошла неустранимая ошибка: не удалось подключиться к ESP32: истекло время ожидания… Подключение… ». Это означает, что ваш ESP32 не находится в режиме прошивки / загрузки.
Выбрав правильное имя платы и COM-порт, выполните следующие действия:
Выбрав правильное название платы и COM-порт, выполните следующие действия:
- Удерживайте нажатой кнопку “BOOT” на вашей плате ESP32
- Нажмите кнопку “Загрузить” в Arduino IDE, чтобы загрузить свой эскиз:
-
После того, как вы увидите сообщение “Подключение ....” в вашей Arduino IDE, отпустите палец от кнопки “BOOT”:
-
После этого вы должны увидеть сообщение “Загрузка завершена”
Вот и все. На вашем ESP32 должен быть запущен новый sketch. Нажмите кнопку “ВКЛЮЧИТЬ”, чтобы перезапустить ESP32 и запустить новый загруженный sketch.
Заключение
Теперь, когда вы установили все необходимые драйверы и настроили Arduino IDE для работы с вашим ESP32, вы готовы к экспериментам и созданию собственных проектов! С помощью этого мощного микроконтроллера вы сможете подключать свои устройства к Wi-Fi, управлять различными датчиками, работать с Bluetooth и многое другое.
Не бойтесь пробовать новое — ESP32 предлагает огромное количество возможностей для творчества. И помните, если у вас возникнут вопросы или что-то пойдет не так, всегда можно обратиться за помощью и найти решение.
Удачи в ваших проектах с ESP32, и пусть ваши идеи воплотятся в реальность!