ESP32

ESP32-S3 в ESPHome: настройка платы и первая прошивка

Дата публикации:

22 0

ESP32-S3 поддерживается ESPHome напрямую, поэтому для большинства плат достаточно указать вариант микроконтроллера, настроить Wi-Fi и выполнить первую прошивку через USB. Ошибки чаще возникают из-за старых конфигураций с неподходящим board ID, неверных параметров конкретной платы или попытки использовать настройки от обычного ESP32. После первой успешной загрузки дальнейшие обновления обычно можно выполнять по сети.

Настройка ESP32-S3 в ESPHome и первая прошивка через USB.

Базовая конфигурация ESP32-S3

В актуальном ESPHome для ESP32-S3 рекомендуется указывать непосредственно вариант микроконтроллера:

esp32: variant: esp32s3

Этого достаточно, чтобы ESPHome выбрал стандартную конфигурацию для ESP32-S3. Раньше в примерах часто использовался конкретный PlatformIO board ID, например `esp32-s3-devkitc-1`, но сейчас параметр `variant` является предпочтительным вариантом.

Это особенно удобно для универсальных плат, где важен сам ESP32-S3, а не совпадение с одной конкретной DevKit.

Если используется специализированная плата с дисплеем, камерой, дополнительной памятью или нестандартными GPIO, одного `variant: esp32s3` недостаточно для настройки всей периферии. Эти параметры добавляются отдельно по документации конкретной платы.

Минимальный YAML для первой проверки

Для первого запуска лучше не добавлять дисплей, сенсоры, Bluetooth Proxy и другие компоненты. Сначала стоит убедиться, что ESP32-S3 собирает прошивку, подключается к Wi-Fi и появляется в ESPHome.

Минимальная конфигурация может выглядеть так:

esphome: name: esp32-s3-test esp32: variant: esp32s3 logger: api: ota: - platform: esphome wifi: ssid: !secret wifi_ssid password: !secret wifi_password

После успешной первой загрузки такую конфигурацию уже можно расширять под конкретный проект.

ESP-IDF или Arduino

ESPHome поддерживает ESP32-S3 как с ESP-IDF, так и с Arduino framework. В актуальных версиях ESPHome для ESP32 по умолчанию используется ESP-IDF, и именно его имеет смысл оставлять для нового проекта, если конкретный компонент не требует другого режима.

Явно указать framework можно так:

esp32: variant: esp32s3 framework: type: esp-idf

Arduino также остаётся доступным для ESP32-S3:

esp32: variant: esp32s3 framework: type: arduino

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

С 2026 года ESPHome постепенно перевёл ESP32 на ESP-IDF как основной вариант, а в актуальных версиях ESP-IDF является рекомендуемым framework для новых конфигураций.

Что изменилось в новых версиях ESPHome

Старые примеры ESPHome для ESP32-S3 часто выглядят так:

esp32: board: esp32-s3-devkitc-1 framework: type: arduino

Такая конфигурация не обязательно неправильная, но она отражает прежний подход.

В актуальном ESPHome параметр `board` в основном влияет на алиасы выводов и некоторые внутренние настройки. Для выбора самого семейства микроконтроллера разработчики рекомендуют `variant`.

Поэтому для новой универсальной конфигурации ESP32-S3 логичнее начинать с:

esp32: variant: esp32s3

а параметры конкретного оборудования задавать отдельно.

Первая прошивка через USB

Для первой установки ESPHome устройство ещё не имеет сетевой прошивки, поэтому его обычно подключают к компьютеру через USB.

Дальнейший процесс зависит от способа запуска ESPHome – Device Builder, командная строка или другой поддерживаемый интерфейс. В любом случае ESP32-S3 должен определиться системой как устройство, через которое можно выполнить первоначальную загрузку.

Если плата имеет два USB-разъёма, нужно определить, какой используется для программирования. Один разъём может быть подключён к встроенному USB ESP32-S3, а второй – к отдельному USB-UART преобразователю.

Если компьютер вообще не видит плату, изменение YAML не поможет. Сначала нужно проверить USB-кабель, разъём и режим загрузчика.

Если ESPHome не может подключиться к ESP32-S3

Если сборка прошивки проходит успешно, но запись не начинается, ESP32-S3 можно вручную перевести в ROM Download Mode.

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

  1. Удерживайте BOOT.
  2. Нажмите и отпустите RESET или EN.
  3. Отпустите BOOT.
  4. Проверьте, появился ли новый USB или последовательный порт.
  5. Повторите установку.

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

Если ESP32-S3 вообще не определяется по USB даже после BOOT и RESET, проблема уже находится ниже уровня ESPHome – в кабеле, USB-интерфейсе, питании или самой плате.

После первой прошивки

После успешного запуска ESPHome устройство подключается к настроенной Wi-Fi сети. Если включён OTA-компонент, следующие версии прошивки можно загружать по сети без постоянного USB-подключения.

Это удобно, когда ESP32-S3 уже установлен внутри корпуса, панели управления или другого устройства.

При этом первоначальную USB-прошивку всё равно желательно проверить до монтажа. Если конфигурация Wi-Fi ошибочная и OTA недоступен, физический доступ к USB снова понадобится.

Если ESP32-S3 не подключается к Wi-Fi

