Esp 32 характеристики: ESP32: Базовые примеры

Содержание

Описание микроконтроллера ESP32

  Микроконтроллер ESP32, вышедший на рынок WiFi осенью 2015 года, представляет собой выдающееся устройство, и не только благодаря своей низкой цене. Espressif ESP32 — высокоинтегрированный, совмещённый (Wi-Fi + Bluetooth) чип, выполненный для решений, требующих минимальных показателей энергопотребления.
ESP32 разработан для носимой электроники и приложений интернета вещей, выполнен в супер-миниатюрном корпусе 6 х 6 мм, требующий для интеграции около 10-ти внешних компонентов. Он обладает хорошим функционалом и многообещающими возможностями. Совмещение в одном чипе WiFi и Bluetooth, двух процессорных ядер и богатого набора периферии может сделать ESP32 лидером в своем сегменте. ESP32 обещает снова совершить революцию в мире IoT, как в свое время совершил его младший брат ESP8266.


ESP32 получил значительный прирост в производительности по сравнению со своим предшественником ESP8266. Вычислительная мощность возросла в четыре раза. У ESP32 есть два ядра, каждый из которых работает на частоте 160 МГц. Второе ядро сделает жизнь разработчика проще. Так, например, одно ядро может взять на себя задачи реального времени по работе с графикой или управлению двигателями, а второе может обрабатывать коммуникационные протоколы и в целом отвечать за связь. Благодаря этому вам меньше придется думать о распределении времени между задачами.

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

ESP32 поддерживает весь стек протоколов стандартов Wi-Fi 802.11n и BT4.2, обеспечивая данный функционал через интерфейсы SPI/SDIO или I²C/UART.

Чип Espressif ESP 32 может работать в качестве центрального процессора (поддержка Open CPU) и как подчинённое устройство (slave device), управляемое микроконтроллером.

Отличительные особенности:



CPU: Xtensa Dual-Core 32-bit LX6, 160 MHz или 240 MHz (до 600 DMIPS)
Memory: 520 KByte SRAM, 448 KByte ROM
Flash на модуле: 1, 2, 4… 64 Мб

Wireless:

  • Wi-Fi: 802. 11b/g/n/e/i, до 150 Mbps c HT40
  • Bluetooth: v4.2 BR/EDR и BLE

Peripheral interfaces:

  • 12-bit SAR ADC до 18 каналов
  • 2 × 8-bit DAC
  • 10 × touch сенсоров
  • Temperature сенсор
  • 4 × SPI
  • 2 × I²S
  • 2 × I²C
  • 3 × UART
  • 1 host (SD/eMMC/SDIO)
  • 1 slave (SDIO/SPI)
  • Ethernet MAC с поддержкой DMA и IEEE 1588
  • CAN 2.0
  • IR (TX/RX)
  • Motor PWM
  • LED PWM до 16 каналов
  • Hall sensor
  • Ultra low power analog pre-amplifier

Security:

  • IEEE 802.11 безопасность WFA, WPA/WPA2 и WAPI
  • Secure boot
  • Flash encryption
  • 1024-bit OTP, включая до 768-bit под задачу
  • Cryptographic движок: AES, SHA-2, RSA, ECC, RNG
Распновка чипа ESP32:

(Скачать в PDF)

в ESP32 есть JTAG интерфейс на ножках IO12, IO13, IO14, IO15.

Даташит ESP32

ESP32 также доступен в виде модуля:

» Модуль ESP-WROOM-32

 

Распиновка модуля WROOM32:

 

Модуль WROOM-32 может поставляться со специальной отладочной платой:

 

 

Эта плата позволяет быстро программировать модуль благодаря встроенному адаптеру USB-TTL. На ней также расположены кнопки программирования и сброса, а также регулятор напряжения для питания микроконтроллера ESP32 напряжением 3.3 В. Также плата дает удобный доступ к выводам модуля, шаг между которыми довольно узок, чтобы без проблем работать с ними. Шаг же между выводами платы составляет 2.54 мм, что является стандартом для DIP-корпусов, с которыми удобно работать обычному радиолюбителю без специальных инструментов.

 

Распиновка отладочной платы ESP32:

 

Средства разработки ESP32

Программные средства разработки (программный комплект разработчика, SDK) состоят из:

  •     Компилятора. Компилятор для Xtensa LX106 входит в пакет компиляторов GNU Compiler Collection. Поскольку компилятор имеет открытые исходные тексты, то в разных SDK могут содержаться разные сборки этого компилятора, немного отличающиеся поддерживаемыми опциями.
  •     Библиотек для работы с периферией контроллера, стеков протоколов WiFi, TCP/IP.
  •     Средств загрузки исполняемого файла в память программ микроконтроллера.
  •     Опциональной IDE.

Espressif свободно распространяет свой комплект разработчика. В этот комплект входит компилятор GCC, библиотеки Espressif и загрузочная утилита XTCOM. Библиотеки поставляются в виде скомпилированных библиотек, без исходных текстов. Espressif поддерживает две версии SDK: одна на основе RTOS, другая на основе обратных вызовов (callback).[2]

Помимо официальной SDK существует ряд проектов альтернативных SDK. Эти SDK используют библиотеки Espressif или предлагают собственный эквивалент библиотек Espressif, полученный методами реверсинжиниринга.

  •     «esp-open-sdk». Улучшенная версия SDK от Expressif. Содержит GCC компилятор и некоторые библиотеки Expressif. Только Линукс. По-русски немного здесь.
  •     «Unofficial Development Kit» Михаила Григорьева. В комплект входит Windows-инсталлятор, компилятор GCC собственной сборки с интеграцией с графической IDE Eclipse, актуальные комплекты библиотек и документации Espressif, некоторые утилиты. Имеется русскоязычный форум.
  •     «Arduino IDE for ESP8266» — дополнение к IDE Arduino, позволяющее программировать ESP8266 так же легко как любые другие модули Ардуино. При этом доступен сетевой функционал ESP8266. Компилятор GCC, загрузчик прошивки ESPTool. Подробное русскоязычное описание процесса установки и доступного API здесь, пример работы здесь.
  •     «GNU toolchain for esp8266». Имеет возможность интеграции в Visual Studio.
  •     «ESP8266 GCC Toolchain» Макса Филиппова.
  •     «Sming»[6] — проект добавления Arduino совместимых библиотек поверх стандартных библиотек Espressif, но без препроцессора Ардуино (то есть программирование идет на чистом Си).

