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

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

Содержание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подача повышенного напряжения питания на модуль гарантированно приведет к выходу ESP8266 из строя.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Внимание! На правом рисунке подключение UTXD (TX) и URXD (RX) модуля ESP8266 к пятивольтовой TTL логике вы осуществляете на свой страх и риск! Документация на SoC ESP8266 сообщает, что модуль толерантен только к 3.

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

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

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

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

Черный — GND

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

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

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

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

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

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

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

Если вы планируете и дальше экспериментировать с ESP8266, то сделайте грамотное подключение, впрочем так же как и для любых других микроконтроллеров. Детальное описание pullup и pulldown выходит за рамки данной статьи, но вы сможете легко нагуглить описание правильного подключения портов ввода-вывода. «Правильное» подключение позволит вам избежать множества «чудес» и проблем и будет неизбежно необходимым при возникновении затруднений с запуском или перепрошивкой модуля ESP8266.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Настройка ESP8266

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

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

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

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

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

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

wdt reset load 0x40100000, len 25052, room 16 tail 12 chksum 0x0b ho 0 tail 12 room 4 load 0x3ffe8000, len 3312, room 12 tail 4 chksum 0x53 load 0x3ffe8cf0, len 6576, room 4 tail 12 chksum 0x0d csum 0x0d

wdt reset

load 0x40100000, len 25052, room 16

tail 12

chksum 0x0b

ho 0 tail 12 room 4

load 0x3ffe8000, len 3312, room 12

tail 4

chksum 0x53

load 0x3ffe8cf0, len 6576, room 4

tail 12

chksum 0x0d

csum 0x0d

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ESP8266 Datasheet — Specifications V4.1 — 08.09.2014 English

ESP8266 Datasheet — Beginners Guide V0.4.1 — 17.09.2014 English

ESP8266 AT Instruction Set v0.21 23.01.2015

ESP8266 Datasheet — Module Application Design Guide — 20.08.2014 English

Xtensa Instruction Set Architecture (ISA) Reference Manual

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

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

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

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



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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Физическое подключение — Hi-Lab.ru

О разделе

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

Модули с USB-UART интерфейсами

Если вы обладатель модуля со встроенным USB-UART интерфейсом, такого, как WeMos D1, D1 mini, NodeMCU или подобного, то ваша задача значительно упрощается — всю сложную техническую работу по обеспечению работоспособности модуля уже выполнили за вас инженеры компании, выпустившей модуль. Вы просто подключаете его и работаете.

Здесь же мы рассмотрим подключение «голого» модуля ESP8266.

Подключение модуля 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

Подключение 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-01 распиновка, подключение к ПК. | TehnoZet-2

Если вы планируете приобрести ESP8266, то мы рекомендуем вам присмотреться к ESP-12 или к их различным модификациям в сегодняшних реалиях покупать ESP8266-01 не имеет смысла

Тем не менее у меня уже были модули ESP8266-01 я их покупал давно, когда не знал для чего они мне и что с ними делать.

Выглядят они так

Технические характеристики соответствуют общим характеристикам чипа ESP8266, но на некоторых моментах я бы хотел заострить внимание:

  • Питание модуля 2,2…3,6вольта, стандартно (обычно) — 3,3 вольта

(!) Подача повышенного напряжения питания на модуль гарантированно приведет к выходу ESP8266 из строя.

При питании от 5 вольт можно использовать ams1117-3.3 , например вот такую маленькую плату.

  • Доступно только 4 входа/выхода, два из которых задействованы на Serial порт (это GPIO1(TX) и GPIO3(RX))

Если для вывода используем все доступные 4 пина (GPIO0-GPIO3) то помним при старте модуля:

  • в любом случае при старте модуля будет посылать по TX(GPIO0) отладочную информацию в UART0 на скорости 74480, а после старта можно использовать пин на свое усмотрение.
  • GPIO0 — для нормального старта модуля должен быть высокий уровень (High, один)
  • GPIO2 — для нормального старта модуля должен быть высокий уровень (High, один)
  • GPIO15 — для нормального старта модуля должен быть низкий уровень (LOW, ноль) (не относится к ESP — 01 так как пин не выведен)

Если низкий уровень (LOW, ноль) на:

  • GPIO0 — загрузки по UART (загрузка прошивки) далее мы этим воспользуемся.
  • GPIO1 — переход в режим тестирования

Распиновка

У ESP-01 всего 8 контактов:

  • VCC — 3,3 вольта
  • GND
  • CH PD — CHIP ENABLE
  • RST — RESET
  • GPIO0
  • GPIO1 (TX)
  • GPIO2
  • GPIO3 (RX)

Чтобы проверить ESP8266 ESP-01 достаточно подключить три пина:

  • VCC к питанию 3,3 вольт,
  • CH_PD (chip enable) к питанию 3,3 вольт,
  • GND к земле.

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

Распайка вид от антенны, со стороны микросхем

Распиновка ESP-01

Распиновка 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

  • Модуль адаптера для ESP-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, нажимайте кнопку

там много чего интересного! Мы только развиваемся.

Понравилась статья, хотите продолжения — ставьте лайки, жмите палец вверх

Наши сайты

КВ — Контроллеры Взаимодействия

Умный Дом, модули умного дома, видеонаблюдение

Актуальное программное обеспечение

Esp8266 — подключение и обновление прошивки

node.

dsleep()¶

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.

Parameters

  • 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.

    • 0, init data byte 108 is valuable
    • > 0, init data byte 108 is valueless
    • 0, RF_CAL or not after deep-sleep wake up, depends on init data byte 108
    • 1, RF_CAL after deep-sleep wake up, there will be large current
    • 2, no RF_CAL after deep-sleep wake up, there will only be small current
    • 4, disable RF after deep-sleep wake up, just like modem sleep, there will be the smallest current
  • number (integer) or . If present and non-zero, the chip will enter Deep-sleep immediately and will not wait for the Wi-Fi core to be shutdown.

ESP8266 Development Platforms

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-вольтовыми сигналами.

