Esp 12e сколько памяти

Обновлено: 02.07.2024

ESP-12E: 16x24x3 мм


Ключевые особенности

  • на базе микросхемы ESP8266
  • 4 МБ встроенной памяти flash
  • последовательный интерфейс UART: 2 вывода (Rx и Tx)
  • Интерфейс SPI
  • Готовность к FCC-сертификации (металлический экран)
  • 17 выводов GPIO, вывод Chip enable, вывод АЦП, вывод Reset
  • встроенная PCB-антенна 3dBi
  • радиоблок 2.4 ГГц соответсвует 802.11 b/g/n
  • поддерживаются режимы WiFi Direct (P2P), soft-AP (точка доступа)
  • встроенный стек TCP/IP
  • встроенные радиокомпоненты, прямое подключение к антенне (TR switch, balun, LNA, усилитель мощности и согласующие цепи внутри чипа)
  • выходная мощность +19.5dBm в режиме 802.11b
  • процессорное 32-битное RISC ядро
  • шифрование WEP, TKIP, AES, and WAPI (в т.ч. поддерживается WPA2)

Краткое описание

ESP-12E - модуль WiFi 802.11 b/g/n, построенный на базе популярного чипсета ESP8266EX. Модуль содержит микросхему flash-памяти формата SOP-210mil, в которой хранится программное обеспечение модуля. При каждом включении питания данное ПО автоматически загружается в чип ESP8266EX. Объема flash-памяти 4 МБ оказывается вполне достаточно, чтобы хранить полноценные программные приложения, управляемые обширным набором текстовых АТ-команд, и для реализации сложных алгоритмов шифрования и аутентификации на основе сертификатов безопасности WPA2-Entrprise. Центральным вычислительным ядром модуля является встроенные внутри чипсета ESP8266EX процессор Tensilica L106 32 разряда. Мощности процессорного ядра хватает для работы сложных пользовательских приложений цифровой сигнальной обработки. Модуль ESP-12E снабжен встроенным кварцевым резонатором, полностью обеспечивающим работу процессорного ядра и периферии при подаче питания. Взаимодействие модуля ESP-12E с внешними устройствами осуществляется через 22 краевых вывода, расположенных вдоль двух противоположных краев модуля. Рядом с каждым выводом модуля есть сквозное монтажное отверстие для пайки линейки штыревых контактов. Выводы модуля соединены с множеством интерфейсов чипа ESP8266EX: 2-контактный UART (RX и TX) для обмена данными и АТ-командами, Вывод GND (земля), Питание (VCC), Chip enable (CH_PD) для управления питанием модуля с внешнего микроконтроллера, вывод Reset для экстренной перезагрузки модуля, 17 GPIO (включая выводы интерфейса SPI) и 1 вывод АЦП. В модуле ESP-12E предусмотрена встроенная антенна типа PCB (дорожка на плате) с коэффициентом усиления 3dBi .

WiFi ESP-12E чип ESP8266 купить оптом и в розницу в СompactTool с доставкой по Москве и России

В современном, быстроразвивающемся мире, мы все давно привыкли к тому, что нас уже практически везде окружают разнообразные сети беспроводной связи, предлагающие нам возможность отправлять в Интернет или принимать из него различного рода цифровые данные, будь то музыкальные треки, фотографии, файлы с видеорядом или иную полезную информацию повсюду, где к таким сетям есть доступ. Среди существующего множества стандартов связи, подавляющему большинству очень хорошо известна технология WiFi, ставшая повседневной обыденностью. Доступ к WiFi есть почти в каждой квартире, сеть активно развивается в общественном транспорте, часто встречается в сферах отдыха, развлечения и досуга. И конечно же, WiFi присутствует в любом современном персональном компьютере, в мобильном телефоне и планшете. Стоит упомянуть о том, что технология беспроводной связи WiFi широкими шагами углубляется в контекст систем видеонаблюдения, позиционирования и безопасности, а также неустанно набирает обороты по интеграции в бытовой и промышленной электронике. Подхватив тенденцию развития, производители разнообразной "умной" техники стараются усовершенствовать наш быт средствами удалённого обмена данными, внедряют технологию в свои продукты, одновременно обучая их общаться между собой в сетях нового поколения "Интернет Вещей" (англ. Internet of Things, IoT).