На оффсайте сейчас можно найти ссылки на два SDK:

» ESP31_RTOS_SDK — SDK для ESP31B, построена на FreeRTOS.
» Espressif IDF (IoT Development Framework) — Official development framework for ESP32.

Хоть это и не очевидно с описания на сайте, но для релизной версии нам подходит только ESP-IDF. Есть инструкции по установке для linux, windows, macos.

 В итоге можно сказать, что микроконтроллер ESP32 получился отличным для своего сегмента рынка. В таком дешевом устройстве столько функционала не умещал, наверное, еще никто. Но на данный момент ESP32 пока еще слишком молод и не оброс тем уровнем поддержки, который характерен сегодня для ESP8266. Документации, примеров и поддерживаемых сред не так уж и много. 

 

 

 

IoT-платформа ESP32 DevKit v1 на базе микроконтроллера ESP-WROOM-32 [обновлено 01.12.2021]

На базе IoT-платформы ESP32 DevKit v1 можно разрабатывать проекты, где требуется беспроводная передача данных по Wi-Fi и/или Bluetooth. Микроконтроллеры серии ESP32 от компании Espressif достаточно быстро завоевали популярность из-за отличных характеристик и более низкой ценой по сравнению с существующими решениями, отличная замена устаревшей платформы Arduino Uno. На базе модуля ESP32 реализуются проекты:

  • Web-сервер и Web-клиент для обработки управляющих запросов;
  • Беспроводной музыкальный проигрыватель интернет-радио и музыкального стриминга;
  • Беспроводная метеостанция с различными датчиками и сенсорным управлением;
  • Робот с дистанционным управлением по Wi-Fi или Bluetooth BLE;
  • И многие другие.

Платформа для разработки ESP32 DevKit основана на модуле ESP32-WROOM с чипом ESP32-D0WDQ6 от Espressif.

Вид сверху и снизу

Элементы платы

Функциональная схема микроконтроллера

ESP32 DevKit на 36 контактов

Модули ESP32 DevKit бывают двух видов на 30 и 36 контактов. Разница заключается в выведенных контактах интегрированной flash-памяти на SPI интерфейсе.

Чип ESP32-D0WDQ6

Чип ESP32-D0WDQ6 — выполнен по технологии SoC (англ. System-on-a-Chip — система на кристалле), в которую входит 2-ядерный 32-битный процессор Tensilica Xtensa LX6 с блоками памяти ROM на 448 КБ и SRAM на 520 КБ. В кристалле расположены беспроводные модули Wi-Fi/Bluetooth, датчик Холла и сенсор температуры.

Модуль ESP32-WROOM

ESP32-WROOM — модуль с чипом ESP32-D0WDQ6, Flash-памятью на 4 МБ и всей необходимой обвязкой, которая спрятана под металлический корпус. Контакты SCK/CLK, SDO/SD0, SDI/SD1, SHD/SD2, SWP/SD3 и SCS/CMD, а именно, GPIO6 to GPIO11 подключены к интегрированной flash-памяти SPI, встроенной в модуль, и не рекомендуется ее использовать для других целей.

Рядом с корпусом расположена миниатюрная антенна из дорожки на верхнем слое печатной платы в виде змейки. Металлический корпус экранирует компоненты модуля, создает клетку Фарадея, и тем самым улучшает электромагнитные свойства.

USB-UART преобразователь

Преобразователь USB-UART на микросхеме CP2102 обеспечивает связь модуля ESP32-WROOM с USB-портом компьютера. При подключении к ПК — платформа ESP32 DevKit определяется как виртуальный COM-порт.

Разъём micro-USB

Разъём micro-USB предназначен для прошивки и питания платформы ESP32 DevKit с помощью компьютера.

Светодиодная индикация

Название светодиодаНазначение
ONИндикатор питания платформы.
LEDПользовательский светодиод на 2 контакте микроконтроллера. При задании значения «высокого уровня» светодиод включается, при «низком» – выключается.

Кнопка EN

Кнопка предназначена для ручного сброса программы — аналог кнопки RESET обычного компьютера.

Кнопка BOOT

Кнопка служит для ручного перевода модуля в режим прошивки.

Регулятор напряжения

Линейный понижающий регулятор напряжение AMS1117-3. 3 обеспечивает питание микроконтроллера. Выходное напряжение 3,3 вольта с максимальным током 1 А.

  • Модуль: ESP32-WROOM с чипом ESP32-D0WDQ6
  • Частота беспроводной передачи: 2,4 ГГц
  • Стандарт Wi-Fi: 802.11b/g/n
  • Стандарт Bluetooth: BLE v4.2 BR/EDR
  • Тактовая частота: до 240 МГц
  • Flash-память: 448 КБ
  • Внешняя Flash-память: 4 МБ
  • SRAM-память: 520 КБ
  • Пинов общего назначения: 25 ввода-вывода (GPIO) и 4 ввода (GPI)
  • Контактов с АЦП: 15
  • Разрядность АЦП: 12 бит
  • Контактов с ЦАП: 2
  • Разрядность ЦАП: 8 бит
  • Контактов с ШИМ: 21 (16 каналов)
  • Разрядность ШИМ: 16 бит
  • Контактов с ёмкостным сенсором: 8
  • Пинов с прерываниями: 25
  • Аппаратные интерфейсы: 3×SPI, 3×UART, 2×I²C и 2×I²S
  • Напряжение логических уровней: 3,3 В
  • Максимальный ток с пина или на пин: 12 мА
  • Максимальный выходной ток пина 3V3: 1 А
  • Входное напряжение через пин Vin: 5–14 В
  • Габариты: 51×28 мм

