8-900-374-94-44
[email protected]
Slide Image
Меню

Esp8266 схема подключения – подключение и обновление прошивки – esp8266

Содержание

подключение и обновление прошивки – esp8266

Модуль esp8266 подключен USB-TTL на 3,3 вольта

ESP8266 — быстрый старт для начинающих

Как проверить ESP8266

Как быстро подключить ESP8266

Как правильно подключить ESP8266

Как подключить ESP8266 через Arduino

Как подключить ESP8266 через RaspberryPi

Как настроить ESP8266

Как обновить прошивку ESP8266

Нижеприведенные инструкции и схемы не являются «правильными» с точки зрения схемотехники и не должны применяться в реальных конечных устройствах. Это упрощенные инструкции для быстрого старта, чтобы вы могли с минимальным набором компонентов запустить свой модуль ESP8266. При этом все эти упрощенные схемы реально работают и проверены автором лично на различных модулях ESP8266.

Как проверить ESP8266

Для проверки ESP8266, который вы только что  приобрели, потребуется источник стабилизированного напряжения на 3,3 вольта.

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

Чтобы проверить ESP8266 ESP-01 достаточно подключить три пина: VCC и CH_PD (chip enable) к питанию 3,3 вольт, а GND к земле. Если у вас не ESP-01, а другой модуль и на нем выведен GPIO15, то дополнительно еще потребуется подключить GPIO15 к земле.

При успешном старте заводской прошивки на модуле ESP8266 загорится красный светодиод (индикатор питания, на некоторых версиях модуля, например ESP-12, может отсутствовать) и пару раз мигнет синий (это индикатор передачи данных от модуля к терминалу по линии TX-RX, может иметь другой цвет) и в вашей беспроводной сети должна появится новая точка доступа с именем «ESP_XXXX», которую вы сможете увидеть с любого WiFi устройства. название точки доступа зависит от производителя прошивки и может быть другим, например AI-THINKER_AXXXXC. Если точка доступа появилась, то можно продолжить эксперименты далее, если нет, то еще раз проверьте питание, CH_PD, GND и если все подключено правильно то, скорее всего, у вас неисправный модуль, но есть надежда, что прошивка в модуле с нестандартными настройками и, возможно, вам поможет перепрошивка.

Как быстро подключить ESP8266

В минимальный набор для подключения и прошивки модуля ESP8266 входит:

1. Собственно сам модуль ESP8266

2. Беспаечная макетная плата

3. Набор проводов папа-мама для макетной платы или DUPONT M-F кабель

4. USB-TTL конвертер (ищите с переключателем на 5 и 3,3 вольт, либо версия на 3,3 вольта) на базе FTDI, PL2303 или аналогичном чипе. Идеальным будет вариант, когда на USB-TTL адаптере будут выведены DTR и RTS — это позволит быстро загружать прошивку из Arduino IDE, UDK, Sming без ручного переключения GPIO0 на землю.

В случае если у вас USB-TTL конвертер на 5 вольт, то вам дополнительно потребуется стабилизатор питания на чипе 1117 или аналогичном (ток не менее 300 мА, желательно с конденсаторной обвязкой в виде готового модуля, но сойдет и просто микросхема) и источник питания (для 1117 отлично подойдет пятивольтовая зарядка от смартфона). Вообще, лучше не питать ESP8266 от USB-TTL конвертера или Arduino, а использовать отдельный источник питания — это избавит вас от множества проблем.

В расширенный набор для постоянной и комфортной работы с модулем ESP8266 вам дополнительно потребуются разъемы питания, DIP переключатели, резисторы и светодиоды. Я также использую недорогой USB монитор (Charger Doctor — листайте список  дальше, ищите в белом корпусе), который позволяет видеть потребляемый ток (с китайской точностью) и немного защищает шину USB от короткого замыкания по питанию (при КЗ дисплей монитора начинает мигать)

1. Модулей ESP8266 достаточно много и первое, что вам потребуется, это идентифицировать ваш модуль и определить его распиновку. На нашем сайте есть замечательная таблица с фотографиями модулей и их распиновкой. Далее в этом кратком пособии для начинающих, мы будем подразумевать, что работаем с модулем ESP8266 ESP-01 V090. Если у вас другой модуль (например, ESP-07 или ESP-12) и на нем выведен пин GPIO15 (MTDO, HSPICS), то этот пин необходимо притянуть к земле как для обычного старта модуля, так и для режима прошивки.

2. Убедиться два раза, что питающее напряжение для модуля составляет 3,3 вольта.

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

3. Если вы счастливый обладатель USB-TTL конвертера на 3,3 вольта то подключите модуль, как на рисунке ниже (левая часть). Если у вас только пятивольтовый USB-TTL, то используйте в качестве инструкции правую часть рисунка.

На первый взгляд схема справа может показаться «лучше» из-за использования отдельного источника питания, но это не совсем так — при использовании USB-TTL конвертера на 5 вольт желательно добавить делитель на резисторах для согласования пятивольтовых и трехвольтовых уровней логики либо модуль преобразования уровней.

Внимание! На правом рисунке подключение UTXD (TX) и URXD (RX) модуля ESP8266 к пятивольтовой TTL логике вы осуществляете на свой страх и риск! Документация на SoC ESP8266 сообщает, что модуль толерантен только к 3.3 вольтовой логике. В большинстве случаев подключение ESP8266 к пятивольтовой логике НЕ ПРИВОДИТ к выходу из строя ESP8266, однако именно вашему модулю может не повезти. Для исключение риска выхода модуля ESP8266 из строя рекомендуется использовать USB-TTL конвертер на 3,3 вольта, либо TTL 5v-3.3v конвертеры либо делитель на резисторах (на рисунке не показан). Более подробно о согласовании логических уровней можете прочитать здесь. Рисковые гики, вроде меня, подключают ESP8266 к пятивольтовой TTL логике напрямую и не заморачиваются.

Внимание! На правом рисунке показано подключение стабилизатора питания 1117 без дополнительной обвязки.  Это работает, но все же, мы рекомендуем использовать схему подключения 1117 с конденсаторной обвязкой — сверьте схему подключения с даташитом на ваш стабилизатор либо используйте готовый модуль на базе 1117.

ESP8266 — подключение

Красный — питание 3,3в

Черный — GND

Желтый — на стороне ESP8266 — RX, на стороне USB-TTL — TX

Зеленый  — на стороне ESP8266 — TX, на стороне USB-TTL — RX

Оранжевый — CH_PD (CHIP ENABLE) — должен быть всегда подтянут к питанию

Синий — GPIO0 — подключен через выключатель к земле для включения режима перепрошивки модуля. Для обычного старта модуля GPIO0 можно оставить никуда не подключенным.

Розовый на правой схеме — нестабилизированное питание 5-8 вольт

4. Для старта модуля разорвите цепь GPIO0 — GND и можете подавать питание (причем именно в таком порядке: сначала убеждаемся, что GPIO0 «висит в воздухе», затем подаем питание на VCC и CH_PD)

Внимание! В вышеприведенных, реально работающих, примерах подключения ESP8266 используется подключение выводов ESP8266 «напрямую» к земле и питанию, либо «висячее в воздухе», как у нас никуда не подключен RESET, что является абсолютно неправильным и пригодно только для пары первых экспериментов, хотя и вполне работоспособно на подавляющем большинстве модулей. «Напрямую» к питанию подключается только вывод VCC, остальные выводы: CH_PD, RESET, GPIO0, GPIO2, должны быть подтянуты (pullup) к питанию (VCC) через резистор от 4,7 до 50 кОм. «Напрямую», к минусу (общему проводу) питания подключаем только GND, а GPIO0 подтягиваем (pulldown) тоже через резистор до 10k к GND для перевода модуль в режим загрузки прошивки. Если вы планируете и дальше экспериментировать с ESP8266, то сделайте грамотное подключение, впрочем так же как и для любых других микроконтроллеров. Детальное описание pullup и pulldown выходит за рамки данной статьи, но вы сможете легко нагуглить описание правильного подключения портов ввода-вывода. «Правильное» подключение позволит вам избежать множества «чудес» и проблем и будет неизбежно необходимым при возникновении затруднений с запуском или перепрошивкой модуля ESP8266.

Как правильно подключить ESP8266

Если вы планируете заниматься с ESP8266 больше, чем один вечер, то вам потребуется вариант подключения, обеспечивающий более высокую стабильность. Ниже приводятся две схемы подключения: с поддержкой автозагрузки прошивки из Arduino IDE, UDK, Sming и без нее.

Схема подключения ESP8266 (без автозагрузки прошивки, прошиваемся предварительно установив перемычку BURN и перезагрузив модуль)

Схема подключения с поддержкой автозагрузки прошивки из Arduino IDE, UDK, Sming. Для Flash Download Tool и XTCOM_UTIL, возможно, потребуется отключение RTS/DTR. Если RTS и DTR вам отключать неудобно, то можно добавить в схему перемычки

На этих схемах не показано подключение ADC и свободных GPIO — их подключение будет зависеть от того, что вы захотите реализовать, но если хотите стабильности, то не забудьте притянуть все GPIO к питанию (pullup), а ADC к земле (pulldown) через подтягивающие резисторы.

Резисторы на 10k могут заменены на другие от 4,7k до 50k, за исключением GPIO15 — его номинал должен быть до 10k. Номинал конденсатора, который сглаживает высокочастотные пульсации, может быть другим.

Соединение RESET и GPIO16 через резистор deep sleep на 470 Ом вам потребуется, если вы будете использовать режим deep sleep: для выхода из режима глубокого сна модуль перезагружает сам себя, подавая низкий уровень на GPIO16. Без этого соединения глубокий сон будет вечным для вашего модуля.

На первый взгляд на этих схемах кажется, что GPIO0, GPIO2, GPIO15, GPIO1 (TX), GPIO3 (RX) заняты и вы не можете их использовать для своих целей, но это не так. Высокий уровень на GPIO0 и GPIO2, низкий на GPIO15 требуются только для старта модуля, а в последующем вы можете использовать их по своему усмотрению, только не забудьте обеспечить требуемые уровни до перезагрузки модуля.

Можно использовать и TX, RX как GPIO1 и GPIO3 соответственно, не забывая о том, что при старте модуля любая прошивка будет дергать TX, отправляя отладочную информацию в UART0 на скорости 74480, но после успешной загрузки вы можете использовать их не только как UART0 для обмена данными с другим устройством, но и как обычные GPIO.

Для модулей, имеющих меньшее количество разведенных пинов, как например, ESP-01 подключение неразведенных пинов не требуется, т.е. на ESP-01 разведены только: VCC, GND, GPIO0, GPIO2, CH_PD и RESET — вот только их и подтягиваете. Нет никакой необходимости припаиваться прямо к микросхеме ESP8266EX и притягивать неразведенные пины, только если вам это действительно необходимо.

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

Внимание! Даже эти схемы нельзя назвать «идеальными». Совершенству нет предела: удобно подключить второй USB-TTL к UART1 (c ESP8266 можно взять только GND и UTXD1, т.е. GPIO2) для подключения отладочного терминала (потребуется второй USB-TTL конвертер) — тогда можно будет прошивать модуль ESP8266 через UART0 без отключения терминала отладки на UART1. Неплохо будет подключить резисторы малого номинала к выводам обоих UART, поставить диод в линию RTS, добавить конденсатор в линию питания для гашения низкочастотных импульсов и т.д. Очень удобно, например, сделано в этой отладочной плате: на все GPIO подключены светодиоды, на ADC подключен фоторезистор, но жаль, что нет кнопки RESET и перемычка только одна на GPIO0.

