Распиновка платформы ESP 8266

Растет использование Wi-Fi-модулей в различных приборах. Не стали исключением микроконтроллеры Arduino, наращивая свои возможности с помощью новых технологий. Характеристики ESP8266, распиновка модуля востребованы при разработке беспроводных устройств.

Распиновка платформы ESP 8266

Общая информация о ESP 8266 и ее особенности

Производится множество модификаций ESP8266. Сегодня разработано 12 вариантов от ESP01 до ESP12. Особенностью всех плат является использование кристаллов с напряжением питания 3,3 В. В контроллерах «Ардуино» применяется 5 В логика. Поэтому при их совместном использовании следует избегать ошибочной подачи питания и подавать его от специального отдельного источника.

Сфера применения платы

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

  • автоматизация техники и процессов;
  • настройка электронных приборов;
  • управление детскими игрушками;
  • ID метки и Mesh-сети;
  • регулировка микроклимата и освещения в доме;
  • наблюдение за обстановкой внутри и вне помещения.

1 из распространенных областей применения ESP8266 является оснащение Arduino Mega Server платой Wi-Fi, оперативной и Flash-памятью, образуя законченное решение с дистанционным управлением. Иллюстрацией возможностей беспроводных технологий может послужить программа на github, включающая и выключающая лампу (или реле) по протоколу MQTT через приложение Android. ESP8266 обеспечивает выход в сеть в 3 режимах:

  • как точка доступа (Access Point);
  • в режиме клиента station — рабочей станции;
  • одновременно совмещая названные.

Сфера применения платы

Точка доступа выполняет роль моста между устройством и интернетом.

Способы проверки

ESP8266 часто приобретается в интернет-магазинах, и при получении желательно проверить его работоспособность и соответствие заявленным характеристикам. Для начала следует приготовить источник питания, который обеспечивает выходное напряжение в пределах 3,0-3,6 В. Исключите возможность подачи напряжения выше указанной границы.

Для варианта ESP8266 ESP-01 к питанию присоединяются 3 пина:

  • + 3,3 В к VCC, CH_PD (chip enable);
  • земля к GND.

Для других вариантов, от ESP02 до ESP12, при наличии выхода GPIO15, пин «разрешить чип» присоединяется к земле. При удачном прохождении кода загрузки зажжется встроенный красный светодиод (в некоторых версиях, например ESP-12, возможно его отсутствие) и 2 раза мигнет синий индикатор (цвет может быть другим). Последний отмечает передачу сигнала TX-RX в направлении терминала.

На любом Wi-Fi-устройстве появится сообщение о появлении новой точки беспроводного доступа с названием «ESP_XXXX». Оно определяется разработчиком прошивки и может иметь другую аббревиатуру.

Появление точки доступа считается прохождением проверки. Если же она не появилась, то следует еще раз проверить подачу электропитания, соединения пинов CH_PD, GND. Если все соединено правильно, но точка доступа не появилась — значит столкнулись с неисправностью. Остается шанс оживить изделие путем его перерпрошивки с нестандартными параметрами, но это не гарантирует восстановление работоспособности.

Способы проверки

Варианты подключения

Различными способами возможно подключать ESP8266, однако, наиболее оптимальный приведен в таблице.

Пин модуля Примечание USB-TTL
VCC Внешний блок питания 3,3 В, > 300 мА
GND контакты GND ESP8266, USB-TTL и БП соединены вместе
GND TX (UTXD)
RX RX (URXD)
TX GPIO0
RESET (RSBT, REST) подтягивающий резистор 10 кОм к +3,3 В, ручной сброс — замыкание пинов RESET и GND.
RTS (отсутствие пина RTS — ручная перезагрузка)
подтягивающий резистор 10 кОм к + 3 В
CH_PD (CH_EN) DTR (если у USB-TTL нет пина DTR, то пин GPIO0 замыкается на землю вручную. Так устанавливается режим прошивки) Подтягивающий 10 кОм к + 3,3 В
GPIO15 (MTDO) Резистор 10 кОм к GND, при наличии пина GPIO15)
GPIO2 подтягивающий к + 3,3 В 10 кОм
(улучшает стабильность)
GPIO16 для завершения режима Deep Sleep соединяются через резистор 470 Ом пины GPIO16 и RESET

При рассмотрении вариантов подключения следует придерживаться пунктов:

  • ознакомиться с распиновкой приобретаемого модуля, поскольку не все они выводятся;
  • выведенные пины CTS и DSR в преобразователе USB-TTL работают только на вход и бесполезны при автозагрузке прошивки;
  • блок питания для надежной работы должен обеспечивать стабилизацию напряжения 3,3 В при токах нагрузки свыше 0,25 А.

Параметры питания от преобразователя USB-TTL не соответствуют требуемым значениям.

Варианты подключения

Через Arduino

Вместо отдельного преобразователя USB-TTL можно использовать микроконтроллер Arduino Nano или Uno со встроенным преобразователем применяя следующее подключение:

  1. Для запрета запуска микроконтроллера Arduino его пин Reset следует закоротить на землю, пин GND (синий провод). Тогда плата работает только как USB-TTL конвертер.
  2. Пины RX и TX соединяются прямо. RX к RX (зеленый), а TX к TX (желтый).
  3. При необходимости согласовать TTL уровни 5 В для Ардуино и 3,3 В для ESP8266.

Дополнительно проверьте по руководству примененной платы Arduino ее нагрузочную способность, поскольку встроенный стабилизатор может оказаться слабым и не удовлетворить мощности нагрузки ESP8266. Либо придется рассчитать предельную мощность подключаемой нагрузки и ограничить ее.