Альтернативная схема распиновки от vishnumaiea. in.

Контакты питания

  • VIN: Пин для подключения внешнего источника напряжения в диапазоне от 5 до 14 вольт. Так же можно подключить стандартный аккумулятор на 3.7V, которые используют в телефонах и планшетах (проверенно, точно работает).
  • 3V3: Пин от стабилизатора напряжения с выходом 3,3 вольта и максимальных током 1 А. Регулятор обеспечивает питание модуля ESP32-WROOM.
  • GND: Выводы земли.

Порты ввода/вывода

  • Цифровые входы/выходы: 21 пин 1512192123252732 и 33
    Контакты ввода-вывода общего назначения. Пины могут быть настроены на вход или на выход. Логический уровень единицы — 3,3 В, нуля — 0 В. Максимальный ток выхода — 12 мА.
  • Цифровые входы: 4 пина 3436 и 39
    Контакты ввода общего назначения. Могут быть настроены только на вход.
  • ШИМ: все пины ввода-вывода
    Позволяет выводить аналоговые значения в виде ШИМ-сигнала с разрядность 16 бит. Максимальное количество каналов 16.
  • АЦП: 15 пинов 24121525273236 и 39
    Позволяет представить аналоговое напряжение в цифровом виде с разрядностью 12 бит.
  • ЦАП: пины 25(DAC1) и 26(DAC2)
    Аналоговый выход цифро-аналогового преобразователя, который позволяет формировать 8-битные уровни напряжения. Выводы могут использоваться для аудио-выхода.

В отличие от большинства плат Arduino, родным напряжением ESP32 DevKit является 3,3 В, а не 5 В. Выходы для логической единицы выдают 3,3 В, а в режиме входа ожидают принимать не более 3,3 В. Более высокое напряжение может повредить микроконтроллер!

Будьте внимательны при подключении периферии: убедитесь, что она может корректно функционировать в этом диапазоне напряжений.

Интерфейсы

Каждый пин ввода-вывода платформы поддерживает аппаратные интерфейсы.

ИнтерфейсКоличествоНазначение
I²C2Используется для общения с периферией по последовательному интерфейсу «I²C».
SPI3Для общения с периферией по последовательному интерфейсу «SPI».
UART/Serial3Для общения с периферией по интерфейсу «UART».
I²S2Используется для передачи и приёма цифрового звука с другими аудио устройствами.

Контакты только для режима работы Input

Контакты GPIO с 34 по 39 предназначены только для режима работы на вход (Input). Эти выводы не имеют внутренних подтягивающих или понижающих резисторов.

Контакты с поддержкой Pull Up

  • GPIO14
  • GPIO16
  • GPIO17
  • GPIO18
  • GPIO19
  • GPIO21
  • GPIO22
  • GPIO23

Контакты без поддержки Pull Up

  • GPIO13
  • GPIO25
  • GPIO26
  • GPIO27
  • GPIO32
  • GPIO33

Шина I2C

На ESP32 размещено два канала шины I2C. По умолчанию в Arduino IDE для I2C используются контакты:

  • GPIO 21 (SDA)
  • GPIO 22 (SCL)

Поддерживается разработка с помощью Arduino IDE на языке C++. Но плата будет использоваться для разработки приложений на C# на базе платформы .NET nanoFramework.

Модули ESP-WROOM можно купить Aliexpress. Модуль ESP32 DevKit v1 на 30 контактов был приобретен у продавца SAMIORE Store, лот ESP-32S ESP-WROOM-32 ESP32 ESP-32 Bluetooth and WIFI Dual Core CPU with Low Power Consumption MCU ESP-32, позиция ESP-32 30PIN, 1 мая 2020 года за $3.70, текущая (на 16.10.2021) стоимость без учета доставки составляет $3.65.

Платформы ESP8266 и ESP32 произведены одной компанией Espressif. Микроконтроллер ESP32 отличается от своего предшественника улучшенными характеристиками, увеличенным функционалом и большим объемом памяти. Стоимость нового устройства дороже примерно в 2 раза.

Важным преимуществом ESP32 является более быстрый Wi-Fi и Bluetooth. В ESP32 установлен более мощный процессор, позволяющий реализовывать сложные проекты. Эта платформа подходит для приложений, в которых требуется интернет или новые интерфейсы. Для более дешевых разработок используется ESP8266.

Объем памяти у нового устройства ESP32 увеличен – 512 Кб против 160 Кб ESP8266. Также ESP32 отличается большим количеством выводов GRIO. К нескольким контактам на ESP32 прикреплены емкостные сенсорные датчики и датчик температуры. На обоих устройствах контакты GRIO можно использовать по-разному. ESP32 имеет 18 12-битных АЦП каналов. У его предшественника есть всего 1 10-битный вывод АЦП.

Мощность процессора значительно влияет на скорость работы. Модуль ESP32 показывает рекордную производительность по сравнению с предшественником ESP8266. Загрузка страницы с длинным скетчем и множеством графики занимает секунды.

