Поворотный стол с Wi-Fi. Часть 1 — Электроника

Вступление
Когда я задумалась о поворотном столе для предметной съемки, то первым делом посмотрела, что предлагают на маркетплейсах. И знаете что? Все они какие-то… скучные. Одинаковые черные, серые или белые платформы без какой-либо индивидуальности. Мне же хотелось, чтобы устройство не просто выполняло функцию, но и радовало глаз. Поэтому я решила сделать свой — с красивым модульным корпусом, который можно будет кастомизировать под настроение или задачу (кстати, корпус — это тема отдельного поста).
Второй момент — управление. Готовые модели обычно оснащены кнопками на корпусе и/или пультом с кнопками, что не всегда удобно. Мне хотелось управлять столиком дистанционно, без привязки к конкретному месту и без лишних «телодвижений». Решение на ESP32 с веб-интерфейсом дает именно это: открыл браузер с телефона или ноутбука — и крути столик как душе угодно.
Ну и, наконец, третий аргумент — это сам процесс. Согласитесь, изучать электронику по учебникам скучно. А вот когда перед тобой стоит реальная задача — собрать работающее устройство от схемы до корпуса — учиться становится по-настоящему увлекательно. Каждый шаг, каждая ошибка и её исправление дают гораздо больше, чем параграф в книге. Этот проект для меня — не просто «ещё одна самоделка», а способ прокачать навыки на практике.
Демонстрация работы — YouTube, ВК Видео.
Комплектующие
Итак, начнем с закупки. Чтобы собрать нужное устройство, не потребуется дорогостоящего оборудования или редких деталей — все комплектующие можно купить в любом удобном для вас месте. Я же заказывала всё на AliExpress. Вот что понадобится:
Примечание:
- При необходимости можно дополнительно взять плату разработки ESP32 с USB Type-C на CH340C (около 150 р) либо сразу взять ESP32-DevKitC-32 (около 400 р).
- Для удобства использовалась макетная плата MB102 на 400 точек без питания (около 150 р).
- Все цены указаны на момент покупки и они могут отличаться от текущих








Схема подключения
Собрать компактный проект на ESP32 с графическим экраном и шаговым двигателем — задача вполне реальная, если правильно развести питание и сигналы.
Ниже — краткая шпаргалка по подключению мотора 28BYJ-48-5V через драйвер ULN2003 и экрана ST7789 135×240 (SPI) к ESP32 WROOM. Главное правило: мотор питаем отдельно, землю объединяем, сигнальные линии разводим по свободным GPIO.

Подключение мотора 28BYJ-48 + ULN2003
Мотор вставляется в разъём ULN2003 напрямую, защита от неправильного подключения есть. Питание 5V на мотор — только от внешнего источника, не с платы ESP32.
Подключение экрана ST7789 135×240 (SPI)
Примечание:
- Пины указаны как пример реализации. Если у вас они заняты, не беда, берем другие, главное, чтобы они не конфликтовали с уже занятыми. И не забудьте в коде поменять цифру.
- ESP32 и мотор питаются от внешних независимых источников на 5V, экран — от 3.3V ESP32. GND для ESP32 и ULN2003 соединить вместе.
Скетч
Скетч для скачивания можно найти внизу поста в прикрепленных файлах или по ссылке.
Для подключения экрана использовалась библиотека TFT_eSPI.
Управление
Благодаря встроенному Wi-Fi модулю, ESP32 создает веб-интерфейс, доступный по IP-адресу. Адрес задается в коде (статический IP), а для удобства он выводится на экран ST7789 сразу при запуске устройства. Вам остается только подключиться к той же сети, открыть этот адрес в браузере любого устройства (смартфона или компьютера) — и можно управлять мотором и настраивать параметры. Никаких пультов и дополнительных приложений.


Проблемы
Изначально в проекте планировалось использовать I2C-экран, однако при совместной работе с мотором возникла проблема синхронизации. Дело в том, что время обновления у имеющихся I2C-дисплеев превышает допустимые для данного проекта значения. Сама по себе задержка невелика, но шаговый мотор оказался очень чувствителен к любым лишним паузам — они сбивают ритм шагов и приводят к рывкам. По этой причине было принято решение заменить I2C-экран на SPI: он обеспечивает более высокую скорость передачи данных и меньше блокирует управление мотором.
Что дальше
Впереди нас ждет увлекательный процесс прототипирования корпуса: от первых эскизов до печати на 3D-принтере.
Мне очень интересно узнать, как бы вы улучшили этот проект. Как еще расширить доступный функционал — подсветку, режимы работы? Ваши варианты пишите в комментариях.