TToolBox
💻
💻 dev
11 апреля 2026 г.7 мин чтения

Как собрать ESP32 Spotify дисплей на Cloudflare Workers

Как собрать ESP32 Spotify дисплей на Cloudflare Workers
В этой статье

Соберите ESP32‑дисплей, показывающий текущий трек Spotify, используя сервер‑less Cloudflare Workers — настройка займет менее 30 минут.

Собрать ESP32 Spotify дисплей на базе Cloudflare Workers можно за 20‑30 минут, подключив микроконтроллер к бесплатному облачному шлюзу, который будет запрашивать данные о текущем треке через Spotify API. В результате на OLED‑экране будет отображаться название, исполнитель и обложка песни в реальном времени.

Как подключить ESP32 к Spotify через Cloudflare Workers?

Прямой ответ: необходимо создать Cloudflare Worker, который будет получать токен доступа и возвращать JSON‑данные о текущем воспроизведении, а затем настроить ESP32 для периодических запросов к этому endpoint.

  • 1. Зарегистрируйте приложение в Spotify Developer Dashboard (2026‑03‑15) и получите Client ID и Client Secret.
  • 2. На Cloudflare создайте новый Worker (пример: spotify-display.yourdomain.workers.dev).
  • 3. В коде Worker реализуйте OAuth 2.0 поток с использованием fetch для получения access_token (запросы к https://accounts.spotify.com/api/token).
  • 4. Добавьте коду кэширование токена на 55 минут (95% времени токен остаётся валидным).
  • 5. Реализуйте endpoint /current, который делает запрос к https://api.spotify.com/v1/me/player/currently-playing и возвращает минимум track_name, artist и album_image_url.
  • 6. На ESP32 установите библиотеку HTTPClient и настройте Wi‑Fi подключение к вашему роутеру.
  • 7. Программируйте ESP32 выполнять GET‑запрос к Worker‑endpoint каждые 10 секунд и парсить полученный JSON.

Почему использовать Cloudflare Workers выгодно для проекта?

Прямой ответ: Cloudflare Workers обеспечивает глобальную низколатентную сеть, автоматическое масштабирование и бесплатный тариф до 100 000 запросов в месяц, что делает его идеальным для небольших DIY‑проектов.

  • Глобальная сеть — запросы от ESP32 идут к ближайшему дата‑центру, средняя задержка < 30 мс.
  • Бесплатный план покрывает до 100 000 запросов/мес, что при 6 запросах в минуту (≈ 8 600 запросов в месяц) полностью укладывается в лимит.
  • Без серверного администрирования — нет необходимости поддерживать собственный VPS, экономия до 1500 руб в год.
  • Встроенный KV‑хранилище позволяет сохранять токен без внешних баз.

Что делать, если токен Spotify истёк?

Прямой ответ: в Worker‑скрипте реализуйте автоматическое обновление токена, используя refresh_token, и ESP32 будет получать новые данные без перезапуска.

  • 1. При первом авторизационном запросе запросите refresh_token (параметр grant_type=authorization_code).
  • 2. Сохраните refresh_token в KV‑хранилище Cloudflare.
  • 3. При получении 401 Unauthorized от Spotify API запустите запрос grant_type=refresh_token к токен‑эндпоинту.
  • 4. Обновлённый access_token сразу сохраняйте в KV и возвращайте клиенту.
  • 5. Добавьте в ESP32‑код проверку статуса ответа; при 401‑ошибке запрос повторяется через 5 секунд.

Как отобразить текущий трек на OLED‑дисплее?

Прямой ответ: используйте библиотеку Adafruit SSD1306 для рисования текста и изображения, полученных из JSON‑ответа Worker‑endpoint.

  • 1. Подключите 0.96" OLED (128×64) к ESP32 по I2C (GPIO21‑SDA, GPIO22‑SCL).
  • 2. Инициализируйте дисплей в функции setup() с display.begin().
  • 3. После получения JSON распарсите track_name, artist и album_image_url.
  • 4. Для изображения скачайте мини‑версии обложки (пример ≈ 64 KB) через HTTPClient, преобразуйте в массив байтов и отобразите методом drawBitmap().
  • 5. Выведите текст: display.setCursor(0,0); display.print(track_name); display.setCursor(0,10); display.print(artist);
  • 6. Обновляйте экран каждые 10 секунд, очищая предыдущий кадр display.clearDisplay().

Какие альтернативные инструменты можно применить вместо ESP32?

Прямой ответ: вместо ESP32 можно использовать Raspberry Pi Zero W, Arduino Nano 33 IoT или даже смартфон‑эмулятор, но каждый вариант имеет свои плюсы и минусы.

  • Raspberry Pi Zero W — полноценный Linux, поддерживает Python‑скрипты, но потребляет ~ 150 мА и стоит ≈ 2500 руб.
  • Arduino Nano 33 IoT — компактнее, но ограничен по памяти (256 KB Flash), подходит для простых текстовых дисплеев.
  • Смартфон‑эмулятор (Android) — позволяет использовать официальное приложение Spotify, однако требует постоянного подключения к сети и не интегрируется в умный дом.
  • Все перечисленные варианты совместимы с Cloudflare Workers, потому что запросы идут по HTTP.
Воспользуйтесь бесплатным инструментом ESP32 Spotify Display Builder на toolbox-online.ru — работает онлайн, без регистрации.
Поделиться:

Теги

#ESP32#IoT#Cloudflare Workers#Spotify API#DIY