Все схемы и datasheet доступны в репозитории GitHub devdotnetorg/ESP32-WROOM-32.

  1. ESP32 WROOM DevKit v1: распиновка, схема подключения и программирование — Амперка/a>
  2. Микроконтроллер ESP32 и проекты Arduino — ARDUINOMASTER
  3. Урок 1. Общие сведения о системе ESP32. Плата DevKit V1. — ЭДУАРД. mypractic.ru
  4. ESP32 Pinout Reference : GPIO Overview & Features — uPesy Documentation
  5. ESP32 Pinout Reference: Which GPIO pins should you use? — RandomNerdTutorials.com
  6. ESP32 DEVKIT V1 DOIT — EspaceRM

Введение в ESP32 | Спецификации, плата ESP32 DevKit, макет,

В этом руководстве мы узнаем о ESP32, двухъядерном микроконтроллере от Espressif Systems со встроенными Wi-Fi и Bluetooth. Если вы работали с ESP8266, то ESP32 — это значительное обновление с гораздо большим количеством функций. Это руководство по началу работы с ESP32 предназначено для начинающих, имеющих или не имеющих опыта работы с IoT или ESP8266.

Outline

Введение

Arduino — отличная платформа для новичков в мире микроконтроллеров и встраиваемых систем. С большим количеством дешевых датчиков и модулей вы можете сделать несколько проектов в качестве хобби или даже коммерческого.

По мере развития технологий в игру вступают новые проектные идеи и реализации, и одной из конкретных концепций является Интернет вещей или IoT. Это подключенная платформа, где несколько «вещей» или устройств подключены через Интернет для обмена информацией.

В сообществе DIY проекты IOT в основном сосредоточены на приложениях домашней автоматизации и умного дома, но коммерческие и промышленные проекты IoT имеют гораздо более сложные реализации, такие как машинное обучение, искусственный интеллект, беспроводные сенсорные сети и т. д.

В этом кратком вступлении важно отметить, что будь то небольшой проект «сделай сам» любителя или сложный промышленный проект, любой проект IoT должен иметь подключение к Интернету. Именно здесь на сцену выходят ESP8266 и ESP32.

Если вы хотите добавить в свои проекты подключение к Wi-Fi, ESP8266 — отличный вариант. Но если вы хотите построить полноценную систему с возможностью подключения по Wi-Fi, Bluetooth, АЦП с высоким разрешением, ЦАП, последовательным подключением и многими другими функциями, то ESP32 — лучший выбор.

Что такое ESP32?

ESP32 — это недорогой микроконтроллер System on Chip (SoC) от Espressif Systems, разработчиков знаменитой SoC ESP8266. Он является преемником SoC ESP8266 и поставляется как в одноядерном, так и в двухъядерном вариантах 32-битного микропроцессора Xtensa LX6 от Tensilica со встроенными Wi-Fi и Bluetooth.

Преимуществом ESP32, как и ESP8266, являются встроенные радиочастотные компоненты, такие как усилитель мощности, малошумящий приемный усилитель, антенный переключатель, фильтры и радиочастотный балун. Это делает разработку оборудования вокруг ESP32 очень простой, поскольку вам требуется очень мало внешних компонентов.

Еще одна важная вещь, которую следует знать о ESP32, заключается в том, что он производится с использованием 40-нм технологии TSMC со сверхнизким энергопотреблением. Таким образом, разработка приложений с батарейным питанием, таких как носимые устройства, аудиооборудование, радионяни, умные часы и т. д., с использованием ESP32 должна быть очень простой.

Спецификации ESP32

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

  • Одно- или двухъядерный 32-разрядный микропроцессор LX6 с тактовой частотой до 240 МГц.
  • 520 КБ SRAM, 448 КБ ROM и 16 КБ RTC SRAM.
  • Поддерживает подключение Wi-Fi 802.11 b/g/n со скоростью до 150 Мбит/с.
  • Поддержка спецификаций Classic Bluetooth v4.2 и BLE.
  • 34 программируемых GPIO.
  • До 18 каналов 12-разрядного АЦП последовательного приближения и 2 канала 8-разрядного ЦАП
  • Последовательное подключение включает 4 x SPI, 2 x I 2 C, 2 x I 2 S, 3 x UART.
  • Ethernet MAC для физической связи по локальной сети (требуется внешний PHY).
  • 1 хост-контроллер для SD/SDIO/MMC и 1 подчиненный контроллер для SDIO/SPI.
  • Motor PWM и до 16 каналов LED PWM.
  • Безопасная загрузка и шифрование флэш-памяти.
  • Криптографическое аппаратное ускорение для AES, Hash (SHA-2), RSA, ECC и RNG.

Различные способы программирования

Хорошее оборудование, такое как ESP32, будет более удобным для пользователя, если его можно запрограммировать (написать код) более чем одним способом. И неудивительно, что ESP32 поддерживает несколько сред программирования.

Некоторые из наиболее часто используемых сред программирования:

  • Arduino IDE
  • PlatformIO IDE (код VS)
  • ЛУА
  • МикроПитон
  • Espressif IDF (инфраструктура разработки Интернета вещей)
  • JavaScript

Поскольку среда Arduino IDE уже знакома нам, мы будем использовать ее для программирования ESP32 в наших будущих проектах. Но вы определенно можете попробовать и другие.

ESP32 DevKit — Плата для разработки ESP32

Espressif Systems выпустила несколько модулей на основе ESP32, и одним из популярных вариантов является модуль ESP-WROOM-32. Он состоит из SoC ESP32, кварцевого генератора с частотой 40 МГц, 4 МБ Flash IC и некоторых пассивных компонентов.

Преимущество модуля ESP-WROOM-32 в том, что на печатной плате имеются выступы по краям. Итак, что делают сторонние производители, так это берут модуль ESP-WROOM-32 и разрабатывают для этого модуля коммутационную плату.

Одной из таких плат является плата ESP32 DevKit. Он содержит ESP-WROOM-32 в качестве основного модуля, а также некоторое дополнительное оборудование для простого программирования ESP32 и подключения к контактам GPIO.

 