Замечу, что примененная схема согласования логических уровней является односторонней. Желательно в схеме использовать диоды Шоттки – они имеют низкое прямое падение напряжения.

Arduino Example: Blink

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 с установленными компонентами.

Build Options¶

The following sections explain some of the options you have if you want to build your own NodeMCU firmware.

Select Modules


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:

TLS/SSL Support


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.

Set UART Bit Rate


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).

Integer build


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 :

Tag Your Build


Identify your firmware builds by setting the environment variable .
You may also edit . The variable will be included in .

u8g2 Module Configuration


Display drivers and embedded fonts are compiled into the firmware image based on the settings in and . See the for details.

NodeMCU PyFlasher¶

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.

  1. Install drivers for USB-to-serial. Which driver you need depends on the ESP8266 module or USB-to-serial converter you use.
  2. Connect USB cable to device and computer.
  3. Download then start PyFlasher
  4. Select serial port, browse for firmware binary and set the flash options.

Note that this tool is not an official NodeMCU offering. It’s maintained by a NodeMCU team member as an individual, though.

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

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

Обратите внимание на то, что необходимо соединить GND всех устройств: малинки, стабилизатора и ESP8266. Брать 3,3 вольта питания с малинки для ESP8266 я лично не пробовал, поэтому вам предлагать такой вариант не буду

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

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

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

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

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

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

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

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

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

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

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

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

Внимание!

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

Также в реальных проектах рекомендую уделить особое внимание питанию

Docker¶

The Docker NodeMCU build image is the easiest method to build NodeMCU related components locally on your preferred platform.

Offering:

  • build NodeMCU firmware based on locally cloned sources and configuration
  • cross-compile Lua files into LFS image locally

Detailed instructions available in the image’s README. As for available config options and study the comments in .

For LFS


  1. In edit the line and adjust the size to that needed. Note that this must be a multiple of 4Kb.
  2. Build as you would otherwise build with this image (i. e. see its README)

Note that this Docker image is not an official NodeMCU offering. It’s maintained by a NodeMCU team member as an individual, though.

gpio.pulse¶

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:

StepPin 1Pin 2Duration (μS)Next Step
1HighLow100,0002
2LowHigh100,0001

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.

StepPin 1Pin 2Duration (μS)RangeNext Step
1HighLow100,00090,000 — 110,0002
2LowHigh100,00090,000 — 110,0001

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.

ESP8266 12-E Chip Pinout

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 замечателен тем, что не требует специального программатора — обновление прошивки производится на том же железе, на котором вы подключаете модуль 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Приложение CoolTerm

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Esp 12 подключение к ардуино. Как построить схему управления на Arduino и ESP8266 с настраиваемыми таймерами, контролируемую через Wi-Fi.

Прошивка Arduino по WiFi void setup() { Wifi.begin () ; Wifi.println («Web Server is up» ) ; // Выводим сообщение о старте сервера в wifi-консоль } void loop() { while (Wifi.available () ) { process(Wifi) ; } delay(50 ) ; } void process(WifiData client) { String command = client.readStringUntil («/» ) ; if (command == «webserver» ) { WebServer(client) ; } } void WebServer(WifiData client) { client.println («HTTP/1.1 200 OK» ) ; client.println («Content-Type: text/html» ) ; client.println («Connection: close» ) ; client.println («Refresh: 2» ) ; // Заголовок, который задаёт период обновления страницы в секундах client.println () ; client.println («» ) ; // Формируем страницу client.println (» UNO WIFI Web-server» ) ; client.print (»

Пример вывода значений с аналоговых пинов

» ) ; client.print («
    » ) ; for (int analogChannel = 0 ; analogChannel «
  • на аналоговом входе » ) ; client.print (analogChannel) ; client. print («: » ) ; client.print (sensorReading) ; client.print («
  • » ) ; } client.println («
» ) ; client.print (DELIMITER) ; // Не забудьте закрыть соединение! }

Элементы платы

Микроконтроллер ATmega328P

Сердцем платформы Arduino Uno WiFi является 8-битный микроконтроллер семейства AVR — ATmega328P.

Микроконтроллер ATmega16U2

Микроконтроллер 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

Разъём USB Type-B предназначен для прошивки платформы Arduino Uno WiFi с помощью компьютера.

Разъём для внешнего питания

Разъём для подключения внешнего питания от 7 В до 12 В.

Регулятор напряжения 5 В

Когда плата подключена к внешнему источнику питания, напряжение проходит через стабилизатор MPM3610 . Выход стабилизатора соединён с пином 5V . Максимальный выходной ток составляет 1 А.

Регулятор напряжения 3,3 В

Стабилизатор MPM3810GQB-33 с выходом 3,3 вольта. Обеспечивает питание модуля WiFi ESP8266 и выведен на пин 3,3V . Максимальный выходной ток составляет 1 А.

ICSP-разъём для ATmega328P

ICSP-разъём предназначен для внутрисхемного программирования микроконтроллера ATmega328P. С использованием библиотеки SPI данные выводы могут осуществлять связь с платами расширения по интерфейсу SPI. Линии SPI выведены на 6-контактный разъём, а также продублированы на цифровых пинах 10(SS) , 11(MOSI) , 12(MISO) и 13(SCK) .

ICSP-разъём для ATmega16U2

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 для перевода модуля в режим прошивки.

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

Начало работы с ESP8266 и Arduino: ESP8266 Интерфейс Arduino

Если вы занимаетесь IoT (Интернетом вещей), вы, возможно, слышали о модуле ESP8266 WiFi. Если нет, не волнуйтесь. Это руководство посвящено началу работы с WiFi-модулем Esp8266 и тому, как пару ESP8266 Arduino можно использовать в ваших проектах IoT.

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

Взгляните на эти ПРОЕКТЫ ИНТЕРНЕТ ВЕЩЕЙ (IOT) .

Что такое ESP8266?

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 и т. Д.

ESP8266 ESP-01