Правильным будет сказать вам, что не существует идеальной и в тоже время универсальной схемы подключения ESP8266. Все дело в том, что очень многое зависит от прошивки, которую вы собираетесь туда залить. Вышеприведенные схемы рассчитаны на новичков, которые только начинают осваивать ESP8266, для экспериментов. Для реальных проектов, возможно, вам придется немного изменить схему. Например, для прошивки TCP2UART нужно подключить RTS к GPIO15, а CTS к GPIO13. Также в реальных проектах рекомендую уделить особое внимание питанию.

Подключение ESP8266 через Arduino

Если у вас под рукой не оказалось USB-TTL конвертера на 3,3в, но есть Arduino со встроенным USB-TTL конвертером, то можно использовать такую схему подключения

ESP8266 подключение через Arduino

На что обратить внимание:

1. Arduino Reset подключен к GND (синий провод) чтобы не запускался микроконтроллер на Arduino, в данном виде мы используем Arduino как прозрачный USB-TTL конвертер

2. RX и TX подключены не «на перекрест», а прямо — RX — RX (зеленый), TX — TX (желтый)

3. Все остальное подключено так же, как и в предыдущих примерах

Внимание! В этой схеме также требуется согласовывать уровни TTL 5 вольт Arduino и 3.3 вольта на ESP8266, однако неплохо работает и так.

Внимание! На Arduino может быть установлен стабилизатор питания, который не выдержит ток, требуемый для ESP8266, поэтому прежде, чем производить подключение сверьтесь с даташитом на тот стабилизатор, который установлен именно у вас. Не подключайте другие энергопотребляющие компоненты одновременно с ESP8266 в связи с риском выхода из строя встроенного в Arduino стабилизатора питания.

Существует и другая схема подключения Arduino и ESP8266 с использованием SoftSerial. В виду того, что для библиотеки SoftSerial скорость порта в 115200 является слишком большой и не гарантирует стабильную работу, мы не рекомендуем использовать такой способ подключения, хотя есть люди, у которых все стабильно работает (правда только на скорости 9600). Скетч для такой схемы подключения (спасибо nec3540A)

Подключение ESP8266 через RaspberryPi

Да, можно и «из пушки по воробьям», если под рукой нет вообще никакого USB-TTL конвертера. Подключение через малинку аналогично Arduino, но не такое удобное, т.к. дополнительно потребуется стабилизатор питания на 3,3 вольта. RX, TX, GND малинки подключаем к ESP8266, VCC и GND берем со стабилизированного источника питания на 3,3 вольта. Обратите внимание на то, что необходимо соединить GND всех устройств: малинки, стабилизатора и ESP8266. Брать 3,3 вольта питания с малинки для ESP8266 я лично не пробовал, поэтому вам предлагать такой вариант не буду. Если встроенный в вашу версию малины стабилизатор держит до 300 миллиампер дополнительной нагрузки, то подключение ESP8266 вполне возможно. Если сами захотите рискнуть — пожалуйста.

Настройка ESP8266

Итак, ESP8266 модуль к USB порту мы подключили (через USB-TTL или Arduino) теперь нужно убедится, что драйвера к вашим USB-TTL или Arduino встали корректно и в системе появился новый виртуальный последовательный порт. Вам понадобится программа — терминал последовательного порта. Можете использовать любую на ваш вкус, но она должна удовлетворять следующему требованию: каждая команда, которую вы отправляете с компьютера в последовательный порт должна завершаться символами CR+LF.

Большой популярностью пользуется программа CoolTerm (есть версии для Win/MAC/Linux).

Ваш покорный слуга является автором open-source программы ESPlorer, получившей международное признание. ESPlorer позволит вам не вводить AT команды вручную и легко работать с lua скриптами под NodeMCU (об этом в другой раз) и вы вполне можете использовать ее и как обычный терминал. Обсуждение ESPlorer на нашем форуме и на esp826.com

С подключением к последовательному порту придется немного поколдовать: в связи с разнообразием прошивок для ESP8266, подключение может осуществляться на разных скоростях. Нужную скорость можно определить путем простого перебора трех вариантов: 9600, 57600 и 115200. Как осуществить перебор? Подключаетесь в терминальной программе к вашему виртуальному последовательному порту выставив следующие параметры: 9600 8N1, затем перезагружаете модуль, отключив CH_PD (chip enable) от питания (USB-TTL при этом остается подключенным к USB) и снова включаете (т.е. просто передергиваете CH_PD, почему не передергиваем питание — читаем здесь, также можно кратковременно замкнуть RESET на землю для перезагрузки модуля) и наблюдаете данные в терминале. Во-первых, светодиоды на ESP8266 должны гореть как описано в начале статьи в разделе Проверка ESP8266. Во-вторых, в терминале вы должны увидеть «мусор» из разных символов, оканчивающийся строкой «ready». Если «ready» мы не видим, то переподключаемся терминалом на другой скорости и снова перезагружаем модуль.

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

Немного подробнее о «мусоре». Дело в том, что при старте прошивки, UART модуля ESP8266 переключается на скорость передачи 74 880 (вот такие забавные эти китайцы) выдает в UART отладочную информацию, затем переключает скорость порта на 115200 (ну или на 9600 или 57600 в зависимости от версии прошивки), так вот эта отладочная информация и видится нам как мусор, т.к. мы подключаемся к модулю на другой скорости. Можете подключится к ESP8266 на скорости 74 880 (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

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

НО! не увидите «ready» и не сможете управлять модулем, пока не переподключитесь на ту скорость, на которой работает прошивка.

Что делать дальше

Если у вас новый модуль, то, скорее всего, в нем прошита одна из старых кастомных AT прошивок. Скорее всего это какой-нибудь AI-THINKER AT v0.16 SDK v0.9.2. Проверить версию прошивку вы можете командой «AT+GMR», т.е. прямо в терминальной программе набираете AT+GMR без кавычек и жмете Enter. Модуль должен ответить «OK» и выдать версию прошивки (например, «0016000092» — в разных версиях AT прошивок формат вывода версии отличается). Управление модулем ESP8266 AT командами заслуживает отдельной статьи, однако вы легко сможете разобраться с этим и сами, воспользовавшись одним из наших справочников по AT командам:

На момент написания этой статьи актуальная версия прошивки для ESP8266:

версия AT команд v0.21, версия SDK v0.9.5

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

Модуль ESP8266 замечателен тем, что не требует специального программатора — обновление прошивки производится на том же железе, на котором вы подключаете модуль ESP8266 к компьютеру, т.е. тоже через USB-TTL конвертер (ну или Arduino или RPi). Для обновление прошивки на модуле ESP8266 проделайте следующее:

 1. Скачайте новую версию прошивки с нашего сайта из раздела ESP8266 прошивки (вот ссылка на последнюю версию прошивки AT 0.21 SDK 0.9.5 на момент написания этой статьи)

2. Скачайте одну из утилит для прошивки ESP8266 в зависимости от вашей операционной системы из раздела ESP8266 Утилиты с нашего сайта

для Win систем подойдет XTCOM UTIL (удобно работать, если прошивка состоит из одного файла), мультиплатформенный esptool (требуется python, нужно указывать параметры в командной строке),  FLASH DOWNLOAD TOOL (много настроек, удобно прошивать прошивки, состоящие из нескольких файлов, позволяет «собрать» прошивку в один файл из нескольких). Также вы найдете и другие программы для прошивки ESP8266 — попробуйте разные и пользуйтесь той, которая вам больше понравится.

3. Отключите от последовательного порта вашу терминальную программу

4. Отключите CH_PD от питания, подключите GPIO0 модуля к GND, подключите обратно CH_PD модуля.

5. Запускайте программу для прошивки модуля и загружайте новую прошивку в модуль ESP8266.

Загрузка прошивки в модуль обычно осуществляется на скорости 115200, но режим прошивки модуля поддерживает автоопределение скорости и прошивка может быть осуществлена на скорости от 9600 и выше. Максимальная скорость зависит от многих факторов (вашего USB-TTL конвертера, длины проводов и прочего) и может быть определена экспериментально на конфигурации именно вашего оборудования.

Все последние версии прошивок загружаются с нулевого адреса (0x00000).

Обсуждение этой статьи на нашем форуме

Обсуждение проблем при подключении ESP8266 на нашем форуме

В статье Обновление прошивки ESP8266 подробно описана загрузки прошивки в модуль с помощью программы XTCOM_UTIL.

Использованная литература

ESP8266 Datasheet — Specifications V4.1 — 08.09.2014 English

ESP8266 Datasheet — Beginners Guide V0.4.1 — 17.09.2014 English

ESP8266 AT Instruction Set v0.21 23.01.2015

ESP8266 Datasheet — Module Application Design Guide — 20.08.2014 English

Xtensa Instruction Set Architecture (ISA) Reference Manual

esp8266.ru

ESP8266 / ESP8266 / stD

Описание, подключение, настройка и работа.

Что такое ESP8266

ESP8266 — это высокоинтегрированный, микроконтроллер с интерфейсами WiFi, SPI, UART и GPIO, производства китайской компании Espressif.

Схема чипа

Характеристики

поддержка WiFi протоколов 802.11 b/g/n
Wi-Fi Direct (P2P), soft-AP
встроенный стек TCP/IP
встроенный TR переключатель, balun, LNA, усилитель мощности и соответствие сети
встроенный PLL, регуляторы, и система управления питанием
выходная мощность +20.5 дБм в режиме 802.11b
ток утечки в выключенном состоянии до 10 мкА
SDIO 2.0, SPI, UART
STBC, 1×1 MIMO, 2×1 MIMO
пробуждение и отправка пакетов за время до 22 мс
потребление в режиме Standby до 1.0 мВт (DTIM3)


Распиновка чипа


В данное время на этом чипе реализовано несколько модификаций плат (ESP01 — ESP12) различающихся только формой, количеством выведенных GPIO и вариантами антенн.

ESP01 — 12
ESP-01 — самый распространённый, выведены два GPIO, дальность действия — до 400м на открытом пространстве.

ESP-02 — тоже самое, только с возможностью подключения внешней антенны.

ESP-03 — керамическая антенна, выведены все GPIO.

ESP-04 — без внешней антенны, выведены все GPIO.

ESP-05 — выведены только VCC, GND, TX, RX, RST и внешняя антенна.

ESP-06 — контакты расположены снизу, сверху металлический экран.

ESP-07 — керамическая антенна + разъем для внешней антенны, металлический экран.

ESP-08 — тоже самое, но без антенн.

ESP-09 — крохотный модуль — 10х10мм, контакты расположены снизу.

ESP-10 — тоже маленький модуль, выведены только два GPIO.

ESP-11 — с керамической антенной.

ESP-12 — с flash-памятью 512 кбайт.



Схема модуля


Что может модуль ESP

Описание будет вестись на основе популярной модели ESP-01.
Всё написанное ниже, за исключением номеров GPIO, применительно к любой модификаций.

С базовой прошивкой модуль ESP используется в виде моста UART <-> WIFI.

Например:

ESP подключается к ардуине (UART <-> UART) и взаимодействует с ней при помощи AT-команд, а по каналу WIFI соединяется с любым wifi-устройством (планшет, роутер) при этом может работать в разных режимах — клиента, точки доступа, одновременно оба режима.

ESP подключается к ПК через конвертер usb-uart. Можно с ПК посылать АТ-команды модулю, а модуль в свою очередь будет пересылать их какому-то wifi-устройству.

С альтернативными прошивками, ESP может работать автономно. То есть использовать свои пины для управления чем-либо, например светом в комнате, а управляется по каналу WIFI, выступая в роли сервера.

(О прошивках ниже.)


Подключение

В первую очередь надо обеспечить надёжное питание. Внимание! ESP работает от напряжения 3,3v.

Модуль потребляет довольно-таки большой ток (до 300мА), и если подключить модуль к пину 3,3v на ардуине, то он будет постоянно перегружаться (красный и синий диоды будут моргать).
Чтобы всё хорошо работало потребуется DC-DC преобразователь (5v > 3,3v), что-то типа этого:

Схема подключения:

Подключите питание — загорится красный диод.
Подключите пин CH_PD на 3,3v — мигнёт синий диод. Это пин включения/отключения модуля (chip power-down).

В списке сетей wifi на Вашем телефоне/планшете, появится новое устройство с именем «AI-THINKER…».
Можно подключится к нему, но толку от этого пока никакого не будет.

Кратковременное замыкание пина RST на GND перезагрузит модуль.

Свободные GPIO (0, 2) подключать не надо.

Если у Вас модуль не ESP-01, то надо подключить GPIO15 к GND.

Примечание. В дальнейшем, для повышения стабильности работы, нужно пин CH_PD подключать к 3,3v через резистор 10 кОм., RESET, GPIO (0, 2) тоже подтянуть к 3,3v резисторами 10 кОм., по питанию поставить электролит на 100-220 мкФ и керамику 0.1 мкФ.

И таки да, модуль сильно греется, так что можно какой-нибудь теплоотвод организовать.

Теперь надо подключить ESP-модуль к компьютеру посредством UARTа (RX, TX), выяснить скорость порта (может различаться для разных прошивок) и пообщаться с модулем АТ-командами.

Для этого подойдёт любой преобразователь USB-UART, можно воспользоваться например вот таким:

Нужно соединить RX и TX модуля с TX и RX преобразователя.

Уровни напряжения на пинах TX <-> RX можно не согласовывать, как показывает практика, всё отлично работает и так.
Если это покажется неубедительным, то можно организовать простой резистивный делитель:

Если под рукой нет преобразователя (USB-UART), то его можно сделать из любой ардуины. Для этого надо соединить на ардуине RST и GND, а сигнальные линии соединить вот так:


TX <-> TX
RX <-> RX
GND <-> GND


Терминал

Далее нам потребуется программа-терминал, можно использовать бесплатную программу CoolTerm. (Lin & Win)

CoolTermСкачать, установить и запустить:

Нажать Options

Выбрать порт и скорость.

Нажать слева Terminal

Terminal Mode: Line Mode. Нажать ОК.

Нажать Connect

В нижнем поле ввести AT и Enter

Либо воспользоваться Serial Monitor из IDE Arduino.

Открываем Serial Monitor, выбираем Both NL & CR (последняя строчка), устанавливаем скорость 115200 и отправляем команду проверки связи — AT:

Вводите команды без пустых символов.

Модуль должен ответить ОК. Если ответа нет, то попробуйте другие скорости (9600, 57600), если ответа попрежнему нет, то проверьте правильность подключения (rx-tx).

Когда модуль начнёт откликаться, дайте команду перезагрузки — AT+RST

Модуль расскажет о себе.

Теперь нужно проверить версию «заводской» прошивки командой — AT+GMR

В «заводских» прошивках, от версии к версии, меняется функционал и могут не работать некоторые команды. Поэтому прежде чем продолжать знакомство с модулем, нужно залить в него свежую прошивку. Делается это очень просто…


Прошивка

Сейчас речь пойдёт о «заводской» прошивке, альтернативные будут рассмотрены позже.

Скачиваем прошивку, я брал её здесь.

И скачиваем утилиту XTCOM для прошивки ESP.

Пользователи Linux, для работы с XTCOM, могут воспользоваться виртуальной машиной с установленой Windows. (В wine я не пробовал запускать.)

Отключаем питание платы, выводGPIO0 соединяем с GND, включаем питание.Именно так.

Запускаем XTCOM_UTIL.exe, переходим в ToolsConfig Device:

Выбираем COM-порт к которому подключена плата, ставим скорость порта 57600, это скорость заливки прошивки, к дальнейшей работе модуля не имеет отношения.

Нажимаем Open


OK…

Нажимаем Connect


Программа должна сказать Connect with target OK!
Если не коннектится, то закройте программу, отключите/включите питание модуля и повторите.

Жмём ОК, закрываем окно настроек, переходим в меню API TEST и выбираем Flash Image Download.

Указываем путь к скаченому файлу v0.9.5.2 AT Firmware.bin, адрес оставляем 0x00000, жмем DownLoad.

Загрузка…

Готово…
Если что-то пошло не так, то отключаем/включаем питание и проделываем процедуру заново.

Отключаем питание платы, отключаем GPIO0, включаем питание, запускаем терминал (115200), проверяем готовность платы командой AT и версию прошивки командой AT+GMR.


АТ-команды

Список АТ-команд работающих с данной прошивкой и их применение.

——————————————————————————

AT — проверка работы, ответ ОК.

——————————————————————————

ATE0 — отключение эхо (повторение команды).
ATE1 — включение эхо.

——————————————————————————

AT+RST — перезагрузка модуля.

——————————————————————————

AT+RESTORE — сброс модуля к заводским настройкам.

Полезная команда на случай если Вы донастраивались до потери работоспособности модуля ))).

