Esp32 wifi bluetooth battery распиновка
Описание микроконтроллера ESP32
Фирма Espressif выпустила мощный недорогой микроконтроллер ESP32 летом 2016 года. Устройство представляет собой систему на кристалле, построенную по технологии TSMC 40 нм, с Wi-Fi и Bluetooth контроллерами. Оно оснащено двухъядерным 32-битным процессором, который работает на частотах 80, 160 или 240 МГц. Также в систему интегрированы антенные коммутаторы, радиочастотные компоненты, фильтры, усилители, модули управления питанием. Подключается ESP32 к компьютеру через обычный USB провод.
Характеристики чипа
Технические характеристики ESP32:
Также в модуле традиционно присутствует встроенное управление энергопитанием. Для этого используются линейный регулятор, индивидуальное питание для RTC (ядро низкого энергопотребления), пробуждение по таймеру или сенсорному датчику.
Программирование модуля ESP32 может производиться на самых разных платформах, и средах, вот небольшой список наиболее популярных вариантов:
- Arduino IDE;
- Espressif IoT Development Framework;
- Espruino;
- PlatformIO;
- Pymakr IDE.
Большинство проектов реализуется на Arduino IDE и Espruino.
Использование ESP 32
Хоть плата ESP32 появилась недавно, она уже активно используется в коммерческих проектах, связанных с мобильными приложениями, электроникой и задачами IoT. Например, на ее базе построен светодиодный браслет IoT группы Alibaba. Он представляет собой живой беспроводной экран, в котором каждый браслет работает как пиксель. Также на основе микроконтроллера реализована биометрическая система отслеживания посещаемости и проекты, связанные с анализом климатических условий. Имея плату ESP32 и датчики температуры, влажности и давления, можно самостоятельно собрать метеостанцию. ESP32 используется в музыкальных плеерах, помощниках с голосовым управлением, аудиогарнитуре.
Распиновка ESP32
Микроконтроллер оснащен 48 контактами плюс 1 большой тепловой контакт, которые обладают разными функциями. Выводы микросхемы:
Расположение выводов зависит от производителя. Например, есть плата ESP32 DEVKIT V1 DOIT, у которой 36 контактов. Распиновка представлена на рисунке ниже.
Одним из самых популярных модулей является ESP-WROOM-32. Распиновка также приведена на картинке.
К портам GRIO 0, 4, 2, 15, 13, 12, 14, 27, 33 и 32 подключены сенсорные выводы. Они могут использоваться для вывода ESP32 из глубокого сна. Они фиксируют любое изменение электрического заряда.
Порты с 34 по 39 используются только для ввода информации. На них отсутствуют подтягивающие резисторы, поэтому их нельзя использовать как выходы.
На некоторых платах отображаются контакты 6-11. Они подсоединены к к интегрированной SPI flash. Их не используют в проектах.
Есть различные версии платы ESP32 размерами 5х5 мм или 6х6 мм. Также на основе ESP32 существуют модули SMT для интегрирования в другие платы.
Отличия esp32 от esp8266
Платформы 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. Загрузка страницы с длинным скетчем и множеством графики занимает секунды.
Из недостатков ESP32 можно выделить отсутствие библиотек для поддержки сенсоров и малое количество драйверов. Это связано с тем, что плата появилась в продаже недавно. Но учитывая все преимущества микроконтроллера и его перспективы, эта проблема будет решена уже в ближайшее время.
Настройка Arduino IDE для работы с ESP32
Изначально изделия от компании Espressif поставляются с прошивкой, позволяющей работать с помощью AT команд. Это не всегда удобно, поэтому лучше программировать плату в привычной среде разработки – Arduino IDE.
Чтобы начать создавать проекты на ESP32, сначала нужно иметь его поддержку в среде разработки Arduino IDE. Поддержка в настоящий момент находится на начальном, но работоспособном уровне. Проблемы могут возникнуть с драйверами устройств, но из-за популярности модуля вскоре будет поддерживаться вся периферия.
Так как плата ESP32 новая и поддержка в среде разработки Ардуино появилась недавно, то могут возникнуть сложности с установкой. Это связано с тем, что драйвера только разрабатываются и изменен порядок расположения системных директорий. Все скетчи должны быть расположены в папке C:\Users\User\Documents\Arduino. Файлы дистрибутива должны быть размещены внутри этой папки, как советует производитель. Если этого не учесть, то поддержка в Ардуино ESP32 будет отсутствовать.
После установки можно открыть Arduino IDE. Затем нужно перейти в настройки и в менеджере плат выбрать нужную. Теперь можно прошивать модуль.
Проверка модуля и подключение к Arduino IDE
Чтобы произвести проверку работоспособности модуля, можно собрать проект с мигающим светодиодом. Для подключения потребуются:
- Модуль ESP32;
- Источник питания на 3 В;
- Кнопка;
- Резисторы;
- USB кабель для подключения к компьютеру;
- Провода;
- Светодиод;
- USB-TTL конвертор.
Собирается это все согласно схеме ниже.
Затем нужно загрузить тестовый код, прописав в нем номер COM порта, к которому подключен модуль, и тип платы. После загрузки скетча должен замигать светодиод.
Настройка официальной среды разработки ESP-IDF (Espressif IoT Development Framework)
Среду ESP-IDF можно установить на Windows. Для этого нужно:
После этого можно начинать работу. В каталоге \esp-idf\examples\ есть различные примеры скетчей для работы с модулем.
ESP32 DevKit — это универсальная платформа для разработки IoT-решений.
Программирование на C++
После выполненных действий плата ESP32 DevKit готова к программированию через Arduino IDE.
Подробности о функциях и методах работы ESP32 на языке C++ читайте на ESP32 Arduino Core’s.
Примеры работы для Arduino
ESP32 может подключиться к Wi-Fi сети, создать собственную точку доступа, представляться сервером и клиентом, формировать GET и POST запросы. Также микроконтроллер имеет два АЦП и датчик Хола.
Пример WebClient
После подключения к Wi-Fi микроконтроллер напишет в COM порт ответ от сервера.
Пример Analog WebServer
ESP32 имеет 15 аналоговых пинов. Выведем через веб-интерфейс значения с 36, 39 и 34 пина.
Когда микроконтроллер подключится к Wi-Fi сети, в монитор порта будет выведен IP-адрес веб-страницы с данными. Получить к ней доступ можно из локальной сети, перейдя по указанному IP-адресу. Скопируйте IP-адрес из монитора порта и вставьте в адресную строку браузера. Если вы подключены к той же локальной сети, что и ESP32, то вы увидите веб-интерфейс.
Пример blink WebServer
Создадим WEB-сервер на порту 80. С помощью веб-интерфейса будем мигать светодиодами на 16 и 17 пинах.
При переходе по IP-адресу из монитора порта, выводится веб-страница с кнопками.
Программирование на JavaScript
Подробнее о функциях и методах работы ESP32 на языке JavaScript читайте документацию на Espruino.
Элементы платы
Мозг платформы
Платформа для разработки ESP32 DevKit основана на модуле ESP32-WROOM с чипом ESP32-D0WDQ6 от Espressif.
Чип ESP32-D0WDQ6
Чип ESP32-D0WDQ6 — выполнен по технологии SoC (англ. System-on-a-Chip — система на кристалле), в которую входит 2-ядерный 32-битный процессор Tensilica Xtensa LX6 с блоками памяти ROM на 448 КБ и SRAM на 520 КБ. В кристалле также расположены беспроводные технологии Wi-Fi/Bluetooth, радио-модуль, датчик Холла и сенсор температуры.
Для работы с чипом необходима внешняя Flash-память и другая электронная обвязка. Кристалл ESP32-D0WDQ6 является основой на базе которой выпускаются модули с необходимой периферией: например ESP32-WROOM или ESP32-WROVER .
Модуль ESP32-WROOM
ESP32-WROOM — модуль с чипом ESP32-D0WDQ6, Flash-памятью на 4 МБ и всей необходимой обвязкой, которые спрятаны под металлическим кожухом. Pins SCK/CLK, SDO/SD0, SDI/SD1, SHD/SD2, SWP/SD3 and SCS/CMD, namely, GPIO6 to GPIO11 are connected to the integrated SPI flash integrated on the module and are not recommended for other uses.
Рядом с кожухом расположена миниатюрная антенна из дорожки на верхнем слое печатной платы в виде змейки. Металлический кожух экранирует компоненты модуля и тем самым улучшает электромагнитные свойства.
Модуль является основной, на которой выполняются промышленные устройства или отладочные платы, например: ESP32 DevKit или ESP32-Sense Kit .
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 А.
Распиновка
Пины питания
VIN: Пин для подключения внешнего источника напряжения в диапазоне от 5 до 14 вольт. 3V3: Пин от стабилизатора напряжения с выходом 3,3 вольта и максимальных током 1 А. Регулятор обеспечивает питание модуля ESP32-WROOM.Порты ввода/вывода
В отличие от большинства плат Arduino, родным напряжением ESP32 DevKit является 3,3 В, а не 5 В. Выходы для логической единицы выдают 3,3 В, а в режиме входа ожидают принимать не более 3,3 В. Более высокое напряжение может повредить микроконтроллер!
Будьте внимательны при подключении периферии: убедитесь, что она может корректно функционировать в этом диапазоне напряжений.
Этой публикацией я начинаю цикл уроков о программировании микроконтроллеров ESP32 в программной среде ESP-IDF. В первом уроке расскажу о параметрах и функциональных возможностях ESP32 на примере отладочной платы DevKit V1.
Еще в 2015 году компания-разработчик микроконтроллера ES8266 выпустила новое устройство также ориентированное на работу с беспроводными технологиями – серию микроконтроллеров ESP32. От предшественника новые устройства отличаются невообразимыми параметрами и функциональными возможностями. Они являются идеальными элементами для создания устройств, поддерживающих IoT технологии (Интернет Вещей), т.е. подключение всего к Интернету.
В настоящее время контроллеры ESP32 стали вполне доступными. Отладочную двухъядерную плату на АлиЭкспресс можно купить всего за 350 руб.
Времени мало, но я не могу пройти мимо такой перспективной темы. По мере возможности, по остаточному принципу буду писать уроки ESP32. Речь идет о программировании не в среде Ардуино, а с помощью программных средств компании-производителя ESP32. Информации на эту тему очень мало.
Общие сведения.
ESP32 – это серия недорогих высокопроизводительных микроконтроллеров с низким энергопотреблением и интегрированными интерфейсами Wi-Fi и Bluetooth.
Серия разработана компанией Espressif Systems. В ней используется процессорное ядро Tensilica Xtensa LX6 в одноядерном и двухъядерном вариантах.
Микроконтроллеры ESP32 обладают настолько широкими функциональными возможностями, таким количеством периферийных интерфейсов, что обычно к ним применяется терминология ”система ESP32”.
Можно бесконечно расхваливать возможности ESP32, перечислять его интерфейсы, удивляться степени интеграции. Я сразу перейду к конкретному устройству.
В уроках буду использовать плату ESP DevKit V1 (аналог ESP32 DevKitC V4). Я купил эту плату на АлиЭкспресс всего за 340 руб вместе с доставкой. И это за плату. Модуль стоит еще дешевле.
Иерархия аппаратных узлов.
Поясню, чем отличаются аппаратные, конструктивно законченные элементы, с которыми мы будем работать.
Есть микроконтроллер (микросхема), например ESP32-D0WDQ6. Он обеспечивает большую часть функциональных возможностей системы, но для применения требует дополнительных компонентов.
Добавили к нему FLASH-память, генератор, блокировочные конденсаторы и прочие внешние компоненты. Установили их на маленькую печатную плату, прикрыли крышкой – получился модуль. В нашем случае модуль ESP-WROOM-32.
На модуль достаточно подать питание и уже можно использовать WiFi или Bluetooth. Если подключить внешние сигналы, то уже будет готовая система.
Еще удобнее использовать плату. У меня это ESP DevKit V1.
Примерно как на платах Ардуино добавились следующие функциональные и конструктивные возможности.
- Конвертер USB/UART CP210X, позволяющий подключаться к стандартному USB компьютера.
- Аппаратные цепи, обеспечивающие загрузку FLASH микроконтроллера от компьютера в автоматическом режиме.
- Стабилизатор напряжения питания модуля.
- Кнопки сброса и загрузки.
- Светодиоды.
- Внешние сигналы микроконтроллеры выведены на края платы.
Т.е. в минимальном варианте достаточно подключить плату ESP32 к USB компьютера. Через него плата получает питание, загружается резидентная программа, производится отладка.
Плата ESP DevKit V1.
В плате установлен модуль ESP-WROOM-32.
В модуле используется микроконтроллер ESP32-D0WDQ6.
Эти элементы определяют функциональные возможности и параметры платы.
- Процессорная часть:
- ядро Tensilica Xtensa LX6;
- два ядра;
- 32 разряда;
- производительность до 600 MIPS (миллионов инструкций в сек);
- 448 KB ROM для загрузчика и функций ядра;
- 520 KB SRAM для данных и команд;
- 16 KB SRAM в RTC (квази энергонезависимая память);
- 4 MB FLASH - память программы.
- Wi-Fi: 802.11 b/g /N;
- Bluetooth: v4.2 BR/EDR и BLE.
- внутренний генератор 8 мГц;
- внутренний RC-генератор;
- внешний генератор 40 мГц;
- внешний генератор 32 кГц для RTC;
- 2 группы таймеров, включая 2x64 бит таймеры и сторожевой таймер в каждой группе;
- RTC таймер (часы реального времени);
- RTC сторожевой таймер.
- 34 программируемых универсальных портов ввода/вывода;
- 12ти разрядный АЦП, до 18 каналов;
- 2 x 8 битных ЦАП;
- 10 портов для подключения емкостных датчиков;
- 4 x SPI;
- 2 x I 2 S;
- 2 x I 2 C;
- 3 x UART;
- 1 хост контроллер SD/eMMC/SDIO;
- 1 слейв контроллер SDIO/SPI;
- Ethernet MAC interface с выделенным DMA и IEEE 1588 поддержкой;
- CAN 2.0;
- ИК порт;
- ШИМ для двигателей;
- ШИМ для светодиодов до 16ти каналов;
- датчик Холла.
- безопасная загрузка;
- шифрование FLASH;
- 1024-битный ключ, до 768 бит для клиентов;
- криптографическое аппаратное ускорение:
- AES;
- хеширование SHA-2;
- RSA;
- ECC;
- генератор случайных чисел (RNG).
Функциональная схема микроконтроллера выглядит так.
Скорее, это перечисление основных компонентов микроконтроллера.
Применение ESP32.
В технической документации ESP32 есть глава “Применение (не полный список)”.
Действительно, микроконтроллер с такими потрясающими возможностями и такой низкой ценой может быть использован где угодно. Но производитель – компания Espressif Systems, прежде всего, выделяет предназначение ESP32 для создания IoT устройств.
IoT (Internet of Things), в переводе “Интернет Вещей” – это концепция подключения всего к интернету, что позволит управлять этим всем через интернет. Действительно, наличие интегрированных интерфейсов WiFi и Bluetooth, высокая производительность и низкая цена делают ESP32 идеальными контроллерами для IoT технологий.
Высокая производительность позволяет использовать ESP32 в системах обработки изображений и речи в реальном времени. Домашняя автоматика, умный дом, контроль здоровья, сельское хозяйство, промышленность, робототехника, игрушки … Всего не перечислить.
Распиновка и элементы платы.
Назначение выводов платы показано на этой схеме.
А здесь показано назначение элементов платы.
Электрические характеристики ESP32.
Мы собираемся создавать реальные устройства. А значит подключать к микроконтроллеру какие-то сигналы, подавать на него питание, эксплуатировать устройства в определенных климатических условиях. Значит важно знать минимальный набор электрических характеристик контроллера. Я посчитал, что на первом этапе необходимо знать следующие параметры.
Питание.
Напряжение питания модуля – 3,3 В, но на плате установлен стабилизатор AMS1117-3.3. В документации на плату DevKit все время фигурирует напряжение внешнего питания 5 В. Я не понимаю, почему нельзя подавать большее напряжение. AMS1117-3.3 допускает питание до 20 В, но надо еще учитывать мощность рассеивания на стабилизаторе.
Питание USB развязано от внешнего питания платы диодом Шоттки. Значит можно запитывать плату от внешнего источника и одновременно подключать к USB.
Средний потребляемый ток – 80 мА, но источник питания должен допускать пиковые нагрузки до 0,5 А.
Температура окружающей среды -40 +85 °C. Это для платы. У микроконтроллера -40 +125 °C.
ESP32 распиновка (pinout)
Плата ESP32 DEVKIT V1 имеет 30 выводов и использует контроллер ESP32 с микроконтроллерным ядром Tensilica Xtensa LX6. Серия является преемником микроконтроллеров ESP8266.
Описание и назначение выводов ESP32 DEVKIT V1
GND — общий провод, "земля"
5 .. 42 — номер пина на чипе ESP32
Выводы питанияVIN — контакт для подключения внешнего источника питания 5V (стабилизатор AMS1117-3.3 позволяет подавать питание в широком диапазоне от 5 до 10 V).
3.3V — контакт, на который подается выходное напряжение внутрисхемного стабилизатора. Может быть использован для питания подключаемых к плате датчиков.
I/OI — контакты могут быть использованы только как входы.
I/O — контакты могут быть использованы как входы и выходы.
Выводы GPIOGPIO (General Purpose Interput Output) — контакты ввода/вывода общего назначения. Могут быть сконфигурированы как входы или выходы и программно назначены на различные функции. Распиновка представлена на рисунке.
Абсолютный максимальный ток, потребляемый GPIO, составляет 40 мА в соответствии со спецификацией ESP32.
ENEN (Chip Enable) — контакт включения ESP32 в рабочий режим, одновременно может быть задействован для перезапуска контроллера (Reset).
ADCКонтакты A2 не рекомендуется использовать при использовании Wi-Fi.
DAC
UARTUART (Universal Asynchronous Receiver-Transmitter) — асинхронный последовательный интерфейс устанавливает связь с другими устройствами по шине UART. Каждая линия может быть переназначена пользователем на любой GPIO.
SPISPI (Serial Peripheral Interface) — последовательный периферийный интерфейс. ESP32 имеет два SPI (VSPI и HSPI) в ведущем и подчиненном режимах.
TOUCHTOUCH — контакты ёмкостных сенсорных датчиков. Реагируют не изменение ёмкости в электрической цепи вывода, вызванное прикосновением пальца к соответствующему контакту. Эти контакты могут быть легко встроены в емкостные панели и заменять механические кнопки. TOUCH-контакты также могут служить источником пробуждения ESP32 из энергосберегающих режимов. Распиновка представлена на рисунке.
I2CИнтерфейс I2C — последовательная асимметричная шина. I2C используется для подключения датчиков и периферийных устройств.
RTCRTC — ядро низкого энергопотребления.
ESP32 имеет сопроцессор с ультранизким энергопотреблением (Ultra Low Power — ULP). Выводы RTC GPIO, перенаправленные в подсистему с низким энергопотреблением, могут использоваться для выхода ESP32 из глубокого сна при работе сопроцессора (ULP). Требуют предварительной программной подготовки.
VDETVDET — аналоговые контакты ядра низкого энергопотребления (RTC). По аналогии с цифровыми контактами, предназначены для вывода процессора ESP32 из режимов энергосбережения. Требуют предварительной программной подготовки.
XTAL_32XTAL_32 — контакты внешнего кварцевого генератора с частотой 32.768 КГц.
Датчик ХоллаSens_VP (positive), Sens_VN (negative) — контакты встроенного датчика Холла, который обнаруживает изменения в магнитном поле в его окружении.
PWM (pulse-width modulation) — широтно-импульсная модуляция (ШИМ) управляет мощностью методом пульсирующего включения и выключения вывода. ESP32 имеет 16 независимых ШИМ-каналов. Практически все контакты, которые могут выступать в качестве выходов, могут использоваться в качестве выходов ШИМ (GPIO с 34 по 39 не могут генерировать ШИМ). Для генерации ШИМ-сигнала необходимо в программе задать частоту сигнала, скважность, ШИМ-канал, а также GPIO, на котором вы хотите вывести сигнал.Читайте также:
- ядро Tensilica Xtensa LX6;