В этом проекте мы будем использовать модуль ESP-01 от Ai-Thinker.Он состоит из 8 контактов, а на следующем изображении показаны различные компоненты платы.

Переходя к конфигурации контактов, как упоминалось выше, модуль ESP-01 состоит из 8 контактов, и это контакты VCC, GND, TX, RX, RST, CH_PD, GPIO0 и GPIO2. На следующем изображении показана схема контактов модуля ESP-01.

Описание выводов модуля ESP8266 ESP-01
  • VCC : это вывод питания, через который подается напряжение 3,3 В.
  • GND : это контакт заземления.
  • TX : Этот вывод используется для передачи последовательных данных на другие устройства.
  • RX : Вывод RX используется для приема последовательных данных от других устройств.
  • RST : Это вывод сброса и активный вывод LOW. (ESP8266 сбрасывается, если вывод RST получит сигнал LOW).
  • CH_PD : Это вывод включения микросхемы, и это активный вывод HIGH. Обычно подключается к 3,3 В.
  • GPIO0 : Контакт GPIO0 (ввод / вывод общего назначения) имеет двойные функции — одну для нормальной работы GPIO, а другую для включения режима программирования ESP8266.
  • GPIO2 : это контакт GPIO.

ВАЖНОЕ ПРИМЕЧАНИЕ : ESP8266 несовместим с 5 В, а модуль ESP-01 не имеет встроенных регуляторов напряжения. Убедитесь, что питание ESP8266 составляет 3,3 В, предпочтительно от специального источника питания, а не от вывода 3,3 В на Arduino.

ESP8266 Интерфейс Arduino

Прежде чем увидеть интерфейс ESP8266 Arduino, вам нужно кое-что узнать о модуле ESP8266.Модуль WiFi ESP8266 поставляется с прошивкой по умолчанию, которая поддерживает AT-команды.

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

Теперь мы увидим, как запрограммировать ESP8266 с помощью Arduino и получить доступ к его контактам GPIO. Сначала мы увидим принципиальную схему интерфейса.

Принципиальная схема интерфейса ESP8266 Arduino

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

Необходимые компоненты
  • Arduino UNO [Купить здесь]
  • ESP8266 ESP-01
  • Резистор 1 кОм
  • Резистор 2,2 кОм
  • Конденсатор 100 пФ (код конденсатора — 104)
  • Мини-макетная плата
  • Соединительные провода

Подготовка модуля ESP8266 ESP-01 к монтажу на макетной плате

Если вы посмотрите на контакты модуля ESP8266 ESP-01, вы увидите, что он не подходит для макетной платы.Итак, я сделал небольшую перфокарту с контактами, подходящими для макетной платы, на дне и гнездовыми разъемами, чтобы установить на нее модуль ESP8266 ESP-01.

На этой плате я также подключил резисторы преобразователя уровня для вывода RX ESP8266, а также байпасный конденсатор 100 пФ между VCC (3,3 В) и GND. На следующем изображении показан монтаж модуля ESP8266 ESP-01 на мини-макетной плате.

Подготовка Arduino IDE к программированию ESP8266

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.

Подготовка Arduino UNO к программированию ESP8266

Чтобы запрограммировать модуль 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 с использованием Arduino

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

Прежде всего, модуль 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 упомянуты ниже.

  1. VCC — -> 3,3 В
  2. GND — -> GND
  3. CH_PD — -> 3,3 В
  4. RST — -> Нормально открытый; GND для сброса
  5. GPIO0 — -> GND
  6. TX — -> TX Arduino
  7. RX — -> RX Arduino (через преобразователь уровня)

Работа интерфейса ESP8266 Arduino

Убедитесь, что все вышеперечисленное соединения выполнены правильно.После подключения и настройки 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.

ESP8266 Распиновка: какие контакты GPIO следует использовать?

Эта статья представляет собой руководство для GPIO ESP8266: схемы распиновки, их функции и способы их использования.

Микросхема ESP8266 12-E имеет 17 контактов GPIO. Не все GPIO доступны на всех платах разработки ESP8266, некоторые GPIO использовать не рекомендуется, а другие имеют очень специфические функции.

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

У нас также есть руководство для ESP32 GPIO: ESP32 Pinout Reference: Какие контакты GPIO следует использовать?

ESP8266 Распиновка 12-E микросхемы

На следующем рисунке показана распиновка микросхемы 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 Распиновка

Если вы используете плату ESP8266-01, вы можете использовать следующую схему GPIO в качестве справочной.

ESP8266 Комплект 12-E NodeMCU

Распиновка комплекта ESP8266 12-E NodeMCU показана ниже.

Распиновка Wemos D1 Mini

На следующем рисунке показана распиновка WeMos D1 Mini.

Скачать PDF со схемами распиновки ESP8266

Мы подготовили удобный PDF-файл, который вы можете скачать и распечатать, поэтому диаграммы ESP8266 всегда будут рядом с вами:

Скачать PDF Схема распиновки »

ESP8266 Периферийные устройства

Периферийные устройства ESP8266 включают:

  • 17 GPIO
  • SPI
  • I2C (реализовано в программном обеспечении)
  • Интерфейсы I2S с DMA
  • UART
  • 10-битный АЦП

Лучшие выводы для использования — ESP8266

Одна важная вещь, которую следует отметить в ESP8266, заключается в том, что номер GPIO не соответствует этикетке на шелкографии платы.Например, D0 соответствует GPIO16, а D1 соответствует GPIO5.

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

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

9002 9279 GPIO4

0

Этикетка GPIO Вход Выход Примечания
DIO

GPIO поддержка прерывания

HIGH при загрузке
используется для пробуждения из глубокого сна
D1 GPIO5 OK OK часто используется как SCL (I2C) OK 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 и его функций.

GPIO, подключенные к Flash Chip

GPIO6 — GPIO11 обычно подключаются к микросхеме флэш-памяти на платах ESP8266. Так что эти булавки использовать не рекомендуется.

Пины, используемые во время загрузки

