Все-таки надо пару слов сказать про «чудо-платформу» ESP8266EX… Далее, в-основном, использованы материалы es8266.ru.
Два (для первого знакомства) небольших документа, дают общее представление о проекте:
ESP8266_Module Application Design Guide и ESP8266_Beginners_Guide.
Как уже было сказано на плате модуля ESP-01 (как, впрочем, и всех других) имеется «сердце» проекта — микросхема ESP8266EX, память к ней, кварцевый кристалл на 26МГц, пара светодиодов и (не на всех модулях) антенна…
Функциональная схема «главного чипа» показана на рисунке.
Тут есть все что нужно для организации беспроводной связи: начиная от антенного коммутатора и кончая цифровыми интерфейсами…
Выдержка из Beginners_Guide: Espressif Systems’ Smart Connectivity Platform представляет собой высокоэффективный, высокоинтегрированный комплекс для создания беспроводных систем на одном кристалле. Он обеспечивает возможности: встраивания доступа к сетям Wi-Fi в различные системы, функционировать как самостоятельное приложение, с наименьшими затратами, и минимальными требованиями к окружению. Он может быть использован как полное и самодостаточное беспроводной сетевое решение или как связку с Wi-Fi какого-либо иного самостоятельного решения.
Features
- 802.11 b/g/n protocol
- Wi-Fi 2.4 GHz, support WPA/WPA2
- Super small module size (11.5mm x 11.5mm)
- Integrated 10-bit ADC
- Integrated TCP/IP protocol stack
- Integrated TR switch, balun, LNA, power amplifier and matching network
- Integrated PLL, regulators, and power management units
- +20dBm output power in 802.11b mode
- Supports antenna diversity
- Deep sleep power <10uA, Power down leakage current < 5uA
- Integrated low power 32-bit MCU
- SDIO 2.0, SPI, UART
- STBC, 1×1 MIMO, 2×1 MIMO
- A-MPDU & A-MSDU aggregation & 0.4?s guard interval
- Wake up and transmit packets in < 2ms
- Standby power consumption of < 1.0mW (DTIM3)
- Operating temperature range -40C ~ 125C
Принципиальная схема модулей ESP-xx показана выше.
Модули, как правило, различаются количеством разведенных выводов GPIO, типом/наличием антенны, конструктивным исполнением.
Назначение выводов — довольно большая табличка, ее можно посмотреть в выше указанных файлах.
Режим работы модуля определяется состоянием некоторых выводов микросхемы при подаче питания.
Рассмотрим те линии, которые непосредственно нам доступны и влияют на работу модуля:
- MTDIO(p.13) — нам не доступен, считается, что он нам не мешает и имеет уровень Low, если было бы не так — нам бы не удалось «завести» модуль.
- GPIO0(р.15) — это главная линия! Когда на ней при включении питания уровень Low (вывод соединен с GND), устройство переходит в режим загрузки микропрограммы по UART (выводы U0RXD(p.25), U0TXD(p.26)). Если уровень High, это нормальный режим работы — микроконтроллер читает программу из ПЗУ и работает по ней.
- U0TXD(p.26) — так же надо обратить внимание: если при подаче питания тут Low (например, вывод используется как линия ввода-вывода GPIO1 и к ней подключен светодиод катодом на землю), то устройство переходит в тестовый режим (про который нигде не написано…).
- XPD_DCDC(p.8) (на модуле обозначен часто как GPIO16) — интересный вывод: I/O Deep-Sleep Wakeup — пробуждение из «глубокой спячки». Обычно про него нигде не упоминают и он остается в «подвешенном состоянии». Но, тем не менее, очень интересно было бы его использовать в качестве линии ввода-вывода GPIO16. В схемах его часто цепляют на Reset.
- CHIP_EN(p.7) — Chip Enable. Чтоб «не заморачиваться» вывод советуют подключать к питанию. Однако в «гайдах» намекают, что его очень было бы хорошо использовать для перевода устройства в режим малого потребления, например, в датчиках — когда надо данные передать раз в несколько минут — тогда уровень High подают непосредственно перед началом передачи…
- U0RXD(p.25) — кроме «прямого назначения», можно использовать как линию ввода-вывода GPIO3.
- GPIO2(p.14) — линия ввода-вывода. Но: альтернативное назначение — передача данных UART1, а уровень Low при включении питания может сыграть «злую шутку» (хотя я такого не наблюдал!) — Remapping (что это означает!?)
- В иных datasheets (например — этом), выводы р.16 и р.24 отмечены, соответственно, как GPIO4 и GPIO5, очень было бы полезно их задействовать, но на ESP-01 они не подключены…
Подробнее о назначении выводов и их работе в разных режимах написано тут.

На плате модуля ESP-01 разведены два контрольных светодиода — на принципиальной схеме я их пририсовал, на фото они рядом с антенной:
Красный — включен для контроля питания в цепи VCC (3.3V) — расположен ближе к краю платы модуля.
Синий — подключен к линии U0TXD(p.26) анодом к цепи питания. Таким образом светодиод «моргает» при обмене через UART; еще его можно использовать как контроль линии GPIO1 (когда на ней уровень Low — светодиод светится).
С модулями можно работать двумя способами:
1. Использовать «прошивку» производителя, например, v0.21. В этом случае нам потребуется внешний микроконтроллер, кторый по UART будет общаться с ESP-01 с помощью АТ-команд. Используя «язык АТ-команд» можно организовать сеть или подключиться к существующей. Например, для Arduino существуют библиотеки, основанные на АТ, позволяющие работать в сети Wi-Fi через модуль.
2. Игнорировать «прошивку» производителя и самому написать программу для модуля. Конечно, более трудоемкий способ, но, благодаря наличию готовых библиотек, вполне реализуемый. Например, для среды Arduino IDE уже есть компилятор с массой готовых примеров.