Имеется еще 1 способ подключения ESP8266 через Ардуино и SoftSerial. Однако этот вариант часто вызывает нарекания при реализации из-за неспособности библиотеки SoftSerial работать на скорости 115200 бод и как следствие этого — добавление высокой нестабильности системы.

Через Raspberrypi

При отсутствии любого USB-TTL преобразователя можно осуществить аналогичное «Ардуино» подключение, но с использованием «малинки». Его отрицательная сторона заключается в необходимости обеспечивать дополнительный источник стабилизированного напряжения 3,3 В.

Требуемые манипуляции:

  • пины RX, TX, GND на «малинке» соединяем с соответствующими пинами на ESP8266;
  • VCC + 3,3 В и GND на модуль подаем с отдельного блока питания;
  • для правильной работы всех устройств их земляные выводы GND должны быть соединены.

Через Raspberrypi

Желательно проверить нагрузочную способность дополнительного блока питания, обеспечивающего силу выходного тока 0,3 А и выше.

Как настроить ESP 8266

После сопряжения модуля ESP8266 с интерфейсом USB (посредством конвертера или Arduino) нужно заняться проверкой и подбором драйвера к USB-TTL или Arduino для организации виртуального UART. Чаще всего применяют эмулятор терминала UART. Однако допускается использование другого программного обеспечения. Главное требование к ПО — любая команда, отправленная с компьютера, должна заканчиваться символами перевода каретки CR + LF.

ПО CoolTerm получила распространение, благодаря наличию версии под основные ОС Windows/Linux/MAC. Для этих целей эффективна open-source программа ESPlorer. Она позволяет автоматизировать ввод AT-команд и применять скриптовые сценарии LUA под NodeMCU. Подключение к UART может занять некоторое время из-за разнообразия прошивок для ESP8266. Допустимая скорость потока данных находится путем простого перебора 3 значений: 9600, 57600 и 115200.

Изменение скорости производится в таком порядке:

  • терминал устанавливает скорость обмена с виртуальным портом на уровне 9600 8N1;
  • проводится настройка Arduino IDE;
  • перезагружается адаптер с отключенным пином CH_PD от подаваемых 3,3 В (преобразователь USB-TTL сохраняет соединение с USB);
  • включается плата пином CH_PD и отправляется на перезагрузку замыканием пинов RESET и «земля»;
  • смотрим на данные, выводимые в терминал. Светодиоды ESP8266 загораются при штатном включении. В это время в терминал выводится «мусор», завершающийся строкой «ready»;
  • если сигнал готовности «ready» не появилось — повторяем подключение в терминале на иной скорости и перезагружаем устройство.

Как настроить ESP 8266

На какой-то из скоростей должно появиться это «ready». Если его нет, значит, где-то имеется аппаратная неисправность или неверное подключение.

Остановимся на природе «мусора». При запуске утилиты прошивки скорость передачи UART устанавливается в 74 880 бод. Далее скорость изменяется на другое значение 115200, 57600, 9600 бод, определяемое используемой версией. Но при этом передаваемая информация для отладки воспринимается как «мусор». Если подключиться к ESP8266 на скорости 74880 бод (а программа ESPlorer поддерживает ее), то мы увидим следующие строки:

wdt reset
load 0x40100000, len 25052, room 16

tail 12
chksum 0x0b
ho 0 tail 12 room 4
load 0x3ffe8000, len 3312, room 12
tail 4
chksum 0x53
load 0x3ffe8cf0, len 6576, room 4
tail 12
chksum 0x0d
csum 0x0d 1 2 3 4 5 6 7 8 9 10 11 12

Данный текст будет присутствовать на экране, однако, контроллер не сообщит о своей готовности до тех пор, пока не произойдет переподключение на рабочей скорости. «Мусор» же появляется вследствие передачи данных в формате JSON.

Обновление прошивки

Обновить прошивку во flash-памяти модуля ESP8266 можно без применения программатора. Ее обновление производится с той же аппаратной частью, что и стандартное подключение, для этого:

  1. Загружается прошивка свежей версии.
  2. Скачивается утилита под вашу ОС для прошивки ESP8266 . Для Windows можно использовать XTCOM, а также ESPtool, требующая установки Python, Flash Tool Download и другие разработки.
  3. Программа терминала отключается от последовательного интерфейса.
  4. Пин CH_PD отсоединяется от шины питания, вывод GPIO0 закорачивается на пин земли (GND), затем пин CH_PD снова подключается к питанию.
  5. Запускается утилита и располагает новую прошивку в ESP8266.

Скорость загрузки данных в большинстве случаев составляет 115200 бод. Однако эта величина определяется многими факторами и может принимать значения от 9600 до 115200 бод. В новых версиях загруженные данные размещаются с нуля (0x00000).

OTA обновление ESP8266

OTA процесс осуществляется через WiFi, «over the air». Эта схема удобна, если плата размещена в труднодоступном месте.

Для реализации этого проекта потребуется такое ПО:

  • Arduino IDE;
  • любой браузер;
  • установленный HTTP-сервер.

Осуществляется настройка Arduino IDE. Эта среда используется на стадии разработки. При эксплуатации удобнее применять браузер (при обновлении вручную) либо HTTP-сервер при автоматических обновлениях.

Первое обновление осуществляется через UART. Загружается скетч с поддержкой функций OTA. Следует обеспечить обновление из надежных источников, иначе любой сможет получить доступ и загружать свои скетчи.

Ссылка на основную публикацию