ESP8266 может быть заблокирован от загрузки, если некоторые контакты потянуты в НИЗКОЕ или ВЫСОКОЕ. В следующем списке показано состояние следующих контактов при загрузке:

  • GPIO16: контакт высокий при загрузке
  • GPIO0: сбой загрузки при нажатии LOW
  • GPIO2 : контакт высокий при загрузке, сбой загрузки при нажатии LOW
  • GPIO15 : сбой загрузки при нажатии HIGH
  • GPIO3 : высокий уровень вывода при загрузке
  • GPIO1 : высокий уровень вывода при загрузке, отказ загрузки при нажатии LOW
  • GPIO10 : высокий уровень вывода при загрузке
  • GPIO9 : высокий уровень вывода при загрузке

ВЫСОКИЙ ПИН при загрузке

Есть определенные контакты, которые выводят 3.Сигнал 3В при загрузке ESP8266. Это может быть проблематично, если к этим GPIO подключены реле или другие периферийные устройства. Следующие GPIO выводят сигнал HIGH при загрузке:

  • GPIO16
  • GPIO3
  • GPIO1
  • GPIO10
  • GPIO9

Кроме того, другие 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

Когда на выводе RST тянут НИЗКОЕ значение, ESP8266 сбрасывается.Это то же самое, что и нажатие кнопки RESET на плате.

GPIO0

Когда GPIO0 получает НИЗКОЕ значение, он устанавливает ESP8266 в режим загрузчика. Это то же самое, что и нажатие встроенной кнопки FLASH / BOOT.

GPIO16

GPIO16 можно использовать для вывода ESP8266 из глубокого сна. Чтобы вывести ESP8266 из глубокого сна, GPIO16 должен быть подключен к выводу RST. Узнайте, как перевести ESP8266 в режим глубокого сна:

I2C

ESP8266 не имеет аппаратных выводов I2C, но может быть реализован программно.Таким образом, вы можете использовать любые GPIO в качестве I2C. Обычно в качестве контактов I2C используются следующие GPIO:

SPI

Контакты, используемые в качестве SPI в ESP8266:

  • GPIO12 : MISO
  • GPIO13 : MOSI
  • GPIO14 : SCLK
  • GPIO15 : CS

Выводы PWM

ESP8266 позволяет использовать программную ШИМ на всех выводах ввода / вывода: от GPIO0 до GPIO16. Сигналы ШИМ на ESP8266 имеют 10-битное разрешение. Узнайте, как использовать контакты ESP8266 PWM:

Контакты прерывания

ESP8266 поддерживает прерывания в любом GPIO, кроме GPIO16.

Завершение

Мы надеемся, что вы нашли это руководство для GPIO ESP8266 полезным. Если у вас есть несколько советов о том, как правильно использовать GPIO ESP8266, вы можете написать комментарий ниже.

У нас также есть аналогичное руководство для ESP32 GPIO, которое вы можете прочитать.

Если вы только начинаете работать с ESP8266, у нас есть отличный контент, который может вас заинтересовать:

Спасибо за чтение.

Как подключить ESP8266 к Arduino UNO — блог Тео

В Интернете есть много руководств о том, как подключить ESP8266 к Arduino uno, но слишком много путаницы и недостаточно объяснений.Итак, я дам вам краткую версию вместе с деталями.

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

Шаги, которые вам нужно предпринять, просты. Это написано для ESP8266-01, но вы можете легко найти распиновку для других моделей и использовать те же контакты. Сначала мы подключим Arduino UNO к макетной плате:

  1. Подключите выход Arduino 3v3 (3,3 В) к красной линии на макетной плате. ESP8266 работает с напряжением 3,3 В, а не 5 В, поэтому это необходимо.Если вы хотите подключить другие компоненты, которые используют 5 В, вы можете подключить выход 5 В к другой красной линии макета, только убедитесь, что вы не подключаете их.
  2. Подключите GND (земля) к синей линии.
  3. Подключите контакт RES или RESET к синей линии. Когда вы заземляете контакт сброса, Arduino работает как тупой USB-последовательный разъем, о чем мы и хотим поговорить с ESP8266.
  4. Подключите вывод RXD Arduino к выводу RX ESP8266 (желтый цвет на картинке).
  5. Подключите вывод TXD Arduino к выводу TX ESP (зеленый цвет на картинке). Обычно, когда мы хотим, чтобы два объекта взаимодействовали друг с другом по последовательному каналу, мы подключаем вывод TX одного к RX другого (отправка идет на прием и наоборот). Здесь у нас нет связи Arduino с ESP8266, наш компьютер обращается к нему через Arduino.
  6. Подключите вывод GND ESP к синей линии, а вывод VCC к красной линии.
  7. Наконец CH_PD переходит на красную линию, якобы он не будет работать, если вы его не подключите. Согласно обсуждению я нашел:

ESP-01 и ESP-03 изначально предназначались для использования в качестве модуля Arduino WiFi. В этом аспекте имеет смысл отключить CH_PD, чтобы пользователь мог отключить устройство, когда оно не используется (для экономии энергии).

Использование Arduino IDE

В Arduino IDE вам не нужно выбирать плату, так как мы ничего не загружаем в ESP8266.Просто выберите правильный порт в меню Tools и перейдите в Tools Serial Monitor . Затем просто установите скорость передачи данных 115200 (она используется в прошивке ESP8266 по умолчанию), а окончание строки — И NL, и CR .

Если вы наберете AT в поле сообщения и нажмете Enter, он должен ответить OK .

И поскольку мы говорили о выводе CH_PD, помните, что если вы хотите прошить ESP8266, вы должны подключить вывод GPIO0 к GND (синяя линия), что переводит ESP в режим прошивки.

Вот и все! Если у вас есть вопросы, задавайте их ниже, и я постараюсь ответить!

Связанные

Подключите ESP8266 к оборудованию Arduino — MATLAB и Simulink

Подключите ESP8266 к оборудованию Arduino

