Руководство по устранению неполадок ESP32

У ESP32 есть несколько распространённых проблем, особенно когда вы пытаетесь загрузить новые скетчи или установить дополнение ESP32 в Arduino IDE. Это руководство посвящено ESP32 при программировании в Arduino IDE. Здесь мы приводим подборку наиболее распространённых проблем с ESP32 и способы их решения.

Важно: убедитесь, что у вас установлена последняя версия Arduino IDE. Использование другой версии Arduino IDE может вызвать другие неожиданные проблемы и ошибки.

Руководство по устранению неполадок ESP32

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

Особого внимания заслуживают пункты 3.1 (связанный с включением питания и пробуждением из глубокого сна) и 3.4 (связанный с отсутствием перезагрузки при сбое питания). Старые чипы v0 и v1 использовались в модулях с маркировкой ESP32-WROOM-32. Ошибки исправлены в модулях ESP32-WROOM-32E и любых других обозначениях ESP32, заканчивающихся на E (подробнее см. на espressif). Поэтому, чтобы избежать проблем с ESP32, мы рекомендуем искать модули с маркировкой ESP32-WROOM-32E.

1. Как установить дополнение ESP32 для Arduino IDE?

Существует дополнение для Arduino IDE, которое позволяет программировать ESP32 с использованием Arduino IDE и его языка программирования. Следуйте одному из следующих руководств, чтобы подготовить Arduino IDE для работы с ESP32 в вашей операционной системе:

2. Я не вижу платы ESP32 в меню Tools Arduino IDE (Windows)

Если вы всё ещё не видите платы в Arduino IDE, убедитесь, что вы нажали на маленькую стрелку (выделена на рисунке ниже), чтобы прокрутить список плат до самого низа:

Прокрутка списка плат в Arduino IDE

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

3. C:\Users\User\Documents\Arduino\hardware\espressif\esp32/tools/xtensa-esp32-elf/bin/xtensa-esp32-elf-g++»: file does not exist

После установки дополнения ESP32, если вы открываете Arduino IDE и он не может скомпилировать код для вашей платы ESP32, рекомендуем повторно запустить установку дополнения ESP32 для Arduino IDE.

Примечание: на компьютерах с Windows часто установлено несколько версий Arduino IDE (портативная и локальная установка). Убедитесь, что вы запускаете ту Arduino IDE, в которой было установлено дополнение ESP32.

4. A fatal error occurred: «Failed to connect to ESP32: Timed out… Connecting…»

Когда вы пытаетесь загрузить новый скетч в ESP32 и ему не удаётся подключиться к плате, это означает, что ESP32 не находится в режиме прошивки/загрузки.

Убедившись, что выбраны правильное название платы и COM-порт, выполните следующие шаги:

  • Нажмите и удерживайте кнопку «BOOT» на плате ESP32

Кнопка BOOT на ESP32 для решения ошибки Failed to connect
  • Нажмите кнопку «Upload» (Загрузить) в Arduino IDE для загрузки нового скетча:

Кнопка загрузки в Arduino IDE
  • После того как вы увидите сообщение «Connecting….» в Arduino IDE, отпустите кнопку «BOOT»:

Успешная загрузка скетча в ESP32
  • После этого вы должны увидеть сообщение «Done uploading» (Загрузка завершена)

Вот и всё. На вашем ESP32 должен работать новый скетч. С этими платами/этой настройкой, после загрузки нового скетча, нажмите кнопку «ENABLE» для перезагрузки ESP32 и запуска нового загруженного скетча.

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

Честно говоря, мы не уверены, почему это происходит с новыми платами. У нас нет ни одной платы ESP32 с таким поведением. Мы думаем, что, возможно, что-то отличается в вашей конкретной плате, или Arduino IDE не отправляет правильную последовательность команд для автоматического перевода ESP32 в режим прошивки/загрузки.

5. Ошибка компиляции скетча WiFiScan

Если вы пытаетесь загрузить скетч ESP32 WiFiScan.ino, предоставленный в руководстве по началу работы с ESP32:

Ошибка компиляции скетча WiFiScan для ESP32

