- Модуль Wi-Fi ESP8266 (ESP-01): подключение, прошивка и распиновка
- Видеообзор
- Общие сведения
- Работа с AT командами
- Подключение и настройка
- HardwareSerial
- SoftwareSerial
- HardwareSerial Mega
- Примеры работы
- Тестовая команда «AT»
- Настройка режима работы
- ESP-12E WiFi модуль (ESP8266)
- Технические характеристики
- Техническое описание
- Назначение выводов
- Корпуса и размеры
- Описание функционала
- MCU
- Организация памяти
- Загрузки
- Магазины и цены
Модуль Wi-Fi ESP8266 (ESP-01): подключение, прошивка и распиновка
Модуль ESP-01 с чипом ESP8266 предназначен для связи устройства с беспроводными сетями по WiFi.
Видеообзор
Общие сведения
ESP-01 — плата-модуль WiFi на базе популярного чипсета ESP8266EX . На борту платы находится микросхема Flash-памяти объёмом 2 МБ, чип ESP8266EX, кварцевый резонатор, два индикаторных светодиода и миниатюрная антенна из дорожки на верхнем слое печатной платы в виде змейки. Flash-память необходима для хранения программного обеспечения. При каждом включении питания, ПО автоматически загружается в чип ESP8266EX.
По умолчанию модуль настроен на работу через «AT-команды». Управляющая плата посылает команды — Wi-Fi модуль выполняет соответствующую операцию.
Но внутри чипа ESP8266 прячется целый микроконтроллер, который является самодостаточным устройством. Прошивать модуль можно на разных языках программирования. Но обо всё по порядку.
Работа с AT командами
Подключение и настройка
В стандартной прошивке Wi-Fi модуль общается с управляющей платой через «AT-команды» по протоколу UART.
На всех платах Iskra и Arduino присутствует хотя бы один аппаратный UART — HardwareSerial. Если же по каким то причинам он занят другим устройством, можно воспользоваться программным UART — SoftwareSerial.
HardwareSerial
На управляющей плате Iskra JS и платах Arduino с микроконтроллером ATmega32U4 / ATSAMD21G18 данные по USB и общение через пины 0 и 1 осуществляется через два раздельных UART . Это даёт возможность подключить Wi-Fi модуль к аппаратному UART на пинах 0 и 1 .
Список поддерживаемых плат:
Для примера подключим модуль Wi-Fi к платформе Iskra Neo.
Прошейте управляющую платформу кодом ниже.
Код прошивки
// serial-порт к которому подключён Wi-Fi модуль #define WIFI_SERIAL Serial1 void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); while (!Serial) { // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе } Serial.print("Serial init OK\r\n"); // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод WIFI_SERIAL.begin(115200); } void loop() { // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера if (WIFI_SERIAL.available()) { Serial.write(WIFI_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Wi-Fi модуль if (Serial.available()) { WIFI_SERIAL.write(Serial.read()); } }
SoftwareSerial
Некоторые платы Arduino, например Uno, прошиваются через пины 0 и 1 . Это означает невозможность использовать одновременно прошивку/отладку по USB и общение с Wi-Fi модулем. Решение проблемы — программный UART . Подключите пины TX и RX ESP-модуля к другим контактам управляющей платы и используйте библиотеку SoftwareSerial.
Для примера подключим управляющие пины Wi-Fi модуля TX и RX — на 8 и 9 контакты управляющей платы. Прошейте управляющую платформу кодом ниже.
Код прошивки
// библиотека для работы программного Serial #include // создаём объект для работы с программным Serial // и передаём ему пины TX и RX SoftwareSerial mySerial(8, 9); // serial-порт к которому подключён Wi-Fi модуль #define WIFI_SERIAL mySerial void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); while (!Serial) { // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе } Serial.print("Serial init OK\r\n"); // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод WIFI_SERIAL.begin(115200); } void loop() { // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера if (WIFI_SERIAL.available()) { Serial.write(WIFI_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Wi-Fi модуль if (Serial.available()) { WIFI_SERIAL.write(Serial.read()); } }
HardwareSerial Mega
На платах форм-фактора Arduino Mega 2560 аппаратный UART, который отвечает за передачу данных через пины 1 и 0 , отвечает также за передачу по USB. Это означает невозможность использовать одновременно UART для коммуникации с Wi-Fi модулем и отладки по USB.
Но на платах такого форм-фактора есть ещё дополнительно три аппаратных UART:
Список поддерживаемых плат:
Подключите Wi-Fi модуль к объекту Serial1 на пины 18 и 19 на примере платы Mega 2560 Прошейте управляющую платформу кодом ниже.
Код прошивки
// serial-порт к которому подключён Wi-Fi модуль #define WIFI_SERIAL Serial1 void setup() { // открываем последовательный порт для мониторинга действий в программе // и передаём скорость 9600 бод Serial.begin(9600); while (!Serial) { // ждём, пока не откроется монитор последовательного порта // для того, чтобы отследить все события в программе } Serial.print("Serial init OK\r\n"); // открываем Serial-соединение с Wi-Fi модулем на скорости 115200 бод WIFI_SERIAL.begin(115200); } void loop() { // если приходят данные из Wi-Fi модуля - отправим их в порт компьютера if (WIFI_SERIAL.available()) { Serial.write(WIFI_SERIAL.read()); } // если приходят данные из компьютера - отправим их в Wi-Fi модуль if (Serial.available()) { WIFI_SERIAL.write(Serial.read()); } }
Примеры работы
Рассмотрим несколько примеров по работе с «AT-командами»
Тестовая команда «AT»
Откройте монитор порта. Настройте скорость соединения — 9600 бод. Конец строки — NL & CR . Введите команду AT и нажмите «Отправить». Это — базовая команда для проверки работы Wi-Fi модуля. В ответ получим «OK»: Если ответа нет или появляются непонятные символы — проверьте правильность подключения и настройки скорости обмена данными.
Настройка режима работы
Wi-Fi модуль умеет работать в трёх режимах:
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.