ESP8266 — это недорогой чип, который может добавить к микроконтроллеру возможность Wi-Fi ® . Многие модели микросхем на базе ESP8266, например доступны как ESP-01 и ESP-12. Модели различаются количеством контактов GPIO. подверженности воздействию, объему флэш-памяти и другим различным факторам.Однако основные Функциональность Wi-Fi во всех вариантах одинакова.

ESP8266 взаимодействует с Arduino ® через последовательное соединение. Arduino отправляет AT-команды на чип. Чип получает команду, обрабатывает он и отправляет ответ.

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

Источник питания к ESP8266

В таблице показаны соединения контактов между источником питания и ESP8266.

9902 9027 9902

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

Аппаратные соединения Arduino с ESP8266

В таблице показаны соединения контактов между платой Arduino и ESP8266.

Подключите контакт TX ESP8266 к контакту RX на плате Arduino и подключите контакт RX ESP8266 к контакту TX на плате Arduino. Плата Arduino. Для получения дополнительной информации о последовательных портах на разных Платы Arduino см. В разделе Отображение контактов для блоков, независимых от таймера Arduino.

После подключения желаемого последовательного порта перейдите к Параметры конфигурации > Аппаратная реализация > Настройки аппаратной платы > Целевые аппаратные ресурсы > Свойства Wi-Fi и установите параметры, как описано в разделе Настройка сетевых параметров для Вай-фай.

См. Также

Настройка параметров сети для WiFi

Ссылка на распиновку

ESP8266 и способы использования контактов GPIO

В этом руководстве содержится информация о распиновке ESP8266 и различных типах плат ESP8266, таких как Nodemcu , ESP01, ESP12.Сначала я дам обзор микросхемы ESP8266 и ее распиновки, а после этого я дам описание распиновки наиболее популярных плат ESP8266 .

Esp8266 — это микрочип в корпусе QFN, имеющий возможности как пакета TCP / IP, так и микроконтроллера. Esp8266 представляет собой высокоинтегрированное решение Wi-Fi, которое отвечает таким требованиям индустрии Интернета вещей, как низкая стоимость, эффективное энергопотребление, надежная производительность и компактный дизайн. Он производится компанией Espressif Systems в Шанхае, Китай.

Обладая полными сетевыми возможностями WiFi, он может работать как ведомое устройство для микроконтроллера хоста или как отдельное приложение. Когда мы говорим «подчиненный» микроконтроллеру хоста, это означает, что он может использоваться в качестве адаптера WiFi для любого микроконтроллера, использующего интерфейсы SPI или UART. При автономном использовании он может выполнять функции микроконтроллера и сети Wi-Fi.

Esp8266 основан на серии Tensilica L106 Diamond, которая представляет собой 32-битный процессор и имеет встроенную SRAM.Также включает в себя силовые модули, РЧ балун, РЧ приемник и передатчик, аналоговый приемник и передатчик, цифровой модулирующий сигнал, усилитель, фильтры и некоторые другие минимальные компоненты.

Технические характеристики ESP8266 Спецификация

Esp8266 делится на три части: аппаратное обеспечение, программное обеспечение и Wi-Fi. В спецификации аппаратного обеспечения размер его корпуса составляет 32 контакта QFN с размерами 5 мм x 5 мм. Диапазон рабочих напряжений от 2,5 В до 3,6 В. Чип потребляет в среднем 80 мА тока.Его центральный процессор — Tensilica L106, 32-битный процессор со встроенной SRAM. Периферийный интерфейс содержит UART, SDIO, SPI, I2C, I2S, ИК-пульт дистанционного управления, GIPO, ADC, PWM, светодиодную подсветку и кнопку.

Его прошивку можно обновить через OTA и UART. В качестве сетевых протоколов он использует IPv4, TCP, UDP и HTTP. Пользователь может настроить с помощью набора AT-команд, облачного сервера и мобильного приложения.

Диапазон частот Wi-Fi от 2,4 до 2,5 ГГц. Он использует стандартный протокол Wi-Fi IEEE 802.11 б / г / н. Возможности Wi-Fi Esp6266 сертифицированы Wi-Fi Alliance.

ESP8266 Распиновка и описание микросхемы

