Модуль 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 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 в среде разработки 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ПоделкинЦ.
Модуль ESP8266 является сложным техническим устройством, к тому же работающим в СВЧ диапазоне, поэтому подключение его вызывает некоторые трудности, особенно у неподготовленных пользователей. В этом разделе будет рассмотрено физическое подключение этих модулей и их первый запуск.
Если вы обладатель модуля со встроенным USB-UART интерфейсом, такого, как WeMos D1, D1 mini, NodeMCU или подобного, то ваша задача значительно упрощается — всю сложную техническую работу по обеспечению работоспособности модуля уже выполнили за вас инженеры компании, выпустившей модуль. Вы просто подключаете его и работаете.
Здесь же мы рассмотрим подключение «голого» модуля ESP8266.
В тестовой конфигурации использовался модуль ESP-12-F QIO L4, но, в принципе, дистрибутив может работать на любом модуле семейства ESP8266 (с достаточным объёмом памяти). Рассмотрим подробно его подключение.
Модуль ESP8266 может подключаться к компьютеру двумя способами: при помощи USB-UART адаптера или при помощи платы Arduino качестве этого адаптера. В тестовой конфигурации использовалось подключение при помощи Arduino Uno. Именно этот способ мы и рассмотрим (как отлично себя зарекомендовавший).
Обратите внимание. Arduino Uno работает от напряжения 5 В, а модуль ESP8266 — от 3.3 В, но в тестовой конфигурации их соединение работало отлично. Если вы опасаетесь за работоспособность своего модуля ESP8266 при таком подключении, то вам лучше воспользоваться схемой работы с USB-UART адаптером на 3. 3 В (с соответствующим источником питания).
Подключение Arduino Uno в качестве USB-UART переходника элементарно: вывод RX (0) платы Arduino Uno соединяются с выводом RX модуля ESP8266, а вывод TX (1) — с выводом TX модуля. То есть осуществляется «прямое» соединение.
Вывод «Reset» Arduino Uno соединяется с «землёй». Это всё, остаётся только соединить общие провода платы и модуля и подключить модуль ESP8266 к источнику питания 3,3 В, а плату Arduino Uno — к USB порту компьютера.
Для нормальной работы модулю ESP8266 требуется питание 3.3 вольта и ток 300 мА. Особое внимание следует уделить качеству источника питания. Если ваш источник питания недостаточно качественный (пульсации, просадки напряжения и т. п.), то работа модуля и всей системы Arduino Mega Server будет ненадёжной.
Вы можете долго искать, почему ваш сервер перегружается или работает с ошибками, а дело будет просто в некачественном питании.
Это, можно сказать, ключевой момент магии ESP8266. Требуется подключить всего несколько резисторов, но от правильности их подключения зависит вся работа модуля. И этому моменту настоятельно рекомендуется уделить повышенное внимание. Одна незначительная ошибка и ваш модуль либо вообще не будет работать, либо будет постоянно доставлять вам неприятности нестабильной работой.
Вот схема, проверенная в тестовой конфигурации и отлично себя зарекомендовавшая. Конденсаторы, отмеченные пунктиром, необязательны к установке, но делают работу схемы более надёжной. Их номиналы — неполярный керамический 0.1 мкФ и электролитический 10мкФ
Для ещё большей надёжности и стабильности работы рекомендуется «подтянуть» неподключённые выводы к напряжению питания через резисторы номиналом 10К.
Для управления модулем ESP8266 в «ручном режиме» требуется подключить две кнопки: для программирования и перезапуска модуля. Процедура заливки скетча очень проста — вы нажимаете на кнопку PRG и, удерживая её, нажимаете и отпускаете кнопку RESET (после этого первую кнопку тоже можно отпустить), всё, можно нажимать кнопку заливки скетча в Arduino IDE.
Обратите внимание. Система Arduino Mega Server непрерывно развивается и в код проекта постоянно вносятся изменения и улучшения, поэтому, описание и документация может не соответствовать вашей конкретной версии системы. Последняя правка этой страницы относится к 0.15 версии системы.
Если вы планируете приобрести ESP8266, то мы рекомендуем вам присмотреться к ESP-12 или к их различным модификациям в сегодняшних реалиях покупать ESP8266-01 не имеет смысла
Тем не менее у меня уже были модули ESP8266-01 я их покупал давно, когда не знал для чего они мне и что с ними делать.
Выглядят они так
Технические характеристики соответствуют общим характеристикам чипа ESP8266, но на некоторых моментах я бы хотел заострить внимание:
(!) Подача повышенного напряжения питания на модуль гарантированно приведет к выходу ESP8266 из строя.
При питании от 5 вольт можно использовать ams1117-3.3 , например вот такую маленькую плату.
Если для вывода используем все доступные 4 пина (GPIO0-GPIO3) то помним при старте модуля:
Если низкий уровень (LOW, ноль) на:
У ESP-01 всего 8 контактов:
Чтобы проверить ESP8266 ESP-01 достаточно подключить три пина:
(Если у вас не ESP-01, а другой модуль и на нем выведен GPIO15, то дополнительно еще потребуется подключить GPIO15 к земле)
Распиновка ESP-01
Еще табличка крупно
Схема подключения модуля ESP-12, но все верно и для ESP-01
Подключения модуля ESP-12Подключения модуля ESP-12
Вот такая табличка с подключением модуля ESP-01, но верно и для других модулей в частности для ESP-12
Но обычно ничего не подтянуто, а соединено на прямую, вот так.
Но это все теория перейдем к практике.
Для соединения с компьютером и прошивки модулей я использую адаптеры на базе чипа Ch440
А этот модуль предназначен именно для ESP -01, имеет специальную посадочную площадку именно для этого модуля.
Но этот модуль нужно доработать для обеспечение прошивки т. е. во время прошивки соединить GPIO0 с землей, во время обычной работы отсоединить от земли (см. выше таблицы) это достигается вот такой перемычкой
Доработка модуляДоработка модуля
Модуль с ESP -01 с адаптером на CH 340 выглядит так
Статьи по теме:
Общий обзор на модули ESP8266
Общий обзор ESP8266-12
Семейство плат ESP8266 WeMos NodeMcu, D1, D1 mini
Возможно Вас заинтересует
Обзор среды разработки Ардуино IDE, первое знакомство.
Делаем ESP по настоящему умной (прошивка «ESP Easy» первое знакомство, ESP Easy Flasher или как прошить ESPшку)
Работа с прошивкой ESP Easy, основной раздел (Main) и системная информация (System Info)
Прошивка ESP Easy, настройка модуля, раздел Конфигурация (Config)
————————————————————————————————- Подписывайтесь на наш канал TehnoZet-2, нажимайте кнопку
там много чего интересного! Мы только развиваемся.
Понравилась статья, хотите продолжения — ставьте лайки, жмите палец вверх
Наши сайты
КВ — Контроллеры Взаимодействия
Умный Дом, модули умного дома, видеонаблюдение
Актуальное программное обеспечение
Enters deep sleep mode, wakes up when timed out.
Theoretical maximum deep sleep duration can be found with . «Max deep sleep for ESP8266» claims the realistic maximum be around 3.5h.
Caution
This function can only be used in the condition that esp8266 PIN32(RST) and PIN8(XPD_DCDC aka GPIO16) are connected together. Using sleep(0) will set no wake up timer, connect a GPIO to pin RST, the chip will wake up by a falling-edge on pin RST.
number (integer) or , sleep time in micro second. If , it will sleep forever. If , will not set sleep time.
number (integer) or . If , it will use last alive setting as default option.
Now, let’s move on to the interesting stuff!
There are a variety of development platforms that can be equipped to program the ESP8266. You can go with Espruino – JavaScript SDK and firmware closely emulating Node.js, or use Mongoose OS – An operating system for IoT devices (recommended platform by Espressif Systems and Google Cloud IoT) or use a software development kit (SDK) provided by Espressif or one of the platforms listed on .
Fortunately, the amazing ESP8266 community took the IDE selection a step further by creating an Arduino add-on. If you’re just getting started programming the ESP8266, this is the environment we recommend beginning with, and the one we’ll document in this tutorial.
This ESP8266 add-on for Arduino is based on the amazing work by Ivan Grokhotkov and the rest of the ESP8266 community. Check out the ESP8266 Arduino GitHub repository for more information.
Вариант для сайта — Принципиальная схема в формате pdf доступна для скачивания в секции загрузок, оригинал проекта доступен в онлайн среде проектирования электроники EasyEDA.
Как я заметил в первой части статьи, схемотехника устройства на NodeMCU несколько отличается от подобного устройства на Arduino (Рисунок 13). Во-первых, это обусловлено тем, что номинальное напряжение питания СнК ESP8266 равно 3.3 В. Во-вторых, техническая документация на СнК, практические руководства и тематические форумы не дают однозначного ответа на вопрос о совместимости Wi-Fi модулей на ESP8266 с 5-вольтовыми устройствами.
Рисунок 13. | Принципиальная схема контроллера подсветки (версия на NodeMCU). |
Кроме того, в модулях типа NodeMCU для питания СнК установлена микросхема линейного регулятора напряжения 3.3 В (обычно из серии AMS1117-3. 3), для которой максимальное входное напряжение составляет 15 В (в некоторых модификациях до 18 В). В этом случае модуль NodeMCU можно было запитать непосредственно от блока питания 12 В. Однако, по ряду очевидных причин я решил установить дополнительный регулятор напряжения 5 В с соответствующим фильтрующими конденсаторами. Напряжение питания 5 В с выхода регулятора подается на вход Vin Wi-Fi модуля.
Cхема ШИМ управления светодиодной лентой не изменилась. Затвор силового MOSFET подключен к порту D5 NodeMCU.
Диапазон входных напряжений интегрированного в СнК ESP8266 аналого-цифрового преобразователя составляет 0 – 1 В, поэтому немного изменена схема подключения датчика освещенности (фоторезистора). В зависимости от типа используемого фоторезистора, возможно, потребуется включить в измерительную цепь дополнительный резистивный делитель. В моем случае (фоторезистор VT93N1 номиналом 12 кОм) в делителе напряжения нет необходимости – даже в условиях высокой яркости напряжение на входе АЦП не достигало 0. 9 В, поэтому резистор R7 не устанавливается, а вместо R6 ставится перемычка (SMD резистор 0 Ом).
Датчик температуры DS18B20 подключается к разъему P3. Напряжение питания 3.3 В для датчика температуры поступает с модуля NodeMCU, сигнальный вывод датчика с подтягивающим резистором R5 подключается к порту D3.
Разъем P4 и контакт 3 разъема P3 предусмотрены для возможности дальнейшего расширения функционала.
Для подключения датчика движения используется аналогичный сдвоенный разъем TB1-TB2. Выходная линия датчика движения подключается к порту D2 через схему согласования логических уровней (5 В/3.3 В), выполненную на резисторе R3 и диоде Шоттки D1. При текущем способе подключения датчика движения (как и в случае с контроллером на Arduino) схема согласования логических уровней не нужна, и ее можно исключить. Однако, в зависимости от типа используемого датчика движения и способа его подключения, указанная цепь может оказаться обязательной, так как СнК ESP8266 может выйти из строя при работе с 5-вольтовыми сигналами.
Замечу, что примененная схема согласования логических уровней является односторонней. Желательно в схеме использовать диоды Шоттки – они имеют низкое прямое падение напряжения.
To make sure ESP8266 Arduino core and the NodeMCU are properly set up, we’ll upload the simplest sketch of all – The Blink!
We will use the on-board LED for this test. As mentioned earlier in this tutorial, D0 pin of the board is connected to on-board Blue LED & is user programmable. Perfect!
Before we get to uploading sketch & playing with LED, we need to make sure that the board is selected properly in Arduino IDE. Open Arduino IDE and select NodeMCU 0.9 (ESP-12 Module) option under your Arduino IDE > Tools > Board menu.
Now, plug your ESP8266 NodeMCU into your computer via micro-B USB cable. Once the board is plugged in, it should be assigned a unique COM port. On Windows machines, this will be something like COM#, and on Mac/Linux computers it will come in the form of /dev/tty. usbserial-XXXXXX. Select this serial port under the Arduino IDE > Tools > Port menu. Also select the Upload Speed : 115200
Warning:
More attention needs to be given to selecting board, choosing COM port and selecting Upload speed. You may get espcomm_upload_mem error while uploading new sketches, if failed to do so.
Once you are done, try the example sketch below.
Once the code is uploaded, LED will start blinking. You may need to tap the RST button to get your ESP8266 to begin running the sketch.
разработан в EasyEDA; Gerber-файлы доступны для загрузки (Рисунок 14). Компоненты и разъемы старался расположить так же как на плате для Arduino версии контроллера, однако размеры платы получились чуть больше. также можно оналйн при помощи GerberViewer.
На верхнем и нижнем слое выполнена заливка Copper Area (GND, земля) и шелкография. Как и в случае с платами для Arduino-версии контроллера, минимальный заказ (5 шт. ) на изготовление печатных плат был выполнен в кратчайшие сроки, но в итоге я получил 6 плат.
Рисунок 14. | Проект печатной платы контроллера на NodeMCU в среде EasyEDA. |
Все компоненты устанавливаются свободно, при этом я даже не проверял размеры и диаметры отверстий в используемых библиотечных компонентах. Полученный комплект печатных плат показан на Рисунке 15. Плата с установленными компонентами изображена на Рисунке 16.
Рисунок 15. | Комплект печатных плат, изготовленных в EasyEDA. |
Рисунок 16. | Вид платы контроллера на NodeMCU с установленными компонентами. |
The following sections explain some of the options you have if you want to build your own NodeMCU firmware.
Disable modules you won’t be using to reduce firmware size and free up some RAM. The ESP8266 is quite limited in available RAM and running out of memory can cause a system panic. The default configuration is designed to run on all ESP modules including the 512 KB modules like ESP-01 and only includes general purpose interface modules which require at most two GPIO pins.
Edit and comment-out the statement for modules you don’t need. Example:
To enable TLS support edit and uncomment the following flag:
The complete configuration is stored in . This is the file to edit if you build your own firmware and want to change mbed TLS behavior. See the documentation for details.
The initial baud rate at boot time is 115200bps. You can change this by
editing in :
Note that, by default, the firmware runs an auto-baudrate detection algorithm so that typing a few characters at boot time will cause
the firmware to lock onto that baud rate (between 1200 and 230400).
By default a build will be generated supporting floating-point variables.
To reduce memory size an integer build can be created. You can change this
either by uncommenting in :
OR by overriding this with the command as it’s :
Identify your firmware builds by setting the environment variable .
You may also edit . The variable will be included in .
Display drivers and embedded fonts are compiled into the firmware image based on the settings in and . See the for details.
Self-contained NodeMCU flasher with GUI based on Python, esptool.py (see below) and wxPython. A runnable .exe is available for Windows and a .dmg for macOS.
No installation required on Windows and macOS! Instructions how to run it on other platforms are available on the project site.
Note that this tool is not an official NodeMCU offering. It’s maintained by a NodeMCU team member as an individual, though.
Да, можно и «из пушки по воробьям», если под рукой нет вообще никакого USB-TTL конвертера. Подключение через малинку аналогично Arduino, но не такое удобное, т.к. дополнительно потребуется стабилизатор питания на 3,3 вольта. RX, TX, GND малинки подключаем к ESP8266, VCC и GND берем со стабилизированного источника питания на 3,3 вольта
Обратите внимание на то, что необходимо соединить GND всех устройств: малинки, стабилизатора и ESP8266. Брать 3,3 вольта питания с малинки для ESP8266 я лично не пробовал, поэтому вам предлагать такой вариант не буду
Если встроенный в вашу версию малины стабилизатор держит до 300 миллиампер дополнительной нагрузки, то подключение 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 и притягивать неразведенные пины, только если вам это действительно необходимо.
Данные схемы подключения родились после множества экспериментов, проведенных нашими форумчанами и собраны по крупицам из разрозненной и недоступной изначально документации нашим сообществом, я всего лишь постарался объединить эти знания в одном месте. Множество советов по подключению вы найдете на нашем форуме. Там же вы сможете задать интересующие вас вопросы или найти помощь в решении проблем. Если вы увидели ошибку, неточность в этой статье или вам есть что добавить, то сообщите мне об этом в специальной теме на нашем форуме.
Внимание!
Правильным будет сказать вам, что не существует идеальной и в тоже время универсальной схемы подключения ESP8266. Все дело в том, что очень многое зависит от прошивки, которую вы собираетесь туда залить. Вышеприведенные схемы рассчитаны на новичков, которые только начинают осваивать ESP8266, для экспериментов. Для реальных проектов, возможно, вам придется немного изменить схему. Например, для прошивки TCP2UART нужно подключить RTS к GPIO15, а CTS к GPIO13
Также в реальных проектах рекомендую уделить особое внимание питанию
The Docker NodeMCU build image is the easiest method to build NodeMCU related components locally on your preferred platform.
Offering:
Detailed instructions available in the image’s README. As for available config options and study the comments in .
Note that this Docker image is not an official NodeMCU offering. It’s maintained by a NodeMCU team member as an individual, though.
This covers a set of APIs that allow generation of pulse trains with accurate timing on
multiple pins. It is similar to the API, but can handle multiple pins and has better
timing control.
The basic idea is to build a object and then control it with methods on that object. Only one
object can be active at a time. The object is built from an array of tables where each inner table represents
an action to take and the time to delay before moving to the next action.
One of the uses for this is to generate bipolar impulse for driving clock movements where you want (say) a pulse on Pin 1 on the even
second, and a pulse on Pin 2 on the odd second. and can be used to keep the pulse synchronized to the
RTC clock (that is itself synchronized with NTP).
Attention
This sub module is disabled by default. Uncomment in before building the firmware to enable it.
To make use of this feature, decide on the sort of pulse train that you need to generate — hopefully it repeats a number of times.
Decide on the number of GPIO pins that you will be using. Then draw up a chart of what you want to happen, and in what order. Then
you can construct the table struct that you pass into . For example, for the two out of phase square waves, you might do:
Step | Pin 1 | Pin 2 | Duration (μS) | Next Step |
---|---|---|---|---|
1 | High | Low | 100,000 | 2 |
2 | Low | High | 100,000 | 1 |
This would (when built and started) just runs step 1 (by setting the output pins as specified), and then after 100,000μS, it changes to step 2i. This
alters the output pins
and then waits for 100,000μS before going back to step 1. This has the effect of outputting to Pin 1 and Pin 2 a 5Hz square wave with the pins being out of phase. The frequency will be
slightly lower than 5Hz as this is software generated and interrupt masking can delay the move to the next step. To get much closer to 5Hz,
you want to allow the duration of each step to vary slightly. This will then adjust the length of each step so that, overall, the output is
at 5Hz.
Step | Pin 1 | Pin 2 | Duration (μS) | Range | Next Step |
---|---|---|---|---|---|
1 | High | Low | 100,000 | 90,000 — 110,000 | 2 |
2 | Low | High | 100,000 | 90,000 — 110,000 | 1 |
When turning this into the table structure as described below, you don’t need to specify anything
special when the number of the next step is one more than the current step. When specifying an out of order
step, you must specify how often you want this to be performed. The number of iterations can be up to around 4,000,000,000 (actually any value that fits into
an unisgned 32 bit integer). If this isn’t enough repeats, then loops can be nested as below:
The loop/count in step 2 will cause 1,000,000,000 pulses to be output (at 1kHz). This is around 11 days. At this point, it will continue onto step 3 which triggers the
11 days of 1kHz. THis process will repeat for 1,000,000,000 times (which is roughly 30 Million years).
The looping model is that associated with each loop there is a hidden variable which starts at the value and decrements on each iteration until it gets to zero
when it then proceeds to the next step. If control reaches that loop again, then the hidden variable is reset to the value of again.
The following figure illustrates the ESP8266 12-E chip pinout. Use this diagram if you’re using an ESP8266 bare chip in your projects.
Note: not all GPIOs are accessible in all development boards, but each specific GPIO works in the same way regardless of the development board you’re using. If you’re just getting started with the ESP8266, we recommend reading our guide: Getting Started with the ESP8266.
At the moment, there are a wide variety of development boards with the ESP8266 chip that differ in the number of accessible GPIOs, size, form factor, etc…
The most widely used ESP8266 boards are the ESP-01, ESP8266-12E NodeMCU Kit, and the Wemos D1 Mini. For a comparison of these board, you can read this guide: ESP8266 Wi-Fi Development Boards comparison.
Существует несколько софтов для прошивки МК. Например NodeMCU Flasher (которая подходит не только для плат NodeMCU) или ESPTool (необходим Python).
Однако в этой статье работа с МК и процесс прошивки будут рассмотрены в Arduino IDE.
Изначально среда Arduino IDE не предназначена для работы с МК серии ESP. Чтобы это исправить, идём в Файл → Настройки и в поле Дополнительные ссылки для Менеджера плат вставляем эту ссылку:
Потом открываем Инструменты → Плата → Менеджер плат и в открывшемся списке в самом низу находим плату «esp8266 by ESP8266 Community» (если с этим возникли трудности — используем поиск вверху окна). Устанавливаем последнюю версию платы (около 150 Мбайт).
После установки в списке плат появится немалое количество плат. Если не нашли свою плату или не знаете её названия — выбирайте Generic ESP8266 Module. Теперь можно выбрать свой МК в списке COM-портов.
Теперь что касается скорости передачи. У ESP8266 две скорости передачи: основная — её вы указываете при инициализации последовательного порта, и скорость, на которой передаётся отладочная информация. Она передаётся сразу после подачи питания на МК. Обычно это скорости 115200 бод и 74800 бод 0 соответственно.
Модуль ESP8266 замечателен тем, что не требует специального программатора — обновление прошивки производится на том же железе, на котором вы подключаете модуль ESP8266 к компьютеру, т.е. тоже через USB-TTL конвертер (ну или Arduino или RPi). Для обновление прошивки на модуле 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 подробно описана загрузки прошивки в модуль с помощью программы XTCOM_UTIL.
Использованная литература
Оцените статью:Здравствуйте, я сегодня Вас познакомлю с 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 Uno WiFi является 8-битный микроконтроллер семейства AVR — ATmega328P.
Микроконтроллер ATmega16U2 обеспечивает связь микроконтроллера ATmega328P с USB-портом компьютера. При подключении к ПК Arduino Uno WiFi определяется как виртуальный COM-порт. Прошивка микросхемы 16U2 использует стандартные драйвера USB-COM, поэтому установка внешних драйверов не требуется.
VIN: Напряжение от внешнего источника питания (не связано с 5 В от USB или другим стабилизированным напряжением). Через этот вывод можно как подавать внешнее питание, так и потреблять ток, если к устройству подключён внешний адаптер.
5V: На вывод поступает напряжение 5 В от стабилизатора платы. Данный стабилизатор обеспечивает питание микроконтроллера ATmega328. Запитывать устройство через вывод 5V не рекомендуется — в этом случае не используется стабилизатор напряжения, что может привести к выходу платы из строя.
3.3V: 3,3 В от стабилизатора платы. Максимальный ток вывода — 1 А.
GND: Выводы земли.
IOREF: Вывод предоставляет платам расширения информацию о рабочем напряжении микроконтроллера. В зависимости от напряжения, плата расширения может переключиться на соответствующий источник питания либо задействовать преобразователи уровней, что позволит ей работать как с 5 В, так и с 3,3 В устройствами.
Цифровые входы/выходы: пины 0 – 13
Логический уровень единицы — 5 В, нуля — 0 В. Максимальный ток выхода — 40 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.
ШИМ: пины 3 , 5 , 6 , 9 , 10 и 11
Позволяют выводить 8-битные аналоговые значения в виде ШИМ-сигнала.
АЦП: пины A0 – A5
6 аналоговых входов, каждый из которых может представить аналоговое напряжение в виде 10-битного числа (1024 значений). Разрядность АЦП — 10 бит.
TWI/I²C: пины SDA и SCL
Для общения с периферией по синхронному протоколу, через 2 провода. Для работы — используйте библиотеку Wire .
SPI: пины 10(SS) , 11(MOSI) , 12(MISO) , 13(SCK) .
Через эти пины осуществляется связь по интерфейсу SPI. Для работы — используйте библиотеку SPI .
UART: пины 0(RX) и 1(TX)
Эти выводы соединены с соответствующими выводами микроконтроллера ATmega16U2, выполняющей роль преобразователя USB-UART. Используется для коммуникации платы Arduino с компьютером или другими устройствами через класс Serial .
Разъём USB Type-B предназначен для прошивки платформы Arduino Uno WiFi с помощью компьютера.
Разъём для подключения внешнего питания от 7 В до 12 В.
Когда плата подключена к внешнему источнику питания, напряжение проходит через стабилизатор MPM3610 . Выход стабилизатора соединён с пином 5V . Максимальный выходной ток составляет 1 А.
Стабилизатор MPM3810GQB-33 с выходом 3,3 вольта. Обеспечивает питание модуля WiFi ESP8266 и выведен на пин 3,3V . Максимальный выходной ток составляет 1 А.
ICSP-разъём предназначен для внутрисхемного программирования микроконтроллера ATmega328P. С использованием библиотеки SPI данные выводы могут осуществлять связь с платами расширения по интерфейсу SPI. Линии SPI выведены на 6-контактный разъём, а также продублированы на цифровых пинах 10(SS) , 11(MOSI) , 12(MISO) и 13(SCK) .
ICSP-разъём предназначен для внутрисхемного программирования микроконтроллера ATmega16U2.
В процессе изучения и проектирования всё более сложных проектов приходит время, когда возникает необходимость и желание научиться работать с таким распространенным видом связи как 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 и переходим в меню «Файл» — «Настройки»
В появившемся окне в верхнем поле пишем «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 модуль.
Решил изучить Ардуино. Построить «умный» дом. С чего-то надо начинать.
На базе WI-FI модуля ESP8266 можно получить беспроводной датчик температуры, влажности, давления, освещенности… Надо всего лишь обновить прошивку модуля и подключить датчики. Дополнительные микроконтроллеры не требуются.
Около двух лет назад на китайском рынке появились дешёвые WI-FI модули ESP8266 китайского разработчика. Это не просто WI-FI модуль, а полноценный 32 битный микроконтроллер со своим набором GPIO, в том числе SPI, UART, I2C.
Технические характеристики:Смотрим, в каком виде прислали.
Процессор: одноядерный Tensilica L106 частотой до 160 MHz.
Поддерживаемые стандарты WI-FI: 802.11 b / g / n.
Поддерживаемы типы шифрования: WEP, WPA, WPA2.
Поддерживаемые режимы работы: Клиент(STA), Точка доступа(AP), Клиент+Точка доступа(STA+AP).
Напряжение питания 1.7..3.6 В.
Потребляемый ток: до 215мА в зависимости от режима работы.
Количество GPIO: 16 (фактически до 11). Доступно на модулях: ESP-01 — 4, ESP-03 — 7+1, включая UART. Существуют и другие варианты модулей.
Интерфейсы: 1 ADC, I2C. UART, SPI, PWM.
Внешняя Flash память может быть установлена от 512кБ до 4МБ.
RAM данных 80 кБ, RAM инструкций — 64 кБ.
Заказал сразу три модуля. Одного для «умного» дома будет маловато.
Эти модули необычные. Имеют возможность подключения внешней антенны.
Техническая информация на странице магазина отсутствует полностью.
Поэтому ориентируемся на то, что расположено на плате и на то, что нарыл.
Схема модуля состоит из минимального количества деталей: самого чипа ESP8266,
flash памяти 25Q41BT (4M-bit Serial Flash, 512K-byte, 256 bytes per programmable page)
и кварца на 26МГц.
Памяти для серьёзных проектов маловато. Способ увеличения несложный. Достаточно перепаять МС памяти на более ёмкую. Обзор на Муське не так давно был:
Для простых проектов той, что стоит, вполне достаточно.
Для проектирования своих задач решено было использовать макетницу. Но возникла проблемка.
Выводы для программирования модуля явно были «лишними». Пришлось немного переделать.
Левые снимки – оригинал, справа после переделки. Никого не заставляю так делать. Просто это моё решение, мне так удобнее.
Теперь ничто не мешает, и программировать удобно.
Как писал ранее, эти модули могут работать как с внутренней (на печатке) антенной, так и с внешней. Изначально модуль «настроен» на работу с внешней антенной. Для перенастройки придётся перепаять перемычку-сопротивление.
Я решил проверить, насколько разнится коэффициент усиления внутренней и внешней антенны. Именно для этого на одном модуле перепаял перемычку.
Но возникла ещё одна сложность: два модуля из трёх пришли пустыми (не прошитые).
Заодно потренировался.
Пригодился кабель-конвертер (USB To RS232 TTL UART) из одного моего обзора про ВольтАмперВаттметр с функцией счётчика PZEM-004.
Обычный кабель-конвертер.
У меня есть более дешёвый вариант. Но этот более удобен (для меня).
Устанавливаю модуль на макетку и вгоняю в него скетч-пример для ESP8266 при помощи Arduino IDE. Есть нюансы. Смотрим схему подключения.
Модуль запитал от внешнего источника. В моём случае узел питания был в комплекте с макеткой.
При загрузке скетча GPIO 00 сажаем на Gnd. Для запуска скетча (после прошивки) GPIO 00 подключаем на +3.3V.
Подключил, всё работает. Осталось проверить, у какой антенны коэффициент усиления выше.
Установил на макетку три модуля.
— ESP-201 с внутренней антенной.
— ESP-201 с «хвостиком» для внешней антенны (шёл в комплекте).
— И у же стандартный модуль на основе ESP8266, купленный по этой ссылке с год назад:
Для питания использовал PowerBank. Для чистоты эксперимента пришлось выйти почти в поле. Тем не менее, один несанкционированный роутер всё же поймался:) Название на графике удалил. Мешаться не будет.
Оценивать силу сигнала буду при помощи программы Acrylic Wi-Fi. Программ существует множество, в том числе и для смартфонов. Но эта может отслеживать все изменения в динамике.
В непосредственной близости от модулей.
Wifi_int_ant — ESP-201 с внутренней антенной.
Wifi_ext_ant — ESP-201 с «хвостиком» для внешней антенны.
WeatStat — ESP8266,
Отошёл на 10 метров.
Отошёл ещё на 10 метров.
Ещё.
И ещё.
Погрешности измерения естественно присутствуют. Но общая картина ясна.
Пора объявлять победителей.
1 место: ESP-201 с внутренней антенной.
2 место: стандартный модуль на основе ESP8266.
3 место: ESP-201 с «хвостиком» для внешней антенны.
Подпаялся к банке из-под сгущённого молока.
Картина реально изменилась.
Дело было не бабине… 🙂
С выносной антенной сигнал намного сильнее. Даже если в качестве антенны обычная консервная банка.
Вот, в общем-то, и всё. Для правильного вывода того, что написал, должно хватить. Кому что-то неясно, задавайте вопросы. Возможно, какие-то моменты упустил.
Надеюсь, хоть кому-то помог.
Удачи!
Продолжение следует…
Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.
Планирую купить +33 Добавить в избранное Обзор понравился +29 +58Всё больше набирает популярности, и уже 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 для перевода модуля в режим прошивки.
Ну вот, с теорией наверное всё, статья получилась пожалуй довольно таки большая, и практическую часть, аля прошивка и программирование модуля, я опубликую немного позже.
Если вы занимаетесь IoT (Интернетом вещей), вы, возможно, слышали о модуле ESP8266 WiFi. Если нет, не волнуйтесь. Это руководство посвящено началу работы с WiFi-модулем Esp8266 и тому, как пару ESP8266 Arduino можно использовать в ваших проектах IoT.
Итак, прежде чем вдаваться в подробности того, как взаимодействовать с парой ESP8266 Arduino, давайте сначала начнем с WiFi-модуля ESP8266.
Взгляните на эти ПРОЕКТЫ ИНТЕРНЕТ ВЕЩЕЙ (IOT) .
ESP8266 (технически ESP8266EX) — это WiFi-модуль на базе 32-битного микроконтроллера Cadence Tensilica L106, производимого Espressif Systems. SoC ESP8266 содержит полнофункциональный стек WiFi и стек TCP / IP, который позволяет любому микроконтроллеру подключаться к сети WiFi.
С помощью комплектов для разработки программного обеспечения (SDK) вы можете напрямую программировать микроконтроллер на кристалле ESP8266 без необходимости использования внешнего микроконтроллера.
На базе SoC ESP8266 несколько сторонних производителей начали производить собственные платы, и одним из таких производителей является Ai-Thinker.Первой платой, выпущенной Ai-Thinker, является ESP-01 (та же плата, что использовалась в этом проекте), и она стала довольно популярной.
Основываясь на успехе модуля ESP-01, компания Ai-Thinker выпустила несколько других модулей, таких как ESP-02, ESP-07, ESP-12 и т. Д. Все эти платы основаны на ESP8266 SoC, но главное отличие — количество контактов GPIO.
Существуют и другие модули, такие как ESP-WROOM от Espressif Systems, NodeMCU, WeMOS, SparkFun ESP8266 и т. Д.
В этом проекте мы будем использовать модуль ESP-01 от Ai-Thinker.Он состоит из 8 контактов, а на следующем изображении показаны различные компоненты платы.
Переходя к конфигурации контактов, как упоминалось выше, модуль ESP-01 состоит из 8 контактов, и это контакты VCC, GND, TX, RX, RST, CH_PD, GPIO0 и GPIO2. На следующем изображении показана схема контактов модуля ESP-01.
ВАЖНОЕ ПРИМЕЧАНИЕ : ESP8266 несовместим с 5 В, а модуль ESP-01 не имеет встроенных регуляторов напряжения. Убедитесь, что питание ESP8266 составляет 3,3 В, предпочтительно от специального источника питания, а не от вывода 3,3 В на Arduino.
Прежде чем увидеть интерфейс ESP8266 Arduino, вам нужно кое-что узнать о модуле ESP8266.Модуль WiFi ESP8266 поставляется с прошивкой по умолчанию, которая поддерживает AT-команды.
После подключения WiFi-модуля ESP8266 к Arduino и загрузки нашей собственной программы исходная прошивка будет удалена. В отдельном проекте мы увидим, как взаимодействовать с модулем ESP8266 для AT-команд, а также как прошивать оригинальную прошивку с помощью Arduino.
Теперь мы увидим, как запрограммировать ESP8266 с помощью Arduino и получить доступ к его контактам GPIO. Сначала мы увидим принципиальную схему интерфейса.
Если модуль ESP8266 на принципиальной схеме нечеткий, вам может помочь следующее изображение. Это просто личное представление принципиальной схемы. Вы уже видели настоящую схему контактов в предыдущем разделе.
Если вы посмотрите на контакты модуля ESP8266 ESP-01, вы увидите, что он не подходит для макетной платы.Итак, я сделал небольшую перфокарту с контактами, подходящими для макетной платы, на дне и гнездовыми разъемами, чтобы установить на нее модуль ESP8266 ESP-01.
На этой плате я также подключил резисторы преобразователя уровня для вывода RX ESP8266, а также байпасный конденсатор 100 пФ между VCC (3,3 В) и GND. На следующем изображении показан монтаж модуля ESP8266 ESP-01 на мини-макетной плате.
ESP8266 WiFi-модуль можно запрограммировать с помощью Arduino IDE, и для этого вам необходимо внести несколько изменений в Arduino IDE.Сначала перейдите в меню «Файл» -> «Настройки» в среде Arduino IDE и в разделе «URL-адреса диспетчера дополнительных плат» введите следующий URL-адрес.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
ПРИМЕЧАНИЕ : Вы можете добавить много таких URL, но они должны быть разделены запятыми.
Теперь перейдите в Инструменты -> Плата -> Менеджер плат и найдите ESP8266 в поле поиска. Выберите ESP8266 от сообщества ESP8266 и нажмите «Установить».
ПРИМЕЧАНИЕ : Эта функция добавления сторонних плат через менеджер плат доступна для Arduino IDE версии 1.6.4 и выше. Итак, убедитесь, что у вас установлена последняя версия Arduino IDE.
Чтобы запрограммировать модуль ESP8266, нам необходимо подключить его к компьютеру. Поскольку последовательная связь является единственной доступной связью на модуле ESP8266 ESP-01, нам нужен USB-последовательный адаптер, такой как FTDI, Ch440 или FT232RL.
Если у вас нет выделенного адаптера USB для последовательного порта, не беспокойтесь. Arduino UNO имеет встроенный USB-последовательный адаптер (который используется для программирования Arduino). Мы собираемся использовать это для программирования ESP8266.
Мы будем использовать выводы TX и RX Arduino для подключения к модулю ESP8266, и чтобы убедиться, что Arduino не использует эти выводы, мы можем загрузить минимальный скетч в Arduino.
ПРИМЕЧАНИЕ : Минимальный эскиз состоит только из функций настройки и цикла без каких-либо данных.
В моем случае у меня есть дополнительная плата Arduino UNO с нефункционирующей микросхемой ATmega328p. Итак, я удалил микросхему микроконтроллера из Arduino UNO и начал использовать ее в качестве преобразователя USB в последовательный порт.
Вы уже видели необходимые компоненты и принципиальную схему проекта. Теперь давайте попробуем разобраться в конструкции схемы.
Прежде всего, модуль ESP8266 работает от источника питания 3,3 В, и все, что выше, например 5 В, убьет SoC.Итак, выводы VCC и CH_PD модуля ESP8266 ESP-01 подключены к источнику питания 3,3 В.
Следующее важное обстоятельство, о котором следует помнить, это то, что модуль WiFi ESP8266 имеет два режима работы: режим программирования и нормальный режим.
В режиме программирования вы можете загрузить программу или прошивку в модуль ESP8266, а в нормальном режиме загруженная программа или прошивка будут работать нормально.
Чтобы включить режим программирования, вывод GPIO0 должен быть подключен к GND. На принципиальной схеме я подключил переключатель SPDT к контакту GPIO0.Переключение рычага SPDT переключит ESP8266 между режимом программирования (GPIO0 подключен к GND) и нормальным режимом (GPIO0 действует как контакт GPIO).
Кроме того, RST (сброс) играет важную роль в включении режима программирования. Вывод RST является активным выводом LOW и, следовательно, подключен к GND через кнопку. Таким образом, всякий раз, когда нажимается кнопка, модуль ESP8266 сбрасывается.
Контакты RX и TX модуля ESP8266 подключены к контактам RX и TX на плате Arduino.Поскольку SoC ESP8266 не может выдерживать 5 В, вывод RX Arduino подключается через преобразователь уровня, состоящий из резистора 1 кОм и резистора 2,2 кОм.
Наконец, вывод GPIO2 подключается к светодиоду для проверки работы программы. Все необходимые подключения для включения режима программирования в ESP8266 упомянуты ниже.
Убедитесь, что все вышеперечисленное соединения выполнены правильно.После подключения и настройки ESP8266 в режиме программирования (GPIO0 подключен к GND) подключите Arduino к системе.
После включения модуля ESP8266 нажмите кнопку RST и откройте Arduino IDE. В параметрах платы (Инструменты -> Плата) выберите плату «Generic ESP8266». Выберите соответствующий номер порта в среде IDE.
Теперь откройте Blink Sketch и измените вывод светодиода на 2. Здесь 2 означает вывод GPIO2 модуля ESP8266. Прежде чем начать загрузку, убедитесь, что GPIO0 подключен к GND, а затем нажмите кнопку RST.
Нажмите кнопку загрузки, и код займет некоторое время для компиляции и загрузки. Вы можете увидеть прогресс в нижней части IDE. После успешной загрузки программы вы можете удалить GPIO0 из GND. Светодиод, подключенный к GPIO2, будет мигать.
В этом проекте мы увидели, как будет работать интерфейс ESP8266 Arduino, как загрузить программу в модуль ESP8266 WiFi и получить доступ к контактам ввода / вывода модуля ESP8266.
Эта статья представляет собой руководство для GPIO ESP8266: схемы распиновки, их функции и способы их использования.
Микросхема ESP8266 12-E имеет 17 контактов GPIO. Не все GPIO доступны на всех платах разработки ESP8266, некоторые GPIO использовать не рекомендуется, а другие имеют очень специфические функции.
Из этого руководства вы узнаете, как правильно использовать GPIO ESP8266 и избежать многих часов разочарований, используя наиболее подходящие контакты для ваших проектов.
У нас также есть руководство для ESP32 GPIO: ESP32 Pinout Reference: Какие контакты GPIO следует использовать?
На следующем рисунке показана распиновка микросхемы ESP8266 12-E.Используйте эту схему, если вы используете в своих проектах голый чип ESP8266.
Примечание. не все GPIO доступны на всех платах для разработки, но каждый конкретный GPIO работает одинаково, независимо от используемой вами платы для разработки. Если вы только начинаете работать с ESP8266, мы рекомендуем прочитать наше руководство: Начало работы с ESP8266.
На данный момент существует множество плат для разработки с чипом ESP8266, которые различаются количеством доступных GPIO, размером, форм-фактором и т. Д.
Наиболее широко используемыми платами ESP8266 являются ESP-01, ESP8266-12E NodeMCU Kit и Wemos D1 Mini.Для сравнения этих плат вы можете прочитать это руководство: Сравнение плат для разработки Wi-Fi ESP8266.
Если вы используете плату ESP8266-01, вы можете использовать следующую схему GPIO в качестве справочной.
Распиновка комплекта ESP8266 12-E NodeMCU показана ниже.
На следующем рисунке показана распиновка WeMos D1 Mini.
Мы подготовили удобный PDF-файл, который вы можете скачать и распечатать, поэтому диаграммы ESP8266 всегда будут рядом с вами:
Скачать PDF Схема распиновки »
Периферийные устройства ESP8266 включают:
Одна важная вещь, которую следует отметить в ESP8266, заключается в том, что номер GPIO не соответствует этикетке на шелкографии платы.Например, D0 соответствует GPIO16, а D1 соответствует GPIO5.
В следующей таблице показано соответствие между метками на шелкографии и номером GPIO, а также то, какие контакты лучше всего использовать в ваших проектах, а какие следует соблюдать осторожность.
Контакты, выделенные зеленым цветом, можно использовать. Те, которые выделены желтым, подходят для использования, но вам нужно обратить внимание, потому что они могут иметь неожиданное поведение, в основном, при загрузке. Контакты, выделенные красным, не рекомендуется использовать в качестве входов или выходов.
Этикетка | GPIO | Вход | Выход | Примечания | |||||
DIO | GPIO поддержка прерывания | HIGH при загрузке используется для пробуждения из глубокого сна | |||||||
D1 | GPIO5 | OK | OK | часто используется как SCL (I2C) | 9002 9279 GPIO4OK | OK | часто используется как SDA (I2C) | ||
D3 | GPIO0 | подтянуто вверх | OK | LOW не работает при нажатии кнопки FLASH 9029 | |||||
D4 | GPIO2 | поднялся вверх | OK | ВЫСОКИЙ при загрузке 90 215 подключен к встроенному светодиоду, загрузка не выполняется при нажатии LOW | |||||
D5 | GPIO14 | OK | OK | SPI (SCLK) | |||||
9 D6 | |||||||||
OK | OK | SPI (MISO) | |||||||
D7 | GPIO13 | OK | OK | SPI (MOSI) | к GND | OK | SPI (CS) Загрузка не выполняется, если вытащить HIGH | ||
RX | GPIO3 | OK | RX pin | HIGH 9027 TX 9027 9002 9027 902 GPIO1 | Вывод TX | OK | ВЫСОКИЙ при загрузке Отладочный вывод при загрузке, загрузка завершается неудачно при нажатии НИЗКОЕ | ||
A0 | ADC0 | Аналоговый вход | X |
Продолжайте читать, чтобы получить более подробный и глубокий анализ ESP8266 GPIO и его функций.
GPIO6 — GPIO11 обычно подключаются к микросхеме флэш-памяти на платах ESP8266. Так что эти булавки использовать не рекомендуется.
ESP8266 может быть заблокирован от загрузки, если некоторые контакты потянуты в НИЗКОЕ или ВЫСОКОЕ. В следующем списке показано состояние следующих контактов при загрузке:
Есть определенные контакты, которые выводят 3.Сигнал 3В при загрузке ESP8266. Это может быть проблематично, если к этим GPIO подключены реле или другие периферийные устройства. Следующие GPIO выводят сигнал HIGH при загрузке:
Кроме того, другие GPIO, кроме GPIO5 и GPIO4, могут выводить низковольтный сигнал при загрузке, что может быть проблематичным, если они подключены к транзисторам или реле. Вы можете прочитать эту статью, в которой исследуется состояние и поведение каждого GPIO при загрузке.
GPIO4 и GPIO5 являются наиболее безопасными для использования GPIO, если вы хотите управлять реле.
ESP8266 поддерживает аналоговое чтение только в одном GPIO. Этот GPIO называется ADC0 и обычно обозначается на шелкографии как A0 .
Максимальное входное напряжение на выводе ADC0 составляет от 0 до 1 В, если вы используете голый чип ESP8266. Если вы используете отладочную плату, такую как комплект ESP8266 12-E NodeMCU, диапазон входного напряжения составляет от 0 до 3.3 В, потому что эти платы содержат внутренний делитель напряжения.
Вы можете узнать, как использовать аналоговое считывание с ESP8266, с помощью следующего руководства:
Большинство плат разработки ESP8266 имеют встроенный светодиод. Этот светодиод обычно подключается к GPIO2.
Светодиод работает с инвертированной логикой. Отправьте ВЫСОКИЙ сигнал, чтобы выключить его, и НИЗКИЙ сигнал, чтобы включить его.
Когда на выводе RST тянут НИЗКОЕ значение, ESP8266 сбрасывается.Это то же самое, что и нажатие кнопки RESET на плате.
Когда GPIO0 получает НИЗКОЕ значение, он устанавливает ESP8266 в режим загрузчика. Это то же самое, что и нажатие встроенной кнопки FLASH / BOOT.
GPIO16 можно использовать для вывода ESP8266 из глубокого сна. Чтобы вывести ESP8266 из глубокого сна, GPIO16 должен быть подключен к выводу RST. Узнайте, как перевести ESP8266 в режим глубокого сна:
ESP8266 не имеет аппаратных выводов I2C, но может быть реализован программно.Таким образом, вы можете использовать любые GPIO в качестве I2C. Обычно в качестве контактов I2C используются следующие GPIO:
Контакты, используемые в качестве SPI в ESP8266:
ESP8266 позволяет использовать программную ШИМ на всех выводах ввода / вывода: от GPIO0 до GPIO16. Сигналы ШИМ на ESP8266 имеют 10-битное разрешение. Узнайте, как использовать контакты ESP8266 PWM:
ESP8266 поддерживает прерывания в любом GPIO, кроме GPIO16.
Мы надеемся, что вы нашли это руководство для GPIO ESP8266 полезным. Если у вас есть несколько советов о том, как правильно использовать GPIO ESP8266, вы можете написать комментарий ниже.
У нас также есть аналогичное руководство для ESP32 GPIO, которое вы можете прочитать.
Если вы только начинаете работать с ESP8266, у нас есть отличный контент, который может вас заинтересовать:
Спасибо за чтение.
В Интернете есть много руководств о том, как подключить ESP8266 к Arduino uno, но слишком много путаницы и недостаточно объяснений.Итак, я дам вам краткую версию вместе с деталями.
Шаги, которые вам нужно предпринять, просты. Это написано для ESP8266-01, но вы можете легко найти распиновку для других моделей и использовать те же контакты. Сначала мы подключим Arduino UNO к макетной плате:
ESP-01 и ESP-03 изначально предназначались для использования в качестве модуля Arduino WiFi. В этом аспекте имеет смысл отключить CH_PD, чтобы пользователь мог отключить устройство, когда оно не используется (для экономии энергии).
В Arduino IDE вам не нужно выбирать плату, так как мы ничего не загружаем в ESP8266.Просто выберите правильный порт в меню Tools и перейдите в Tools → Serial Monitor . Затем просто установите скорость передачи данных 115200 (она используется в прошивке ESP8266 по умолчанию), а окончание строки — И NL, и CR .
Если вы наберете AT
в поле сообщения и нажмете Enter, он должен ответить OK
.
И поскольку мы говорили о выводе CH_PD, помните, что если вы хотите прошить ESP8266, вы должны подключить вывод GPIO0 к GND (синяя линия), что переводит ESP в режим прошивки.
Вот и все! Если у вас есть вопросы, задавайте их ниже, и я постараюсь ответить!
СвязанныеESP8266 — это недорогой чип, который может добавить к микроконтроллеру возможность Wi-Fi ® . Многие модели микросхем на базе ESP8266, например доступны как ESP-01 и ESP-12. Модели различаются количеством контактов GPIO. подверженности воздействию, объему флэш-памяти и другим различным факторам.Однако основные Функциональность Wi-Fi во всех вариантах одинакова.
ESP8266 взаимодействует с Arduino ® через последовательное соединение. Arduino отправляет AT-команды на чип. Чип получает команду, обрабатывает он и отправляет ответ.
Подключите ESP8266 к плате Arduino, как показано на этой принципиальной схеме. Чип, используемый в схеме диаграмма ESP-12, но вы можете использовать те же контакты с другими моделями ESP8266.
В таблице показаны соединения контактов между источником питания и ESP8266.
Источник питания | ESP8266 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
3,3 В | Vcc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3,3 В | CH_PD | 9902 9027 9902
Кол-во контактов | Этикетка контактов | Описание | |||
---|---|---|---|---|---|
17 | GPIO | Диапазон контактов GPIO от GPIO0 до GPIO16 включает SPI, I2C, интерфейс SDIO, I2C, SDI. | |||
1 | ADC | 10-битный аналого-цифровой преобразователь. | |||
1 | VCC | Напряжение питания 3,3 В | |||
1 | GND | Заземляющий штырь | |||
1 | RST | Остаточный штифт | Штифт |
Wemos D1 Mini имеет в общей сложности 16 контактов, из которых 12 активных, использует модуль ESP-12, встроенную кнопку сброса, 3.3 стабилизатора напряжения, Micro USB, мост USB to UART и некоторые другие компоненты.
№ Штифт | Наклейка | Описание | ||||||
---|---|---|---|---|---|---|---|---|
1 | 3,3 В | Вывод 3,3 В | ||||||
1 | 5,0 | Вывод напряжения 5 В | ||||||
1 | АЦП | 10-битный аналого-цифровой преобразователь | ||||||
1 | RST | Контакт сброса | ||||||
9 | D0 to D8, | Входы / выходы также используются для входов / выходов SPI I2C, Flash. | ||||||
2 | RX, TX | Интерфейс UART. |
ESP8266 01 Модуль отличается, но обычно используется, как указанные выше платы для разработки. Эта плата не является макетной, часто для программирования используется отдельный программный модуль. Всего у него 8 контактов, 6 из которых активны.
№ Штифт | Этикетка | Описание |
---|---|---|
1 | 3.3 В | Вывод питания 3,3 В |
1 | Заземление | Вывод заземления |
1 | RST | Вывод сброса |
1 | Вывод питания | CH752 / EN 902|
4 | GPIO от 0 до 3 | Интерфейс UART и контакты ввода / вывода |
Плата разработки NodeMCU имеет в общей сложности 30 контактов, из которых 14 активных, использует модуль ESP-12, встроенный сброс и кнопку вспышки, 3.3 стабилизатора напряжения, Micro USB, USB to UART Bridge и некоторые другие компоненты.
№ Штифт | Наклейка | Описание | |||
---|---|---|---|---|---|
3 | 3,3 В | 3,3 В, контакты | |||
1 | Vin | Входное напряжение 5 В, контакт 90ND275 5 | |||
1 | ADC | 10-битный аналого-цифровой преобразователь | |||
1 | RST | Контакт сброса | |||
1 | EN | Контакт включения микросхемы 1 | |||
Вывод CLK для интерфейса SPI и SDIO | |||||
1 | SD0 | Вывод данных 0 для SDIO и вывод MISO для интерфейса SPI. | |||
1 | CMD | Командный вывод для интерфейса SDIO и вывод выбора микросхемы для интерфейса SPI. | |||
1 | SD1 | Вывод данных 1 для интерфейса SDIO и вывод MOSI для интерфейса SPI. | |||
1 | SD2 | Вывод данных 0 для интерфейса SDIO, также используется как GPIO9. | |||
1 | SD3 | Вывод данных 3 для интерфейса SDIO, также используется как GPIO10. | |||
2 | RSV | Зарезервированные контакты. | |||
11 | D0 — D8, RX, TX | Контакты ввода / вывода также используются для UART, SPI, I2C, Flash и вывода пробуждения. |
ESP8266 имеет следующие периферийные устройства:
ESP8266 имеют только один 10-битный аналого-цифровой преобразователь, который называется ADC0 и обозначается как A0. Но это также один из самых больших недостатков, потому что в большинстве случаев пользователю приходится подключать два датчика, поэтому нам приходится покупать отдельные модули АЦП, ИС и схему мультиплексирования для взаимодействия двух или более датчиков, но это тема другой статьи.
Входное аналоговое напряжение модуля ESP-01 находится в диапазоне от 0 до 1 В.Плата разработки на основе модуля ESP-12E имеет диапазон входного аналогового напряжения от 0 до 3,3 В. Поэтому при написании скетча мы должны помнить об использовании вывода A0.
Выводы ШИМESP8266 поддерживает ШИМ на всех выводах ввода / вывода от GPIO0 до GPIO16. Сигналы ШИМ имеют 10-битное разрешение.
Контакты SPIИнтерфейс последовательного программирования (SPI) имеет следующие контакты в ESP8266
ESP8266 предоставляет только программный интерфейс I2C, это означает, что мы можем использовать любые два контакта для I2C, но в основном используются следующие контакты.
GPIO5 для последовательной линии синхронизации (SCL)
GPIO4 для последовательной линии данных (SDA)
Контакты прерыванияМы можем использовать любой вывод GPIO для прерываний, кроме GPIO16.
ПробуждениеЧтобы вывести ESP8266 из глубокого сна с помощью GPIO16, подключив его к контакту RST. Это тема для отдельной статьи.
Встроенный светодиодВ большинстве случаев макетные платы имеют один или несколько встроенных светодиодов.Светодиод, встроенный в модуль ESP8266, подключен к GPIO2, а светодиод, встроенный в плату разработки, подключен к GPIO16.
Кнопка сброса и перепрошивкиНажатие кнопки сброса или подтягивание вывода RST к низкому уровню сбрасывает микросхему ESP8266. Нажатие кнопки Flash или низкий уровень GPIO0 переводит микросхему ESP8266 в режим загрузчика.
Какой вывод ESP8266 использоватьВсегда имейте в виду, что метка GPIO не совпадает с меткой на шелкографии.Например, GPIO0 соответствует D3, а D0 соответствует GPIO16. Лучше всего использовать GPIO с зеленой галочкой.
Этикетка | GPIO | Вход | Выход | Описание | |||||
---|---|---|---|---|---|---|---|---|---|
A0 | ADC2 | 902 902 аналоговый вход для аналогового входа 0 0 3,3в и без выхода.||||||||
RX | GPIO3 | Да | Только вывод RX | Высокий уровень при загрузке. | |||||
TX | GPIO1 | Только вывод Tx | Да | Высокий уровень при загрузке. | |||||
D0 | GPIO16 | Без прерывания | Без I2C, PWM | Используется для вывода микросхемы из глубокого сна, высокого уровня при загрузке. | |||||
D1 | GPIO5 | Да | Да | Часто используется как SCL | |||||
D2 | GPIO4 | Да | Да | SD Поднят вверх | Да | Подключен к кнопке Flash | |||
D4 | GPIO2 | Поднят вверх | Да | Подключен к встроенному светодиоду, высокий уровень при загрузке. | |||||
D5 | GPIO14 | Да | Да | Штырь SCLK для интерфейса SPI | |||||
D6 | GPIO12 | Да | Да | штырьGP2 | GPO2 | для SPIMIS 9027 | Да | Да | Вывод MOSI для интерфейса SPI |
D8 | GPIO15 | Прижат к земле | Да | Вывод CS для интерфейса SPI |
При загрузке ESP8266 следующие контакты обеспечивают 3.Сигнал 3 В на определенных контактах, поэтому подключение реле, транзистора или любых других периферийных устройств может работать некорректно. Следующий вывод выводит сигнал 3,3 В при загрузке:
Все остальные выводы GPIO обеспечивают одиночное низкое напряжение при загрузке, кроме GPIO4 и GPIO5. Таким образом, GPIO4 и GPIO5 — лучшие контакты для подключения реле, транзисторов и других периферийных устройств для получения стабильных результатов.
Конфигурация контактов во время загрузкиДля успешной загрузки ESP8266 мы должны запретить указанным контактам получить ВЫСОКИЙ или НИЗКИЙ.
Вы также можете ознакомиться с другими руководствами по ESP8266:
NodeMCU IoT Experimenter имеет размеры 5 5/16 ″ x 4,5 ″ (135 мм x 115 мм) с паяльной маской на каждой стороне, отверстиями с металлическими пластинами, а также высококонтрастным компонентом для шелкографии и позициями для прототипирования.
Характеристики платы включают область монтажного гнезда для установки модулей NodeMCU с шагом 1,1 ″ или 0,9 ″. Это включает несущую плату Amica NodeMCU (узкое расстояние между выводами) для совместимых вариантов, таких как модели LoLin NodeMCU. Питание может подаваться непосредственно на ваш модуль NodeMCU через встроенный интерфейс USB. В качестве альтернативы питание может подаваться на плату IoT Experimenter , на которой предусмотрен встроенный регулируемый модуль питания.
Плата имеет более 1000 металлических сквозных отверстий на поверхности прототипа, для установки восьми светодиодных индикаторов состояния, а также падающих резисторов и светодиода индикатора питания.Зона прототипирования предлагает силовые шины для земли ( G ), + 3,3 В ( 3 В ) шины питания и третью шину X . Третью шину можно использовать для внешних напряжений, таких как шина 5 В.
Взаимодействие с NodeMCU осуществляется через серию заголовков, которые расширяют каждый вывод NodeMCU до строк из четырех заголовков. Каждый порт помечен для идентификации совпадающих контактов от NodeMCU. Область заголовка расположена под NodeMCU с использованием стандартных 40-контактных разъемов, обеспечивающих универсальность интерфейса для разъемов или контактов заголовка.
Для получения дополнительных сведений о NodeMCU IoT Experimenter посетите страницу поддержки.
Заинтересованы ли вы в покупке NodeMCU IoT Experimenter , частичного или полного набора деталей? Посетите Интернет-магазин, чтобы приобрести NodeMCU IoT Experimenter или другие аксессуары для NodeMCU и Arduino.
Для тех, кто начал с модулей ESP, я сделал несколько схем распиновки, их функций и способов их использования.Чип ESP8266 12-E имеет 17 контактов GPIO. Не все GPIO доступны на всех платах разработки ESP8266, некоторые GPIO не рекомендуется использовать, а другие имеют очень специфические функции. С помощью этого руководства вы узнаете, как правильно использовать ESP8266 GPIO и избежать долгих часов разочарований, используя наиболее подходящие контакты для ваших проектов.
На следующем рисунке показана распиновка микросхемы ESP8266 12-E. Используйте эту схему, если вы используете в своих проектах голый чип ESP8266.Внизу этого блога вы можете скачать PDF-файл!
Примечание: здесь я купил свой чип ESP8266 12-E
Примечание: не все GPIO доступны на всех платах разработки, но каждый конкретный GPIO работает одинаково, независимо от платы разработки вы используете. Если вы только начинаете работать с ESP8266, мы рекомендуем прочитать наш блог: Начало работы с ESP8266.
В настоящее время существует множество плат для разработки с чипом ESP8266, которые различаются количеством доступных GPIO, размером, форм-фактором и т. Д.
Если вы используете плату ESP8266-01, вы можете использовать следующую схему GPIO в качестве справочной.Распиновка ESP-01 ESP8266 Контакты GPIO. Внизу этого блога вы можете скачать PDF-файл!
Примечание: я купил свой чип ESP8266 — 01 здесь
Периферийные устройства ESP8266 включают в себя:
Одна важная вещь, которую следует отметить в ESP8266, заключается в том, что номер GPIO не сопоставьте этикетку с шелкографией на плате.Например, D0 соответствует GPIO16, а D1 соответствует GPIO5. В следующей таблице показано соответствие между метками на шелкографии и номером GPIO, а также то, какие контакты лучше всего использовать в ваших проектах, а какие вам следует соблюдать осторожность.
Контакты, выделенные зеленым цветом , можно использовать. Те, что выделены желтым , можно использовать, , но вам нужно обратить внимание, потому что они могут иметь неожиданное поведение, в основном, при загрузке .Контакты, выделенные красным цветом , не рекомендуется использовать в качестве входов или выходов.
Этикетка | GPIO | Вход | Выход | Примечания | |||
D0 | D0 | поддержкаHIGH при загрузке используется для пробуждения из глубокого сна | |||||
D1 | GPIO5 | OK | OK | (9000 I9029C2) часто используется как 9000 I9029C2 | |||
D2 | GPIO4 | OK | OK | часто используется как SDA (I2C) | |||
D3 927 | D3 9272 OKподключен к кнопке FLASH, загрузка не выполняется при нажатии LOW | ||||||
9000 9 D4 | GPIO2 | подтянулся | OK | ВЫСОКИЙ при загрузке подключен к встроенному светодиоду, загрузка не выполняется при нажатии НИЗКИЙ | |||
DIO5 | ОК | ОК | SPI (SCLK) | ||||
D6 | GPIO12 | ОК | OK27 | D7GPIO13 | OK | OK | SPI (MOSI) |
D8 | 75 GIO15 9002 | 75 9002 SPI (CS) Загрузка не выполняется при нажатии HIGH | |||||
RX | GPIO3 | 9 0272 OKRX pin | HIGH при загрузке | ||||
TX | GPIO1 | TX pin | 5 | TX pin | 5 9027 902 9025 | OKug загрузка, загрузка не выполняется при нажатии LOW||
A0 | ADC0 | Аналоговый вход | X |
GPIO6 – GPIO11 обычно подключаются к микросхеме флэш-памяти на платах ESP8266. Итак, эти пины не рекомендуется использовать .
ESP8266 может быть заблокирован от загрузки, если некоторые контакты потянуты LOW или HIGH . В следующем списке показано состояние следующих контактов на BOOT :
Есть определенные контакты, которые выводят 3.Сигнал 3V при загрузке ESP8266. Это может быть проблематично, если к этим GPIO подключены реле или другие периферийные устройства. Следующий GPIO выводит сигнал HIGH при загрузке:
Кроме того, кроме других 9 GPIO GPIO и GPIO4 , могут выводить сигнал низкого напряжения при загрузке, что может быть проблематичным, если они подключены к транзисторам или реле ! GPIO4 и GPIO5 являются наиболее безопасными для использования GPIO, если вы хотите управлять реле!
ESP8266 поддерживает аналоговое считывание только в одном GPIO .Этот GPIO называется ADC0 и обычно обозначается на шелкографии как A0 . Максимальное входное напряжение на выводе ADC0 составляет от 0 до 1 В , если вы используете голый чип ESP8266. Если вы используете плату для разработки, такую как комплект ESP8266 12-E NodeMCU, диапазон входного напряжения составляет от 0 до 3,3 В, поскольку эти платы содержат внутренний делитель напряжения.
Большинство плат разработки ESP8266 имеют встроенный светодиод. Этот светодиод обычно подключается к GPIO2 .Светодиод подключен к понижающему резистору, поэтому, когда вы отправляете сигнал HIGH , светодиод гаснет.
Когда на выводе RST установлен НИЗКИЙ уровень, ESP8266 сбрасывается. Это то же самое, что и нажатие кнопки СБРОС на плате .
Когда GPIO0 получает низкий уровень, ESP8266 переводится в режим загрузчика. Это то же самое, что и нажатие кнопки на плате ВСПЫШКА / ЗАГРУЗКА.
GPIO16 можно использовать для вывода ESP8266 из глубокого сна.Чтобы вывести ESP8266 из глубокого сна , GPIO16 должен быть подключен к выводу RST .
ESP8266 не имеет аппаратного обеспечения контактов I2C , но это может быть реализовано программно. Таким образом, вы можете использовать любой GPIO как I2C. Обычно в качестве контактов I2C используются следующие GPIO:
Контакты, используемые как SPI в ESP8266:
SCLK
ESP8266 позволяет использовать программное обеспечение PWM на всех выводах ввода / вывода: от GPIO0 до GPIO16 .Сигналы ШИМ на ESP8266 имеют 10-битное разрешение .
ESP8266 поддерживает прерывания в любых GPIO , кроме GPIO16.