Модули на чипе ESP8266 завоевали заслуженную популярность среди разработчиков собственных электронных проектов благодаря низкой ценовой категории и наличием основного полноценного функционала. ESP-12E самодостаточен и лёгок в настройке. Он способен выполнять все базовые операции приёмо-передачи по технологии WiFi. Пользователю достаточно выбрать требуемую конфигурацию модуля под поставленную задачу. Антенна разведена по краю печатной платы в виде зигзагообразной дорожки, контакта или разъёма для монтажа внешней антенны не предусмотрено. Верхняя сторона модуля оборудована металлическим кожухом, защищающим внутреннюю электронику от возможных электрических помех. Флеш-память увеличена с 1 до 4 МБайт. Значительно расширен доступный функционал.

Наличие встроенной памяти позволяет ESP8266-12E работать практически автономно и не зависеть от дополнительных внешних микроконтроллеров. Конструктивно, ESP-8266EX представляет из себя микроконтроллер, напрямую связанный с интегрированной в модуль микросхемой флеш-памяти, в которую записываются исполняемый скетч и прошивка. В добавок ко всему, модуль обладает дополнительными выводами, позволяющими подключить внешнюю флеш-память размером до 16 МБайт, если объёма стандартной памяти не хватает.

Технические данные

ESP8266EX функциональная блок-схема

ESP8266EX функциональная блок-схема

Распиновка ESP-12E (Диаграмма выводов, ESP-12E подключение)

Модуль ESP8266-12E обладает цифровыми выводами (контакты 4-7, 9-14, 16-22) общего назначения, работающими с логикой напряжений "1" и "0". Под единицей подразумевается входящее/исходящее напряжение +0.75*Vin—3.6 вольта, называемое высоким сигналом. Под нулём - входящее/исходящее напряжение -0.3—0.25*Vin вольт, называемое низким сигналом. Некоторые выводы имеют встроенный подтягивающий или стягивающий резисторы (см.принципиальную схему). Большинство контактов могут быть смультиплексированы с различными интерфейсами (I2C, I2S, HSPI, UART, ШИМ). Рекомендуемый ток отдельного вывода составляет 6 миллиампер, предельный ток - 12 миллиампер.