Расположение контактов 32-контактного корпуса QFN.

  • Pin1: VDDA — это вывод питания для аналоговых диапазонов мощности от 2,5 В до 3,6 В.
  • Pin2: LNA — это контакт ввода / вывода, специально используемый для интерфейса RF антенны. Чип обеспечивает импеданс 39 + j6 Ом.
  • Pin3: VDD3P3 — это вывод питания, обеспечивающий диапазон мощности усилителя от 2.От 5 до 3,6 В.
  • Pin4: VDD3P3 — это вывод питания, обеспечивающий диапазон мощности усилителя от 2,5 В до 3,6 В, аналогично контакту 3.
  • Pin5: VDD_RTC классифицируется как вывод питания и подает 1,1 В, но этот вывод не подключен.
  • Pin6: TOUT — это входной вывод, выполняющий функцию вывода ADC для проверки напряжений питания выводов Pin3 и Pin4, а также входных напряжений на выводе 6 TOUT. Эти две функции не могут выполняться одновременно.
  • Pin7: CHIP_EN I входной контакт.Когда вывод CHIP_EN находится в состоянии HIGH, микросхема работает правильно, когда микросхема LOW потребляет только небольшое количество тока.
  • Pin8: XPD_DCDC — это контакт ввода / вывода, который используется для вывода микросхемы из режима глубокого сна. Обычно это связано с GPIO16.
  • Pin9: MTMS — это вывод ввода / вывода, обозначенный как GPIO14, и он используется в SPI как вывод синхронизации (SPI_CLK).
  • Pin10: MTDI — это вывод ввода / вывода, обозначенный как GPIO12, и он используется в SPI как вывод Master-In-Slave-Out (SPI_MISO).
  • Pin11: VDDPST — это вывод питания. Это источник питания с цифровым входом / выходом, напряжение которого находится в диапазоне от 1,8 до 3,6 В. Аналогичен pin17.
  • Pin12: MTCK — это вывод ввода / вывода, обозначенный как GPIO13, и он используется в SPI как вывод ведомого входа Master-Out (SPI_MOSI), а также используется в UART как вывод Clear To Send (UART_CTS).
  • Pin13: MTDO — это вывод ввода / вывода, обозначенный как GPIO15, и он используется в SPI как вывод выбора микросхемы (SPI_CS), а также используется в UART как вывод запроса на отправку (UART_RTS).
  • Pin14: GPIO2 — это контакт ввода / вывода, используемый в качестве UART TX во время программирования флэш-памяти.
  • Pin15: GPIO0 — это вход / выход, используемый как контакт 2 выбора микросхемы в SPI (SPI_CS2).
  • Pin16: GPIO4 — это контакт ввода / вывода, используемый исключительно для целей ввода и вывода.
  • Вывод 17: VDDPST — вывод питания. Это источник питания с цифровым входом / выходом, напряжение которого находится в диапазоне от 1,8 до 3,6 В. Аналогичен pin11.
  • Pin18: SDIO_DATA_2 — это контакт ввода / вывода, обозначенный как GPIO9 и используемый для подключения к контакту данных 2 SD-карты.
  • Pin19: SDIO_DATA_3 — это контакт ввода / вывода, обозначенный как GPIO10 и используемый для подключения к контакту данных 3 SD-карты.
  • Pin20: SDIO_CMD — это входной / выходной контакт, помеченный как GPIO11 и используемый для соединения с командным контактом SD-карты.
  • Pin21: SDIO_CLK — входной / выходной контакт, помеченный как GPIO6 и используемый для подключения к тактовому контакту. SD-карты.
  • Pin22: SDIO_DATA_0 — это контакт ввода / вывода, обозначенный как GPIO7 и используемый для подключения к контакту данных 0 SD-карты.
  • Pin23: SDIO_DATA_1 — это контакт ввода / вывода, обозначенный как GPIO8 и используемый для подключения к контакту данных 1 SD-карты.
  • Pin24: GPIO5 — это контакт ввода / вывода, используемый исключительно для целей ввода и вывода.
  • Pin25: U0RXD — это контакт ввода / вывода, обозначенный как GPIO3 и используемый как UART RX во время программирования флэш-памяти.
  • Pin26: U0TXD — это контакт ввода / вывода, обозначенный как GPIO1 и используемый как UART TX во время программирования флэш-памяти. Также используется как контакт 1 выбора микросхемы SPI (SPI_CS1).
  • Pin27: XTAL_OUT классифицируется как контакт ввода / вывода и подключается к выходу кварцевого генератора.
  • Pin28: XTAL_IN классифицируется как контакт ввода / вывода и подключается к входу кварцевого генератора.
  • Pin29: VDDD — это вывод питания, обеспечивающий аналоговое питание в диапазоне от 2,5 В до 3,6 В.
  • Pin30: VDDA — это вывод питания, обеспечивающий аналоговый диапазон мощности от 2,5 В до 3,6 В. Аналогичен pin29.
  • Pin31: RES12K — это входной вывод, который последовательно соединен с резисторами 12 кОм и подключен к земле.
  • Pin32: EXT_RSBT — это входной вывод, используемый для стабилизации микросхемы путем подачи внешнего сигнала сброса, который активен при низком уровне напряжения.
  • Pin33: GND — это вывод питания, который выполняет роль заземления для микросхемы.

Все GPIO могут использоваться как входные и выходные контакты, но они также имеют свою особую функцию.

Схема Схема

ESP8266 включает следующие компоненты:

  • Источник питания
  • Последовательность включения и сброс
  • Flash
  • Кварцевый генератор
  • RF
  • Внешний резистор
  • UART

Пока что мы рассмотрим преамбулу Esp8266, функциональную блок-схему, расположение контактов, описание и схемы .

В августе 2014 года Espressif Systems запустила свой первый необработанный модуль, который производится третьей частью AI-Thinker, и модуль, называемый модулем ESP-01. С тех пор Ai-Thinker разработал серию модулей на основе ESP8266, эта серия, называемая модулями ESP-xx, варьируется от 01 до 14.

Распиновка различных типов модулей ESP8266

В этом разделе статьи мы поговорим о распиновках различных версий модуля ESP8266 , начиная с ESP-01 и заканчивая ESP-12.

Espressif Systems выпустила свой первый официальный комплект для разработки программного обеспечения, позволяющий программировать чип напрямую, без взаимодействия с внешним микроконтроллером. С тех пор существует множество официальных SDK, но Espressif поддерживает только два стабильных SDK, один основан на FreeRTOS, а другой — на обратных вызовах. Существует также множество SDK с открытым исходным кодом для ESP8266.

Arduino : наиболее часто используемый SDK из-за его популярности. Это SDK на основе C ++. ESP6266 легко программируется как платы Arduino.Основные файлы доступны на GitHub.

NodeMCU: — это комплект для разработки программного обеспечения на основе Lua.

MicroPython: — это использование языка Python для встроенных устройств.

Espruino, Mongoose OS, uLisp, Sming, Platform IO, ESP Easy, Smick, ESP Open RTOS — это некоторые другие SDK с открытым исходным кодом. Необходимость в этих платах разработки необходима из-за отсутствия на борту модулей серии ESP-xx стабилизатора напряжения. , Мост USB-UART, такой как Ch440G и CP2102 от Silicon Lab, и разъем micro USB.Раньше нам приходилось покупать стабилизатор напряжения и мост USB-UART отдельно, а затем соединять их с модулями ESP-xx для прошивки.

Здесь мы обсудим в основном отладочную плату, основанную на модуле ESP-12E.

ESP8266 12E Распиновка модуля Модуль

Esp8266 12E имеет всего 22 контакта, включая

Источник питания ESP8266
3,3 В Vcc
3,3 В CH_PD
Кол-во контактов Этикетка контактов Описание
17 GPIO Диапазон контактов GPIO от GPIO0 до GPIO16 включает SPI, I2C, интерфейс SDIO, I2C, SDI.
1 ADC 10-битный аналого-цифровой преобразователь.
1 VCC Напряжение питания 3,3 В
1 GND Заземляющий штырь
1 RST Остаточный штифт Штифт

