ESP8266:Типовые проблемы

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 1874 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


// пока тут ¯\_(ツ)_/¯

Модуль ESP8266: Решение проблем[1]

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

Проблемы с флэшером NodeMCU

Где скачать флэшер NodeMCU?

На GitHub-репозитории флэшера NodeMCU. Выберите нужную версию Windows из списка ниже, а после того, как откроется новая страница, нажмите на кнопку «Download»:

Какие настройки выставить в флэшере NodeMCU?

Флэшер NodeMCU уже идет с правильными настройками. Если вы поменяли настройки, крайне советую скачать флэшер NodeMCU заново. У меня настройки выглядят следующим образом:

Nodemcu-flasher.png

После того, как я нажимаю на кнопку «Flash», флэшер NodeMCU не запускает процесс записи прошивки

Если вы нажали на «Flash», но ничего не происходит, это значит, что случилось одно из двух:

  • Проблема 1. ESP8266 не переведен в режим загрузки прошивки (перед включением ESP8266 убедитесь, что его 0-ой GPIO-контакт подключен к контакту GND на программаторе)
  • Проблема 2. Программатор FTDI не поставляет ESP8266 достаточное количество энергии
ESP8266 Troubleshooting Guide nothing-happens 1.png

Чтобы решить проблему 1, ESP8266 нужно перевести в режим записи прошивки. Это делается следующим образом:

  1. Закройте окно флэшера NodeMCU
  2. Отключите питание от ESP8266
  3. Подключите ESP8266 и программатор FTDI друг к другу вот так (обязательно проверьте, что 0-ой GPIO-контакт ESP8266 подключен к контакту GND на программаторе)
  4. Подключите питание к ESP8266 и откройте флэшер NodeMCU
  5. Нажмите на кнопку «Flash»

Если флэшер по-прежнему пишет «Waiting MAC», попробуйте следующее:

  1. Оставьте флэшер NodeMCU открытым
  2. Подключите провод между контактом сброса на ESP8266 и контактом GND на программаторе
  3. Уберите провод от GND и подключите его к VCC

Повторяйте шаги 2 и 3, пока ESP8266 не перезагрузится, а флэшер NodeMCU – не распознает вашу ESP8266 и не начнет процесс записи прошивки. Впрочем, этот прием может и не сработать.

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

Флэшер NodeMCU не завершает процесс загрузки прошивки, застревая на одном месте

ESP8266 Troubleshooting Guide nodemcu-stuck 2.png
  1. Отключите питание от ESP8266 и программатора
  2. Закройте окно флэшера NodeMCU
  3. Снова подключите ESP8266 и программатор к компьютеру
  4. Откройте флэшер NodeMCU и выставьте скорость на 19200 бод

Если ничего не выйдет, повторите то же самое, но выставьте на четвертом этапе другую скорость (38400, 57600, 74880 или 115200 бод).

Как минимум 5 человек столкнулись с этой проблемой, и я не знаю почему. Впрочем, этот прием вроде как помогает ее решить. Думаю, на скорости 57600 или 115200 бод прошивка загрузится стопроцентно. Внятного объяснения этой проблемы у меня, к сожалению, нет.

Как флэшер NodeMCU должен выглядеть, если загрузка прошивки будет выполнена успешно?

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

ESP8266 Troubleshooting Guide nodemcu-flasher-flashed 3.png

Как восстановить программатор FTDI на Windows?

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

Если у вас не получается установить драйверы FTDI на Windows версии 7/8/8.1/10, то ваш программатор FTDI, скорее всего, заблокирован.

О том, как это исправить, смотрите в видео ниже:

[Видео – https://www.youtube.com/watch?v=SPdSKT6KdF8&]

Все необходимые ссылки ищите в описании к видео. Драйверы, которые вам нужны, находятся по этой ссылке.

Проблемы с ESPlorer IDE

Выдает ошибку «only one tcp server allowed»

Это значит, что вы пытались загрузить несколько скриптов, а ваш ESP по-прежнему работает со старым скриптом. Чтобы исправить это, вам нужно лишь отправить на ESP следующие команды:

file.format()
node.restart()

Это удалит все файлы и перезапустит ESP.

Загрузите скрипт снова, назовите его «init.lua», и ошибка должна исчезнуть.

Выдает ошибки «Can’t autodetect firmware» и «Waiting answer from ESP – Timeout reached. Command aborted».

ESP8266 Troubleshooting Guide cant-autodetect-firmware 4.png

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

  1. Закройте соединение с ESPlorer IDE
  2. Отключите питание от ESP8266
  3. Подключите 0-ой GPIO-контакт ESP8266 к VCC
  4. Подключите питание к ESP8266 и возобновите соединение с ESPlorer IDE

Если вам по-прежнему выдает ошибку «Can’t autodetect firmware», попробуйте следующее:

  1. Пускай в окне для вывода данных печатаются точки («......»)
  2. Подключите провод между контактом для сброса на ESP8266 и контактом GND
  3. Уберите этот провод от контакта GND и подключите его к VCC

Повторяйте шаги 2 и 3, пока ESP не перезагрузится, а ESPlorer IDE – не обнаружит вашу ESP. Впрочем, это может и не сработать.

Когда я перезагружаю ESP8266, код исчезает

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

  • Если дело в том, что ESP не может найти скрипт, это значит, что вы, сохраняя скрипт, назвали его не «init.lua», а как-то по-другому. Переименуйте скрипт как нужно и снова загрузите его на ESP.
  • Если дело в проблеме с памятью, попробуйте снова загрузить прошивку на ESP, но при помощи флэшера NodeMCU.

Поиск IP-адреса ESP8266

Перед тем, как начать, проверьте две вещи:

  1. Убедитесь, что в скрипт, загруженный на ESP, вписаны правильные данные о WiFi-сети (т.е. SSID и пароль)
  2. Убедитесь, что ESP находится рядом с роутером

Вот что нужно сделать, чтобы узнать IP-адрес:

Решение 1.

При помощи ESPlorer IDE отправьте на ESP команду print(wifi.sta.getip()).

ESP8266 Troubleshooting Guide ESP-IP-Address 5.png

Решение 2.

Установите программу IP Scanner (оно ищет все устройства, находящиеся в вашей сети).

  1. Загрузите программу (она бесплатная). Версия для Windows – [www.advanced-ip-scanner.com тут]. Версия для Mac OS X, Windows и Linuxтут.
  2. Установите одну из этих программ (ESP по-прежнему должен работать, и на нем должен быть запущен скрипт с веб-сервером).
  3. Откройте IP Scanner и кликните по кнопке «Scan».
  4. Подождите, пока программа завершит поиск (это может занять несколько минут).

В моем случае IP Scanner сумел найти ESP. Теперь, вписав в браузер IP-адрес ESP, я могу увидеть веб-сервер, запущенный на этом ESP.

ESP8266 Troubleshooting Guide advanced-ip-scanner 6.png

Проблемы с IDE Arduino

Не могу загрузить скрипты на ESP8266 при помощи IDE Arduino

Нужно перевести ESP в режим загрузки прошивки. Для этого проделайте следующее:

  1. Отключите питание от ESP8266
  2. Подключите друг к другу ESP и программатор как показано на схеме внизу (дважды проверьте, подключен ли 0-ой GPIO-контакт на ESP8266 к контакту GND на программаторе)
  3. Подключите питание к ESP8266 и откройте IDE Arduino
  4. Нажмите в IDE Arduino на кнопку «Загрузка»
ESP8266-Flasher.png

См.также

Внешние ссылки

  1. randomnerdtutorials.com - ESP8266 Troubleshooting Guide