——————————————————————————

AT+GMR — версия прошивки.

——————————————————————————

AT+GSLP=3000 — переход в режим пониженного энергопотребления. (3 сек)
Время задаётся в мс.

Для выхода из режима необходимо замкнуть выводы XPD_DCDC и EXT_RSTB (см. распиновка чипа) либо откл/вкл питание.

——————————————————————————

AT+CIOBAUD=115200 — установить скорость UART. (9600-921600)

После изменения переключите терминал.

——————————————————————————

AT+UART=115200,8,1,0,0 — специфичная настройка UART.

(baudrate,databits,stopbits,parity,flow control)

——————————————————————————

AT+CSYSWDTENABLE — активировать Watchdog.

AT+CSYSWDTDISABLE — деактивировать.

——————————————————————————

Установка режима WIFI:

AT+CWMODE=1 — клиент, подключается к другим точкам доступа.

AT+CWMODE=2 — точка доступа, к модулю подключаются клиенты.

AT+CWMODE=3 — оба режима одновременно, модуль подключается к существующим точкам (например к роутеру) и сам является точкой доступа. (смешанный режим)

AT+CWMODE? — узнать текущий режим.

AT+CWMODE=? — узнать возможные режимы.

——————————————————————————

AT+CIFSR — узнать ip-адрес и мас-адрес. В зависимости от режимов (AT+CWMODE) показывает один или два ip-адреса.

——————————————————————————

AT+CIPSTA? — посмотреть ip-адрес для режима «клиент» (AT+CWMODE=1)
AT+CIPSTA=«192.168.3.20» — установить ip-адрес для режима «клиент» (AT+CWMODE=1)
Необходимо исправить кавычки, вот так:

AT+CIPSTA="192.168.3.20"

AT+CIPSTAMAC? — посмотреть мас-адрес для режима «клиент» (AT+CWMODE=1)
AT+CIPSTAMAC=«1a:fe:34:fe:55:55» — установить мас-адрес для режима «клиент» (AT+CWMODE=1). Требуется перезагрузка (AT+RST).

AT+CIPSTAMAC="1a:fe:34:fe:55:55"

——————————————————————————

AT+CIPAP? — посмотреть ip-адрес для режима «точка доступа» (AT+CWMODE=2)
AT+CIPAP=«192.168.3.35» — установить ip-адрес для режима «точка доступа» (AT+CWMODE=2)

AT+CIPAPMAC? — посмотреть мас-адрес для режима «точка доступа» (AT+CWMODE=2)
AT+CIPAPMAC=«1a:fe:34:fe:33:33» — установить мас-адрес для режима «точка доступа» (AT+CWMODE=2). Требуется перезагрузка (AT+RST).

——————————————————————————

AT+CWDHCP= — включает/выключает DHCP сервер.

Пример: AT+CWDHCP=0,0 — DHCP включён для режима «точка доступа».

Первый параметр — режимы: 0 — для точки доступа, 1 — для клиента, 2 — для смешаного режима.
То есть можно для каждого режима (в отдельности) включать/отключать DHCP сервер, либо если модуль работает в «смешаном режиме» (AT+CWMODE=3), то можно.!!!

Второй параметр — вкл/откл: 0 — включить, 1 — отключить.

——————————————————————————

AT+CWLIF — показать ip-адреса подключенных клиентов (только для режимов AT+CWMODE=2 и AT+CWMODE=3).

——————————————————————————

AT+CWLAP — посмотреть доступные wifi-сети. (работает в режимах AT+CWMODE=1 и AT+CWMODE=3)

Значения в скобках — тип шифрования, имя точки, уровень сигнала, мас-адрес, канал.

Типы шифрования: 0 — без шифрования, 1 — WEP, 2 — WPA-PSK, 3 — WPA2-PSK, 4 — MIXED (WPA-WPA2-PSK).

——————————————————————————

AT+CWJAP= — подключение к точке доступа:

На всякий случай перегрузите модуль — AT+RST

Установите режим AT+CWMODE=1 или AT+CWMODE=3.

AT+CWJAP=«nameap»,«parolparol» — подключение к роутеру (имя точки, пароль). (кавычки необходимо исправить)

AT+CWJAP="nameap","parolparol"

Подключение длится 5-6 секунд.

AT+CWJAP? — узнать подключён или нет, и к какой точке.

——————————————————————————

AT+CWQAP — отключиться от точки доступа (роутера).

——————————————————————————
Создание своей точки доступа с паролем (по дефолту точка открытая).

На всякий случай перегрузите модуль — AT+RST

Предварительно нужно отключиться от каких-либо точек доступа (например от роутера) — AT+CWQAP и установить режим — AT+CWMODE=2 или AT+CWMODE=3.

Даём команду:

AT+CWSAP=«myAP»,«parolmyap»,9,4 — где первое значение — имя будущей точки, второе — пароль, третье — канал и четвёртое — тип шифрования (0 — без шифрования, 1 — WEP, 2 — WPA-PSK, 3 — WPA2-PSK, 4 — MIXED (WPA-WPA2-PSK)).

AT+CWSAP="myAP","parolmyap",9,4

Посмотреть какой адрес у нашей точкиAT+CIFSR

Подключите Ваш «гаджет» к созданой точке и посмотрите какой он получил адресAT+CWLIF

——————————————————————————

Ниже описаны команды относящиеся к настройке TCP-сервера или TCP-клиента.

AT+CIPMODE= — устанавливается режим передачи данных для TCP-сервера или TCP-клиента.

В режиме TCP-сервера:
AT+CIPMODE=0 — TCP-сервер может отправлять данные клиенту и может принимать данные от клиента.
AT+CIPMODE=1 — TCP-сервер НЕ может отправлять данные клиенту, но может принимать данные от клиента.