Примечание! Избегайте превышение значений максимального тока более 12 миллиампер и напряжения более 3.3 вольта, способного повредить микроконтроллер.

  • EXT_RSTB (RST, RESET) — контакт перезапуска модуля, активен при низкоуровневом сигнале
  • ADC — Аналого-цифровой преобразователь (АЦП). Диапазон входного напряжения 0-1 В, диапазон значений 0-1023
  • CHIP_EN (CH_PD, CH_PU) — контакт включения модуля в рабочий режим. Активен при высокоуровневом сигнале
  • GPIO16 — контакт общего назначения, ввод/вывод данных. Соединение с выводом EXT_RSTB выводит модуль из режима глубокого сна
  • GPIO0-GPIO15 — контакт общего назначения, ввод/вывод данных. Переназначаемый на другие функции. В среде Ардуино выводы определяются по нумерации, GPIO1 = 1 и т.д. Выводы GPIO6-GPIO11 привязаны к встроенной памяти и не рекомендуются к использованию в других целях, кроме подключения внешней памяти.
  • VCC — контакт питания модуля, напряжение 3.0-3.6 В
  • GND — общий, заземление
  • Асинхронный последовательный интерфейс UART из 2х линий, устанавливает связь с другими устройствами по шине UART:
    • UART0_RX — контакт GPIO3
    • UART0_TX — контакт GPIO1
    • UART0_RTS — контакт GPIO15
    • UART0_CTS — контакт GPIO13
    • UART1_TX — контакт GPIO2, может использоваться для вывода отладочной информации
    • SDA — контакт GPIO2
    • SCL — контакт GPIO14
    • SPI_CLK — контакт GPIO6
    • SPI_MISO — контакт GPIO7
    • SPI_MOSI — контакт GPIO8
    • SPI_HD — контакт GPIO9
    • SPI_WP — контакт GPIO10
    • SPI_CS0 — контакт GPIO11
    • SPI_CS1 — контакт GPIO1
    • SPI_CS2 — контакт GPIO0
    • HSPI_CS - контакт GPIO15
    • HSPI_MISO - контакт GPIO12
    • HSPI_MOSI - контакт GPIO13
    • HSPI_CLK - контакт GPIO14
    • I2SI_DATA — приём, контакт GPIO12
    • I2SI_BCK — приём, контакт GPIO13
    • I2SI_WS — приём, контакт GPIO14
    • I2SO_BCK — передача, контакт GPIO15
    • I2SO_DATA — передача, контакт GPIO3
    • I2S0_WS — передача, контакт GPIO2
    • IR_Tx — контакт GPIO14
    • IR_Rx — контакт GPIO5
    • SDIO_DATA_0 — контакт GPIO7
    • SDIO_DATA_1 — контакт GPIO8
    • SDIO_DATA_2 — контакт GPIO9
    • SDIO_DATA_3 — контакт GPIO10
    • SDIO_CMD — контакт GPIO11
    • SDIO_CLK — контакт GPIO6

    Режимы энергосбережения ESP8266EX

    За исключением стандартных режимов полного функционирования и выключенного состояния, модуль ESP-12E поддерживает энергосберегающие режимы, предназначенные для каждого определённого случая.

    1. Modem-sleep — настраивается для приложений, использующих функции ШИМ или I2S, заставляющие процессор работать. В случаях, когда WiFi-связь установлена и передача данных не требуется, схема Wi-Fi модема может быть отключена для экономии энергии. Например, в режиме DTIM3, когда ESP8266 "спит" 300 миллисекунд и просыпается на 3 миллисекунды для приёма от точки доступа пакетов беспроводных Маяков (Beacon), общее потребление тока составляет около 20мА.
    2. Light-sleep — используется в задачах, в которых поддерживается соединение Wi-Fi и передача данных не требуется, при этом процессор может быть приостановлен. Например, режим коммутатора Wi-Fi. Общее среднее потребление тока составляет около 2 мА.
    3. Deep-sleep — глубокий сон оптимален для приложений, которые не требуют подключения Wi-Fi и передают данные c большими задержками по времени. К таким задачам относятся датчики температуры, выполняющие измерения каждые 100 секунд. Например, когда ESP8266EX "спит" 300 секунд и просыпается для соединения с точкой доступа (около 0.3-1 секунды), общее среднее потребление тока намного меньше 1 мА.

    Режимы запуска модулей серии ESP

    Режим CHIP_EN GPIO15 GPIO0 GPIO2
    Загрузчик UART высокий низкий низкий высокий
    Запуск из флеш памяти высокий низкий высокий высокий
    Режим SDIO высокий высокий не важно не важно

    Значения "Высокий" и "Низкий" - уровень сигнала на входе соответствующего контакта.

    Добавление платформы ESP8266 в среду разработки ARDUINO IDE

    Установка совместимых библотек для корректной работы с платформой ESP8266EX аналогично всему модульному ряду ESP. Пример настройки редактора ARDUINO IDE для ESP8266EX приведён в описании модуля ESP-01.

    АТ команды ESP8266, режим роутера-модема

    Коллектив компании Espressif Systems, для своих чипов ESP8266 и их разновидностей, выпускает прошивки со встроенным интерпретатором AT-команд, основанные на обновляемых программных наборах разработки ПО (SDK) с открытым кодом. Пользователь имеет возможность компилировать собственные кастомные прошивки, добавляя или исключая поддержку необходимых в проекте функций. Подобные прошивки формируют из контроллера ESP8266 своеобразный роутер-модем, вследствие чего способ взаимодействия с процессором ESP-12E значительно отличается от обычного. В коде ПО заложен перечень предопределённых заскриптованных команд, выполняющие различные действия с настройками контроллера ESP8266. АТ команды позволяют устанавливать и разрывать WiFi-соединения, отправлять и получать данные, или менять параметры шины UART. Любая АТ команда передаётся в ESP8266 через периферийный последовательный интерфейс UART (GPIO1, GPIO3) от ведущего устройства и всегда начинается с аббревиатуры АТ. Перечень поддерживаемых АТ команд разделён на три основные группы с подробным описанием каждой функции, включая примеры:

    Последние пару лет практически все прототипирование несложных IoT-устройств я делаю на NodeMCU, хотя зачастую она и великовата по размеру, и дороговата, и избыточна по функционалу. А все потому, что имела неудачный опыт с ESP-01, которая совершенно не поддавалась прошивке. Сейчас пришло время преодолеть этот барьер и освоить другие железки, от которых мне нужно следующее - Wi-Fi и пины для подключения периферии.

    В этой статье разберем подключение к платформе Интернета вещей наиболее популярных плат с интерфейсом Wi-Fi. Их можно использовать, чтобы управлять своим устройством дистанционно или чтобы снимать показания с сенсоров через интернет.


    Несколько представленных в статье модулей (ESP-01, ESP-07, ESP-12E, ESP-12F) и плат (Goouuu Mini-S1, WeMos D1 mini и NodeMCU V2) базируются на контроллере ESP8266, использование которого позволяет простым и дешевым способом добавить в своё устройство беспроводную связь через Wi-Fi.

    Так выглядит модельный ряд модулей на базе чипа ESP8266.


    Последняя плата из тех, о которых я расскажу (ESP32 WROOM DevKit v1), построена на контроллере семейства ESP32 - более продвинутой по своим возможностям версии ESP8266.

    Все представленные модели можно программировать и загружать прошивки через Arduino IDE точно так же, как при работе с Arduino.

    Настройка среды программирования Arduino IDE

    По умолчанию среда IDE настроена только на AVR-платы. Для платформ, представленных ниже, необходимо добавить в менеджере плат дополнительную поддержку.

    1) Открываем среду программирования Arduino IDE.


    4) В пункте меню Tools (Инструменты) -> Board (Плата) выбираем Boards manager (Менеджер плат).

    Находим в списке платформы на ESP8266 и нажимаем на кнопку Install (Установить).


    6) Надпись INSTALLED сообщает, что дополнения успешно установлены.


    7) Аналогичным образом устанавливаем дополнение для ESP32.


    8) Теперь нам доступны к программированию платформы с модулем ESP8266 и ESP32.



    Примечание - Также для работы с платами понадобится установить драйверы CH340 (WeMos и Goouuu) и CP2102 (для остальных). Их отсутствие повлияет на то, найдет ли Arduino IDE COM-порт, к которому подключена плата.

    Код прошивки

    Для прошивки всех используемых ниже модулей используем один и тот же код.

    Установка Wi-Fi соединения

    Подключение к объекту на платформе Rightech IoT Cloud по протоколу MQTT

    Отправка рандомных значений по температуре ("base/state/temperature") и влажности ("base/state/humidity") каждые 5 секунд (PUB_DELAY)

    Работоспособность кода будем проверять на платформе Rightech IoT Cloud, именно поэтому в качестве адреса MQTT-брокера указан dev.rightech.io. Идентификаторами клиентов служат идентификаторы объектов, созданных на платформе. Под каждую проверку я завела на платформе отдельный объект, именно поэтому во всех скринах кодов, которые будут далее представлены, отличается только строка <ric-mqtt-client-id>.

    Прим. - Можно подключаться и к одному и тому же объекту, тогда можно использовать один и тот же код для прошивки всех плат без изменений, однако следите, чтобы в таком случае платы не подключались к одному и тому же объекту одновременно, иначе случится коллизия.

    Модули на базе ESP8266

    Для работы с модулями на базе ESP8266 есть два варианта:

    Работа с AT командами (в стандартной прошивке Wi-Fi модуль общается с управляющей платой через «AT-команды» по протоколу UART);

    Wi-Fi модуль как самостоятельный контроллер (все представленные модули очень умные: внутри чипа прячется целый микроконтроллер, который можно программировать на языке C++ через Arduino IDE).

    В статье будем рассматривать второй вариант - прошивка модулей в виде самостоятельного полноценного устройства. Здесь также есть два варианта прошивки с точки зрения железа:

    Через плату Arduino;

    Через USB-Serial адаптер.

    1. ESP-01

    ESP-01 - самый популярный модуль на ESP8266. PCB антенна обеспечивает дальность до 400 м на открытом пространстве.

    Внешний вид


    Питание

    Родное напряжение модуля — 3,3 В. Его пины не толерантны к 5 В. Если вы подадите напряжение выше, чем 3,3 В на пин питания, коммуникации или ввода-вывода, модуль выйдет из строя.

    PADI IoT Stamp – достойная замена популярному ESP8266 на базе системы-на-чипе RTL8710. Пользователи теряются – использовать уже более-менее проверенный временем ESP266, который выпускается в большом количестве модулей и имеет доступные средства разработки или знакомиться с новым перспективным модулем?

    В этой статье мы сравним по пяти критериям PADI IoT Stamp и самый продвинутый модуль из семейства ESP – ESP-12E!

    1. Внешний вид

    И тот, и другой модуль имеют одинаковый формфактор и размеры – 24×16 мм, но у PADI экран, защищающий от высокочастотных помех, больше – 13×16 против 12×10 мм. У ESP-12 экран выше – 2 против 1 мм:

    Сравнительный анализ PADI IoT Stamp и ESP-12E

    Поправка – мы рассматриваем модуль ESP-12 без индекса «Е», от ESP-12E он отличается лишь дополнительными 6 выводами снизу (как у PADI), в остальном же модули идентичны.

    Визуально модули выглядят абсолютно разными, мы думаем, из-за антенны – более широкая у PADI, она иллюзорно увеличивает ширину самого модуля.

    Плюс более «низкой», но широкой антенны – меньше места на печатной плате становится «запретным» (под антенной крайне нежелательно размещать компоненты или даже просто слой меди, это ухудшит чувствительность).

    Разница несущественна – у ESP8266 размеры антенной части платы 8×16 мм, у PADI – 7×16 мм, но в устройствах с небольшими размерами миллиметр может быть существенным.

    Распиновка модулей

    Отнесём её к внешнему виду. Забегая вперёд – она у модулей практически идентичная.

    Вот картинка из китайского даташита на RTL8710 (единственный доступный сейчас документ по этой системе):

    Сравнительный анализ PADI IoT Stamp и ESP-12E

    А вот фото модуля:

    Сравнительный анализ PADI IoT Stamp и ESP-12E

    Как вы можете заметить, основные пины, через которые происходить общение с модулем, совпадают (также и CH_PD и CHIP_EN, имеющие одинаковую функцию), поэтому PADI можно впаивать в отладочные платы для ESP-12E и использовать его, даже если на плате уже будет установлен USB-UART переходник. Не будет работать только кнопка RESET.

    2. Ядро

    ESP8266 построен на 32-битном ядре Tensilica LX106 со штатной тактовой частотой 80 МГц (разгон до 160 МГц не заявлен как нормальный рабочий режим). RTL8710 – на ядре ARM Cortex-M3@83 МГц (с таким же разгоном до 166 МГц).

    Различия в тактовой частоте непринципиальны и в обычных проектах заметны не будут, разве что сообщается о более стабильной работе RTL8710 при разгоне. Официальных комментариев по этому поводу нет.

    А вот более известное и стандартизованное ядро ARM® Cortex-M3 даёт больше возможностей разработчикам ПО, так как по нему известно почти всё, начиная с наборов команд и заканчивая векторами прерываний.

    Несмотря на то, что ядро понемногу устаревает, оно всё ещё остаётся интересным для разработчиков встраиваемых систем!

    3. Память

    3.1 Flash (ROM)

    Встроенная память – одно из слабых мест ESP8266 – попросту говоря, её просто нет. Программы могут выполняться только из внешней SPI Flash памяти или из UART (для прошивки).

    Внешняя память даёт некоторый простор – можно поставить микросхему до 64 Мбайт (минимум с использованием обновления по воздуху – 1 Мб, без – 512 Кб).

    RTL8710 имеет встроенную Flash объёмом 1 Мб, что ограничивает разработчика, но уверяем вас – в этот мегабайт влезет очень много программного кода! Особенно если использовать низкоуровневое программирование с помощью SDK.

    3.2 RAM

    У ESP8266 размер RAM сокрыт от пользователя из-за заранее скомпилированных библиотек SDK – поэтому разработчик публикует только размер RAM, доступный пользователю после линковки всех библиотек, что составляет около 36 Кб. По некоторым данным, размер ОЗУ равен 128 Кб (эта память ещё делится на память данных и память инструкций).

    4. Порты ввода-вывода и интерфейсы

    ESP8266 имеет максимум 17 GPIO, из которых 1 не может использоваться для входа (GPIO16 – RTC/Wakeup). На 4 пинах может быть сгенерирован сигнал ШИМ. Максимум доступно 2 интерфейса UART и 1 I2C, SPI занят микросхемой памяти.

    RTL8710 имеет 21 GPIO (не все выведены в модуле PADI для сохранения совместимости, доступно 17), из которых также на 4 может генерироваться ШИМ. Доступно 3 UART (два высокоскоростных и один низкоскоростной, точные скорости в даташите не указаны), 3 I2C, 2 SPI, I2S до 88.2КГц.

    SoC не имеет возможности ремапа функций с пинов на другие, поэтому многие интерфейсы пересекаются между собой.

    5. Wi-Fi

    RTL8710 поддерживает 802.11 b/g/n, те же виды защиты и шифрования, работу с контрольной суммой MD5/SHA/HMAC-SHA. Максимальная скорость приёма – 150 Мбит/с (802.11n). Поддерживаются те же протоколы, также доступен импорт настроек с мобильного устройства Android/iOS.

    Читайте также: