Модуль esp8266 подключен USB-TTL на 3,3 вольта
ESP8266 — быстрый старт для начинающих
Как проверить ESP8266
Как быстро подключить ESP8266
Как правильно подключить ESP8266
Как подключить ESP8266 через Arduino
Как подключить ESP8266 через RaspberryPi
Как настроить 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 входит:
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 больше, чем один вечер, то вам потребуется вариант подключения, обеспечивающий более высокую стабильность. Ниже приводятся две схемы подключения: с поддержкой автозагрузки прошивки из 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. Также в реальных проектах рекомендую уделить особое внимание питанию.
Если у вас под рукой не оказалось 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)
Да, можно и «из пушки по воробьям», если под рукой нет вообще никакого USB-TTL конвертера. Подключение через малинку аналогично Arduino, но не такое удобное, т.к. дополнительно потребуется стабилизатор питания на 3,3 вольта. RX, TX, GND малинки подключаем к ESP8266, VCC и GND берем со стабилизированного источника питания на 3,3 вольта. Обратите внимание на то, что необходимо соединить GND всех устройств: малинки, стабилизатора и ESP8266. Брать 3,3 вольта питания с малинки для ESP8266 я лично не пробовал, поэтому вам предлагать такой вариант не буду. Если встроенный в вашу версию малины стабилизатор держит до 300 миллиампер дополнительной нагрузки, то подключение 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 к компьютеру, т.е. тоже через 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 — это высокоинтегрированный, микроконтроллер с интерфейсами 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 — 12ESP-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-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, переходим в Tools ⇨ Config 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,13 — id соединения, длина пакета.
В терминале появится символ ввода >
Введите и отправьте строку «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
И таки да, модуль может зависать (прошивка пока ещё «сыровата»), помогает обесточивание.
Обсудить на форуме…
istarik.ru
Забегая наперёд, скажу, что будет вторая статья, уже более практическая, по теме прошивки и программирования модуля 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. Так как именно такой вид связи может позволить комфортно создать единую сеть для ваших умных домашних устройств и управлять ими, например, с мобильного телефона, планшета или компьютера, то есть другими словами создать самый настоящий умный дом, который обойдется вам в десятки раз дешевле, чем покупать готовые решения в магазине. Применение 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 необходимый архив с библиотеками, примерами и платами ESP, который впоследствии позволит нам заливать скетчи прямо в микроконтроллер модуля ESP8266-01, менять прошивку и т.д. В рамках этой статьи нам скорей всего эти настройки и не понадобятся, но мне кажется, что после того, как мы разобрались с подключением модуля, порядок действий будет правильным, если мы сразу скачаем все необходимое для работы с Arduino IDE. Тут все в принципе просто.
Запускаем программу Arduino IDE и переходим в меню «Файл» — «Настройки»
В поле «Дополнительные ссылки для Менеджера плат» вставляем ссылку http://arduino.esp8266.com/stable/package_esp8266com_index.json и нажимаем кнопку «ОК».
Далее идем в меню «Инструменты» — «Менеджер плат».
В появившемся окне в верхнем поле пишем «esp8266». В итоге в окне у нас останется только нужная прошивка. При нажатии на прошивку появится кнопка «Установка». Нажимаем на кнопку «Установка» и ждем, пока все установится. Архив достаточно большой, около 150 мегабайт, так что придется подождать.
После окончания установки. Перезагружаем Arduino IDE и видим, как появились новые платы ESP в меню «Инструменты» — «Платы». На этом всё. С настройкой Arduino IDE мы закончили. Пока нам эти настройки не нужны, но в дальнейшей работе нам без них не обойтись.
Всё мы подключили и подготовились, теперь можем начать разбираться с управлением. На самом деле, сейчас будет продолжение проверки и настройки модуля с помощью 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 и расскажу как его подключить к ПК и произвести первоначальную настройку с помощью AT-команд (базовая прошивка работает с AT-командами)
Возможно два варианта использования модуля:
Мы сегодня будем использовать вариант №1 с типом модуля ESP-01 на чипе ESP8266.
Wi-Fi модуль ESP8266 (ESP-01)
Распиновка Wi-Fi модуля ESP-01
Больше информации об распиновке других модулей вы сможете посмотреть на странице Распиновка ESP8266
AliExpress.com Product – ESP8266 Serial Esp-01 WIFI Wireless Transceiver Module Send Receive LWIP AP+STA
Для подключения платы к компьютеру я использовал 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+GMR
Проверка версии AT и GMR
Как видим, на скрине отобразилась вся информация об прошивке ESP8266
Отправляем команду AT+CWMODE=1
Режим работы STA
Отправляем команду 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”
Отправляем команду AT+CIFSR
Информация об IP и MAC адресах
Полученные строки:
Отправляем команду AT+CWQAP
Отключение от точки доступа
Наш Wi-Fi модуль ESP8266 отключился от точки доступа arduino-project.net и теперь его можно подключить к другой доступной точке доступа, или перевести в другой режим работы.
Отправляем команду AT+CWMODE=2
Режим точки доступа
Отправляем команду 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
как видим, мы подключились успешно, уровень сигнала отличный
Состояние и сведения о сетевом подключении
Отправляем команду AT+CIFSR
Информация об IP и MAC адресе точки доступа
Полученные строки:
Отправляем команду AT+CWLIF
Список клиентов точки доступа test
На этом все, в следующей статье я расскажу более подробно как настроить режимы TCP-клиента и TCP-сервера …
arduino-project.net
Многие пользователи уже успели обратить свое внимание на чип ESP8266-12, выпущенный компанией Espressif. Стоимость его значительно дешевле по сравнению со стандартной платой Bluetooth-адаптера, да и при меньших габаритах он отличается значительно более широкими возможностями. Теперь все домашние любители получили возможность работы в сети Wi-Fi сразу в двух режимах, то есть подключать свой компьютер к каким-либо точкам доступа или же включать его в качестве такой точки.
С другой стороны, нужно правильно понимать, что такие платы представляют собой не просто шилды, предназначенные только для связи по Wi-Fi. Сам по себе ESP8266 представляет собой микроконтроллер, имеющий собственные UART, GPIO и SPI-интерфейсы, то есть его можно использовать как абсолютно автономное оборудование. Многие после выхода данного чипа назвали его самой настоящей революцией, и с течением времени такие устройства начнут встраиваться даже в самые простые виды техники, но пока устройство является сравнительно новым и какой-либо стабильной прошивки на него нет. Многие специалисты по всему миру стараются изобретать собственные прошивки, ведь заливать их в плату на самом деле не составляет особого труда, но несмотря на различные трудности, устройство уже сейчас можно назвать вполне пригодным к работе.
На данный момент рассматривается только два варианта применения данного модуля:
Вполне естественно, что рассматривать самостоятельную прошивку в данном случае мы не будем.
Глядя на удобство использования и хорошие характеристики, многие люди среди множества микроконтроллеров отдают свое предпочтение модели ESP8266. Подключение и обновление прошивки данного устройства является предельно простым и доступным, и производится на том же железе, на котором осуществляется подключение оборудования к компьютеру. То есть так же через USB-TTL-конвертер или, если кто-то предпочитает другие варианты подключения, может осуществляться через RPi и Arduino.
Для того чтобы проверить работоспособность только что купленного устройства, вам нужно будет использовать специальный источник стабилизированного напряжения, рассчитанный на 3,3 вольта. Сразу стоит отметить, что реальный диапазон напряжения питания данного модуля составляет от 3 до 3,6 вольт, а подача повышенного напряжения сразу приведет к тому, что вы просто-напросто выведете из строя свой ESP8266. Прошивка и прочее программное обеспечение после подобной ситуации может начать некорректно работать, и вам уже нужно будет ремонтировать устройство или как-то его исправлять.
Чтобы определить работоспособность данной модели микроконтроллера, нужно просто подключить три пина:
Если вами используется не ESP-01, а какой-либо другой модуль, и на нем уже изначально присутствует выведенный GPIO15, то в таком случае вам и его нужно будет дополнительно подключить к земле.
Если заводская прошивка запустилась нормально, то в таком случае можно увидеть красный светодиод, а затем пару раз мигнет синий. Однако стоит отметить, что красный индикатор питания имеют не все устройства серии ESP8266. Прошивка на некоторых устройствах не предусматривает загорание красного индикатора, если в модуле он отсутствует (в частности, это относится к модели ESP-12).
После подключения в вашей беспроводной сети активируется новая точка доступа, которая будет называться ESP_XXXX, и ее можно будет обнаружить с любого устройства, имеющего доступ к Wi-Fi. В данном случае название точки доступа непосредственно зависит от производителя используемой вами прошивки, и поэтому может быть каким-нибудь другим.
Если точка действительно появляется, вы можете продолжать эксперименты, в противном случае нужно будет проводить повторную проверку питания, а также корректность подключения GND и CH_PD, а если все подключено верно, то, скорее всего, вы все-таки стараетесь использовать сломанный модуль или же на нем просто-напросто установлена прошивка с нестандартными настройками.
Стандартный набор, необходимый для подключения данного модуля, включает в себя следующее:
Если вами используется конвертер на 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, а затем притягивать неразведенные пины, если только это вам действительно нужно.
Такие схемы подключения использовались после большого количества экспериментов, проведенных квалифицированными специалистами и собраны из множества различной информации. При этом стоит отметить, что даже такие схемы нельзя считать идеальными, так как можно использовать целый ряд других, не менее эффективных вариантов.
Если у вас по какой-то причине не оказалось USB-TTL конвертера на 3,3 вольт, то в таком случае модуль WiFi ESP8266 можно подключить через Arduino со встроенным конвертером. Здесь вам нужно будет сначала обратить свое внимание на три основных элемента:
В данной схеме также требуется согласование уровней TTL 5 вольт Arduino, а также 3,3 вольта на ESP8266, но при этом неплохо может функционировать и так.
При подключении к ESP8266 Arduino может оснащаться стабилизатором питания, не выдерживающим ток, который требуется для ESP8266, вследствие чего, перед тем как его активировать, нужно свериться с даташипом на тот, который используется у вас. Не пробуйте подключать какие-то другие энергопотребляющие элементы вместе с ESP8266, так как это может привести к тому, что встроенный в Arduino стабилизатор питания просто выйдет из строя.
Также есть другая схема подключения ESP8266 и Arduino, в которой используется SoftSerial. Так как для библиотеки SoftSerial скорость порта, равная 115200, имеет слишком высокое значение и не может гарантировать стабильную работу, такой способ подключения использовать не рекомендуется, хотя есть некоторые случаи, в которых все работает вполне стабильно.
Если вы не располагаете вообще никакими 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
ets Jan 8 2013,rst cause:2, boot mode:(1,6)boot mode:(1,6) — перезагрузка по RESET в режим программирования
Для прошивки буду использовать программу 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/
или качаем последнюю
Если после неудачной прошивке модуль не работает, пробуйте стереть память пустым файлом бланк размером с вашу память.
Если модуль после успешной прошивки не работает и в порт шлёт без конца мусор(может мигать светодиод передачи данных), случается это при прошивке последних сборок 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
radio.obninskiy.net