Подключение esp8266 к ардуино. Сборка макетной платы ESP8266

Решил изучить Ардуино. Построить «умный» дом. С чего-то надо начинать.
На базе 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

С модулем Wi-Fi.

На Arduino Uno WiFi предусмотрено всё для удобной работы с микроконтроллером: 14 цифровых входов/выходов (6 из них могут использоваться в качестве ШИМ-выходов), 6 аналоговых входов, разъём USB, разъём питания, разъём для внутрисхемного программирования (ICSP) и кнопка сброса микроконтроллера.

Изюминка платы - модуль WiFi ESP8266, который позволяет Arduino обмениваться информацией с другими модулями по беспроводным сетям стандартов 802.11 b/g/n.

ESP8266 позволяет прошивать плату Arduino без использование USB-шнура в режиме OTA (Firmware Over The Air - «микропрограммы по воздуху»).

Видеообзор платы

Подключение и настройка

Для начало работы с платой Arduino Uno WiFi в операционной системе Windows скачайте и установите на компьютер интегрированную среду разработки Arduino - Arduino IDE.

Что-то пошло не так?

Настройка модуля WiFi

Прошивка Arduino по WiFi

Arduino Uno WiFi имеет в своём запасе ещё один приятный бонус - возможность загружать скетчи без использование USB-шнура в режиме OTA (Firmware Over The Air). Рассмотрим подробнее как это сделать.


Для этого необходимо войти в меню: Инструменты Порт и выбирать нужный порт.

Так как мы прошиваем Arduino по WiFi, плата определиться как удалённое устройство с IP-адресом

Среда настроена, плата подключена. Можно переходить к загрузке скетча. Arduino IDE содержит большой список готовых примеров, в которых можно подсмотреть решение какой-либо задачи. Выберем среди примеров мигание светодиодом - скетч «Blink».
Прошейте плату нажав на иконку загрузки программы.
После загрузки светодиод начнёт мигать раз в секунду. Это значит, что всё получилось.

Теперь можно переходить к примерам использования .

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

Web-сервер

Поднимем простой web-сервер, который будет отображать страницу с текущими значениями аналоговых входов.

web-server.ino /* Пример простого web-сервера, работающего на Arduino Uno WiFi. Сервер показывает значения на аналоговых входах и обновляет информацию каждые две секунды. Обратитесь к серверу по адресу http:///arduino/webserver/ Обратите внимание: пример работает только с Arduino Uno WiFi Developer Edition. */ #include #include 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 < 4 ; analogChannel++ ) { int sensorReading = analogRead(analogChannel) ; client.print ("
  • на аналоговом входе " ) ; 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.

Совсем немного времени прошло с освоения новых микроконтроллеров Ардуино, как мне на глаза попадется информация о модуле ESP8266, и я решаюсь окунуться в новый для себя мир: новый микроконтроллер и беспроводная сеть Wifi. Радовало то, что программировать такие модули можно через уже освоенную программу Arduino IDE. Но каждый шаг надо проверять.

ESP8266 EX-12E :


 имеет 11 входов ввода-вывода (GPIO), что расширяет его возможности
 только в этой версии есть вход АЦП
 возможность SMD монтажа Подготовка к эксплуатации

Для работы модуля требуется:

 подать логическую единицу на вход EN (CH_PD)
 для входа в режим прошивки перед включением модуля надо замкнуть на землю GPIO0
 подать 3,3 v на VCC

Для первых шагов мне показалось несколько рискованным начинать работу с этим модулем, и я заказал комплект NodeMCU DevKit ESP8266 E-12 и макетную плату Motor shield ESP 8266 E-12 Я не собирался управлять двигателями, но меня привлекла возможность непосредственного подключения модуля к USB и согласование по питанию всех цепей.


Установил ARDUINO 1,6,6. Затем вписал в настройках программы http://arduino.esp8266.com/stable/package_esp8266com_index.json и в Инструментах отобразились платы, в том числе NodeMCU 1.0(ESP-12E Module) Загрузил пример WiFiClient и при компиляции получаю кучу сообщениий об ошибках. Обратился на форум ESP8266.ru , где мне посоветовали пользоваться предыдущей версией программы Arduino - 1.6.5. Для надежности я переустановил систему (восстановил с бэкапа) и установил Arduino 1.6.5. Проделал те же процедуры, чтобы подключить необходимые библиотеки. Делаю проверку, все отлично - ошибок нет!