В режиме TCP-клиента:
AT+CIPMODE=0 — TCP-клиент может отправлять данные серверу и может принимать данные от сервера.
AT+CIPMODE=1 — TCP-клиент НЕ может отправлять данные серверу, но может принимать данные от сервера.

AT+CIPMODE? — узнать режим.

——————————————————————————

AT+CIPMUX= — выбор режима одиночного или множественного соединения.

Зависит от AT+CIPMODE.

AT+CIPMUX=0 — с ESP, может соединится только один клиент. (single connection)
Если в этот момент другой клиент запросит соединение, то получит таймаут.

AT+CIPMUX=1 — с ESP, могут одновременно соединяться несколько клиентов (до четырёх). (multiple connection)

AT+CIPMUX? — узнать режим.

——————————————————————————

AT+CIPSTO — таймаут сервера. Команда даётся после старта сервера.

AT+CIPSTO=180 — таймаут 180 секунд. (от 0 до 7200)

AT+CIPSTO? — узнать таймаут.

——————————————————————————

Запуск TCP-сервера:

Предварительно нужно:
На всякий случай делать ресет — AT+RST, или сброс (если Вы что-то там на настраивали) к заводским настройкам AT+RESTORE

Установим «смешанный режим» — AT+CWMODE=3

Установить сквозной режим передачи данных — AT+CIPMODE=0

Установить режим подключения — AT+CIPMUX=1 (multiple connection)

И запустить сервер:

AT+CIPSERVER=1,88 — сервер будет запущен на 88-ом порту.

Чтобы изменить номер порта, нужно остановить сервер — AT+CIPSERVER=0 и запустить с новыми параметрами.

Теперь можно посмотреть как работает сервер, для этого…

Узнаем адрес — AT+CIFSR

Далее подключаемся к ESP по Wifi с какого-нибудь гаджета, открываем браузер и заходим по адресу — 192.168.4.1:88

На странице конечно ничего не отобразится, но в терминале появятся строки запроса:

Активные соединения можно посмотреть командой — AT+CIPSTATUS

Принудительно закрыть соединение — AT+CIPCLOSE=0

Если соединений несколько, то указываем его id — AT+CIPCLOSE=1

Если модуль работает в режиме — AT+CIPMUX=0 (single connection), то команда закрытия соединения даётся без параметров — AT+CIPCLOSE

Это ещё не всё, хотелось бы увидеть полноценный обмен данными с нашим сервером. В этом поможет бесплатная программа (для Linux и Win) — SocketTest, скачайте её.

Далее нужно соединить компьютер и ESP по каналу wifi. У меня компьютер подключён к роутеру, поэтому ESP тоже подключается к этому роутеру.

Подключаем: (на всякий случай, подробности описаны выше)

AT+CWJAP="nameap","parolparol"

Имя «точки» и пароль.

Смотрим какой адрес получил модуль ESP — AT+CIFSR


Теперь сервер будет работать на адресе — 192.168.1.87:88

Это адрес будем использовать в программе SocketTest.

Запустите её:

На вкладке «Client» вводим адрес 192.168.1.87 и порт 88, нажимаем «Connect».


Пользователям Win наверно придётся отключить файрволы.

В терминале будет будет написано «CONNECT».

Отправим в ESP какой-нибудь текст. Нажмите «Connect», в поле «Message» введите «Hello» и нажмите «Send».

В терминале увидим наш запрос:

+IPD — это признак полученных данных, 0 — это id клиента, 7 — это длина пакета, ну и содержимое пакета.

Соединение будет длиться 180 сек, это таймаут сервера по умолчанию. По истечении времени, оно будет разорвано.

Изменить таймаут можно командой — AT+CIPSTO

Теперь отправим данные с ESP в SocketTest.

Нажмите «Connect» и в терминале введите команду:

AT+CIPSEND=0,13id соединения, длина пакета.

В терминале появится символ ввода >

Введите и отправьте строку «Hi Soket Test»:

В программе «SocketTest» появится наше сообщение.

С TCP-сервером разобрались, перейдём к TCP-клиенту…

——————————————————————————

Запуск TCP-клиента:

Сбросим все настройки — AT+RESTORE

Устанавливаем режимы:

AT+CWMODE=3

AT+CIPMODE=0

Подключаемся к Вашему роутеру:

AT+CWJAP="nameap","parolparol"

В программе SocketTest открываем вкладку «Server», вписываем ip-адрес Вашего компьютера, порт 88 и нажимаем кнопку «Start Listening»:

Переходим в терминал, устанавливаем режим — AT+CIPMUX=0 (single connection) и запускаем клиента:

AT+CIPSTART=«TCP»,«192.168.1.49»,88 — для протокола TCP.

Параметры: протокол — может быть TCP или UDP, адрес сервера с которым будем соединятся, порт.

Отправим серверу данные:

Даём команду — AT+CIPSEND=12 (указывается только длина пакета)
Появится символ — >
Введите и отправьте — Hello Server

Чтоб послать серверу ещё одно сообщение, нужно заново ввести AT+CIPSEND=12 и т.д.

SocketTest получил наше сообщение.


В поле «Message» введите «Hello Client» и нажмите «Send».

ESP получил сообщение.

Теперь поменяем режим клиента с AT+CIPMUX=0 (single connection) на AT+CIPMUX=1 (multiple connection)
Нажимаем «Disconnect» в программе SocketTest (или в терминале командуем — AT+CIPCLOSE).

В терминале и даём команду AT+CIPMUX=1

Запускаем клиента:

AT+CIPSTART=0,«TCP»,«192.168.1.49»,88 — для протокола TCP. (добавился ещё один параметр — id соединения)

Параметры: id — от 0 до 4, протокол — может быть TCP или UDP, адрес сервера с которым будем соединятся, порт.

Отправляем данные серверу — AT+CIPSEND=0,12 (id соединения, длина пакета)
Появится символ — >
Введите и отправьте — Hello Server

Собственно всё то же самое, что и для «single connection», только появилась возможность нескольких соединений (до четырёх) одновременно.

——————————————————————————

Команды для управления GPIO

AT+CIOREAD=0 — читать ножку GPIO0
AT+CIOREAD=2 — читать ножку GPIO2

AT+CIOWRITE=0,1 — подать напряжение на GPIO0
AT+CIOWRITE=0,0 — снять напряжение с GPIO0

AT+CIOWRITE=2,1 — подать напряжение на GPIO2
AT+CIOWRITE=2,0 — снять напряжение с GPIO2

Можно подключить светодиоды к GPIO через резисторы ~1kOm и помигать.

AT-команды.pdf
Спецификация.pdf



Пример подключения:

Настраиваем работу модуля в режиме клиента, подключаемся к роутеру и запускаем TCP-сервер.

AT+RESTORE — к заводским настройкам.

AT+CWMODE=1 — режим клиента.

AT+CWJAP=«nameap»,«parolparol» — подключение к роутеру.

AT+CIPMODE=0 — Установить сквозной режим передачи данных.

AT+CIPMUX=1 — Мultiple connection.

AT+CIPSERVER=1,88 — запустить сервер.

AT+CIPSTO=3 — таймаут сервера 3 секунды.

AT+CIFSR — смотрим адрес который получил ESP от роутера.

Сервер работает на 192.168.1.87:88

И таки да, модуль может зависать (прошивка пока ещё «сыровата»), помогает обесточивание.



Статья получилась большая, поэтому описание подключения Ардуины к ESP читайте в следующей части.

Обсудить на форуме…

istarik.ru

ESP8266 и Arduino, подключение, распиновка / Habr

Привет geektimes. Тема ESP8266, как и IoT(интернет вещей), всё больше набирает популярности, и уже Arduino подхватывает инициативу — добавляя эти Wi-Fi модули в список поддерживаемых плат.
Но как же его подключить к ардуино? И возможно как-то обойтись вообще без ардуино? Сегодня именно об этом и пойдёт речь в этой статье.

Забегая наперёд, скажу, что будет вторая статья, уже более практическая, по теме прошивки и программирования модуля ESP8266 в среде разработки Arduino IDE. Но, обо всём по порядку.

Этот видеоролик, полностью дублирует материал, представленный в статье.



На данный момент, существует много разновидностей этого модуля, вот некоторые из них:

А вот распиновка ESP01, ESP03, ESP12:


* Данную картинку можно посмотреть в хорошем качестве на офф. сайте pighixxx.com.

Лично мне, больше всего нравится версия ESP07. Как минимум за то, что тут есть металлический экран (он защищает микросхемы от внешних наводок, тем самым обеспечивает более стабильную работу), своя керамическая антенна, разъём для внешней антенны. Получается, подключив к нему внешнюю антенну, например типа биквадрат, то можно добиться неплохой дальности. К тому же, тут есть немало портов ввода вывода, так называемых GPIO(General Purpose Input Output — порты ввода-вывода общего назначения), по аналогии с ардуино — пинов.

Давайте вернёмся к нашим баранам Wi-Fi модулям и Arduino. В этой статье, я буду рассматривать подключение ESP8266(модели ESP01) к Arduino Nano V3.

Но, данная информация будет актуальна для большинства модулей ESP8266 и так же разных Arduino плат, например самой популярной Arduino UNO.

Пару слов по ножкам ESP01:

Vcc и GND(на картинке выше это 8 и 1) — питание, на ножку Vcc можно подавать, судя по документации, от 3 до 3.6 В, а GND — земля (минус питания). Я видел, как один человек подключал этот модуль к двум AA аккумуляторам (напряжение питания в этом случае было примерно 2.7 В) и модуль был работоспособным. Но всё же разработчики указали диапазон напряжений, в котором модуль должен гарантированно работать, если вы используете другой — ваши проблемы.

Внимание! Этот модуль основан на 3.3 В логике, а Arduino в основном — 5 В логика. 5 В запросто могут вывести из строя ESP8266, потому на него нужно отдельно от ардуино подавать питание.

— На моей ардуинке есть ножка, где написано 3.3 В, почему бы не использовать её?

Наверное подумаете вы. Дело в том, что ESP8266 довольно таки прожорливый модуль, и в пиках может потреблять токи до 200 мА, и почти никакая ардуинка по умолчанию не способна выдать такой ток, разве что исключением является Arduino Due, у которой ток по линии 3.3 В может достигать 800 мА, чего с запасом хватит, в других же случаях советую использовать дополнительный стабилизатор на 3.3 В, например AMS1117 3.3 В. Таких валом как в Китае, так и у нас.

Ножка RST 6 — предназначена «железной» для перезагрузки модуля, кратковременно подав на неё низкий логический уровень, модуль перезагрузиться. Хоть и на видео я этим пренебрёг, но всё же вам советую «прижимать» данную ногу резистором на 10 кОм к плюсу питания, дабы добиться лучшей стабильности в работе модуля, а то у меня перезагружался от малейших наводок.

Ножка CP_PD 4(или по-другому EN) — служит, опять же, для «железного» перевода модуля в энергосберегающий режим, в котором он потребляет очень маленький ток. Ну и снова — не будет лишним «прижать» эту ногу резистором на 10 кОм к плюсу питалова. На видео я тупо закоротил эту ногу на Vcc, потому как под рукой не оказалось такого резистора.

