Ş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.
Midnight City
M83
Hurry Up, We’re Dreaming
Waiting in the car…
Tek ekranda bir Spotify Connect arayüzü
- 01
Şu an çalıyor
Parça adı (uzunsa kayar), sanatçı ve albüm; son poll’a göre yumuşak güncellenen ilerleme.
- 02
Albüm kapağı
JPEGDEC ile çözülür; SD karta dosya olarak cache’lenir, her poll’da ağdan çekilmez.
- 03
Senkron sözler
lrclib.net’ten LRC; yoksa düz metin. Japonca/Çince için SD’den
jp16.vlwyüklenir. - 04
İleri sarma
İlerleme çubuğunu sürükleyip bırakınca Spotify’a seek komutu gider; sürüklerken UI donmaz.
- 05
Dokunmatik kontrol
XPT2046 üzerinden önceki / oynat-duraklat / sonraki; kalibrasyon ham ADC okumasıyla.
- 06
Playlist tarayıcı
Çalma listelerinizi ve parçalarını ekrandan seçip çalın; sayfalı liste, kaydırma.
- 07
WiFi kurulumu
Ağ tarayıp listeden seçin, ekran klavyesiyle şifreyi girin; kayıtlı ağ otomatik bağlanır.
- 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.
Yükleniyor…
Kurulum
-
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.vlwiçin, FAT32 formatlı). -
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
Kütüphaneler
Library Manager’dan: TFT_eSPI, ArduinoJson (v7), JPEGDEC.
-
4
TFT_eSPI ayarı
User_Setup.h(veyaUser_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
Spotify kimliği
developer.spotify.com üzerinden bir app oluşturun;
CLIENT_ID/CLIENT_SECRETalın. Refresh token için Authorization Code akışını tamamlayın; istenen scope’lar:user-read-currently-playinguser-read-playback-stateuser-modify-playback-stateplaylist-read-privateplaylist-read-collaborativePlaylist listesi boş/izin hatası verirse refresh token’ı bu scope’larla yenileyin; ekranda “Yeni REFRESH_TOKEN gerekli” uyarısı çıkar.
-
6
Ayarlar bloğu
SpotifyScreen.inoiçindeki// ================= AYARLAR =================bölümünde yer tutucuları kendi değerlerinizle değiştirin. WiFi’yi ekrandan da girebilirsiniz;WIFI_SSID/WIFI_PASSboş bırakılırsa kurulum sihirbazı açılır. -
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’asecrets.hbenzeri bir dosya ekleyip include etmek daha güvenli. guvenlik.cpp’de bot token’ı ve WiFi bilgilericonfig.h’te tutulur; bu dosyayı paylaşmayın/commit etmeyin.guvenlik.cpp’dekiclient.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.