Компоновка

Мы увидим, из чего состоит типичная плата разработки ESP32, взглянув на компоновку одной из популярных недорогих плат ESP, доступных на рынке, которая называется ESP32 DevKit Board.

На следующем изображении показана макетная плата ESP32, которая у меня есть.

ВАЖНОЕ ПРИМЕЧАНИЕ: На рынке доступно множество плат ESP32 на базе модуля ESP-WROOM-32. Компоновка, распиновка и функции варьируются от платы к плате.

Плата, которая у меня есть, имеет 30 контактов (по 15 контактов с каждой стороны). Есть доски с 36 контактами, а некоторые с немного меньшим количеством контактов. Поэтому дважды проверьте контакты перед подключением или даже включением платы.

Как видно из изображения, плата ESP32 состоит из следующего:

  • Модуль ESP-WROOM-32
  • Два ряда контактов ввода-вывода (по 15 контактов с каждой стороны)
  • CP2012 Мост USB-UART IC
  • Разъем micro–USB (для питания и программирования)
  • AMS1117 Регулятор 3,3 В IC
  • Кнопка включения (для сброса)
  • Кнопка загрузки (для прошивки)
  • Индикатор питания (красный)
  • Индикатор пользователя (синий — подключен к GPIO2)
  • Некоторые пассивные компоненты

Интересным моментом в микросхеме USB-to-UART является то, что ее контакты DTR и RTS используются для автоматического перевода ESP32 в режим программирования (при необходимости), а также для отдыха платы после программирования.

Распиновка платы ESP32

Я сделаю отдельный учебник по распиновке ESP32. А пока взгляните на схему выводов макетной платы ESP32.

Эта распиновка предназначена для 30-контактной версии платы ESP. В уроке по распиновке я объясню вывод как 30-контактной, так и 36-контактной версии плат ESP.

Заключение

Это полное руководство для начинающих по ESP32, отличной SoC со встроенным Wi-Fi и Bluetooth. Вы узнали о микроконтроллере ESP32, его спецификациях, макете макетной платы, а также краткой распиновке.

Начало работы с макетной платой ESP32

Новичок в ESP32? Начни здесь! ESP32 — это серия недорогих и маломощных микроконтроллеров системы на кристалле (SoC), разработанных Espressif, которые включают в себя возможности беспроводной связи Wi-Fi и Bluetooth и двухъядерный процессор. Если вы знакомы с ESP8266, то ESP32 — его преемник с множеством новых функций.

Впервые на ESP32? Вы находитесь в правильном месте. Это руководство содержит всю информацию, необходимую для начала работы с ESP32. Узнайте, что такое ESP32, как выбрать плату ESP32, как заставить свою первую программу работать и многое другое. Вот что мы рассмотрим в этом руководстве:

Содержание

  • Знакомство с ESP32
    • Спецификации ESP32
    • Сравнение ESP32 и ESP8266
  • Плата для разработки ESP32 от ESP32 до 903?
  • Какая плата для разработки ESP32 лучше всего подходит для начинающих?
  • ESP32 DEVKIT DOIT
  • Руководство по распиновке GPIO ESP32
  • Как запрограммировать ESP32?
  • ESP32 с Arduino IDE
  • Загрузить код в 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 являются двухъядерными — они поставляются с 2 32-разрядными микропроцессорами Xtensa LX6: ядро ​​0 и ядро ​​1.
    • Богатый периферийный интерфейс ввода/вывода — ESP32 поддерживает широкий входные (чтение данных из внешнего мира) и выходные (для отправки команд/сигналов во внешний мир) периферийные устройства, такие как емкостные сенсоры, АЦП, ЦАП, UART, SPI, I2C, ШИМ и многое другое.
    • Совместимость с «языком программирования» Arduino: те, кто уже знаком с программированием платы Arduino, будут рады узнать, что они могут программировать ESP32 в стиле Arduino.
    • Совместимость с MicroPython: вы можете запрограммировать ESP32 с прошивкой MicroPython, которая представляет собой повторную реализацию Python 3, предназначенную для микроконтроллеров и встроенных систем.

    Спецификации ESP32

    Если вы хотите получить более подробную техническую и конкретную информацию, вы можете ознакомиться со следующими подробными характеристиками ESP32 (источник: http://esp32.net/) — для получения более подробной информации см. техническое описание):

    Модуль ESP32: ESP-WROOM-32

    • Беспроводная связь Wi-Fi: 150,0 Мбит / с.
    • Память :
      • ПЗУ: 448 КБ (для загрузки и основных функций)
      • SRAM: 520 КБ (для данных и инструкций)
      • RTC FAR10 (. хранилище данных и основной ЦП во время загрузки RTC из режима глубокого сна)
      • Медленная SRAM RTC : 8 КБ (для доступа к сопроцессору в режиме глубокого сна)
      • eFuse : 1 Кбит (из которых 256 бит используются для системы (MAC-адрес и конфигурация микросхемы), а остальные 768 биты зарезервированы для клиентских приложений, включая Flash-шифрование и Chip-ID)
      • Встроенная флэш-память : флэш-память, подключенная внутри через 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 МБ (модуль ESP32-PICO-D4 SiP)
    • спать.
    • Периферический вход/вывод:
      • Периферический интерфейс с DMA, который включает емкостный сенсор
      • ADC (аналого-цифровый конвертер)
      • DACS (Digital-To-Analog Converter)
      • 55.C. (Digital-To-ANALOG Converter)
      • 555.C-INTER (Digital-To-Analog) Схема)
      • UART (Universal Asynchronous Receiver/Transmitter)
      • SPI (Serial Peripheral Interface)
      • I²S (Integrated Interchip Sound)
      • RMII (Reduced Media-Independent Interface)
      • PWM (Pulse-Width Modulation)
    • Безопасность: аппаратные ускорители для AES и SSL/TLS

    Основные различия между ESP32 и ESP8266

    Ранее мы упоминали, что ESP32 является преемником ESP8266. Каковы основные различия между платами ESP32 и ESP8266?

    ESP32 добавляет дополнительное ядро ​​ЦП, более быстрый Wi-Fi, больше GPIO и поддерживает Bluetooth 4. 2 и Bluetooth с низким энергопотреблением. Кроме того, ESP32 поставляется с сенсорными контактами, которые можно использовать для вывода ESP32 из режима глубокого сна, а также со встроенным датчиком эффекта Холла.

    Обе платы дешевые, но ESP32 стоит немного дороже. В то время как ESP32 может стоить от 6 до 12 долларов, ESP8266 может стоить от 4 до 6 долларов (но это действительно зависит от того, где вы их берете и какую модель покупаете).

    Итого:

    • ESP32 быстрее, чем ESP8266;
    • ESP32 поставляется с большим количеством GPIO с множеством функций;
    • ESP32 поддерживает аналоговые измерения на 18 каналах (аналоговые выводы) по сравнению с одним 10-битным выводом АЦП на ESP8266;
    • ESP32 поддерживает Bluetooth, а ESP8266 — нет;
    • ESP32 является двухъядерным (большинство моделей), а ESP8266 — одноядерным;
    • ESP32 немного дороже, чем ESP8266.

    Для более подробного анализа различий между этими платами рекомендуем прочитать следующую статью: ESP32 и ESP8266 — плюсы и минусы.

    Платы для разработки ESP32

    ESP32 относится к чистому чипу ESP32. Однако термин «ESP32» также используется для обозначения плат разработки ESP32. Использование голых чипов ESP32 непросто и непрактично, особенно при обучении, тестировании и создании прототипов. В большинстве случаев вы захотите использовать плату разработки ESP32.

    Эти макетные платы поставляются со всеми необходимыми схемами для питания и программирования чипа, подключения его к компьютеру, контактами для подключения периферийных устройств, встроенными светодиодами питания и управления, антенной для сигнала Wi-Fi и другими полезными функциями. Другие даже поставляются с дополнительным оборудованием, таким как специальные датчики или модули, дисплеи или камера в случае ESP32-CAM.

    Как выбрать макетную плату ESP32?

    Как только вы начнете искать платы ESP32 в Интернете, вы обнаружите, что существует множество плат от разных поставщиков. Хотя все они работают одинаково, некоторые доски могут больше подходить для одних проектов, чем другие. При поиске платы для разработки ESP32 необходимо учитывать несколько аспектов:

    • Интерфейс USB-UART и схема регулятора напряжения . Большинство полнофункциональных макетных плат имеют эти две функции. Это важно для простого подключения ESP32 к компьютеру для загрузки кода и подачи питания.
    • Кнопки BOOT и RESET/EN для перевода платы в режим прошивки или перезагрузки (перезагрузки) платы. На некоторых платах нет кнопки BOOT. Обычно эти платы автоматически переходят в режим прошивки.
    • Конфигурация контактов и количество контактов. Чтобы правильно использовать ESP32 в своих проектах, вам необходимо иметь доступ к распиновке платы (например, к карте, показывающей, какой вывод соответствует какому GPIO и его функциям). Поэтому убедитесь, что у вас есть доступ к распиновке платы, которую вы получаете. В противном случае вы можете неправильно использовать ESP32.
    • Разъем антенны . Большинство плат поставляются со встроенной антенной для сигнала Wi-Fi. Некоторые платы поставляются с антенным разъемом для дополнительного подключения внешней антенны. Добавление внешней антенны увеличивает радиус действия Wi-Fi.
    • Разъем аккумулятора . Если вы хотите питать свой ESP32 от батарей, есть платы для разработки, которые поставляются с разъемами для батарей LiPo — это может быть удобнее. Вы также можете запитать «обычный» ESP32 батареями через контакты питания.
    • Дополнительные аппаратные функции . Существуют платы разработки ESP32 с дополнительными аппаратными функциями. Например, некоторые могут поставляться со встроенным OLED-дисплеем, модулем LoRa, модулем SIM800 (для GSM и GPRS), держателем аккумулятора, камерой и т. д.

    Какая плата для разработки ESP32 лучше всего подходит для начинающих?

    Для начинающих мы рекомендуем плату ESP32 с широким выбором доступных GPIO и без каких-либо дополнительных аппаратных функций. Также важно, что он поставляется с постоянным напряжением и USB-входом для питания и кода загрузки.

    В большинстве наших проектов ESP32 мы используем плату ESP32 DEVKIT DOIT, которую мы рекомендуем новичкам. Существуют разные версии этой платы с разным количеством доступных контактов (30, 36 и 38) — все платы работают одинаково.

    Где купить?

    Вы можете перейти по следующей ссылке, чтобы найти плату ESP32 DEVKIT DOIT в разных магазинах:

    • Плата ESP32 DEVKIT DOIT

    Другие аналогичные платы с функциями, упомянутыми ранее, также могут быть хорошим вариантом, например, Adafruit ESP32 Feather, Sparkfun ESP32 Thing, NodeMCU-32S, Wemos LoLin32 и т. д.

    ESP32 DEVKIT DOIT

    В этой статье мы будем использовать плату ESP32 DEVKIT DOIT в качестве эталона. Если у вас другая доска, не волнуйтесь. Информация на этой странице также совместима с другими отладочными платами ESP32.

    На рисунке ниже показана плата ESP32 DEVKIT DOIT V1, версия с 36 контактами GPIO.

    Технические характеристики — ESP32 Devkit v1 doit

    В следующей таблице показана сводка ESP32 Devkit V1 Особенности доски DOIT и спецификации:

    444444444444444444444444444444444444444444444444444444444444444444444444444444444444444459н. -Fi
    Количество ядер 2 (Dalal Core)
    2,4 ГГц до 150 Мбит/с
    Bluetooth BLE (Bluetooth Low Energy) и устаревшая версия Bluetooth
    Architecture 32 bits
    Clock frequency Up to 240 MHz
    RAM 512 KB
    Pins 30, 36, or 38 (в зависимости от модели)
    Периферийные устройства Емкостный сенсорный, АЦП (аналогово-цифровой преобразователь), ЦАП (цифро-аналоговый преобразователь), I2C (интегральная схема), UART (универсальный асинхронный приемник/передатчик ), CAN 2. 0 (локальная сеть контроллеров), SPI (последовательный периферийный интерфейс), I2S (интегрированный звук между микросхемами), RMII (упрощенный независимый от среды интерфейс), PWM (широтно-импульсная модуляция) и другие.
    Встроенные кнопки Кнопки RESET и BOOT
    Встроенные светодиоды встроенный синий светодиод, подключенный к GPIO2; встроенный красный светодиод, показывающий питание платы
    Мост USB-UART CP2102

    Эта конкретная плата ESP32 имеет 36 контактов, по 18 с каждой стороны. Количество доступных GPIO зависит от модели вашей платы.

    Чтобы узнать больше о GPIO ESP32, прочитайте наше справочное руководство по GPIO: ESP32 Pinout Reference: Какие контакты GPIO следует использовать?

    Он поставляется с интерфейсом microUSB, который можно использовать для подключения платы к компьютеру для загрузки кода или подачи питания.

    Он использует микросхему CP2102 (USB-UART) для связи с вашим компьютером через COM-порт с использованием последовательного интерфейса. Другой популярный чип — Ch440. Проверьте, какой преобразователь чипов USB в UART установлен на вашей плате, потому что вам нужно будет установить необходимые драйверы, чтобы ваш компьютер мог взаимодействовать с платой (подробнее об этом далее в этом руководстве).

    На этой плате также есть кнопка RESET (может быть помечена как EN) для перезапуска платы и кнопка BOOT для перевода платы в режим прошивки (доступный для получения кода). Обратите внимание, что на некоторых платах может не быть кнопки BOOT.

    Он также поставляется со встроенным синим светодиодом, который внутренне подключен к GPIO 2. Этот светодиод полезен для отладки, чтобы дать визуальный физический вывод. Также есть красный светодиод, который загорается, когда вы подаете питание на плату.

    Руководство по распиновке GPIO ESP32

    Чип ESP32 имеет 48 контактов с множеством функций. Не все контакты доступны на всех макетных платах ESP32, и некоторые контакты не следует использовать. Плата ESP32 DEVKIT V1 DOIT обычно поставляется с 36 открытыми GPIO, которые можно использовать для подключения периферийных устройств.

    Контакты питания

    Обычно все платы поставляются с контактами питания: 3V3, GND и VIN. Вы можете использовать эти контакты для питания платы (если питание не подается через порт USB) или для подачи питания на другие периферийные устройства (если питание платы подается через порт USB).

    Входные выходные контакты общего назначения (GPIOS)

    Почти всем GPIO присвоен номер, и именно так вы должны обращаться к ним — по их номеру.

    С помощью ESP32 вы можете решить, какие контакты являются UART, I2C или SPI — вам просто нужно установить это в коде. Это возможно благодаря функции мультиплексирования чипа ESP32, которая позволяет назначать несколько функций одному и тому же контакту.

    Если не указать их в коде, контакты будут настроены по умолчанию, как показано на рисунке ниже (расположение контактов может меняться в зависимости от производителя). Кроме того, есть булавки с особыми характеристиками, которые делают их подходящими или нет для конкретного проекта.

    У нас есть подробное руководство, посвященное GPIO ESP32, которое мы рекомендуем вам прочитать: Справочное руководство по распиновке ESP32. В нем показано, как использовать GPIO ESP32, и объясняется, какие GPIO лучше всего использовать в зависимости от вашего проекта.

    Расположение GPIO может различаться в зависимости от модели вашей платы. Однако обычно каждый конкретный GPIO работает одинаково независимо от используемой платы разработки (за некоторыми исключениями). Например, независимо от платы, обычно GPIO5 всегда является выводом VSPI CS0, GPIO 23 всегда соответствует VSPI MOSI для связи SPI и т. д.

    Как запрограммировать ESP32?

    ESP32 можно запрограммировать, используя различные прошивки и языки программирования. Вы можете использовать:

    • Arduino C/C++ с использованием ядра Arduino для ESP32
    • Espressif IDF (инфраструктура разработки Интернета вещей)
    • Micropython
    • JavaScript
    • LUA
    • Программа ESP 3

      3 с C/C++ «языком программирования Arduino». У нас также есть несколько руководств и руководств по использованию прошивки MicroPython.

      В этом руководстве мы рассмотрим программирование ESP32 с использованием ядра Arduino для платы ESP32. Если вы предпочитаете использовать MicroPython, обратитесь к этому руководству: Начало работы с MicroPython на ESP32.

      Программирование ESP32 с помощью Arduino IDE

      Для программирования плат вам понадобится IDE для написания кода. Для начинающих мы рекомендуем использовать Arduino IDE. Хотя это не лучшая IDE, она хорошо работает, проста и интуитивно понятна для начинающих. После знакомства с Arduino IDE и создания более сложных проектов вам может оказаться полезным вместо этого использовать VS Code с расширением Platformio.

      Если вы только начинаете работать с ESP32, начните с Arduino IDE. На момент написания этого руководства мы рекомендуем использовать устаревшую версию (1.8.19) с ESP32. Хотя версия 2 хорошо работает с Arduino, все еще есть некоторые ошибки и некоторые функции, которые еще не поддерживаются для ESP32.

      Установка Arduino IDE

      Для запуска Arduino IDE на вашем компьютере должна быть установлена ​​JAVA. Если нет, перейдите на следующий веб-сайт, чтобы загрузить и установить последнюю версию: http://java.com/download.

      Загрузка Arduino IDE

      Чтобы загрузить Arduino IDE, перейдите по следующему адресу:

      • https://www.arduino.cc/en/Main/Software

      Не устанавливайте версию 2.0. На момент написания этого руководства мы рекомендуем использовать устаревшую версию (1.8.19) с ESP32. Хотя версия 2 хорошо работает с Arduino, все еще есть некоторые ошибки и некоторые функции, которые еще не поддерживаются для ESP32.

      Прокрутите вниз, пока не найдете раздел устаревшей версии.

      Выберите свою операционную систему и загрузите программное обеспечение. Для Windows мы рекомендуем загрузить « Windows ZIP-файл ».

      Запуск Arduino IDE

      Возьмите папку, которую вы только что загрузили, и разархивируйте ее. Запустите исполняемый файл с именем arduino.exe (выделен ниже).

      Должно открыться окно Arduino IDE.

      Установка ESP32 в Arduino IDE

      Чтобы иметь возможность программировать ESP32 с помощью Arduino IDE, необходимо добавить поддержку плат ESP32. Выполните следующие шаги:

      1. Перейти к Файл > Настройки .
      1. Введите следующее в поле « Дополнительные URL-адреса менеджера плат ». Это также добавит поддержку плат ESP32 и ESP8266.
       https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.json 

       См. рисунок ниже. Затем нажмите кнопку « OK ».

      1. Откройте диспетчер плат . Перейдите в Tools > Board > Boards Manager…
      1. Найдите ESP32 и установите « ESP32 by Espressif Systems »:

        it.

        Он будет установлен через несколько секунд.

        После этого перезапустите Arduino IDE.

        Затем перейдите к Tools > Board и убедитесь, что у вас есть доступные платы ESP32.

        Теперь вы готовы приступить к программированию ESP32 с помощью Arduino IDE.

        Примеры ESP32

        В среде разработки Arduino вы можете найти несколько примеров для ESP32. Во-первых, убедитесь, что в Tools > Board выбрана плата ESP32. Затем просто перейдите к File > Examples и ознакомьтесь с примерами в разделе ESP32.

        Обновление ядра ESP32 в Arduino IDE

        Время от времени рекомендуется проверять, установлена ​​ли у вас последняя версия надстройки для плат ESP32.

        Вам просто нужно перейти к Tools  > Board   > Boards Manager , найти ESP32 и проверить версию, которую вы установили. Если доступна более новая версия, выберите ее для установки.

        Загрузить код в ESP32 с помощью Arduino IDE

        Чтобы показать вам, как загружать код на плату ESP32, мы попробуем простой пример, доступный в примерах Arduino IDE для ESP32.

        Во-первых, убедитесь, что у вас выбран ESP32 в Инструменты > Доска . Затем перейдите к Файл > Примеры > WiFi > WiFiScan .

        Это загрузит скетч, который сканирует сети Wi-Fi в пределах досягаемости вашей платы ESP32.

        Подключите макетную плату ESP32 к компьютеру с помощью USB-кабеля. Если у вас есть плата ESP32 DEVKIT DOIT, загорится встроенный красный светодиод. Это указывает на то, что плата получает питание.

        Важно: необходимо использовать кабель USB с проводами передачи данных. Некоторые USB-кабели от зарядных устройств или блоков питания предназначены только для питания и не передают данные — они не будут работать.

        Теперь выполните следующие шаги, чтобы загрузить код.

        1) Перейдите к Tools > Board , прокрутите вниз до раздела ESP32 и выберите имя вашей платы ESP32. В моем случае это плата DOIT ESP32 DEVKIT V1.

        2) Перейдите к Инструменты > Порт и выберите доступный COM-порт. Если COM-порт неактивен, это означает, что у вас нет необходимых драйверов USB. Прежде чем продолжить, проверьте раздел «Установка USB-драйверов».

        3) Нажмите кнопку загрузки.

        Некоторые платы автоматически переходят в режим прошивки, и код сразу же успешно загружается.

        Другие платы не переходят в режим прошивки автоматически, поэтому вы можете получить следующую ошибку.

         Не удалось подключиться к ESP32: истекло время ожидания... Подключение... 

        Или что-то вроде:

         Произошла фатальная ошибка: Не удалось подключиться к ESP32: обнаружен неверный режим загрузки (0x13)! Чип должен быть в режиме загрузки.  

        Это означает, что ESP32 не находился в режиме прошивки, когда вы пытались загрузить код. В этой ситуации следует долго нажимать на доску BOOT , когда вы начнете видеть « Connecting…. » сообщение в окне отладки.

        Примечание: на некоторых платах, простой трюк может заставить ESP32 автоматически перейти в режим прошивки. Проверьте это в следующем руководстве: [РЕШЕНО] Не удалось подключиться к ESP32: истекло время ожидания заголовка пакета.

        Теперь код должен быть успешно загружен на плату. Вы должны получить сообщение « Done uploading ».

        Демонстрация

        Чтобы убедиться, что код работает должным образом, откройте Serial Monitor со скоростью 115200 бод.

        Нажмите кнопку ESP32 RST или EN, чтобы перезагрузить плату и запустить только что загруженный код.

        Вы должны получить список ближайших сетей Wi-Fi.

        Это означает, что все прошло так, как ожидалось.

        Установка USB-драйверов ESP32

        Если после подключения платы ESP32 к компьютеру COM-порт в Arduino IDE неактивен, это означает, что на вашем компьютере не установлены необходимые USB-драйверы.

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

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