32-битный 2-ядерный микропроцессор 240 МГц, Wi-Fi, Bluetooth BLE. Передача данных с DMA; поддерживаются емкостные датчики, АЦП, ЦАП, I2C, UART, SPI, I2S, RMII и ШИМ.
Wi-Fi модули ESP8266 за время своего существования стали поистине народными и получили широкое распространение в любительской разработке устройств Интернета вещей. Но жизнь не стоит на месте и компания-разработчик Espressif выпускает новый микроконтроллер – ESP32. ESP32 получил значительный прирост в производительности, по сравнению c ESP8266. Вычислительная мощность возросла в четыре раза. У ESP32 есть два ядра, каждый из которых работает на частоте 160 МГц (ESP8266 имеет 1 ядро, работающее на частоте 80 МГц). Контроллер имеет 520 Кб оперативной памяти, 448 Кб flash-памяти. Поддерживает не только Wi-Fi (802.11n с максимальной скоростью 150 Мбит в секунду), но и Bluetooth 4.2 BR/EDR и Low Energy.
Основным недостатком плат ESP8266 было очень малое количество контактов, в ESP32 этот недостаток устранен, выводов гораздо больше и они многофункциональные, блок ввода-вывода имеет специальный мультиплексор, который позволяет назначать различные функции на один вывод микроконтроллера. Значительно увеличено количество аналоговых входов (18 АЦП (12-бит) и 2 ЦАП (8-бит)), поддержка PWM на всех контактах, 10 портов в режиме сенсорных кнопок. ESP32 имеет три UART, два I2C, четыре SPI, два I2S. Также имеется инфракрасный контроллер (прием-передача), шина CAN 2.0. Еще есть датчик температуры и датчик Холла. Для шифрования при передаче данных по Wi-Fi в ESP32 имеются криптографические модули AES и SHA. Блок-схема периферии ESP32:
Для удобной работы с микроконтроллером ESP32 был выпущен модуль WROOM-32.
И теперь появилось множество отладочных плат на этом модуле.
Немаловажный вопрос в свете использования модулей для устройств Интернета вещей – энергопотребление. Питание модуля Максимальный ток потребления в режиме передачи Wi-Fi или Bluetooth 160-260 мА, без включенных Wi-Fi или Bluetooth – 20 мА, в спящем режиме – 10 мкА.
Установка программного обеспечения
Изначально модули ESP32, как и ESP8266, поставляется с прошивкой, позволяющей работать с этим микроконтроллером с помощью AT-команд. Но данный метод нас не устраивает. Будем программировать нашу плату в Arduino IDE. Для этого скачиваем ESP32 CORE для Arduino IDE с сайта https://github.com/espressif/arduino-esp32 (zip-архив) и распаковываем его в папку C:\Program Files\Arduino\hardware\espressif. Заходим в Arduino IDE и видим, что в панели инструментов появились платы ESP32.
Но в списке портов платы нет. Значит не установлен драйвер на CP2102.
Перед использованием платы необходимо установить драйвера с официального сайта SiLabs – http://www.silabs.com/products/mcu/pages/usbtouartbridgevcpdrivers.aspx.
После установки драйверов плата появляется в списке COM-портов.
Теперь и в Arduino IDE появляется данный порт. Плата готова к загрузке скетчей.
И список библиотек, поддерживаемых на данный момент (папка C:\Program Files\Arduino\hardware\espressif\arduino-esp32-master\libraries).
Попробуем подключить плату ESP32 к Wi-Fi точке доступа. Загружаем на плату данный скетч.
#include <WiFi.h>
// выставляем свои данные для точки доступа
const char* passwifi = "************";
const char* ssidwifi = "*********";
void setup()
{
Serial.begin(115200);
delay(10);
// Коннект к точке доступа
Serial.print("Connecting to ");
Serial.println(ssidwifi);
WiFi.begin(ssidwifi, passwifi);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(1000);
}
Serial.print("WiFi connect ok!");
Serial.print("Your IP address is ");
Serial.println(WiFi.localIP());
}
void loop()
{
;
}
Но компиляция не проходит!!! Не находит xtensa-esp32elf.
Заходим в папку Files\Arduino\hardware\espressif\esp32\tools и запускаем файл get.exe.
Теперь компиляция и загрузка скетча на плату проходит успешно.
Открываем монитор последовательного порта и видим, что подключение платы ESP32 к сети Wi-Fi успешно.
ESP32 не заменит ESP8266 с точки зрения простоты и цены, но он является ценным членом семейства микроконтроллеров с поддержкой средств для IoT. Хотя он и стоит дороже ESP8266, но его высокая производительность, богатая периферия и возможности подключения по Wi-Fi и Bluetooth, позволят применять этот микроконтроллер в требовательных к вычислительным ресурсам приложениях Интернета вещей.
Много полезного материала здесь