ESP8266 12E Wemos D1 Mini распиновка

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 Распиновка модуля

ESP8266 01 Модуль отличается, но обычно используется, как указанные выше платы для разработки. Эта плата не является макетной, часто для программирования используется отдельный программный модуль. Всего у него 8 контактов, 6 из которых активны.

CH752 / EN 902

Штифт

Этикетка Описание
1 3.3 В Вывод питания 3,3 В
1 Заземление Вывод заземления
1 RST Вывод сброса
1 Вывод питания
4 GPIO от 0 до 3 Интерфейс UART и контакты ввода / вывода

ESP8266 12E Распиновка платы разработки NodeMCU

Плата разработки NodeMCU имеет в общей сложности 30 контактов, из которых 14 активных, использует модуль ESP-12, встроенный сброс и кнопку вспышки, 3.3 стабилизатора напряжения, Micro USB, USB to UART Bridge и некоторые другие компоненты.

9027

Штифт

Наклейка Описание
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 имеет следующие периферийные устройства:

  • 17 универсальных входных выходных контактов
  • Последовательный периферийный интерфейс (SPI)
  • Межинтегральная схема (12C)
  • Звуковые интерфейсы между IC (12S) с прямым доступом к памяти
  • Универсальный интерфейс асинхронного приемника и передатчика.
  • 10-битный аналого-цифровой преобразователь

Аналоговый вход

ESP8266 имеют только один 10-битный аналого-цифровой преобразователь, который называется ADC0 и обозначается как A0. Но это также один из самых больших недостатков, потому что в большинстве случаев пользователю приходится подключать два датчика, поэтому нам приходится покупать отдельные модули АЦП, ИС и схему мультиплексирования для взаимодействия двух или более датчиков, но это тема другой статьи.

Входное аналоговое напряжение модуля ESP-01 находится в диапазоне от 0 до 1 В.Плата разработки на основе модуля ESP-12E имеет диапазон входного аналогового напряжения от 0 до 3,3 В. Поэтому при написании скетча мы должны помнить об использовании вывода A0.

Выводы ШИМ

ESP8266 поддерживает ШИМ на всех выводах ввода / вывода от GPIO0 до GPIO16. Сигналы ШИМ имеют 10-битное разрешение.

Контакты SPI

Интерфейс последовательного программирования (SPI) имеет следующие контакты в ESP8266

  • GPIO12 для Mater-Out-Slave-In (MOSI)
  • GPIO13 для Mater-In-Slave-Out (MISO)
  • GPIO14 для последовательных часов (SCLK)
  • GPIO15 для чипа Выберите (CS)

Выводы I2C

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 с зеленой галочкой.

902 902 аналоговый вход для аналогового входа 0 0 3,3в и без выхода. SD Поднят вверх штырь для SPI
Этикетка GPIO Вход Выход Описание
A0 ADC2
RX GPIO3 Да Только вывод RX Высокий уровень при загрузке.
TX GPIO1 Только вывод Tx Да Высокий уровень при загрузке.
D0 GPIO16 Без прерывания Без I2C, PWM Используется для вывода микросхемы из глубокого сна, высокого уровня при загрузке.
D1 GPIO5 Да Да Часто используется как SCL
D2 GPIO4 Да Да Да Подключен к кнопке Flash
D4 GPIO2 Поднят вверх Да Подключен к встроенному светодиоду, высокий уровень при загрузке.
D5 GPIO14 Да Да Штырь SCLK для интерфейса SPI
D6 GPIO12 Да Да GP2 GPO2 MIS 9027 Да Да Вывод MOSI для интерфейса SPI
D8 GPIO15 Прижат к земле Да Вывод CS для интерфейса SPI
Сигнал высокого напряжения ESP
9000 при загрузке

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

  • GPIO16
  • GPIO3
  • GPIO1
  • GPIO10
  • GPIO9

Все остальные выводы GPIO обеспечивают одиночное низкое напряжение при загрузке, кроме GPIO4 и GPIO5. Таким образом, GPIO4 и GPIO5 — лучшие контакты для подключения реле, транзисторов и других периферийных устройств для получения стабильных результатов.

Конфигурация контактов во время загрузки

Для успешной загрузки ESP8266 мы должны запретить указанным контактам получить ВЫСОКИЙ или НИЗКИЙ.

  • GPIO16: высокий уровень вывода при загрузке
  • GPIO3 : высокий уровень вывода при загрузке
  • GPIO10 : высокий уровень вывода при загрузке
  • GPIO9 : высокий уровень вывода при загрузке
  • GPIO2 : контакт высокий при загрузке, сбой загрузки при нажатии LOW
  • GPIO1 : контакт высокий при загрузке, сбой загрузки при нажатии LOW
  • GPIO0: сбой загрузки при нажатии LOW
  • GPIO15 : сбой загрузки при нажатии HIGH

Приложения ESP8266
  • Домашняя автоматизация
  • Интеллектуальные розетки и переключатели
  • Бытовая техника (например, кондиционер, принтер)
  • Беспроводное промышленное управление
  • Сенсорные устройства
  • Носимые гаджеты
  • IP-камеры
  • Идентификационные метки безопасности
  • Wi-Fi с учетом местоположения устройства
  • Система определения местоположения Wi-Fi

Вы также можете ознакомиться с другими руководствами по ESP8266:

NodeMCU ESP8266 Технические характеристики, обзор и настройка

NodeMCU IoT Experimenter — это универсальная платформа для создания прототипов для использования с множеством самых популярных модулей NodeMCU, включая нашу плату NodeMCU Carrier Board.Отлично подходит для проектов IoT, расширенного или простого интерфейса, а также в качестве платформы для создания прототипов. NodeMCU с его универсальностью, в том числе возможностью программирования и использования из Arduino IDE, делает его вместе с этой макетной платой идеальным решением для экспериментатора.

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.