Ноги RXD0 7 TXD0 2 — аппаратный UART, который используется для перепрошивки, но ведь никто не запрещает использовать эти порты как GPIO(GPIO3 и GPIO1 соотвественно). GPIO3 на картинке почему-то не размечен, но в даташите он есть:

К стати, к ножке TXD0 2 подключен светодиод «Connect», и горит он при низком логическом уровне на GPIO1, ну или когда модуль отправляет что-то по UART.

GPIO0 5 — может быть не только портом ввода/вывода, но и переводить модуль в режим программирования. Делается это подключив этот порт к низкому логическому уровню(«прижав» к GND) и подав питание на модуль. На видео я делаю это обычной кнопкой. После перепрошивки — не забудьте вытащить перемычку/отжать кнопку(кнопку во время перепрошивки держать не обязательно, модуль при включении переходит в режим программирования, и остаётся в нём до перезагрузки).

GPIO2 3 — порт ввода/вывода.

И ещё один немаловажный момент, каждый GPIO Wi-Fi модуля может безопасно выдавать ток до 6 мА, чтобы его не спалить, обязательно ставьте резисторы последовательно портам ввода/вывода на… Вспоминаем закон Ома R = U/I = 3.3В / 0.006 А = 550 Ом, то есть, на 560 Ом. Или же пренебрегайте этим, и потом удивляйтесь почему оно не работает.

В ESP01 все GPIO поддерживают ШИМ, так что к нашим четырём GPIO, то есть GPIO0-3 можно подключить драйвер двигателя, аля L293 / L298 и рулить двумя двигателями, например катера, или же сделать RGB Wi-Fi приблуду. Да, да, данный модуль имеет на борту много чего, и для простеньких проектов скрипач Arduino не нужен, только для перепрошивки. А если использовать ESP07 то там вообще портов почти как у Uno, что даёт возможность уже уверенно обходиться без ардуино. Правда есть один неприятный момент, аналоговых портов у ESP01 вообще нет, а у ESP07 только один, ADC зовётся. Это конечно усугубляет работу с аналоговыми датчиками. В таком случае ардуино аналоговый мультиплексор в помощь.

Всё вроде как по распиновке пояснил, и вот схема подключения ESP8266 к Arduino Nano:

Видите на Arduino Nano перемычка на ножках RST и GND? Это нужно для того, чтобы ардуинка не мешала прошивке модуля, в случае подключения ESP8266 при помощи Arduino — обязательное условие.

Так же если подключаете к Arduino — RX модуля должен идти к RX ардуинки, TX — TX. Это потому, что микросхема преобразователь уже подключена к ножкам ардуино в перекрестном порядке.

Так же немаловажен резистивный делитель, состоящий из резисторов на 1 кОм и 2 кОм (можно сделать из двух резисторов на 1 кОм последовательно соединив их) по линии RX модуля. Потому как ардуино это 5 В логика а модуль 3.3. Получается примитивный преобразователь уровней. Он обязательно должен быть, потому что ноги RXD TXD модуля не толерантные к 5 В.

Ну и можно вообще обойтись без ардуино, подключив ESP8266 через обычный USB-UART преобразователь. В случае подключения к ардуино, мы, по сути, используем штатный конвертер интерфейсов usb и uart, минуя мозги. Так зачем тратиться лишний раз, если можно обойтись и без ардуино вообще? Только в этом случае, мы подключаем RXD модуля к TXD конвертора, TXD — RXD.

Если вам лениво заморачиваться с подключением, возится с резисторами и стабилизаторами — есть готовые решения NodeMcu:

Тут всё значительно проще, воткнул кабель в компьютер, установил драйвера и программируй, только не забывай задействовать перемычку/кнопку на GPIO0 для перевода модуля в режим прошивки.

Ну вот, с теорией наверное всё, статья получилась пожалуй довольно таки большая, и практическую часть, аля прошивка и программирование модуля, я опубликую немного позже.

Я, у себя на ютуб канале, открыл целый плейлист посвящённый моим видео по теме этого Wi-Fi модуля. В планах построили машинку, или лодку, на Wi-Fi управлении, где вместо пульта ДУ будет обычный смарт. Но пока что я к этому ещё не пришёл, так что это всего лишь планы на будущее.

Продолжение этой статьи.

Даташиты на:
ASM1117 3.3 B;
ESP8266EX(микроконтроллер, что стоит в модуле);

Ещё ссылки:
Русскоязычное сообщество по ESP8266;
Схемы рисовал в программе Fritzing;
Почему многие не любят Arduino;
Все мои публикации на geektimes.

By Сергей ПоделкинЦ ака MrПоделкинЦ.

habr.com

Подключение и настройка WiFi модуля ESP8266-01

Подключение и настройка WiFi модуля ESP8266-01

В процессе изучения и проектирования всё более сложных проектов приходит время, когда возникает необходимость и желание научиться работать с таким распространенным видом связи как WiFi. Так как именно такой вид связи может позволить комфортно создать единую сеть для ваших умных домашних устройств и управлять ими, например, с мобильного телефона, планшета или компьютера, то есть другими словами создать самый настоящий умный дом, который обойдется вам в десятки раз дешевле, чем покупать готовые решения в магазине. Применение WiFi конечно не ограничивается на этом и примеров использования данного вида связи настолько много, что перечислять их нет смысла, и если Вы попали на эту страницу, значит, использование WiFi вам уже зачем-то понадобилось, осталось только разобраться, как правильно с ним работать.

Разбираться мы будем на основе самого дешевого и популярного WiFi модуля ESP8266-01. Купить WiFi модуль ESP8266-01 можно у нас на сайте.


Один из главных плюсов такого модуля это наличие памяти и своего микроконтроллера на плате, что позволяет работать ему самостоятельно, загрузив скетч непосредственно в сам модуль.

Модификаций WiFi модуля ESP8266 на самом деле достаточно много и перечислять их здесь мы не будем, научившись работать с одним, Вы без проблем сможете начать работать и с другими. Хочется сразу отметить, что работа с WiFi может показаться довольно не простым занятием, и если в Вашем багаже мало законченных проектов, лучше пока отказаться от WiFi связи и использовать в своих проектах радиосвязь, работа с которой гораздо проще для понимания. По работе с WiFi модулями создают целые сообщества и тематические форумы, что лишний раз доказывает насколько большинству людей трудно сразу разобраться с данным видом связи, а перечитывая всю информацию, у большинства людей просто опускаются руки. Скорей всего и мне не удастся всю важную информацию вместить в рамках только одной этой статьи, да и нет в этом смысла, иначе получится очередная путаница. Я попытаюсь пойти по пути строгой последовательности самых важных моментов, чтобы Вы смогли начать понимать принцип работы данного вида связи и далее уже просто развивать самостоятельно свои навыки в этом направлении.

И так, давайте приступим и для начала разберем выводы WiFi модуля ESP8266-01.

VCC — питание модуля от 3V до 3.6V

GND — земля.

RST — вывод Reset отвечающий за перезагрузку модуля.

CH_PD — «chip power-down» при подаче питания на него активизируется работа модуля.

TX — передача данных (UART интерфейс)

RX — прием данных (UART интерфейс)

GPIO0 — порт ввода/вывода общего назначения

GPIO2 — порт ввода/вывода общего назначения

Выводы GPIO0 и GPIO2 — это точно такие же цифровые выводы, с которыми мы работаем на платах Arduino для взаимосвязи с различными датчиками, и применяются они в случае реализации самостоятельной работы на внутреннем микроконтроллере WiFi модуля ESP8266-01.

Поехали дальше. Приступим к подключению модуля. Для начала сделаем простое подключение, чтобы убедиться в работоспособности модуля.

Для надежного питания модуля ESP8266-01 используйте внешний стабилизированный источник питания на 3.3V и лучше не пытайтесь брать питание от своей платы Arduino, так как модуль потребляет ток до 215mA и это может плохо закончится для вашей отладочной платы. Где взять стабилизированный источник питания на 3.3V надеюсь для вас не проблема, в противном случае вам явно еще рано заниматься данным модулем. Мне, например, нравится использовать для быстрого сбора схем на макетных платах вот такой модуль питания 3.3V и 5.0V YWRobot, который позволяет быстро получить стабилизированное напряжение на 3.3V или 5V на соответствующих дорожках питания макетной платы.

Подключаем плюс (+) от нашего источника питания 3.3V к выводу VCC модуля ESP8266-01, а минус (-) источника питания подводим к выводу GND. В таком состоянии на модуле включится красный светодиод, сигнализирующий нам о правильном подключении питания. Для того чтобы модуль активизировался, необходимо также соединить плюс (+) источника питания с выводом CH_PD модуля ESP8266-01 и желательно это сделать сразу через резистор 10кОм. Теперь, когда мы включим питание, на модуле должен загореться красный светодиод и пару раз быстро мигнуть синий светодиод. Если у вас так все и происходит, значит все отлично, вы правильно все подсоединили и ваш модуль рабочий. В противном случае еще раз проверьте подключение, либо замените модуль, так как он скорей всего не рабочий.

Идем дальше. Для работы с WiFi модулем ESP8266 нам необходим переходник USB-UART. Переходники бывают разные, например: FT232RL, CP2102, PL2303. Но мы предположим, что у вас нет таких переходников, и будем в качестве переходника USB-UART использовать плату Arduino. Я буду использовать для этого плату Arduino NANO, а вы можете использовать любую другую имеющуюся в вашем распоряжении. Подключение на любой плате один в один идентично. Производим подключение согласно следующей схеме.

Давайте рассмотрим, что мы здесь сделали. Сразу обратите внимание на то, что мы замкнули перемычкой на плате Arduino выводы RST и GND. Такая манипуляция отключает микроконтроллер и позволяет сделать из нашей платы Arduino самый настоящий переходник USB-UART.

Так как WiFi модуль ESP8266-01 мы питаем от отдельного внешнего источника питания, незабываем, что мы должны всегда соединять между собой землю всех источников питания в наших проектах. Поэтому мы соединяем вывод GND платы Arduino c землей (-) нашего внешнего источника питания 3.3V, предназначенного для питания модуля ESP8266-01.

Вывод TX вашей платы Arduino соединяем с выводом TX модуля ESP8266-01. По этой линии будут передаваться данные от WiFi модуля к плате Arduino. Кто знаком с UART интерфейсом, может задуматься: «Но как же так? Везде учили, что TX должен соединяться с RX. TX передает информацию, а RX принимает». И Вы будете правы. Всё верно всегда TX соединяется с RX, но именно в случае, когда мы делаем из Arduino переходник UART, необходимо подключать устройства напрямую. Считайте это исключением из правил.

Линию RX вашей платы Arduino подключаем так же напрямую к линии RX модуля ESP8266-01. По этой линии будет передаваться информация от платы Arduino на плату WiFi модуля. Но делаем это соединение через так называемый делитель напряжения, состоящий из двух резисторов номиналами 1кОм и 2кОм. Уменьшить напряжение на этой линии с помощью двух резисторов (делителя напряжения) нам необходимо, так как плата Arduino передает логический сигнал напряжением 5V, а WiFi модуль работает с напряжением 3.3V. Для преобразования логического сигнала мы могли бы использовать специальную платку преобразователя логических уровней, что было бы конечно правильней, но опять же предположим, что у вас ее нет, и нам пришлось пойти более простым путем и сделать это с помощью делителя напряжения.

