ESP8266 это высокоинтегрированный чип (так называемая "система на кристалле", System-on-Chip, сокращенно SoC) разработанная с учетом возросших потребностей в сетевых коммуникациях. Чип предоставляет полное, универсальное и недорогое решение для организации сетевого узла Wi-Fi, которое может взять на себя обработку всех сетевых функций по обмену данными во встраиваемых приложениях. У ESP8266 есть мощные встроенные возможности для обработки и хранения данных и порты ввода-вывода (GPIO), которые позволяют объединить его с различными датчиками и другими специальными устройствами, нуждающимися в сетевом обмене данными. Для ESP8266 требуется немного внешних компонентов для подключения, в результате блок Wi-Fi может занимать совсем мало места на печатной плате.
Основные параметры ESP8266:
Параметр
Значение
Нормальное напряжение питания
3V
Потребляемый ток
10mkA .. 170mA
Макс. размер внешней памяти FLASH
16 мегабайт
Марка ядра процессора
Tensilica L106 32 bit
Количество портов с функцией GPIO (они мультиплексированы с другими функциями микросхемы)
• 802.11 b/g/n, выходная мощность +19.5dBm, в идеальных условиях дальность связи до 100 метров • WIFI 2.4 GHz, с поддержкой протоколов безопасности WPA / WPA2, WiFi Direct (P2P), soft-AP • STBC, 1x1 MIMO, 2x1 MIMO • Экономичный 32-разрядный CPU (архитектура RISC), который может использоваться под прикладные приложения (т. е. для него можно писать программы), RISC-процессор, встроенная память и интерфейсы подключения внешней памяти • SDIO 1.1/2.0, SPI, UART • STBC, 1x1 MIMO, 2x1 MIMO • Агрегация фреймов A-MPDU и A-MSDU с защитным интервалом 0.4 мс • Время пробуждения, соединения и готовности к передаче пакета < 2 мс • Потребление энергии в режиме приостановки (standby) < 1.0 mW (DTIM3) • Рабочий диапазон температур -40 .. +125 oC. • 32-выводный корпус QFN • Интегрированный радиочастотный свич, симметрирующее устройство, малошумящий усилитель, усилитель мощности 24dBm, DCXO (digitally controlled crystal oscillator, цифровой управляемый кварцевый генератор), блок управления энергопотреблением (power management unit, PMU), полная поддержка антенны • Поддержка службы управления полосой пропускания разных видов трафика (Quality of Service, QoS) • Интерфейс I2S для приложений высококачественной передачи звука • Встроенные линейные регуляторы с малым падением напряжения на регулирующем элементе для всех потребителей энергии • Встроенная система PLL (генерация частоты с использованием фазовой автоподстройки, ФАПЧ), проприетарная архитектура высококачественной генерации тактового сигнала (патентованный алгоритм подавления шума для применения в приложениях SoC) • Встроенные подсистемы WEP (Wired Equivalent Privacy, протокол шифрования данных в беспроводных сетях), TKIP (Temporal Key Integrity Protocol, протокол поддержки системы безопасности беспроводных сетей, который должен был заменить WEP), AES (Advanced Encryption Standard, протокол шифрования данных), и WAPI (WLAN Authentication and Privacy Infrastructure, еще один протокол для безопасной передачи данных поверх WiFi), поддержка стека TCP/IP • Поддержка APSD (Automatic Power Save Delivery, или Asynchronous Power Save Delivery, автоматическая система экономии энергопотребления), оптимизированная для приложений передачи голоса через сетевое соединение (VoIP) • Поддержка интерфейса с Bluetooth • Самокалибрующаяся радиосистема, гарантирующая оптимальную производительность для всех рабочих условий эксплуатации • Отсутствие настроек на заводе • Отсутствие внешних радиочастотных компонентов
Номинальное напряжение питания 3V, допустимые диапазоны питания 1.7V..3.6V, минимальный ток потребления (в состоянии выключено) < 10 μA, максимальный ток потребления 215 mA, пиковый 240 mA (источник напряжения питания должен обеспечивать ток до 300 mA).
Покупать можно в интернет-магазинах Aliexpress, Ebay и Dealextreme. ИМХО, лучше всего покупать модули на Aliexpress: самые низкие цены, больше всего предложений и самая удобная система поиска и выбора. Запустите браузер chrome, и в адресной строке введите "магическую" строку:
ESP8266 site:aliexpress.com
Этот запрос выдаст результаты поиска Google, но можно воспользоваться системой поиска и на aliexpress.com. Среди предложений выберите подходящее по цене и стоимости доставки (лучше всего выбирать бесплатную доставку, Free shipping). Чаще всего в продаже попадаются модули с объемом памяти на борту 512 килобайт, однако постарайтесь по описанию предложения выбрать модули с EEPROM размером 1 мегабайт или более - это поможет Вам в будущем использовать продвинутые прошивки для модуля ESP8266.
Ниже приведена информация по самым популярным модулям. Указаны цены на aliexpress.com по состоянию на 20 сентября 2015 года.
ESP-01. Самый недорогой модуль ($1.84). Объем памяти обычно 512 килобайт. Удобен этот модуль тем, что у него малые размеры, низкая цена, и шаг выводов его коннектора 2.54 мм. Недостаток в малом объеме памяти и в том, что мало количество портов GPIO.
ESP-12E. Усовершенствованная версия модуля ESP-12. Цена $2.06. Объем памяти обычно 2 (?) мегабайта. Большое количество GPIO - 11 выводов, есть 1 вход АЦП, можно подключить JTAG. Вся электронная начинка модуля, за исключением индикационного светодиода и антенны, помещена в экран. Шаг выводов 2 мм, поэтому для установки модуля в плату макетирования нужен специальный переходник, либо придется припаивать к плате провода с подключенным коннектором.
Для модуля ESP8266 существует множество готовых решений (прошивок), позволяющих писать для модуля программы на языках высокого уровня BASIC, Java и Python. Но в этой статье будут даны инструкции несколько другого плана - как проще адаптировать ESP8266 для использования вместе с Вашим любимым микроконтроллером (например AVR или любым другим).
Если коротко охарактеризовать модуль ESP8266, то это устройство, позволяющее через сигналы низковольтного UART (RXD и TXT как у обычного модема, но с уровнями 0..3.3V) обеспечить беспроводную связь с локальной сетью и даже Интернет - с помощью соединение Wi-Fi. Почти все микроконтроллеры могут довольно просто организовать обмен данными через свой встроенный UART (существует большое количество примеров кода для этой цели), так что подключить микроконтроллер к модулю ESP8266 не составит особого труда.
[Питание и запуск]
Модуль ESP8266 для своего питания требует напряжения 3V (можно и 3.3V, предельный максимум 3.6V). Получить такой источник питания можно с помощью 2 пальчиковых батареек, или от маломощного стабилизатора, собранного на линейном регуляторе наподобие LM7833 [2]. На вход стабилизатора можно подать напряжение от настенного адаптера постоянного тока напряжением 5..9V, либо можно даже воспользоваться портом USB компьютера. Ниже на рисунках показаны варианты подачи питания на модуль ESP8266.
Для того, чтобы модуль запустился и заработал (т. е. загрузилась программа, записанная во внешнюю память), нужно соединить сигнал CHIP_EN с VDD (+3V, лог. 1), и подать питание (+3V относительно GND).
Я подключил свой модуль ESP8266 с помощью набора перемычек к макетной плате AVR-USB-MEGA16, и прямо с неё взял питание +5V, чтобы подать на вход стабилизатора 3.3V. Выход стабилизатора подключил к шине питания модуля ESP8266.
Внимание: некоторые микросхемы стабилизаторов наподобие LP2950 дают недостаточный ток. Для усиления можно на выходе стабилизатора подключить транзистор:
Сигналы RXD и TXD. Поскольку у модуля ESP8266 уровни сигналов 3V, то для подключения к микроконтроллеру AVR его выходы с уровнями сигналов 5V нужно согласовать со входами модуля ESP8266. Для этой цели последовательно с сигналом TXD микроконтроллера я поставил делитель напряжения из двух резисторов.
После подачи питания (или импульса сброса в виде короткого лог. 0 на выводе EXT_RSTB) модуль ESP8266 выведет через TXD приглашение (при этом пару раз мигнет синий светодиод TXD):
После этого среди доступных сетей Wi-Fi обнаружится новая точка доступа ESP8266:
Чтобы можно было подключаться к этой точке доступа, необходимо настроить для неё пароль (см. описание AT-команд [4]).