ESP8266 — PinOut — StudioPieters®

Для тех, кто начал с модулей ESP, я сделал несколько схем распиновки, их функций и способов их использования.Чип ESP8266 12-E имеет 17 контактов GPIO. Не все GPIO доступны на всех платах разработки ESP8266, некоторые GPIO не рекомендуется использовать, а другие имеют очень специфические функции. С помощью этого руководства вы узнаете, как правильно использовать ESP8266 GPIO и избежать долгих часов разочарований, используя наиболее подходящие контакты для ваших проектов.

Распиновка микросхемы ESP8266 12-E

На следующем рисунке показана распиновка микросхемы ESP8266 12-E. Используйте эту схему, если вы используете в своих проектах голый чип ESP8266.Внизу этого блога вы можете скачать PDF-файл!


Примечание: здесь я купил свой чип ESP8266 12-E



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


В настоящее время существует множество плат для разработки с чипом ESP8266, которые различаются количеством доступных GPIO, размером, форм-фактором и т. Д.

ESP8266-01 Распиновка

Если вы используете плату ESP8266-01, вы можете использовать следующую схему GPIO в качестве справочной.Распиновка ESP-01 ESP8266 Контакты GPIO. Внизу этого блога вы можете скачать PDF-файл!


Примечание: я купил свой чип ESP8266 — 01 здесь


ESP8266 Периферийные устройства

Периферийные устройства ESP8266 включают в себя:

  • 17 GPIO, реализованные в программном обеспечении
  • SPI 9 9002 900
  • Интерфейсы I2S с DMA
  • UART
  • 10-битный АЦП

Лучшие выводы для использования — ESP8266

Одна важная вещь, которую следует отметить в ESP8266, заключается в том, что номер GPIO не сопоставьте этикетку с шелкографией на плате.Например, D0 соответствует GPIO16, а D1 соответствует GPIO5. В следующей таблице показано соответствие между метками на шелкографии и номером GPIO, а также то, какие контакты лучше всего использовать в ваших проектах, а какие вам следует соблюдать осторожность.

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

поддержка D3 9272 OK D7 9 0272 OK OKug загрузка, загрузка не выполняется при нажатии LOW
Этикетка GPIO Вход Выход Примечания
D0 D0 HIGH при загрузке используется для пробуждения из глубокого сна
D1 GPIO5 OK OK (9000 I9029C2) часто используется как 9000 I9029C2
D2 GPIO4 OK OK часто используется как SDA (I2C)
D3 927 подключен к кнопке FLASH, загрузка не выполняется при нажатии LOW
9000 9 D4 GPIO2 подтянулся OK ВЫСОКИЙ при загрузке подключен к встроенному светодиоду, загрузка не выполняется при нажатии НИЗКИЙ
DIO5

ОК

ОК SPI (SCLK)
D6 GPIO12 ОК OK27 GPIO13 OK OK SPI (MOSI)
D8

75 GIO15 9002

75 9002 SPI (CS) Загрузка не выполняется при нажатии HIGH

RX GPIO3 RX pin HIGH при загрузке
TX GPIO1 TX pin

5
TX pin

5 9027 902 902

5
A0 ADC0 Аналоговый вход X
9662 Продолжайте читать для более подробного анализа ESP82 GPIO и его функции.

GPIO, подключенные к микросхеме флэш-памяти

GPIO6 GPIO11 обычно подключаются к микросхеме флэш-памяти на платах ESP8266. Итак, эти пины не рекомендуется использовать .

Контакты, используемые во время загрузки

ESP8266 может быть заблокирован от загрузки, если некоторые контакты потянуты LOW или HIGH . В следующем списке показано состояние следующих контактов на BOOT :

  • GPIO16 : высокий уровень на BOOT
  • GPIO0 : сбой загрузки при нажатии LOW
  • GPIO2 : контакт высокий на BOOT, сбой загрузки при нажатии LOW
  • GPIO15 : сбой загрузки при нажатии HIGH
  • GPIO3 : высокий уровень вывода при загрузке
  • GPIO1 : высокий уровень вывода при загрузке, сбой загрузки при нажатии LOW
  • GPIO10 : высокий уровень при загрузке
  • GPIO9 : высокий уровень при загрузке

ВЫСОКИЙ уровень при загрузке

Есть определенные контакты, которые выводят 3.Сигнал 3V при загрузке ESP8266. Это может быть проблематично, если к этим GPIO подключены реле или другие периферийные устройства. Следующий GPIO выводит сигнал HIGH при загрузке:

  • GPIO16
  • GPIO3
  • GPIO1
  • GPIO10
  • GPIO9

Кроме того, кроме других 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

Когда на выводе RST установлен НИЗКИЙ уровень, ESP8266 сбрасывается. Это то же самое, что и нажатие кнопки СБРОС на плате .

GPIO0

Когда GPIO0 получает низкий уровень, ESP8266 переводится в режим загрузчика. Это то же самое, что и нажатие кнопки на плате ВСПЫШКА / ЗАГРУЗКА.

GPIO16

GPIO16 можно использовать для вывода ESP8266 из глубокого сна.Чтобы вывести ESP8266 из глубокого сна , GPIO16 должен быть подключен к выводу RST .

I2C

ESP8266 не имеет аппаратного обеспечения контактов I2C , но это может быть реализовано программно. Таким образом, вы можете использовать любой GPIO как I2C. Обычно в качестве контактов I2C используются следующие GPIO:

SPI

Контакты, используемые как SPI в ESP8266:

  • GPIO12: MISO
  • GPIO13: MOSI 9
  • IO

    SCLK

  • GPIO15: CS

Выводы PWM

ESP8266 позволяет использовать программное обеспечение PWM на всех выводах ввода / вывода: от GPIO0 до GPIO16 .Сигналы ШИМ на ESP8266 имеют 10-битное разрешение .

Контакты прерывания

ESP8266 поддерживает прерывания в любых GPIO , кроме GPIO16.

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

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