Всё необходимое для дальнейшей работы мы пока подключили, но у нас остаются не задействованные ещё 3 вывода (GPIO0, GPIO2 и RST) на WiFi модуле ESP8266-01. Для стабильной работы WiFi модуля нам необходимо эти оставшиеся не задействованные выводы подтянуть к плюсовой (+) линии питания модуля через резисторы в 10кОм.

 

Это избавит нас от различных помех (наводок) и сделает работу модуля стабильной. Лучше это делать сразу. В противном случае не удивляйтесь, что ваш модуль постоянно перегружается, выдает не понятную информацию, либо вообще не хочет работать. Использовать подтягивающие резисторы на незадействованных выводах микроконтроллера должно быть, как правило, если хотите стабильной работы в ваших проектах.

И снова проверяем работоспособность модуля WiFi ESP8266-01. Включаем питание и смотрим, чтобы зажегся красный светодиод и пару раз мигнул синий. Если всё так происходит, значит отлично, идем дальше. В противном случае проверяем правильность соединений, а так же качество всех контактов. Может быть просто банальная ситуация, когда десять раз все перепроверили и убедились, что все правильно подключили, но включая модуль, видите, что синий светодиод ведет себя не адекватно, постоянно горит, постоянно мигает или вообще не на что не реагирует. Это может происходить из-за плохого контакта на какой-то линии. Например, собирая схему на макетной плате, какой-нибудь из резисторов неплотно сидит на своем месте и это вызывает помехи. Проверяйте качество соединений. Модуль очень чувствителен. Не пренебрегайте этим. Это частая причина не стабильной работы.

 

Настройка программы Arduino IDE для работы с WiFi модулем ESP8266-01.

В общем, с подключением мы закончили. Сейчас нам необходимо подготовить программу Arduino IDE для работы с WiFi модулем ESP8266-01. Для этого нам надо скачать и установить в Arduino IDE необходимый архив с библиотеками, примерами и платами ESP, который впоследствии позволит нам заливать скетчи прямо в микроконтроллер модуля ESP8266-01, менять прошивку и т.д. В рамках этой статьи нам скорей всего эти настройки и не понадобятся, но мне кажется, что после того, как мы разобрались с подключением модуля, порядок действий будет правильным, если мы сразу скачаем все необходимое для работы с Arduino IDE. Тут все в принципе просто.

Запускаем программу Arduino IDE и переходим в меню «Файл» — «Настройки»

 

В поле «Дополнительные ссылки для Менеджера плат» вставляем ссылку http://arduino.esp8266.com/stable/package_esp8266com_index.json и нажимаем кнопку «ОК».

 

Далее идем в меню «Инструменты» — «Менеджер плат».

 

В появившемся окне в верхнем поле пишем «esp8266». В итоге в окне у нас останется только нужная прошивка. При нажатии на прошивку появится кнопка «Установка». Нажимаем на кнопку «Установка» и ждем, пока все установится. Архив достаточно большой, около 150 мегабайт, так что придется подождать.

 

После окончания установки. Перезагружаем Arduino IDE и видим, как появились новые платы ESP в меню «Инструменты» — «Платы». На этом всё. С настройкой Arduino IDE мы закончили. Пока нам эти настройки не нужны, но в дальнейшей работе нам без них не обойтись.

 

Управление WiFi модулем ESP8266-01 с помощью AT команд.

Всё мы подключили и подготовились, теперь можем начать разбираться с управлением. На самом деле, сейчас будет продолжение проверки и настройки модуля с помощью AT команд и без этого ни как не обойтись. WiFi модули реализованы так, что всё общение с ними происходит с помощью так называемых AT команд, которые зашиты в прошивке модуля. Мы не будем здесь перечислять все AT команды, их достаточно много и если захотите все тщательно изучить, можете без труда их найти в интернете. А мы будем использовать сейчас только самые необходимые для начала работы.

И так, подключаем нашу плату Arduino через USB кабель к компьютеру. А внешний источник питания, который питает WiFi модуль ESP8266-01 пока включать не надо. Запускаем программу Arduino IDE, выбираем в меню «Инструменты» нашу плату Arduino, в моем случае это Arduino NANO, а вы выбираете свою. Так же не забываем выбрать порт к которому подключена наша Ардуинка. Надеюсь все это вы понимаете и делать умеете.

Открываем мониторинг порта «Инструменты» — «Монитор порта». Выбираем скорость порта 74880 (на такой скорости происходит запуск модуля) и слева в списке выбираем «NL & CR»

 

Вот теперь подключаем внешний источник питания который питает наш WiFi модуль. После чего вы должны увидеть в мониторе порта примерно такую информацию.

Здесь мы видим некоторую информацию по нашему WiFi модулю (скорость, количество памяти на борту и т.д.). Полученная информация может отличаться в зависимости от версии прошивки WiFi модуля. Не будем на этом заострять внимание. Важно другое. Внизу мы видим набор бессмысленных символов, это означает, что скорость порта (74880 бод), которую мы выставили, подходит только для начальной загрузки модуля, чтобы увидеть нормально эту информацию, но эта скорость не подходит для нормального общения с WiFi модулем.

Чтобы подобрать правильную скорость порта, будем просто изменять скорость порта и посылать в порт (поле сверху и кнопка отправить) символы AT пока не получим ответ ОК. Если Вы попробуете прямо сейчас послать символы AT в порт на скорости 74880, то будете получать очередные один-два бессмысленных символа в ответ.

 

Попробуйте сразу выставить скорость 115200 бод и послать команду AT. Чаще всего модули прошиты на эту скорость.

Вот такую картину вы должны увидеть в вашем мониторе порта. Если все равно в ответ пришел непонятный набор символов, понижайте скорость и повторяйте отправку AT команды, пока в ответ не вернется ОК. Если вы перепробовали все скорости и не добились правильного ответа, значит вам не повезло и модуль прошит прошивкой с нестандартной скоростью. Тогда остается только перепрошить модуль нормальной прошивкой, но это тема отдельной статьи.

Надеюсь, что все хорошо и скорость правильную вы подобрали. Кстати если вы попробуете выключить и снова включить WiFi модуль, после того как подобрали правильную скорость, то уже вместо той самой первоначальной информации, которая корректно отображалась на скорости 74880 бод, вы наоборот, увидите беспорядочный набор символов, но в конце вы увидите слово «ready».  Но у нас есть возможность посмотреть эту первоначальную информацию в нормальном виде на правильной скорости, для этого необходимо программно перезагрузить модуль с помощью AT-команды AT+RST.

Чтобы узнать версию прошивки вашего WiFi модуля ESP8266-01, необходимо в монитор порта отправить команду AT+GMR и в ответ вы получите примерно следующую информацию:

 

WiFi модуль ESP8266-01 может работать как в режиме точки доступа, так и в режиме клиента. Чтобы разрешить модулю работать сразу во всех режимах, отправьте в монитор порта команду AT+CWMODE=3 и в ответ вы должны получить ОК.

Команда AT+CWLAP позволит посмотреть все WiFi точки доступа, которые видит в данный момент ваш модуль. Мой модуль, например, видит на данный момент в зоне своего покрытия всего три WiFi точки доступа. Ответ должен быть примерно таким:

 

Например, мы знаем пароль к третьей точке доступа и чтобы подключиться к ней выполняем команду AT+CWJAP=»имя»,»пароль», в моем случае эта команда выглядит AT+CWJAP=»dsl_unlim_512_home»,»11111111″, на что получаем успешный ответ:

Параметры команды записываются на флеш память WiFi модуля ESP8266-01, и если мы выключим модуль и опять его включим, он автоматически подключится к этой точке доступа. Смотрите случайно в команде не допустите пробел, иначе получите в ответ ERROR. Необходимо обратить внимание, что в последних версиях прошивки рекомендуют использовать команду AT+CWJAP_CUR, то есть команда будет выглядеть AT+CWJAP_CUR=»имя»,»пароль». Если вдруг мы забыли, к какой точке доступа подключен наш модуль, необходимо послать команду AT+CWJAP? или AT+CWJAP_CUR? и в ответ получим ту точку доступа, к которой подключен WiFi модуль на данный момент.

С подключением и первоначальной настройкой WiFi модуля ESP8266-01 мы разобрались. Модуль работает и готов для реализации ваших дальнейших проектов. Разобрать все возможные примеры работы с данным модулем в рамках одной статьи просто не возможно и мы этим займемся в следующих статьях. А для тех, кто не очень дружит с программированием, но очень хочет побыстрей начать управлять своими проектами с помощью WiFi, рекомендую познакомить с конструктором WiFi проектов RemoteXY. Этот сайт поможет вам без особого труда создать интерфейс управления для вашего мобильника или планшета и с помощью него управлять своим устройством, к которому вы подключите WiFi модуль.

 

 

Добавить комментарий

voltom.ru

Подключение и настройка Wi-Fi модуля ESP8266

Здравствуйте, я сегодня Вас познакомлю с Wi-Fi модулем ESP8266 и расскажу как его подключить к ПК и произвести первоначальную настройку с помощью AT-команд (базовая прошивка работает с AT-командами)

Возможно два варианта использования модуля:

  1. Использование платы ESP-01 совместно с доп.микроконтроллером или ПК, который будет управлять модулем по UART.
  2. Написание собственной прошивки для чипа ESP8266 и его использование как самодостаточного устройства.

Мы сегодня будем использовать вариант №1 с типом модуля ESP-01 на чипе ESP8266.

Wi-Fi модуль ESP8266 (ESP-01)

Основные характеристики Wi-Fi модуля ESP8266:

  • поддержка WiFi протоколов 802.11 b/g/n
  • Wi-Fi Direct (P2P), soft-AP
  • встроенный стек TCP/IP
  • встроенный TR переключатель, balun, LNA, усилитель мощности и соответствие сети
  • встроенный PLL, регуляторы, и система управления питанием
  • выходная мощность +20.5 дБм в режиме 802.11b
  • поддержка диверсити антенн
  • ток утечки в выключенном состоянии до 10 мкА
  • SDIO 2.0, SPI, UART
  • STBC, 1×1 MIMO, 2×1 MIMO
  • A-MPDU & A-MSDU aggregation & 0.4μs guard interval
  • пробуждение и отправка пакетов за время до 22 мс
  • потребление в режиме Standby до 1.0 мВт (DTIM3)
  • размеры: 24.5х14 мм

Контакты (пины) Wi-Fi модуля ESP8266:

Распиновка Wi-Fi модуля ESP-01

  • Vcc – питание, +3,3В (максимум 3,6В)
  • GND – общий
  • TXD – передача данных (уровень 3,3В)
  • RXD – приём данных (уровень 3,3В)
  • CH_PD – выключение модуля (низкий уровень активный, для включения модуля следует подать Vcc)
  • GPIO0 – 0 вывод общего назначения
  • GPIO2 – 2 вывод общего назначения
  • RST – сброс модуля (низкий уровень активный)

Больше информации об распиновке других модулей вы сможете посмотреть на странице Распиновка ESP8266

Где купить Wi-Fi модуль ESP8266 (ссылки на продавцов):

AliExpress.com Product – ESP8266 Serial Esp-01 WIFI Wireless Transceiver Module Send Receive LWIP AP+STA

Схема подключения Wi-Fi модуля ESP-01 к компьютеру

Для подключения платы к компьютеру я использовал USB TTL конвертер BAITE BTE13-009 , данная модель удобна тем, что там есть регулировка уровней 5в\3.3в , что очень удобно.

