<aside> đź“Ś Table of content

</aside>

Présentation

Dans le même esprit que l'horloge de bureau, nous avons réalisé une base de contrôle Spotify grâce à un ESP32. Pour commencer, on connecte la station au réseau WiFi local et on se connecte à Spotify via l'interface web de l'ESP32. On est redirigé sur le site compagnon espotifice.ice-efrei.fr pour se connecter. On peut ensuite contrôler le son et voir la musique actuellement jouée.

20230830_000719.mp4

Construction

Cablage

ESPostifICE.png

Contrairement aux apparences, le câblage est plutôt simple. Ci-dessous, le site que nous avons utilisé comme référence pour l'écran.

Interfacing ESP8266 NodeMCU with ST7789 TFT Display

<aside> 📌 FAIRE UN LIENS VERS DESK CLOCK OU C’EST PLUS EXPLIQUÉ

</aside>

Code

Le code fonctionne en trois grandes sections (en dehors des différents services web) :

Le Serveur Web

Pour utiliser l'API Spotify, nous avons besoin de tokens API fournis par un utilisateur. Pour les récupérer, nous devons lui demander son autorisation via une page web. Afin d'éviter d'héberger une page web directement sur l'ESP32 (qui manque déjà de place, comme nous le verrons plus tard), nous redirigeons l'utilisateur vers un site hébergé par GitHub Pages.

void handleRoot(AsyncWebServerRequest *request, String local_ip)
{
    String redirect_url = AUTHENTICATION_URL +
                          "?response_type=code" +
                          "&client_id=" + CLIENT_ID +
                          "&scope=" + SPOTIFY_SCOPE +
                          "&redirect_uri=http://" + local_ip + "/callback" +
                          "&show_dialog=login";
    request->redirect(redirect_url);
}

Ce dernier prend les paramètres de recherche que nous avons ajoutés lors de la redirection pour générer un lien de connexion à Spotify :

https://prod-files-secure.s3.us-west-2.amazonaws.com/9d871417-2fcd-46e1-b211-64eebd6f288f/ca80cde1-15a6-4afb-bc6c-c0c685fc662e/Untitled.png