- ESP-12E, Встраиваемый Wi-Fi модуль на базе чипа ESP8266
- Технические параметры
- Дружимся с ESP
- Настройка среды программирования Arduino IDE
- Код прошивки
- Модули на базе ESP8266
- 1. ESP-01
- Внешний вид
- Питание
- Подключение периферии
- Распиновка
- Подключение к IoT
- Аппаратная часть
- ESP-12E WiFi модуль (ESP8266)
- Технические характеристики
- Техническое описание
- Назначение выводов
- Корпуса и размеры
- Описание функционала
- MCU
- Организация памяти
- Загрузки
- Магазины и цены
ESP-12E, Встраиваемый Wi-Fi модуль на базе чипа ESP8266
WiFi модуль на базе однокристальной системы (SoC) ESP8266. Он имеет небольшие размеры по сравнению с другими модулями и ULP технологию. Модуль специально сконструирован для создания мобильных устройств и интернета вещей (IoT).
Особенности:
— Поддержка беспроводного стандарта 802.11 b/g/n;
— Поддержка 2 режима работы Wi-Fi Direct (P2P), soft-AP;
— Интегрирован стек протокол TCP/IP;
— Интегрированы TR переключатель, балун, LNA, усилитель и согласователь сети;
— Интегрированы PLLs, регуляторы, DCXO и блок управления питанием;
— Выходная мощность в режиме 802.11b: +19.5dBm;
— Поддержка подключения нескольких TCP Client;
— Ток утечки при отключение питания < 10 мкА;
— Интегрирован 32-бит микроконтроллер;
— Интерфейсы SDIO 1.1/2.0, SPI, UART;
— Технология STBC, 1×1 MIMO, 2×1 MIMO;
— A-MPDU и A-MSDU агрегация и 0.4мс защитный интервал;
— Прием/передача пакетов — Энергопотребление в режиме ожидания
Технические параметры
Тип компонента | модуль | |
Функциональное назначение | приемопередатчик wi-fi 802.11b/g/n | |
Вес, г | 5 | |
Показать похожие |
Дружимся с ESP
Последние пару лет практически все прототипирование несложных 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.
http://arduino.esp8266.com/stable/package_esp8266com_index.json, https://dl.espressif.com/dl/package_esp32_index.json
4) В пункте меню Tools (Инструменты) -> Board (Плата) выбираем Boards manager (Менеджер плат).
Находим в списке платформы на ESP8266 и нажимаем на кнопку Install (Установить).
6) Надпись INSTALLED сообщает, что дополнения успешно установлены.
7) Аналогичным образом устанавливаем дополнение для ESP32.
8) Теперь нам доступны к программированию платформы с модулем ESP8266 и ESP32.
9) Для подключения плат к платформе Интернета вещей используем библиотеку EspMQTTClient. Чтобы ее установить, в пункте меню Tools (Инструменты) выбираем Manage Libraries (Управлять библиотеками). Находим и устанавливаем библиотеку EspMQTTClient. Может появиться сообщение об установке дополнительных библиотек. Выбираем “Install all”.
Примечание — Также для работы с платами понадобится установить драйверы CH340 (WeMos и Goouuu) и CP2102 (для остальных). Их отсутствие повлияет на то, найдет ли Arduino IDE COM-порт, к которому подключена плата.
Код прошивки
Для прошивки всех используемых ниже модулей используем один и тот же код.
- Установка Wi-Fi соединения
- Подключение к объекту на платформе Rightech IoT Cloud по протоколу MQTT
- Отправка рандомных значений по температуре («base/state/temperature») и влажности («base/state/humidity») каждые 5 секунд (PUB_DELAY)
- Получение сообщений о переключении света («base/relay/led1»)
#include "Arduino.h" #include "EspMQTTClient.h" /* https://github.com/plapointe6/EspMQTTClient */ /* https://github.com/knolleary/pubsubclient */ #define PUB_DELAY (5 * 1000) /* 5 seconds */ EspMQTTClient client( "", "", "dev.rightech.io", "" ); void setup() < Serial.begin(9600); >void onConnectionEstablished() < client.subscribe("base/relay/led1", [] (const String &payload) < Serial.println(payload); >); > long last = 0; void publishTemperature() < long now = millis(); if (client.isConnected() && (now - last >PUB_DELAY)) < client.publish("base/state/temperature", String(random(20, 30))); client.publish("base/state/humidity", String(random(40, 90))); last = now; >> void loop()
Работоспособность кода будем проверять на платформе Rightech IoT Cloud, именно поэтому в качестве адреса MQTT-брокера указан dev.rightech.io. Идентификаторами клиентов служат идентификаторы объектов, созданных на платформе. Под каждую проверку я завела на платформе отдельный объект, именно поэтому во всех скринах кодов, которые будут далее представлены, отличается только строка .
Прим. — Можно подключаться и к одному и тому же объекту, тогда можно использовать один и тот же код для прошивки всех плат без изменений, однако следите, чтобы в таком случае платы не подключались к одному и тому же объекту одновременно, иначе случится коллизия.
Модули на базе ESP8266
Для работы с модулями на базе ESP8266 есть два варианта:
- Работа с AT командами (в стандартной прошивке Wi-Fi модуль общается с управляющей платой через «AT-команды» по протоколу UART);
- Wi-Fi модуль как самостоятельный контроллер (все представленные модули очень умные: внутри чипа прячется целый микроконтроллер, который можно программировать на языке C++ через Arduino IDE).
В статье будем рассматривать второй вариант — прошивка модулей в виде самостоятельного полноценного устройства. Здесь также есть два варианта прошивки с точки зрения железа:
Рассмотрим второй вариант — использовать адаптер на базе чипа CP2102 (например, такой https://www.chipdip.ru/product/cp2102-usb-uart-board-type-a?frommarket=https%3A%2F%2Fmarket.yandex.ru%2Fsearch%3Frs%3DeJwzSvKS4xKzLI&ymclid=16146772489486451735000001). Обязательно обратите внимание на то, чтобы адаптер позволял выдавать выходное напряжение 3.3 В, не больше!
1. ESP-01
ESP-01 — самый популярный модуль на ESP8266. PCB антенна обеспечивает дальность до 400 м на открытом пространстве.
Внешний вид
Питание
Родное напряжение модуля — 3,3 В. Его пины не толерантны к 5 В. Если вы подадите напряжение выше, чем 3,3 В на пин питания, коммуникации или ввода-вывода, модуль выйдет из строя.
Подключение периферии
2 порта ввода-вывода общего назначения
Распиновка
Подключение к IoT
Аппаратная часть
ESP-12E WiFi модуль (ESP8266)
WiFi модуль ESP-12E разработан компанией Ai-thinker и построен на базе процессора с ядром ESP8266, отличительной особенностью которого является наличие радиоинтерфейса WiFi. Ядро ESP8266 интегрировано в Tensilica L106 – 32-битный микроконтроллер с ультранизким энергопотреблением. Поддержка тактовых частот 80 и 160 МГц, поддержка RTOS, встроенные Wi-Fi MAC/BB/RF/PA/LNA, микрополосковая антенна на плате модуля.
Модуль поддерживает стандарт IEEE802.11 b/g/n, полный стек TCP/IP протоколов. Пользователи могут использовать модули либо в качестве дополнения для подключения какого-либо устройства к сети, либо в качестве отдельного сетевого контроллера.
- 802.11 b/g/n;
- встроенный 32-битный MCU с низким энергопотреблением;
- встроенный 10-битный АЦП;
- встроенный стек протоколов TCP/IP;
- встроенный РЧ коммутатор, РЧ трансформатор сопротивлений, LNA, усилитель мощности;
- встроенные блоки ФАПЧ и управления мощностью;
- Wi-Fi 2,4 ГГц, поддержка WPA/WPA2;
- SDIO 2.0, (H) SPI, UART, I2C, I2S, IRDA, PWM, GPIO;
- STBC, 1×1 MIMO, 2×1 MIMO;
- потребление в режиме глубокого сна < 10 мкА, ток утечки в выключенном режиме < 5 мкА;
- просыпание и передача пакетов через < 2 мс;
- выходная мощность +20 дБм в режиме 802.11b;
- диапазон рабочик температур: -40 – 125 ºC.
Технические характеристики
Категории | Параметры | Значения |
---|---|---|
WiFi параметры | WiFi протоколы | 802.11 b/g/n |
Частотный диапазон | 2,4ГГц–2,5ГГц (2400М–2483,5М) | |
Характеристики аппаратной части | Периферийные шины | UART/HSPI/I2C/I2S/инфракрасный интерфейс удаленного управления |
Рабочее напряжение | 3,0 – 3,6 В | |
Рабочий ток | около 80 мА | |
Диапазон рабочих температур | -40 – 125 ºC | |
Размеры | 16мм x 24мм x 3мм | |
Характеристики программного обеспечения | WiFi режим | станция, программная точка доступа, программная точка доступа + станция |
Безопасность | WPA/WPA2 | |
Шифрование | WEP/TKIP/AES | |
Обновление прошивки | загрузка через UART / OTA (через сеть) / загрузка и запись прошивки через хост | |
Разработка ПО | поддержка Cloud Server Development / SDK для разработки пользовательских прошивок | |
Сетевые протоколы | IPv4, TCP/UDP/HTTP/FTP | |
Пользовательская настройка | Набор AT команд, Cloud Server, приложение Android/iOS |
Техническое описание
Назначение выводов
Номер вывода | Название вывода | Назначение |
---|---|---|
1 | RST | Сброс модуля |
2 | ADC | Вход аналого-цифрового преобразователя. Входное напряжение в диапазоне 0–1 вольт; результат 0–1024. |
3 | EN | Вывод включения чипа. Активный уровень – высокий. |
4 | IO16 | GPIO16; может использоваться для пробудить чипсет из режима глубокого сна. |
5 | IO14 | GPIO14; HSPI_CLK |
6 | IO12 | GPIO12; HSPI_MISO |
7 | IO13 | GPIO13; HSPI_MOSI; UART0_CTS |
8 | VCC | Вход питания 3,3В. |
9 | CS0 | Выбор чипа |
10 | MISO | Вход ведущего, выход ведомого. |
11 | IO9 | GPIO9 |
12 | IO10 | GPIO10 |
13 | MOSI | Выход ведущего, вход ведомого. |
14 | SCLK | Последовательный тактовый сигнал. |
15 | GND | Корпус. |
16 | IO15 | GPIO15; MTDO; HSPICS; UART0_RTS |
17 | IO2 | GPIO2; UART1_TXD |
18 | IO0 | GPIO0 |
19 | IO4 | GPIO4 |
20 | IO5 | GPIO5 |
21 | RXD | UART0_RXD; GPIO3 |
22 | TXD | UART0_TXD; GPIO1 |
Корпуса и размеры
Внешние размеры модуля составляют 16мм*24мм*3мм. Флеш-память, интегрированная в модуль, – это SPI флеш-память, емкость которой составляет 4 Мбайта, в корпусе SOP-210mil. Антенна, применяемая в модуле, – микрополосковая антенна на плате с коэффициентом усиления 3 дБи.
Описание функционала
MCU
ESP8266EX встроен в 32-битный микроконтроллер (MCU) Tensilica L106, который отличается ультранизким энергопотреблением 16-битной RISC архитектурой. Тактовая частота CPU составляет 80 МГц. Также она может достичь максимального значения 160 МГц.
ESP8266EX часто интегрируется с внешними датчиками и другими специальными устройствами через его выводы GPIO; код для подобных приложений поставляется в примерах в SDK.
Организация памяти
Внутренние SRAM и ROM.
Однокристальная WiFi система ESP8266EX встраивается вместе с контроллером памяти; включая SRAM и ROM. MCU может обращаться к памяти через интерфейсы iBus, dBus и AHB.
Согласно текущей версии SDK, пользователю доступно следующее пространство памяти:
Внешняя SPI флеш-память
В модуль для хранения пользовательских программ установлена внешняя SPI флеш-память размером 4 Мбайта. Если необходимо больший объем, то необходимо установить флеш-память большего размера. Теоретически, поддерживается емкость до 16 Мбайт.
Предполагаемая емкость SPI флеш-памяти:
- OTA выключено: минимальный размер флеш-памяти, который будет поддерживаться, составляет 512 Кбайт;
- OTA включено: минимальный размер флеш-памяти, который будет поддерживаться, составляет 1 Мбайт;
Поддерживается несколько SPI режимов, в том числе, Standard SPI, Dual SPI и Quad SPI.
Перед загрузкой во флеш-память выбирайте правильный SPI режим, иначе прошивки/программы, которые вы загрузили, могут работать неправильно.
Загрузки
Магазины и цены
Товар в магазине | Количество штук в комплекте | Стоимость | Расчетная стоимость за 1 шт. |
---|---|---|---|
ESP-12E WiFi модуль (ESP8266) на AliExpress | 1 | 114.34 руб. / 1.76 USD (на 1 октября 2016) | 114.34 руб. / 1.76 USD |
ESP-12E WiFi модуль (ESP8266) на eBay | 1 | 137.79 руб. / 2.19 USD (на 2 октября 2016) | 137.79 руб. / 2.19 USD |
ESP-12E WiFi модуль (ESP8266) на GearBest.com | 1 | 194.88 руб. / 3.09 USD (на 2 октября 2016) | 194.88 руб. / 3.09 USD |
ESP-12E WiFi модуль (ESP8266) на DX.com | 1 | 287.31 руб. / 4.55 USD (на 2 октября 2016) | 287.31 руб. / 4.55 USD |
На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.