Подключаем все как на картинке, и в конвертере выставляем режим 3.3 вольта.  Для нормальной работы пин CH_PD (Wi-Fi модуль) должен быть подтянут к Vcc ( USB TTL конвертер).

Схема подключения ESP8266

Желательно подключить к Vcc и GND дополнительное питание от внешнего источника на 3.3в (Wi-Fi модулю питания только от конвертера не хватает)

Скачиваем и устанавливаем на компьютер приложение CoolTerm для работы с COM портом. Запускаем приложение и для настройки жмем Options

Приложение CoolTerm

потом в всплывающем окне в вкладке Serial Port выбираем наш COM порт  и скорость передачи данных.

Выбор порта и скорости (на скрине значения по умолчанию)

Некоторые модули ESP8266 работают на скорости 57600 или 9600, модули с новой прошивкой на скорости 115200 бод. После этого переходим на вкладку Terminal и в строке Terminal Mode выбираем режим работы Line Mode и жмем OK

Настройка режима работы терминала

Потом в главном окне программы жмем Connect

при удачном подключении введем в строке ввода команду “АТ” и нажмем ENTER на клавиатуре для отправки команды

в мониторе порта увидим ответ ОК, если у нас при отправке в мониторе порта будут крякозябры – измените скорость передачи данных на другую.

Проверка версии AT и SDK

Отправляем команду  AT+GMR

Проверка версии AT и GMR

Как видим, на скрине отобразилась вся информация об прошивке ESP8266

Подключение ESP8266 к точке доступа

Переведем наш Wi-Fi модуль в режим работы 1 – STA .

Отправляем команду AT+CWMODE=1 

Режим работы STA

Теперь просмотрим все доступные Wi-Fi точки доступа для подключения

Отправляем команду AT+CWLAP

Список доступных Wi-Fi точек доступа

В скобках указывается: SECURITY, SSID, RSSI, BSSID, CHANNEL (режим безопасности, имя точки доступа, уровень сигнала, MAC-адрес, канал передачи данных)
Режим безопасности SECURITY может принимать значения:
0 — OPEN, 1 — WEP, 2 — WPA-PSK, 3 — WPA2-PSK, 4 — MIXED (WPA-WPA2-PSK)

Подключаемся к нашей сети (точке доступа)

Отправляем команду AT+CWJAP =”SSID”,”PASSWORD”

В скобках указывается: SSID (имя точки доступа), PASSWORD (пароль)

Подключение к точке доступа “arduino-project.net” с паролем “11111111”

Просмотр IP и MAC адреса нашего Wi-Fi модуля ESP8266

Отправляем команду AT+CIFSR

Информация об IP и MAC адресах

Полученные строки:

  1. +CIFSR:STAIP,”192.168.0.111″    наш IP адрес
  2. +CIFSR:STAMAC,”18:fe:34:a4:e6:ae”   наш MAC адрес

Отключение от точки доступа

Отправляем команду AT+CWQAP

Отключение от точки доступа

Наш Wi-Fi модуль ESP8266 отключился от точки доступа arduino-project.net и теперь его можно подключить к другой доступной точке доступа, или перевести в другой режим работы.

Режим работы ESP8266 Soft-AP (точка доступа)

Переведем наш Wi-Fi модуль в режим работы 2 -AP .

Отправляем команду AT+CWMODE=2

Режим точки доступа

Создаем свою Wi-Fi точку доступа.

Отправляем команду AT+CWSAP=”SSID”,”PASSWORD”,CHANNEL,SECURITY

В скобках указывается: SSID, PASSWORD, CHANNEL, SECURITY (имя точки доступа, пароль, канал передачи данных и номер режима безопасности)
Режим безопасности SECURITY может принимать значения:
0 — OPEN, 1 — WEP, 2 — WPA-PSK, 3 — WPA2-PSK, 4 — MIXED (WPA-WPA2-PSK)

Создание точки доступа “test” с паролем “pass0000”

теперь открываем окно с нашими Wi-FI подключениями на компьютере, и видим что у нас появилась точка доступа test в списке доступных сетей.

Точка доступа test

теперь выбираем нашу точку доступа test, жмем подключится и вводим пароль pass0000.

успешное подключение к test

как видим, мы подключились успешно, уровень сигнала отличный

Состояние и сведения о сетевом подключении

Просмотр IP и MAC адреса нашей точки доступа

Отправляем команду AT+CIFSR

Информация об IP и MAC адресе точки доступа

Полученные строки:

  1. +CIFSR:APIP,”192.168.4.1″    IP адрес точки доступа
  2. +CIFSR:APMAC,”1a:fe:34:a4:e6:ae”  MAC адрес точки доступа

Список клиентов точки доступа

Отправляем команду AT+CWLIF

Список клиентов точки доступа test

На этом все, в следующей статье я расскажу более подробно как настроить режимы TCP-клиента и TCP-сервера

 

arduino-project.net

Микроконтроллер ESP8266: подключение и настройка

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

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

На данный момент рассматривается только два варианта применения данного модуля:

  • Использование платы в комбинации с дополнительным микроконтроллером или же компьютером, которым будет осуществляться контроль над модулем через UART.
  • Самостоятельное написание прошивки для чипа, что позволяет потом использовать его в качестве самодостаточного устройства.

Вполне естественно, что рассматривать самостоятельную прошивку в данном случае мы не будем.

Глядя на удобство использования и хорошие характеристики, многие люди среди множества микроконтроллеров отдают свое предпочтение модели ESP8266. Подключение и обновление прошивки данного устройства является предельно простым и доступным, и производится на том же железе, на котором осуществляется подключение оборудования к компьютеру. То есть так же через USB-TTL-конвертер или, если кто-то предпочитает другие варианты подключения, может осуществляться через RPi и Arduino.

Как проверить?

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

Чтобы определить работоспособность данной модели микроконтроллера, нужно просто подключить три пина:

  • CH_PD и VCC подключаются к питанию 3,3 вольт.
  • GND подключается к земле.

Если вами используется не ESP-01, а какой-либо другой модуль, и на нем уже изначально присутствует выведенный GPIO15, то в таком случае вам и его нужно будет дополнительно подключить к земле.

Если заводская прошивка запустилась нормально, то в таком случае можно увидеть красный светодиод, а затем пару раз мигнет синий. Однако стоит отметить, что красный индикатор питания имеют не все устройства серии ESP8266. Прошивка на некоторых устройствах не предусматривает загорание красного индикатора, если в модуле он отсутствует (в частности, это относится к модели ESP-12).

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

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

Как его быстро подключить?

Стандартный набор, необходимый для подключения данного модуля, включает в себя следующее:

  • сам модуль;
  • беспаечную макетную плату;
  • полноценный набор проводов мама-папа, предназначенные для макетной платы, или же специальный кабель DUPONT M-F;
  • USB-TTL конвертер на основе PL2303, FTDI или же каком-нибудь аналогичном чипе. Наиболее оптимальный вариант – если на USB-TTL адаптер также выводятся RTS и DTR, так как за счет этого можно добиться достаточно быстрой загрузки прошивки из какого-нибудь UDK, Arduino IDE или Sming, не имея даже необходимости в ручном переключении GPIO0 на землю.

Если вами используется конвертер на 5 вольт, то в таком случае нужно будет приобрести дополнительный стабилизатор питания на базе чипа 1117 или каком-либо аналогичном, а также источник питания (для стандартного 1117 вполне неплохо подойдет даже обыкновенная зарядка от смартфона на 5 вольт). Рекомендуется не использовать Arduino IDE или USB-TTL в качестве источника питания для ESP8266, а применять отдельный, так как за счет этого можно избавиться в конечном итоге от массы проблем.

Расширенный набор для обеспечения комфортной и постоянной работы с модулем предусматривает необходимость в использовании дополнительных разъемов питания, резисторах, светодиодах и DIP-переключателях. Помимо этого, можно также использовать недорогой USB монитор, который позволит вам постоянно наблюдать за количеством потребляемого тока, а также обеспечит небольшую защиту шину USB от возникновения короткого замыкания.

Что нужно делать?

В первую очередь стоит отметить тот факт, что в ESP8266 управление может быть несколько разным в зависимости от того, какая конкретно модель вами используется. Таких модулей сегодня представлено достаточно много, и первое, что будет нужно, – это провести идентификацию используемой вами модели и определиться с ее распиновкой. В данной инструкции мы будем говорить о работе с модулем ESP8266 ESP-01 V090, и если вами используется какая-то другая модель с выведенным пином GPIO15 (HSPICS, MTDO), вам нужно будет притянуть его к земле как для стандартного старта модуля, так и для использования режима прошивки.

После этого дважды убедитесь в том, что питающее напряжение для подключенного модуля составляет 3,3 вольта. Как говорилось выше, допустимый диапазон составляет от 3 до 3,6 вольт, и в случае повышения устройство выходит из строя, но при этом питающее напряжение может быть даже значительно ниже 3 вольт, которые заявлены в документах.

Если вы используете USB-TTL конвертер на 3,3 вольта, то в таком случае подключите модуль точно так же, как на левой части картинки ниже. Если же вами применяется исключительно пятивольтовый USB-TTL, то обратите внимание на правую часть рисунка. Многим может показаться, что правая схема более эффективная за счет того, что в ней применяется отдельный источник питания, но на самом деле в случае применения USB-TTL конвертера на 5 вольт крайне желательно сделать также дополнительный делитель на резисторах, чтобы обеспечить согласование трехвольтовых и пятивольтовых уровней логики, или же просто использовать модуль преобразования уровней.

Особенности подключения

На правом рисунке присутствует подключение UTXD (TX), а также URXD (RX) данного модуля к пятивольтовой логике TTL, и проведение таких процедур осуществляется только на свой страх и риск. К ESP8266 описание говорит о том, что модуль эффективно работает только с 3,3-вольтовой логикой. В преимущественном большинстве случаев даже в случае работы с пятивольтовой логикой оборудование не выходит из строя, но изредка происходят такие ситуации, поэтому подобное подключение является не рекомендованным.

Если у вас нет возможности использовать специализированный USB-TTL конвертер на 3,3 вольта, можно применить делитель на резисторах. Также стоит отметить, что на правом рисунке стабилизатор питания 1117 подключается без дополнительной обвязки, и это действительно рабочая технология, но все-таки лучше всего пользоваться схемой подключения 1117 с конденсаторной обвязкой – нужно сверить ее с ESP8266 datasheet на ваш стабилизатор или использовать уже полностью готовый модуль, основывающийся на базе 1117.

Чтобы запустить модуль, нужно разорвать цепь GPIO0-TND, после чего можно подавать питание. При этом стоит отметить, что делать все нужно именно в таком порядке, то есть сначала убедитесь в том, что GPIO0 «висит в воздухе», и только потом уже подавайте питание на CH_PD и VCC.

Как подключать правильно?

Если вы можете уделить более одного вечера тому, чтобы нормально подключить модуль ESP8266, вы можете использовать более стабильный вариант. На схеме выше вы видите вариант подключения с автоматической загрузкой прошивки.

Стоит отметить, что на изображении выше не показывается использование свободных GPIO или ADC, и их подключение будет непосредственно зависеть от того, что конкретно вы хотите реализовать, но если же вы захотите обеспечить стабильность, не забывайте притягивать все GPIO к питанию, а ADC к земле с использованием подтягивающих резисторов.

