Руководство по устранению неполадок ESP32
У ESP32 есть несколько распространённых проблем, особенно когда вы пытаетесь загрузить новые скетчи или установить дополнение ESP32 в Arduino IDE. Это руководство посвящено ESP32 при программировании в Arduino IDE. Здесь мы приводим подборку наиболее распространённых проблем с ESP32 и способы их решения.
Важно: убедитесь, что у вас установлена последняя версия Arduino IDE. Использование другой версии Arduino IDE может вызвать другие неожиданные проблемы и ошибки.
Примечание: Espressif обнаружила некоторые ошибки в кремниевом дизайне ESP32, которые могут быть причиной некоторых необъяснимых ошибок/поведения. Ошибки подробно описаны в следующем документе:
https://espressif.com/sites/default/files/documentation/eco_and_workarounds_for_bugs_in_esp32_en.pdf
Особого внимания заслуживают пункты 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, убедитесь, что вы нажали на маленькую стрелку (выделена на рисунке ниже), чтобы прокрутить список плат до самого низа:
Если в этот момент вы не можете найти название вашей платы 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
Нажмите кнопку «Upload» (Загрузить) в Arduino IDE для загрузки нового скетча:
После того как вы увидите сообщение «Connecting….» в Arduino IDE, отпустите кнопку «BOOT»:
После этого вы должны увидеть сообщение «Done uploading» (Загрузка завершена)
Вот и всё. На вашем ESP32 должен работать новый скетч. С этими платами/этой настройкой, после загрузки нового скетча, нажмите кнопку «ENABLE» для перезагрузки ESP32 и запуска нового загруженного скетча.
Вам также придётся повторять эту последовательность кнопок каждый раз, когда вы хотите загрузить новый скетч. Но если вы хотите решить эту проблему раз и навсегда без необходимости нажимать кнопку BOOT, следуйте рекомендациям из следующего руководства:
Честно говоря, мы не уверены, почему это происходит с новыми платами. У нас нет ни одной платы ESP32 с таким поведением. Мы думаем, что, возможно, что-то отличается в вашей конкретной плате, или Arduino IDE не отправляет правильную последовательность команд для автоматического перевода ESP32 в режим прошивки/загрузки.
5. Ошибка компиляции скетча WiFiScan
Если вы пытаетесь загрузить скетч ESP32 WiFiScan.ino, предоставленный в руководстве по началу работы с 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 (он неактивен):
Это может быть одной из двух проблем: 1. Отсутствуют USB-драйверы или 2. USB-кабель без проводов данных.
1. Если вы не видите COM-порт ESP32, это часто означает, что у вас не установлены USB-драйверы. Внимательно посмотрите на чип рядом с регулятором напряжения на плате и проверьте его название.
Плата ESP32 DEVKIT V1 DOIT использует чип CP2102.
Найдите в Google ваш конкретный чип, чтобы найти драйверы и установить их в вашей операционной системе.
Вы можете скачать драйверы CP2102 на сайте Silicon Labs.
После их установки перезапустите Arduino IDE, и вы должны увидеть COM-порт в меню Tools.
2. Если драйверы установлены, но вы не видите устройство, дважды проверьте, что вы используете USB-кабель с проводами данных.
USB-кабели от пауэрбанков часто не имеют проводов данных (они только для зарядки). Поэтому ваш компьютер никогда не установит последовательную связь с ESP32. Использование подходящего USB-кабеля должно решить вашу проблему.
Если вам нужна более подробная информация об установке этих драйверов, вы можете следовать этим руководствам:
7. Монитор порта Arduino IDE «не работает»
Если ESP32 выводит только непонятный текст или нечитаемые символы в мониторе порта Arduino IDE, убедитесь, что выбран правильный COM-порт и установлена правильная скорость передачи (baud rate), как показано ниже. В большинстве примеров мы используем скорость 115200 бод.
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.