Хватит лирики, теперь конкретно и с картинками, что я сделал.

1. Вписать путь к библиотекам (можно через запятую. На картинке один путь)


2. Выбрать в меню Boards Manadger


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


4. Снова заходим в меню Интсрументы и выбираем плату NodeMCU 1.0(ESP-12E module)

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

Пришло время сообщить, что я задумал сделать. Дома на стене висит большая карта мира, на которой подсвечены светодиодами разных цветов места, где я побывал. Так, синие светодиоды подсвечивают порты и точки в океане - работа в институте Океанологии; желтые - армия, и так далее. Светодиоды меняют свою яркость и иногда перемигиваются. Всем этим управляет Arduino Nano. Теперь же я хочу, чтобы всем управлял модуль ESP8266 и можно было менять режимы со смартфона через wifi. Задача не сложная, когда знаешь, как делать, а когда в первый раз?!

Первое, что потребовалось проверить - какие выводы у ESP8266 я смогу использовать для вывода ШИМ сигналов, чтобы управлять яркостью цветных светодиодных каналов. Всего на карте мира четыре цветовых канала. В каждом канале около 20 светодиодов. Тщетно проведя поиски в Интернете, я стал методом перебора, изменяя в программе активность выводов GPIO, определил 4 вывода. Позже я нашел таблицу, карту ножек, модуля ESP8266, которая подходила под мой вариант.

IO index ESP8266 pin IO index ESP8266 pin
0 GPIO16 7 GPIO13
1 GPIO5 8 GPIO15
2 GPIO4 9 GPIO3
3 GPIO0 10 GPIO1
4 GPIO2 11 GPIO9
5 GPIO14 12 GPIO10
6 GPIO12

Итак, первая часть программы работает. Я выбрал первые четыре вывода 0-3, то есть в программе это соответственно GPIO16, GPIO5, GPIO4, GPIO0, а на модуле DevKit ESP8266 E-12, это выводы D0-D3 соответсвенно.

Как задействовать wifi?

В поисках решения я вышел на сайт blynk.cc , с которого скачал и установил программу для смартфона (BLYNK FOR ANDROID) и библиотеку для Android IDE. Программа для смартфона устанавливается автоматом непосредственно с сайта blynk.cc без проблем.
Также без проблем я скачал библиотеку Blynk_v0.3.1.zip (275 Кб) и установил. Для этого следует запустить программу Arduino, выбрать в меню ADD .ZIP Library...


Библиотеки установились прямо из архива, это удобно.

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

Выбрал образец Blynk>BoardsAndShields>ESP8266_Standalone и на его базе написал свой скетч:

В смартфоне я подключил 4 больших слайдера, установив диапазон 0-1023 и одну кнопку переключающий режимы подсветки карты мира.

В правом нижнем углу карты размещен модуль DevKit ESP8266.

Схема достаточно простая. Единственно, что мне необходимо было сделать, это организовать питание и уровни управляющих сигналов. Основной блок питания на 12 вольт запитывает свтодиоды. На DevKit я подал 5 вольт через преобразователь


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

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

Шаг 1. Создайте проект графического интерфейса

Шаг 4. Настройте ESP8266

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

Что необходимо проверить:

  • Модуль имеет прошивку с поддержкой AT команд версии не ниже v0.40;
  • Модуль настроен на скорость работы 115200.

Шаг 5. Подключите ESP8266 к Arduino Uno

Подключите ESP8266 к Arduino Uno по схеме приведенной ниже. Обратите внимание, что контакты RX-TX соединяются перекрестием.

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


Шаг 6. Загрузите скетч в Arduino.

Скетч загружается в Arduino обычным способом. Однако из за того что модуль ESP8266 подключен к контактам 0 и 1, программирование становится невозможным. Компилятор будет показывать ошибку.