Резисторы на 10k при необходимости можно заменить на какие-либо другие в диапазоне от 4,7k до 50k, исключая GPIO15, так как его номинал должен быть не более 10k. Номинал конденсатора, сглаживающего высокочастотные пульсации, может быть несколько иным.

Соединение RESET и GPIO16 через использование резистора deep sleep на 470 Ом может стать необходимым при использовании соответствующего режима, так как для того, чтобы выйти из режима глубокого сна, модуль осуществляет полную перезагрузку, осуществляя подачу низкого уровня на GPIO16. При отсутствии данного соединения режим глубокого сна для вашего модуля будет длиться вечно.

На первый взгляд, может показаться, что GPIO0, GPIO1 (TX), GPIO2, GPIO3 (RX) и GPIO15 заняты, поэтому использовать их для своих целей не получится, но на самом деле это далеко не так. Достаточно высокий уровень на GPIO0 и GPIO2, а также низкий на GPIO15 могут потребоваться только для первоначального запуска модуля, а в дальнейшем уже можно применять их на свое усмотрение. Единственное, что стоит отметить, – не забывайте обеспечивать нужные уровни до того, как осуществлять полную перезагрузку вашего оборудования.

Также можно использовать TX, RX в качестве альтернативы GPIO1 и GPIO3, но при этом не стоит забывать о том, что после старта модуля каждая прошивка начинает «дергать» ТХ, параллельно занимаясь отправкой отладочной информации в UART0 со скоростью 74480, но, после того как будет проведена успешная загрузка, их можно использовать не только в качестве UART0 для того, чтобы сделать обмен данных с другим устройством, но и в качестве стандартных GPIO.

Для модулей, у которых присутствует небольшое количество разведенных пинов (к примеру, ESP-01), не требуется подключения неразведенных пинов, то есть на ESP-01 разводятся только: GND, CH_PD, VCC, GPIO0, GPIO2 и RESET, и именно их вам нужно будет подтягивать. Нет никакой потребности в том, чтобы припаиваться непосредственно к микросхеме ESP8266EX, а затем притягивать неразведенные пины, если только это вам действительно нужно.

Такие схемы подключения использовались после большого количества экспериментов, проведенных квалифицированными специалистами и собраны из множества различной информации. При этом стоит отметить, что даже такие схемы нельзя считать идеальными, так как можно использовать целый ряд других, не менее эффективных вариантов.

Подключение через Arduino

Если у вас по какой-то причине не оказалось USB-TTL конвертера на 3,3 вольт, то в таком случае модуль WiFi ESP8266 можно подключить через Arduino со встроенным конвертером. Здесь вам нужно будет сначала обратить свое внимание на три основных элемента:

  • При использовании в работе с ESP8266 Arduino Reset изначально подключен к GND, чтобы исключить возможность запуска микроконтроллера, и в данном виде он использовался в качестве прозрачного USB-TTL конвертера.
  • RX и TX подключались не «на перекрест», а напрямую – RX-RX (зеленый), ТХ-ТХ (желтый).
  • Все остальное подключается точно так же, как указано выше.

Что нужно учитывать

В данной схеме также требуется согласование уровней TTL 5 вольт Arduino, а также 3,3 вольта на ESP8266, но при этом неплохо может функционировать и так.

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

Также есть другая схема подключения ESP8266 и Arduino, в которой используется SoftSerial. Так как для библиотеки SoftSerial скорость порта, равная 115200, имеет слишком высокое значение и не может гарантировать стабильную работу, такой способ подключения использовать не рекомендуется, хотя есть некоторые случаи, в которых все работает вполне стабильно.

Подключение через RaspberryPi

Если вы не располагаете вообще никакими USB-TTL конвертерами, то в таком случае можно использовать RaspberryPi. В данном случае для ESP8266 программирование и подключение осуществляется практически идентично, но при этом здесь все не так удобно, а дополнительно нужно будет использовать также стабилизатор питания на 3,3 вольта.

Для начала RX, TX и GND нашего устройства подключаем к ESP8266, а GND и VCC берем со стабилизированного источника питания, рассчитанного на 3,3 вольта. Здесь отдельное внимание следует уделить тому, что нужно провести соединение всех GND устройств, то есть стабилизатора RaspberryPi и ESP8266. Если же встроенный в вашу модель устройства стабилизатор может выдерживать до 300 миллиампер дополнительной нагрузки, то в таком случае подключение ESP8266 осуществляется вполне нормально, но это все делается только на свой страх и риск.

Настраиваем параметры

Когда вы разобрались, как подключить ESP8266, нужно убедиться в том, что драйвера к вашим устройствам установлены корректно, вследствие чего в системе был добавлен новый последовательный виртуальный порт. Здесь нужно будет использовать программу – терминал последовательного порта. В принципе, утилиту можно подобрать любую на свой вкус, но при этом вы должны правильно понимать, что любая команда, которая будет отправляться вами в последовательный порт, в конце должна иметь завершающие символы CR+LF.

Достаточно широким распространением пользуются утилиты CoolTerm и ESPlorer, причем последняя позволяет не вводить ESP8266 AT команды самостоятельно, и при этом дает проще работать с lua скриптами под NodeMCU, поэтому ее можно вполне использовать в качестве стандартного терминала.

Для нормального подключения к последовательному порту придется проделать немало работы, так как прошивки для ESP8266 в большинстве своем являются разнообразными и активация может проводиться на разных скоростях. Чтобы определиться с наиболее оптимальным вариантом, вам нужно будет перебрать три основных варианта: 9600, 57600 и 115200.

Как перебирать?

Для начала подключитесь в терминальной программе к последовательному виртуальному порту, выставляя параметры 9600 8N1, после чего проводите полную перезагрузку модуля, отключая CH_PD (chip enable) от питания, после чего снова активируйте его, передергивая CH_PD. Также можно провести кратковременное замыкание RESET на землю для того, чтобы перезагрузить модуль, и наблюдать за данными в терминале.

В первую очередь светодиоды устройства должны отображаться точно так же, как это показано в описании процедуры проверки. Также вы должны наблюдать в терминале набор различных символов, который будет заканчиваться строкой ready, а если ее нет, проводится переподключение к терминалу на другой скорости с последующей перезагрузкой модуля.

Когда вы увидите на одном из вариантов скорости данную строку, можно считать модуль подготовленным к работе.

Как обновлять прошивку?

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

Для начала скачивайте новую версию прошивки с официального сайта, а также скачивайте специальную утилиту для прошивки. Здесь отдельное внимание следует уделить тому, какая операционная система установлена на той машине, с которой работает ESP8266. Подключение устройства лучше всего проводить к системам старше Windows 7.

Для стандартных ОС Windows вполне оптимально будет использовать программу под названием XTCOM UTIL, которая особенно удобной в работе, если прошивка состоит только из одного файла. Лучшим мультиплатформенным вариантом стоит назвать утилиту esptool, которая, правда, требует python, а также необходимость указания параметров через командную строку. Помимо этого, в ESP8266 подключение основных функций позволяет удобно сделать программа Flash Download Tool, которая имеет достаточно большое количество настроек, а также удобную технологию установки прошивок из нескольких файлов.

Далее отключайте свою терминальную программу от последовательного порта, а также полностью отключайте CH_PD от питания, присоединяйте GPIO0 модуля к GND, и после этого CH_PD можно будет вернуть обратно. В конечном итоге просто запускайте программу для модульной прошивки и загружайте ее в ESP8266 реле.

В преимущественном большинстве случаев прошивка загружается в модуль со скоростью в районе 115200, но при этом специальный режим предусматривает автоматическое распределение скорости, вследствие чего прошивка может проводиться на скорости более 9600, обновляя доступные функции ESP8266. Arduino использовался для подключения или USB-TTL – здесь не играет особой роли, и здесь предельная скорость уже зависит от длины проводов, используемого конвертера и целого ряда других факторов.

fb.ru

Подключение и прошивка esp-01 / esp8266 / Электроника (современная)

моуль esp-01
Схема правильного подключения модуля esp-01 для программирования и прошивки.

прошивка модуля производится переводом в режим программирования, для этого зажимает кнопку FLASH затем не отпуская кратковременно нажимаем на кнопку RESET и отпускаем FLASH.
Модуль переведён в режим программирования.
В терминале в этот момент можно увидеть
ets Jan 8 2013,rst cause:2, boot mode:(1,6)
boot mode:(1,6) — перезагрузка по RESET в режим программирования
boot mode:(1,7) — перезагрузка по питанию в режим программирования — что не совсем правильно.

Для прошивки буду использовать программу NODEMCU FIRMWARE PROGRAMMER
(К топику будет приложен архив с программой)
Распаковываем архив и запускаем в моём случае 32 разрядную версию программы\Win32\Release\ESP8266Flasher.exe
Настраиваем под модуль, в моём случае это 1 Мегабайт флэш памяти или 8 Мегабит.


Первым делом требуется стереть память пустым файлом в 1 Мб.
Это необязательный пункт. Стирание можно пропустить и перейти к прошивке.
У кого память больше или меньше — требуется пустой файл соответствующего размера.
Далее определяемся какая нужна прошивка!
Можно использовать как готовые прошивки на NODEMCU так и с конструктора собрать с нужными себе модулями.
Например одна из старых проверенных NODEMCU
nodemcu_integer_0.9.6-dev_20150704.zip
Конструктор wifi-iot.com/
Конструктор nodemcu-build.com/
или качаем последнюю

Проблемы при прошивке
Если модуль esp8266 не прошивается, проверьте подтяжки и корректность замыкания на GND GPIO0. А также не перепутаны ли RX TX.
В терминале можно проверить чтобы выдавалось boot mode:(1,6) или boot mode:(1,7).

Если после неудачной прошивке модуль не работает, пробуйте стереть память пустым файлом бланк размером с вашу память.

Если модуль после успешной прошивки не работает и в порт шлёт без конца мусор(может мигать светодиод передачи данных), случается это при прошивке последних сборок Nodemcu то дополнительно потребуется прошить файл esp_init_data_default.bin в область памяти в зависимости от чипа памяти.
С сайта nodemcu взята информация по памяти.
0x7c000 для 512 kB, модули такие как ESP-01,03,07
0xfc000 for 1 MB, модули типа ESP8285, PSF-A85 но и некоторые разновидности esp-01,01s
0x1fc000 for 2 MB
0x3fc000 for 4 MB, тип модуля ESP-12E, NodeMCU devkit 1.0, WeMos D1 mini идр

Если ничего не помогает, то пишите…

Добавлю официальнаг группа производителя оборудования twitter.com/espressifsystem

Все файлы которые нужно скачать для прошивки ESP8266 скачать здесь

radio.obninskiy.net/uploads/files/01/00/01/2016/10/12/nodemcu-flasher-ESP8266Flasher.exe.zip
radio.obninskiy.net/uploads/files/01/00/01/2016/10/12/0x00000_blank1m.zip
radio.obninskiy.net/uploads/files/01/00/01/2016/10/12/0x00000_blank512k.zip
radio.obninskiy.net/uploads/files/01/00/01/2016/10/12/nodemcu_integer_0.9.6-dev_20150704.zip
radio.obninskiy.net/uploads/files/01/00/01/2016/10/12/esp_init_data_default.zip

radio.obninskiy.net

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *