CYD//SPOTIFY

Şu an çalan şarkı,
masanızda.

ESP32-2432S028R (Cheap Yellow Display) için yazılmış açık kaynak bir Spotify “şimdi çalıyor” ekranı. Albüm kapağı, senkron sözler, dokunmatik kontroller — hepsi 320×240’lık ekranda, tek bir Arduino sketch’i içinde.

ESP32 · TFT_eSPI · ArduinoJson v7 · JPEGDEC · XPT2046

Spotify

Midnight City

M83

Hurry Up, We’re Dreaming

Waiting in the car…

1:24 4:03
CYD · 320×240 · XPT2046 dokunmatik — simülasyon, örnek parçalarla

Tek ekranda bir Spotify Connect arayüzü

  1. 01

    Şu an çalıyor

    Parça adı (uzunsa kayar), sanatçı ve albüm; son poll’a göre yumuşak güncellenen ilerleme.

  2. 02

    Albüm kapağı

    JPEGDEC ile çözülür; SD karta dosya olarak cache’lenir, her poll’da ağdan çekilmez.

  3. 03

    Senkron sözler

    lrclib.net’ten LRC; yoksa düz metin. Japonca/Çince için SD’den jp16.vlw yüklenir.

  4. 04

    İleri sarma

    İlerleme çubuğunu sürükleyip bırakınca Spotify’a seek komutu gider; sürüklerken UI donmaz.

  5. 05

    Dokunmatik kontrol

    XPT2046 üzerinden önceki / oynat-duraklat / sonraki; kalibrasyon ham ADC okumasıyla.

  6. 06

    Playlist tarayıcı

    Çalma listelerinizi ve parçalarını ekrandan seçip çalın; sayfalı liste, kaydırma.

  7. 07

    WiFi kurulumu

    Ağ tarayıp listeden seçin, ekran klavyesiyle şifreyi girin; kayıtlı ağ otomatik bağlanır.

  8. 08

    Ses kontrolü

    Spotify Connect oturumunda ses seviyesini doğrudan değiştirir.

Kaynak kod

WiFi şifresi ve Spotify kimlik bilgileri dosyalardan çıkarıldı; yerlerinde WIFI_ADINIZ gibi yer tutucular var. guvenlik.cpp ise sırlarını (bot token’ı, WiFi, chat ID) host edilmeyen config.h’ten okur. Kendi değerlerinizi kurulum adımlarında anlatıldığı gibi AYARLAR bloğuna yazın.

SpotifyScreen.ino UTF-8 · C++ / Arduino İndir
Yükleniyor…

Kurulum

  1. 1

    Donanım

    ESP32-2432S028R (CYD). Dokunmatik ekran ve SD yuvası kartın üstünde; ek devre gerekmiyor. İsteğe bağlı: microSD (albüm kapağı cache’i ve jp16.vlw için, FAT32 formatlı).

  2. 2

    Kart ve partition

    Arduino IDE’de ESP32 board paketini kurun. Kart: “ESP32 Dev Module”. 4MB CYD’de alan yetmediği için Tools → Partition Scheme → “Huge APP (3MB No OTA)” seçin.

  3. 3

    Kütüphaneler

    Library Manager’dan: TFT_eSPI, ArduinoJson (v7), JPEGDEC.

  4. 4

    TFT_eSPI ayarı

    User_Setup.h (veya User_Setup_Select.h) içine CYD pinlerini yazın; sürücü ILI9341:

    #define ILI9341_DRIVER
    #define TFT_MISO 12
    #define TFT_MOSI 13
    #define TFT_SCLK 14
    #define TFT_CS   15
    #define TFT_DC    2
    #define TFT_RST  -1
    #define TFT_BL   21

    Dokunmatik (CS 33, CLK 25, MOSI 32, MISO 39, IRQ 36) ve SD (CS 5, SCK 18, MISO 19, MOSI 23) pinleri sketch içinde tanımlı; TFT_eSPI’ye yazmanıza gerek yok. Kartınız farklıysa kendi şemasına bakın.

  5. 5

    Spotify kimliği

    developer.spotify.com üzerinden bir app oluşturun; CLIENT_ID / CLIENT_SECRET alın. Refresh token için Authorization Code akışını tamamlayın; istenen scope’lar:

    user-read-currently-playing user-read-playback-state user-modify-playback-state playlist-read-private playlist-read-collaborative

    Playlist listesi boş/izin hatası verirse refresh token’ı bu scope’larla yenileyin; ekranda “Yeni REFRESH_TOKEN gerekli” uyarısı çıkar.

  6. 6

    Ayarlar bloğu

    SpotifyScreen.ino içindeki // ================= AYARLAR ================= bölümünde yer tutucuları kendi değerlerinizle değiştirin. WiFi’yi ekrandan da girebilirsiniz; WIFI_SSID/WIFI_PASS boş bırakılırsa kurulum sihirbazı açılır.

  7. 7

    Yükleyin

    115200 baud ile Seri Monitör’ü açın; parça değişimini ve token yenilemeyi buradan izleyebilirsiniz.

Güvenlik notu

Bu sitedeki dosyalarda WiFi şifreniz ve Spotify tokenlarınız yok. Orijinal sketch’teki şu değerler yer tutucularla değiştirildi:

WIFI_SSID     → "WIFI_ADINIZ"
WIFI_PASS     → "WIFI_SIFRENIZ"
CLIENT_ID     → "SPOTIFY_CLIENT_ID"
CLIENT_SECRET → "SPOTIFY_CLIENT_SECRET"
REFRESH_TOKEN → "SPOTIFY_REFRESH_TOKEN"
  • Gerçek değerleri repoya commit etmeyin; .gitignore’a secrets.h benzeri bir dosya ekleyip include etmek daha güvenli.
  • guvenlik.cpp’de bot token’ı ve WiFi bilgileri config.h’te tutulur; bu dosyayı paylaşmayın/commit etmeyin.
  • guvenlik.cpp’deki client.setInsecure() Telegram bağlantısında sertifika doğrulamasını kapatır; setFingerprint() veya güncel telegram root CA ile değiştirin.
  • Bir token sızdıysa developer.spotify.com panelinden client secret’ı sıfırlayın (rotate) ve refresh token’ı yeniden üretin.
  • WiFi şifresi sızdıysa yönlendiricinizden değiştirin.