ESP32-S3 работает с Wi-Fi 2,4 ГГц. Если прошивка записалась и устройство запускается, но в ESPHome остаётся offline, сначала следует проверить параметры сети.

Самые очевидные причины:

  • неправильный SSID или пароль;
  • сеть доступна только в диапазоне 5 ГГц;
  • слабый сигнал;
  • устройство подключается к другой точке доступа с тем же именем;
  • ошибка в `secrets.yaml`;
  • конфигурация содержит статический IP, который не подходит текущей сети.

Для первоначальной диагностики лучше использовать обычную DHCP-конфигурацию без ручного IP.

Logger помогает понять, где остановился запуск

Компонент `logger:` полезно оставить включённым на этапе настройки. Через логи можно увидеть загрузку ESP32-S3, попытку подключения к Wi-Fi, получение IP-адреса и ошибки компонентов.

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

Не стоит сразу отключать logger ради экономии ресурсов, пока конфигурация ещё находится на стадии отладки.

Flash и PSRAM

ESP32-S3 встречается в большом количестве модификаций с разным объёмом Flash и PSRAM. Маркировки вроде N8R8 и N16R8 относятся к конфигурации памяти модуля, а не к отдельному типу микроконтроллера.

Поэтому `variant: esp32s3` остаётся тем же независимо от того, установлен модуль N8R8 или N16R8.

Дополнительная PSRAM настраивается отдельно, когда она нужна используемым компонентам. Особенно это важно для дисплеев, камер, графических интерфейсов и других задач с крупными буферами.

Подробнее о вариантах памяти и маркировке модулей можно посмотреть в материале ESP32-S3: разновидности, память, интерфейсы и применение.

Если конфигурация из старого проекта перестала собираться

ESPHome активно развивается, поэтому конфигурация из старой инструкции может использовать параметры, которые были изменены или устарели.

Особенно внимательно стоит проверить:

  • старое указание `board`;
  • явно заданный Arduino framework;
  • сторонние external components;
  • ручные версии framework;
  • старые настройки toolchain;
  • параметры компонентов, изменившиеся после обновления ESPHome.

Не следует исправлять ошибку сборки случайным закреплением старой версии ESPHome. Сначала лучше посмотреть сообщение компилятора и проверить документацию именно для установленной версии.

Toolchain и PlatformIO

В старых конфигурациях ESPHome можно встретить явную привязку к PlatformIO.

В актуальном ESPHome для ESP32 используется нативный ESP-IDF toolchain по умолчанию. PlatformIO toolchain считается устаревающим вариантом и сохраняется в основном для совместимости со старыми проектами.

Поэтому в новом проекте ESP32-S3 обычно нет необходимости добавлять:

toolchain: platformio

без конкретной причины.

Framework и toolchain – не одно и то же. Framework определяет программную среду выполнения – ESP-IDF или Arduino, а toolchain относится к механизму сборки проекта.

Когда нужен board вместо variant

Указывать `board` всё ещё можно, если конкретная готовая плата использует определённое описание и оно необходимо для алиасов GPIO или внутренних настроек.

Но для обычной конфигурации ESP32-S3 ESPHome рекомендует начинать с:

esp32: variant: esp32s3

Так конфигурация меньше зависит от конкретного PlatformIO board ID и понятнее показывает, какой именно микроконтроллер используется.

Если плата с дисплеем или камерой

Наличие ESP32-S3 не позволяет автоматически определить подключённый дисплей, тач-контроллер, камеру или другие устройства.

Для такой платы отдельно должны быть известны:

  • модель дисплея;
  • интерфейс дисплея;
  • GPIO подключения;
  • контроллер сенсора;
  • наличие и режим PSRAM;
  • GPIO подсветки;
  • дополнительные I2C или SPI устройства.

Поэтому YAML от одной платы Waveshare, LilyGO или другого производителя нельзя без проверки переносить на другую ESP32-S3.

Различные платы на ESP32-S3 собраны в категории Платы разработки ESP32-S3.

Обновлено:

Email не публикуется и используется только для уведомлений. Ссылки в комментариях запрещены. Комментарий появится после проверки модератором.

Комментарии (0)

Связанные решения

Материалы CLEX по теме

Статья

Беспроводная автоматика: ESP32, ESP8266, Wi-Fi-реле и локальное управление

Беспроводная автоматика на ESP32 и ESP8266 позволяет управлять светом, насосами, вентиляцией, реле и датчиками по Wi-Fi. Разбираем локальное управление, MQTT, веб-интерфейс, питание, безопасность и ошибки Wi-Fi-проектов.

Справочник

ESP32-S3

ESP32-S3 в справочнике CLEX: платы разработки, модули с дисплеями, камерой, Ethernet, Wi-Fi/Bluetooth и материалы по применению ESP32-S3 в проектах.

Товары по теме

Категории товаров

Платы разработки ESP32

Платы разработки и модули ESP32, включая серии ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-H2 и ESP32-P4. Решения для IoT, автоматизации, робототехники, беспроводной связи, прототипирования и встраиваемых электронных устройств.

Платы разработки ESP32-S3

Платы разработки ESP32-S3 с Wi-Fi, Bluetooth LE, поддержкой камер, дисплеев, USB и внешней памяти. Для машинного зрения, голосового управления, HMI-интерфейсов, IoT, робототехники и устройств с локальной обработкой данных.