И он не компилируется с подобным сообщением об ошибке:

In function 'void setup()':
ScanNetworks:52: error: 'class WiFiClass' has no member named 'firmwareVersion'
String fv = WiFi.firmwareVersion();

Похоже, что ваша Arduino IDE компилирует библиотеку WiFi для платы Arduino (вместо использования библиотеки WiFi для ESP32).

Примечание: вы, вероятно, никогда не будете использовать Wi-Fi шилд с вашей платой Arduino, правильно? Если вы его не используете, вам нужно удалить эту папку/эти папки из вашей Arduino IDE (например, переместите её на рабочий стол).

Библиотека WiFi расположена по подобному пути:

C:\Users\ruisantos\Downloads\arduino-1.8.7-windows\arduino-1.8.7\libraries\WiFi

И/или по адресу:

C:\Users\ruisantos\Documents\Arduino\libraries\libraries\WiFi

После удаления всей папки библиотеки WiFi из одного или обоих расположений, перезапустите Arduino IDE и попробуйте скомпилировать код снова.

6. COM-порт не найден/недоступен

Если вы подключаете плату ESP32 к компьютеру, но не можете найти порт ESP32 в Arduino IDE (он неактивен):

COM-порт ESP32 не найден или недоступен

Это может быть одной из двух проблем: 1. Отсутствуют USB-драйверы или 2. USB-кабель без проводов данных.

1. Если вы не видите COM-порт ESP32, это часто означает, что у вас не установлены USB-драйверы. Внимательно посмотрите на чип рядом с регулятором напряжения на плате и проверьте его название.

Плата ESP32 DEVKIT V1 DOIT использует чип CP2102.

Чип CP2102 на плате ESP32

Найдите в Google ваш конкретный чип, чтобы найти драйверы и установить их в вашей операционной системе.

Скачивание драйверов для чипа CP2102 ESP32

Вы можете скачать драйверы CP2102 на сайте Silicon Labs.

Официальный сайт для скачивания драйверов CP2102 ESP32

После их установки перезапустите Arduino IDE, и вы должны увидеть COM-порт в меню Tools.

2. Если драйверы установлены, но вы не видите устройство, дважды проверьте, что вы используете USB-кабель с проводами данных.

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

Если вам нужна более подробная информация об установке этих драйверов, вы можете следовать этим руководствам:

7. Монитор порта Arduino IDE «не работает»

Если ESP32 выводит только непонятный текст или нечитаемые символы в мониторе порта Arduino IDE, убедитесь, что выбран правильный COM-порт и установлена правильная скорость передачи (baud rate), как показано ниже. В большинстве примеров мы используем скорость 115200 бод.

Настройка монитора порта Arduino IDE для ESP32

8. Ошибка: «Brownout detector was triggered»

Когда вы открываете монитор порта Arduino IDE и сообщение об ошибке «Brownout detector was triggered» постоянно выводится снова и снова, это означает, что существует какая-то аппаратная проблема.

Обычно это связано с одной из следующих причин:

  • Некачественный USB-кабель;

  • USB-кабель слишком длинный;

  • Плата с каким-то дефектом (плохая пайка);

  • Неисправный USB-порт компьютера;

  • Или недостаточная мощность, предоставляемая USB-портом компьютера.

Решение: попробуйте другой, более короткий USB-кабель (с проводами данных), попробуйте другой USB-порт компьютера или используйте USB-хаб с внешним питанием.

9. Не могу заставить дополнение ESP32 работать с Arduino IDE

Если вы следовали всем советам по устранению неполадок, а дополнение ESP32 не работает с Arduino IDE, рекомендуем попробовать программировать ESP32 с помощью VS Code и PlatformIO IDE. Прочитайте следующее руководство:

Заключение

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

У нас есть другие руководства по ESP32, которые могут вам понравиться:

Мы надеемся, что это руководство было полезным. Если вам нравится ESP32 и вы хотите узнать больше, рекомендуем записаться на курс Learn ESP32 with Arduino IDE.

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

Примечание

Это руководство было переведено с сайта Random Nerd Tutorials.