Перед программированием отсоедините провода идущие к ESP8266 от контактов 0 и 1. Произведите программирование. Затем верните контакты на место. Нажмите кнопку сброса Arduino.

Примечание: Первый признак того, что программирование прошло успешно, это мерцание синего светодиода на модуле ESP8266 в течении полсекунды сразу после сброса. Мерцание синего светодиода означает обмен данными между Arduino и ESP8266. В эти полсекунды Arduino производит настройку ESP8266 для работы в качестве точки доступа.

Шаг 7. Подключитесь с мобильного приложения.

Если инициализация проходит успешно и вы видите последнюю команду AT+CIPSERVER=1,6377, но при попытке подключения с мобильного приложения возникает ошибка, возможно, что модуль ESP8266 имеет устаревшую прошивку.

Проверьте объем памяти вашего ESP8266. Это можно сделать так же посмотрев маркировку чипа памяти, который находится на плате рядом с чипом ESP8266. Если размер памяти составляет 4 Mbit и меньше (установлен чип 25Q40), скорее всего этот модуль не будет работать как точка доступа для RemoteXY.

Проверьте питание ESP8266

Так же возможно, что вашей ESP8266 не хватает мощности источника питания. Некоторые платы Arduino имеют слабый стабилизатор напряжения 3.3 В, который не способен выдавать 200-300 мА в пиковых режимах. В этом случае в Serial Monitor вы так же увидите обрыв последовательности команд.

Проверьте особенности вашего смартфона

Некоторые модели смартфонов на Android имеют особенности подключения точек доступа WiFi, и возможно точка доступа не включается автоматически. Попробуйте подключиться к точке доступа предварительно в ручную, используя системные настройки. После этого попробуйте соединиться с устройством из приложения RemoteXY. Если в этом случае соединение устанавливается, значит ваш смартфон имеет такую особенность. Сообщите нам об этом.

Часть 1. Подготовка ESP8266

Зачем эта статья? На хабре уже есть ряд статей про использование ESP в разных конфигурациях, но почему-то без подробностей о том, как именно все подключается, прошивается и программируется. Типа «я взял ESP, две пальчиковые батарейки, DHT22, закинул в коробку, потряс часик и термометр готов!». В итоге, получается странно: те, кто уже работают с ESP не видят в сделанном ничего необычного, а те, кто хочет научиться - не понимают с чего начать. Поэтому, я решил написать подробную статью о том, как подключается и прошивается ESP, как его связать с Arduino и внешним миром и какие проблемы мне попадались на этом пути. Ссылки на Aliexpress привожу лишь для представления порядка цен и внешнего вида компонентов.

Итак, у меня было два микроконтроллера, семь разных сенсоров, пять источников питания, температурный датчик DHT22 и целое множество проводков всех сортов и расцветок, а так же бессчетное количество сопротивлений, конденсаторов и диодов. Не то, чтобы все это было необходимо для термометра, но если уж начал заниматься микроэлектроникой, то становится трудно остановиться.


Питание

Для работы ESP8266 нужно напряжение 3.3В и ток не ниже 300мА. К сожалению, Arduino Uno не в состоянии обеспечить такой ток, как не в состоянии обеспечить его и переходники USB-UART (программаторы) типа FT232RL - их предел около 50мА. А значит придется организовать отдельное питание. И лучше бы, чтобы Arduino тоже работал от 3.3В, чтобы избежать проблем типа «я подал пятивольтовый сигнал на вывод RX модуля ESP, почему пахнет паленой пластмассой?».

Есть три решения.

2. Купить готовый модуль с регулятором напряжения, понижающий 5В до 3.3В. Пожалуй, это самый удобный вариант.

3. Собрать модуль самому из регулятора AMS1117 и одного танталового конденсатора на 22мкФ.

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

С AMS1117 все просто: если положить его текстом вверх, то напряжение на ногах растет слева направо: 0(Gnd), 3.3В (Vout), 5В (Vin).
Между нулем и выходом нужен танталовый конденсатор на 22мкФ (так по инструкции , что будет если поставить электролитический - я не проверял). У танталового SMD-конденсатора плюс там, где полоска. Немного чудовищной пайки совершенно не предназначенных для такого варварства SMD-компонентов и:

Обязательно проверяйте выходное напряжение. Если оно значительно меньше 3.3В (например, 1.17В) - дайте регулятору остыть после пайки и проверьте контакты. Если поставите конденсатор больше, чем на 22мкФ, то мультиметр может показать более высокое напряжение.

Почему именно AMS1117? Он широко используется. Его вы можете найти почти везде, даже в Arduino Uno, как правило, стоит AMS1117-5.0.
Если вы знаете что-то схожих габаритов и цены, еще более простое в использовании - напишите, пожалуйста.

Важный момент. Не знаю уж почему, но AMS1117 крайне капризно относится к качеству соединений. Контакты должны быть надежны. Лучше - пропаяны. Иначе он на тестах выдает 3.3В, но под нагрузкой не выдает ничего.

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

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

Чтобы чип запустился нужно соединить VCC и CH_P через резистор 10кОм. Если такого нет, то сгодится любой из диапазона 1-20кОм. Кроме того, конкретно модель 07 еще требует, чтобы GPIO15 (самый ближний к GND) был «на земле» (этого на картинке не видно, потому что соединение с другой стороны).

Теперь берем переходник USB-UART, переключаем его на 3.3В и подключаем RX к TX, TX к RX и GND к «земле» (у меня без этого передача нестабильна). Если вы не можете переключить на 3.3В, то можно использовать простейший резисторный делитель напряжения: соедините ESP RX с TX переходника через сопротивление в 1кОм, а ESP RX с «землей» через 2кОм. Существует масса более сложных и более надежных способов связать 3.3В и 5В, но в данном случае и так сойдет.

И соединяемся на скорости 9600 по нужному COM-порту (можно посмотреть в диспетчере устройств).

Я использую SecureCRT, Putty тоже подойдет, а ценители Линукса и так знают, что делать и где смотреть.

(AT+RST перезагружает чип)

Если ничего не происходит - выключите - включите питание, если все равно ничего не происходит - проверьте соответствие TX/RX, попробуйте переставить их местами или припаять к чипу.

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

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

Иногда при этом меняется номер COM-порта. Под Linux это можно решить с помощью udev.

Если вместо текста приходит мусор, то проверьте настройки скорости. Некоторые старые чипы работают на 115200.

На старте чип нагревается, но если он реально горячий и продолжает греться - отключайте и проверяйте все соединения. Чтобы на корпус не попадало +3.3В, чтобы 5В к нему вообще никуда не приходили, чтобы «земля» переходника была соединена с «землей» чипа. Модели с металлическим экраном очень трудно сжечь (но нет ничего невозможного), а на модели без экранов жалуются, мол даже небольшая ошибка может стать последней в жизни чипа. Но это я не проверял.

Прошивка

Мой выбор - NodeMCU . У нее проблемы с памятью и поддержкой железа, но это многократно окупается простотой кода и легкостью отладки.

Так же потребуются NodeMCU flasher и LuaLoader (последнее - опционально, есть и другие клиенты для работы с этой прошивкой).

Выключаем чип. Подсоединяем GPIO0 к земле и включаем чип:

Если ничего не происходит и поля AP MAC/STA MAC пустые - проверьте еще раз, чтобы GPIO0 был на «земле».
Если прошивка началась, но зависла - посмотрите в закладке Log, у меня почему-то конкретно этот чип отказался прошиваться на FT232RL, но зато без проблем прошился на PL2303HX на скорости 576000. PL2303HX в указанном варианте не имеет переключения на 3.3В, чтобы им воспользоваться нужно открыть пластиковый корпус и перепаять провод с 5V на 3.3V, есть варианты с пятью выходами : 3.3, 5, TX, RX, Gnd.


Обратите внимание: STA MAC поменялся. Подозреваю, что flasher его неправильно показывал, но требуется проверка.

Для экономии сил и нервов можно взять готовый или полуготовый вариант.

Есть одноразовые адаптеры с удобной разводкой.
Есть