{"id":6977,"date":"2022-09-07T15:12:30","date_gmt":"2022-09-07T13:12:30","guid":{"rendered":"https:\/\/willem.aandewiel.nl\/?p=6977"},"modified":"2022-10-22T09:48:24","modified_gmt":"2022-10-22T07:48:24","slug":"spotify-muziek-speler-met-intuitieve-bediening","status":"publish","type":"post","link":"https:\/\/willem.aandewiel.nl\/index.php\/2022\/09\/07\/spotify-muziek-speler-met-intuitieve-bediening\/","title":{"rendered":"Spotify Muziekspeler met Intu\u00eftieve bediening"},"content":{"rendered":"\n<p>This post has 3,980 keer bekeken \/ views <\/p>\n\n\n\n<p>Hoewel ik in veel gevallen een \u201c<em>early adaptor<\/em>\u201d ben heb ik pas een paar maanden geleden een aantal <em>Amazon Echo&#8217;s<\/em> in huis gehaald.<br>We gebruiken ze voornamelijk als fotolijst, kookwekker en om muziek af te spelen. Dat laatste gaat helaas niet altijd zonder problemen. Zolang je internationaal bekende artiesten wil afspelen met \u201c<em>Engels klinkende<\/em>\u201d namen zoals \u201c<em>Oscar Peterson<\/em>\u201d, \u201c<em>Joe Cocker<\/em>\u201d, &#8220;<em>Diana Krall<\/em>&#8221; of zelfs \u201c<em>Michel Petrucciani<\/em>\u201d begrijpt Alexa wat je wil. Problemen ontstaan pas als je Nederlandse artiesten of bands wilt horen zoals \u201c<em>De Dijk<\/em>\u201d, \u201c<em>Louis van Dijk<\/em>\u201d of \u201c<em>Ilse de Lange<\/em>\u201d. Alexa maakt daar van alles van, behalve wat je bedoelt. Je kunt de namen nog zo&nbsp;duidelijk of fonetisch uitspreken, het geeft zelden of nooit de gewenste muziek.<\/p>\n\n\n\n<p>Daar moet natuurlijk iets op gevonden worden!<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-Echo_movie.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-Echo_movie.gif\" alt=\"\" class=\"wp-image-7029\" width=\"450\" height=\"254\"\/><\/a><figcaption>(this clip has no sound!)<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Deze oplossing maakt gebruik van een RFID-reader boardje die de, op iedere kant van een kubus geplakte, NFC-tag leest. Door een kubus met de gewenste muziek naar je toe gericht op de houder (de <em>Tray<\/em>) te plaatsen zal de muziek die aan de NFC-tag gekoppeld is worden afgespeeld op de geselecteerde Amazon Echo (in mijn geval wordt de uitvoer via de jack-out van de Amazon Echo naar mijn QUAD 34\/405-2 gestuurd).<\/p>\n\n\n\n<p>Haal je de kubus uit de Tray dan stopt de muziek.<\/p>\n\n\n\n<p>Naast de Tray zijn, aan de binnenkant van de kast, twee stukjes printplaat gelijmd die dienst doen als capacitieve schakelaars. Door je vingers eventjes rechts van de Tray op de kast te leggen (aantikken) wordt naar het volgende nummer in de playlist gesprongen. De blauwe led aan de rechterkant licht even op. Door hetzelfde aan de linkerkant van de Tray te doen wordt (je raadt het al) naar het vorige nummer gesprongen. Je krijgt hierover terugkoppeling doordat de blauwe led aan de linkerkant even oplicht.<\/p>\n\n\n\n<p>Leg je je vingers langer op de kast aan de rechterkant, dan wordt het afspeel volume in stapjes verhoogd tot je je vingers weer van de kast haalt. Houd je je vingers langer aan de linkerkant dan wordt het afspeel volume in stapjes verlaagd.<\/p>\n\n\n\n<p>Leg je tenslotte je vingers een paar seconden aan beide kanten van de Tray, dan wordt de zogenaamde &#8220;shuffle mode&#8221; getokkeld (van &#8220;shuffle&#8221; naar &#8220;sequentieel&#8221; en weer naar &#8220;shuffle&#8221;). Aan de oranje led kun je zien welke mode actief is (oranje ledje &#8220;aan&#8221; is shuffle mode, oranje ledje &#8220;uit&#8221; is sequenti\u00eble mode). <\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Het Idee<\/h1>\n\n\n\n<p>Daar kan ik kort over zijn. Ik heb het idee gestolen van <em><a href=\"https:\/\/michaelteeuw.nl\" target=\"_blank\" rel=\"noreferrer noopener\">Michael Teeuw<\/a><\/em> voor de vorm en de bediening en van <em>Michael Hawkins<\/em> voor de integratie met de Spotify-API.<\/p>\n\n\n\n<p>Michael Teeuw heeft met zijn MusicCubes project een werkelijk fantastisch mooie oplossing voor het selecteren van muziek ontworpen door zijn Sonos speakers aan te sturen met <a rel=\"noreferrer noopener\" href=\"https:\/\/michaelteeuw.nl\/post\/musicubes-part-5-the-finishing-touch-end\" target=\"_blank\">kubussen<\/a>. In zijn ontwerp heeft iedere kubus zes plaatjes met soorten muziek of artiesten. Door de kubus zodanig in de voorste standaard te zetten dat het plaatje met de gewenste muziek boven ligt, wordt deze muziek over zijn Sonos installatie afgespeeld.<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"http:\/\/www.makeratplay.com\/\" target=\"_blank\">Michael Hawkins<\/a> heeft een <a rel=\"noreferrer noopener\" href=\"https:\/\/youtu.be\/isom4NREq14\" target=\"_blank\">ontwerp<\/a> gemaakt waarbij hij al zijn CD\u2019s van een NFC-tag voorziet zodat deze vervolgens via een prachtige houten CD standaard, via Spotify, de muziek van die specifieke CD afspeelt.<\/p>\n\n\n\n<p>Ik heb mijn CD verzameling al jaren geleden weg gegeven en ik zou er ook niet aan moeten denken om al deze CD\u2019s van een NFC-tag te moeten voorzien om vervolgens een database op te bouwen om de juiste tag aan de juiste CD te koppelen.<\/p>\n\n\n\n<p>Ik heb geen Sonos speakers maar luister vooral via mijn QUAD\/BOSE installatie met Spotify naar muziek. De combinatie van beide projecten is dus ideaal voor de manier waarop ik graag naar muziek luister.<\/p>\n\n\n\n<p>En zo is dit ESPotify-Echo project ontstaan (\u201c<em>ESP<\/em>\u201d omdat hij rond een ESP32 processor is ontworpen, \u201c<em>SPotify<\/em>\u201d omdat hij Spotify gebruikt om de muziek af te spelen en \u201c<em>Echo<\/em>\u201d omdat het afspelen uiteindelijk door een Amazon Echo wordt gedaan).<\/p>\n\n\n\n<p>Beide Michael\u2019s hebben voor hun project prachtige omhulsels van hout gemaakt om hun muziekspeler te herbergen. Ik ben niet erg handig met hout dus mijn versie is 3D geprint. <\/p>\n\n\n\n<p>Op de ESPotify-Echo is plaats voor twee of drie extra kubussen (afhankelijk hoeveel kubussen je wilt gebruiken en hoe groot je 3D printer is) en \u00e9\u00e9n standaard (de <em>Tray<\/em>) voor de kubus die gebruikt wordt om een muzieksoort, artiest of CD af te spelen.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEcho_Design.gif\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"338\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEcho_Design.gif\" alt=\"\" class=\"wp-image-7027\"\/><\/a><\/figure>\n<\/div>\n\n\n<p>In bovenstaand plaatje bepaalt &#8220;de v\u00f3\u00f3rkant&#8221; van de kubus die in de Tray staat welke playlist wordt afgespeeld.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">De Hardware<\/h1>\n\n\n\n<p>Voor de hardware heb ik de volgende onderdelen gebruikt:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>ESP32 Wrover B\/E module<\/li><li>MFRC522 breakout board<\/li><li>MPR121 breakout board<\/li><li>Een aantal LEDjes in verschillende kleuren<\/li><li>Een berg NFC-tags (afhankelijk van hoeveel playlists je wilt gebruiken)<\/li><li>En natuurlijk een PCB om alle onderdelen te herbergen.<\/li><\/ul>\n\n\n\n<p>Dit is de eerste keer dat ik een ESP32 Wrover module gebruik in een project en het is werkelijk een fantastische module. De meest gebruikte ESP32\u2019s zijn zogenaamde <em>Wroom<\/em> modules. Deze hebben twee cores (240MHz) en 4, 6 of 8 MB Flash geheugen voor de firmware en eventueel een bestand systeem (LittleFS) van 1.5MB. Best wel behoorlijke specificaties.<br>Maar de <em>ESP32-Wrover<\/em> modules hebben daarnaast ook nog eens 4 of 8 MB <em>PSRAM<\/em>. Zeker als je met JSON files of grote array\u2019s en structuren wil werken is het heerlijk om (bijna) onbeperkt grote (JSON) structuren en array\u2019s in het PSRAM geheugen te kunnen opslaan!<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">De Software<\/h1>\n\n\n\n<p>Deze bestaat uit 16 bestanden (\u201d<em>tab-bladen<\/em>\u201d in de Arduino-IDE)<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>ESPotifyEcho.ino<\/strong>: <br>Dit is het hoofdprogramma waarin wordt vastgelegd welke bibliotheken gebruikt worden en welke lokale tab-bladen ge-<code>#include<\/code> moeten worden<\/li><li><strong>Debug.h<\/strong>: <br>Macro\u2019s met debug informatie om uitvoer en invoer via de <code>Serial Monitor<\/code> en <code>telnet<\/code> te laten lopen<\/li><li><strong>MFRC522stuff.ino<\/strong>: <br>Functies voor het lezen van de NFC-tags<\/li><li><strong>Parsers.ino<\/strong>: <br>Functies die uitvoer van de SpotifyClient ontleden en verwerken<\/li><li><strong>spotifyClient.h<\/strong> en <strong>spotifyClient.cpp<\/strong>: <br>class om met de Spotify-API te communiceren<\/li><li><strong>checkPsram.h<\/strong>: <br>Class om gebruik PSRAM geheugen te monitoren (is niet echt nodig maar is handig bij het debuggen)<\/li><li><strong>fileStuff.ino<\/strong>: <br>Functies om bestanden van- en naar het LittleFS te lezen en te schrijven<\/li><li><strong>helperStuff.ino<\/strong>: <br>Functies die het leven van de ESPotify-Echo makkelijker maken<\/li><li><strong>jsonPSram.h<\/strong>: <br>Struct om PSram geheugen te alloceren en te de-alloceren voor <code>ArduinoJson<\/code><\/li><li><strong>littleFSmanager.ino<\/strong>: <br>Functies om het LittleFS via de browser te kunnen benaderen<\/li><li><strong>menuStuff.ino<\/strong>: <br>Character based menu functies om ESPotify-Echo via de <code>Serial Monitor<\/code> of <code>telnet<\/code> te kunnen bedienen<\/li><li><strong>mpr121Stuff.ino<\/strong>: <br>Functies om het <code>mpr121<\/code> breakout board te kunnen gebruiken<\/li><li><strong>qsortStuff.ino<\/strong>: <br>Sorteer functies om de playlists en device-lists te sorteren<\/li><li><strong>timers.h<\/strong>: <br>Macro\u2019s om timers te defini\u00ebren en uit te lezen<\/li><li><strong>webSocketsEvent.ino<\/strong>: <br>Functies om de GUI te kunnen bedienen<\/li><\/ul>\n\n\n\n<p>Je kunt de firmware <a href=\"https:\/\/github.com\/mrWheel\/ESPotifyEcho\" target=\"_blank\" rel=\"noreferrer noopener\">hier op github<\/a> vinden.<\/p>\n\n\n\n<p>In de &#8220;<code>setup()<\/code>&#8221; functie worden verschillende initi\u00eble handelingen verricht. Belangrijk zijn de statements waarmee geheugen in het PSRAM worden geclaimd voor de diverse tabellen en structuren. Vervolgens wordt het <code>LittleFS<\/code> ge\u00efnitieerd en worden twee belangrijke bestanden ingelezen: de <em><code>setting<\/code> gegevens<\/em> (<em>WiFi-<\/em> en <em>Spotify-<\/em>credentials) en de gegevens en status van het <em>default <code>device<\/code><\/em> (Amazon echo). Met de WiFi credentials uit het setting bestand wordt vervolgens verbinding gemaakt met het opgegeven WiFi Access Point.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2018\/08\/configWiFi_select.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2018\/08\/configWiFi_select.png\" alt=\"\" class=\"wp-image-1431\" width=\"162\" height=\"185\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2018\/08\/configWiFi_select.png 323w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2018\/08\/configWiFi_select-262x300.png 262w\" sizes=\"auto, (max-width: 162px) 100vw, 162px\" \/><\/a><figcaption>WiFi Credentials via Access Point<\/figcaption><\/figure>\n<\/div>\n\n\n<p><br>Bij de eerste keer opstarten heb je de WiFi credentials nog niet in kunnen vullen en daarom start ESPotify-Echo in dat geval een zgn. \u201c<em>open Access Point<\/em>\u201d op met de naam \u201c<em>ESPotify<\/em>\u201d. <\/p>\n\n\n\n<p>Maak hier verbinding mee en geef jouw WiFi credentials op. Hierna zal de ESPotify-Echo opnieuw opstarten en verbinding maken met je WiFi netwerk.<\/p>\n\n\n\n<div style=\"height:18px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Vervolgens wordt de spotify class ge\u00efnitieerd met gegevens uit het <code>setting<\/code> bestand.<br>Hoe je aan deze Spotify credentials komt wordt verderop in deze post uitgelegd.<\/p>\n\n\n\n<p>Tenslotte worden het <em>capacitieve-sensor<\/em> board, het <em>RFID-reader<\/em> board en de <em>webserver<\/em> ge\u00efnitieerd.<\/p>\n\n\n\n<p class=\"has-background has-medium-font-size\" style=\"background-color:#feee3b\">Als je mij wil helpen om meer van dit soort posts te kunnen schrijven, overweeg dan om een kleine donatie te geven door op de knop hieronder te klikken.<br><!-- Begin PayPal Donations by https:\/\/www.tipsandtricks-hq.com\/paypal-donations-widgets-plugin -->\n\n<form action=\"https:\/\/www.paypal.com\/cgi-bin\/webscr\" method=\"post\" target=\"_blank\">\n    <div class=\"paypal-donations\">\n        <input type=\"hidden\" name=\"cmd\" value=\"_donations\" \/>\n        <input type=\"hidden\" name=\"bn\" value=\"TipsandTricks_SP\" \/>\n        <input type=\"hidden\" name=\"business\" value=\"Willem@Aandewiel.nl\" \/>\n        <input type=\"hidden\" name=\"return\" value=\"https:\/\/willem.aandewiel.nl\/index.php\/thank-you-for-your-donation\/\" \/>\n        <input type=\"hidden\" name=\"item_number\" value=\"ESPotify-Echo\" \/>\n        <input type=\"hidden\" name=\"rm\" value=\"0\" \/>\n        <input type=\"hidden\" name=\"currency_code\" value=\"EUR\" \/>\n        <input type=\"image\" style=\"cursor: pointer;\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/bmc-button-75.png\" name=\"submit\" alt=\"PayPal - The safer, easier way to pay online.\" \/>\n        <img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/www.paypalobjects.com\/en_US\/i\/scr\/pixel.gif\" width=\"1\" height=\"1\" \/>\n    <\/div>\n<\/form>\n<!-- End PayPal Donations -->\n<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Muziek Kubussen<\/h2>\n\n\n\n<p>Micheal Teeuw heeft zijn ontwerp gebaseerd op deze 5x5cm foto kubussen van <a rel=\"noreferrer noopener\" href=\"https:\/\/www.deknudtframes.be\/nl\/catalog\/category\/fotokubus\" target=\"_blank\">Deknudt<\/a>. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/DeknudtCube.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/DeknudtCube.png\" alt=\"\" class=\"wp-image-6984\" width=\"409\" height=\"214\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/DeknudtCube.png 545w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/DeknudtCube-300x157.png 300w\" sizes=\"auto, (max-width: 409px) 100vw, 409px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Helaas zijn deze uit productie en worden alleen nog de kubussen van 6x6cm verkocht \u2026 maar d\u00e1\u00e1r kwam ik pas achter toen ik mijn 3D ontwerp al gemaakt en geprint had. Ik heb wel op internet <a rel=\"noreferrer noopener\" href=\"https:\/\/www.amazon.nl\/dozen-plexiglas-dobbelstenen-transparant-confect\/dp\/B00JBYTHGE\" target=\"_blank\">deze kubussen<\/a> gevonden maar ze zijn niet zo mooi als de foto kubussen van Deknudt \u00e9n ze zijn niet vierkant (er zit een verloop in van 2mm tussen de bovenkant en de onderkant). Helaas, ik moet het er maar mee doen (alternatief zouden de 6x6cm kubussen van Deknudt zijn, maar dan wordt de ESPotify-Echo groter).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/MusicCube_x.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/MusicCube_x.png\" alt=\"\" class=\"wp-image-6983\" width=\"297\" height=\"311\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/MusicCube_x.png 593w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/MusicCube_x-286x300.png 286w\" sizes=\"auto, (max-width: 297px) 100vw, 297px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Om de plaatjes netjes tegen de binnenkant van de kubus aan te drukken en om een stevig oppervlak voor de NFC-tags te krijgen moet je in de kubus een 3D geprinte kubus plaatsen waar je de NFC-tags op plakt.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/CubeWithNFCtags.png\"><img loading=\"lazy\" decoding=\"async\" width=\"642\" height=\"587\" data-id=\"6991\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/CubeWithNFCtags.png\" alt=\"\" class=\"wp-image-6991\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/CubeWithNFCtags.png 642w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/CubeWithNFCtags-300x274.png 300w\" sizes=\"auto, (max-width: 642px) 100vw, 642px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/CubeInCube-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"225\" height=\"300\" data-id=\"6990\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/CubeInCube-1-225x300.png\" alt=\"\" class=\"wp-image-6990\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/CubeInCube-1-225x300.png 225w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/CubeInCube-1.png 768w\" sizes=\"auto, (max-width: 225px) 100vw, 225px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>Vervolgens print je de inlay met je muziek keuzes en vouw je deze om de 3D geprinte binnen kubus die je vervolgens in de plexiglas kubus plaatst (bij de alternatieve kubussen moet je eerst het deksel los halen voordat je de binnen kubus met inlay plaatst).<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/InlayPrint.png\"><img loading=\"lazy\" decoding=\"async\" width=\"225\" height=\"300\" data-id=\"6987\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/InlayPrint-225x300.png\" alt=\"\" class=\"wp-image-6987\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/InlayPrint-225x300.png 225w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/InlayPrint.png 600w\" sizes=\"auto, (max-width: 225px) 100vw, 225px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/CubeInCubeInlay.png\"><img loading=\"lazy\" decoding=\"async\" width=\"225\" height=\"300\" data-id=\"6988\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/CubeInCubeInlay-225x300.png\" alt=\"\" class=\"wp-image-6988\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/CubeInCubeInlay-225x300.png 225w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/CubeInCubeInlay.png 600w\" sizes=\"auto, (max-width: 225px) 100vw, 225px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>Nu moeten we de NFC-tags op de kubus verbinden met playlists in je Spotify account.<\/p>\n\n\n\n<p>Ga met je browser naar \u201c<code>http:\/\/ESPotifyEcho.local<\/code>\u201d (of ga naar het IP-adres van ESPotify-Echo: \u201c<code>http:\/\/{ip-adres}\/<\/code>\u201d).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEchoGUI.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEchoGUI.png\" alt=\"\" class=\"wp-image-6993\" width=\"468\" height=\"368\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEchoGUI.png 936w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEchoGUI-300x236.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEchoGUI-768x603.png 768w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Klik rechts boven op <code>[Playlists]<\/code><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEcho-Playlists.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEcho-Playlists.png\" alt=\"\" class=\"wp-image-6994\" width=\"473\" height=\"348\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEcho-Playlists.png 945w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEcho-Playlists-300x221.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEcho-Playlists-768x566.png 768w\" sizes=\"auto, (max-width: 473px) 100vw, 473px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Deze pagina bestaat uit twee delen. Boven is een drop-down lijst met playlists die nog niet aan een NFC-tag zijn gekoppeld, onderin een drop-down lijst met playlists die al wel aan een NFC-tag zijn gekoppeld.<\/p>\n\n\n\n<p>Selecteer uit de bovenste drop-down lijst een playlist die je aan een plaatje op de kubus wilt koppelen. Plaats nu je muziek kubus met het plaatje van deze muziek in de houder en klik op <code>[Read NFCtag]<\/code>. Even later verschijnt het NFCtag ID van het plaatje in het scherm. Klik nu op <code>[Link NFCtag]<\/code>.<\/p>\n\n\n\n<p>Deze playlist verdwijnt uit de bovenste drop-down lijst en wordt zichtbaar in de onderste drop-down lijst.<\/p>\n\n\n\n<p>Verbind alle zes de vlakken van een kubus met een playlist en klik op <code>[Save]<\/code>.<br>Klik rechtsboven in het scherm op de <code>[terug-pijltje]<\/code> knop om weer in het hoofdscherm te komen.<\/p>\n\n\n\n<p>Mocht je erachter komen dat je een verkeerde playlist aan een plaatje hebt gekoppeld, dan kun de deze playlist in de onderste drop-down lijst selecteren en op <code>[unLink]<\/code> klikken.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Printplaat<\/h2>\n\n\n\n<p>Voor de electronica heb ik een printplaat ontworpen waar alle onderdelen op gesoldeerd moeten worden.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ADW2108_PCB.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ADW2108_PCB.png\" alt=\"\" class=\"wp-image-6995\" width=\"512\" height=\"384\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ADW2108_PCB.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ADW2108_PCB-300x225.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ADW2108_PCB-768x576.png 768w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">De 3D kast<\/h2>\n\n\n\n<p>Deze bestaat uit een aantal onderdelen die allemaal los van elkaar geprint moeten worden en daarna aan elkaar moeten worden gelijmd.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x3-lid.png\"><img loading=\"lazy\" decoding=\"async\" width=\"981\" height=\"665\" data-id=\"7067\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x3-lid.png\" alt=\"\" class=\"wp-image-7067\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x3-lid.png 981w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x3-lid-300x203.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x3-lid-768x521.png 768w\" sizes=\"auto, (max-width: 981px) 100vw, 981px\" \/><\/a><figcaption>Versie 2.0 x 3<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x3-base.png\"><img loading=\"lazy\" decoding=\"async\" width=\"956\" height=\"583\" data-id=\"7069\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x3-base.png\" alt=\"\" class=\"wp-image-7069\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x3-base.png 956w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x3-base-300x183.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x3-base-768x468.png 768w\" sizes=\"auto, (max-width: 956px) 100vw, 956px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/spareCubeBase-20x2-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"561\" height=\"551\" data-id=\"7064\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/spareCubeBase-20x2-1.png\" alt=\"\" class=\"wp-image-7064\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/spareCubeBase-20x2-1.png 561w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/spareCubeBase-20x2-1-300x295.png 300w\" sizes=\"auto, (max-width: 561px) 100vw, 561px\" \/><\/a><figcaption>bodem voor spare Cube 2.0 x3<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x2-lid.png\"><img loading=\"lazy\" decoding=\"async\" width=\"889\" height=\"641\" data-id=\"7070\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x2-lid.png\" alt=\"\" class=\"wp-image-7070\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x2-lid.png 889w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x2-lid-300x216.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x2-lid-768x554.png 768w\" sizes=\"auto, (max-width: 889px) 100vw, 889px\" \/><\/a><figcaption>Versie 2.0 x 2<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x2-base.png\"><img loading=\"lazy\" decoding=\"async\" width=\"860\" height=\"615\" data-id=\"7068\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x2-base.png\" alt=\"\" class=\"wp-image-7068\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x2-base.png 860w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x2-base-300x215.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-20x2-base-768x549.png 768w\" sizes=\"auto, (max-width: 860px) 100vw, 860px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/spareCubeBase-20x3-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"584\" height=\"544\" data-id=\"7061\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/spareCubeBase-20x3-1.png\" alt=\"\" class=\"wp-image-7061\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/spareCubeBase-20x3-1.png 584w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/spareCubeBase-20x3-1-300x279.png 300w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/a><figcaption>Bodem voor spareCube 2.0 x2<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyTray-left.png\"><img loading=\"lazy\" decoding=\"async\" width=\"578\" height=\"498\" data-id=\"7065\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyTray-left.png\" alt=\"\" class=\"wp-image-7065\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyTray-left.png 578w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyTray-left-300x258.png 300w\" sizes=\"auto, (max-width: 578px) 100vw, 578px\" \/><\/a><figcaption>Tray left side<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyTray-base.png\"><img loading=\"lazy\" decoding=\"async\" width=\"613\" height=\"555\" data-id=\"7066\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyTray-base.png\" alt=\"\" class=\"wp-image-7066\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyTray-base.png 613w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyTray-base-300x272.png 300w\" sizes=\"auto, (max-width: 613px) 100vw, 613px\" \/><\/a><figcaption>Tray body<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyTray-right.png\"><img loading=\"lazy\" decoding=\"async\" width=\"755\" height=\"555\" data-id=\"7062\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyTray-right.png\" alt=\"\" class=\"wp-image-7062\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyTray-right.png 755w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyTray-right-300x221.png 300w\" sizes=\"auto, (max-width: 755px) 100vw, 755px\" \/><\/a><figcaption>Tray right side<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/cube-inside-Deknudt-45x45-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"627\" height=\"626\" data-id=\"7060\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/cube-inside-Deknudt-45x45-1.png\" alt=\"\" class=\"wp-image-7060\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/cube-inside-Deknudt-45x45-1.png 627w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/cube-inside-Deknudt-45x45-1-300x300.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/cube-inside-Deknudt-45x45-1-150x150.png 150w\" sizes=\"auto, (max-width: 627px) 100vw, 627px\" \/><\/a><figcaption>inside cube voor Deknudt 5&#215;5 phote cube<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/cube-inside-altx-43x43-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"589\" height=\"616\" data-id=\"7063\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/cube-inside-altx-43x43-1.png\" alt=\"\" class=\"wp-image-7063\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/cube-inside-altx-43x43-1.png 589w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/cube-inside-altx-43x43-1-287x300.png 287w\" sizes=\"auto, (max-width: 589px) 100vw, 589px\" \/><\/a><figcaption>Inside cube voor Altx cube<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p>Bij het ontwerpen van de kast heb ik gebruik gemaakt van de <a rel=\"noreferrer noopener\" href=\"https:\/\/willem.aandewiel.nl\/index.php\/2022\/01\/01\/nog-een-geparameteriseerde-projectbox-generator\/\" target=\"_blank\">YAPPgenerator library<\/a>.<\/p>\n\n\n\n<p>Zoals eerder geschreven kun je de kast met twee of drie plekken voor &#8220;extra&#8221; kubussen maken plus de kubus die uitgelezen wordt en v\u00f3\u00f3r in de speciale standaard (de <em>Tray<\/em>) is geplaatst.<\/p>\n\n\n\n<p>De kast bestaat uit een bovenkant (lid) en een onderkant (base). In het lid moeten zes M2.5 inserts worden geplaatst. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/01\/Ruthex-insert-a.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/01\/Ruthex-insert-a.png\" alt=\"\" class=\"wp-image-6791\" width=\"348\" height=\"184\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/01\/Ruthex-insert-a.png 696w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/01\/Ruthex-insert-a-300x159.png 300w\" sizes=\"auto, (max-width: 348px) 100vw, 348px\" \/><\/a><figcaption>M2.5 Insert aanbrengen<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Twee zijn er voor de bevestiging van het PCB, de andere vier voor het vastzetten van de base aan het lid. Alle overige onderdelen van ESPotify-Echo worden met lijm aan het lid bevestigd.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/MusicCubeTray.gif\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/VideoPlayer.png\" alt=\"\" class=\"wp-image-7023\" width=\"237\" height=\"142\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/VideoPlayer.png 474w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/VideoPlayer-300x180.png 300w\" sizes=\"auto, (max-width: 237px) 100vw, 237px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>De standaard (\u201cTray\u201d) bestaat uit het middenstuk en twee zijkanten.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/TRAY-3Parts.png\"><img loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"612\" data-id=\"6996\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/TRAY-3Parts.png\" alt=\"\" class=\"wp-image-6996\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/TRAY-3Parts.png 629w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/TRAY-3Parts-300x292.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/TRAY-3Parts-50x50.png 50w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/TRAY-Combined.png\"><img loading=\"lazy\" decoding=\"async\" width=\"543\" height=\"534\" data-id=\"6997\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/TRAY-Combined.png\" alt=\"\" class=\"wp-image-6997\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/TRAY-Combined.png 543w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/TRAY-Combined-300x295.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/TRAY-Combined-50x50.png 50w\" sizes=\"auto, (max-width: 543px) 100vw, 543px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>Deze moeten aan elkaar worden gelijmd (secondelijm is prima geschikt). In de achterwand van de tray is ruimte om de RFID-reader in te schuiven.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/TRAY-RFIDreader.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/TRAY-RFIDreader.png\" alt=\"\" class=\"wp-image-6998\" width=\"436\" height=\"380\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/TRAY-RFIDreader.png 581w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/TRAY-RFIDreader-300x261.png 300w\" sizes=\"auto, (max-width: 436px) 100vw, 436px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>\u00e5Ik heb de RFID-reader gefixeerd met een stukje schuimfolie (1 \u00e0 2mm dik). Het geheel moet in het deksel van de kast worden gelijmd.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/addTray.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/addTray.png\" alt=\"\" class=\"wp-image-6999\" width=\"361\" height=\"337\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/addTray.png 721w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/addTray-300x280.png 300w\" sizes=\"auto, (max-width: 361px) 100vw, 361px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Daarna moeten de bodemplaatjes voor de extra kubussen aan het lid worden gelijmd.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/addBasePlates.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/addBasePlates.png\" alt=\"\" class=\"wp-image-7000\" width=\"440\" height=\"298\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/addBasePlates.png 879w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/addBasePlates-300x203.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/addBasePlates-768x520.png 768w\" sizes=\"auto, (max-width: 440px) 100vw, 440px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Het resultaat ziet er dan zo uit:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-composition-top.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-composition-top.png\" alt=\"\" class=\"wp-image-7001\" width=\"506\" height=\"335\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-composition-top.png 1012w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-composition-top-300x198.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-composition-top-768x508.png 768w\" sizes=\"auto, (max-width: 506px) 100vw, 506px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Het PCB moet met de middelste twee schroeven aan het lid worden vastgeschroefd.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-composition-bottom.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-composition-bottom.png\" alt=\"\" class=\"wp-image-7002\" width=\"509\" height=\"351\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-composition-bottom.png 1017w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-composition-bottom-300x207.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-composition-bottom-768x529.png 768w\" sizes=\"auto, (max-width: 509px) 100vw, 509px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Tenslotte moeten de capacitieve platen en de verschillende LED\u2019s aan het lid worden gelijmd.<\/p>\n\n\n\n<figure class=\"wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyEcho_Inside1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"726\" height=\"544\" data-id=\"7085\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyEcho_Inside1.png\" alt=\"\" class=\"wp-image-7085\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyEcho_Inside1.png 726w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyEcho_Inside1-300x225.png 300w\" sizes=\"auto, (max-width: 726px) 100vw, 726px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyEcho_Inside2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"726\" height=\"544\" data-id=\"7086\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyEcho_Inside2.png\" alt=\"\" class=\"wp-image-7086\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyEcho_Inside2.png 726w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyEcho_Inside2-300x225.png 300w\" sizes=\"auto, (max-width: 726px) 100vw, 726px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyEcho_Inside3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"726\" height=\"968\" data-id=\"7087\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyEcho_Inside3.png\" alt=\"\" class=\"wp-image-7087\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyEcho_Inside3.png 726w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyEcho_Inside3-225x300.png 225w\" sizes=\"auto, (max-width: 726px) 100vw, 726px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEcho_PCB1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-id=\"7015\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEcho_PCB1.png\" alt=\"\" class=\"wp-image-7015\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEcho_PCB1.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEcho_PCB1-300x225.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEcho_PCB1-768x576.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-GluedParts.png\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"600\" data-id=\"7003\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-GluedParts.png\" alt=\"\" class=\"wp-image-7003\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-GluedParts.png 800w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-GluedParts-300x225.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-GluedParts-768x576.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Spotify gegevens opvragen<\/h1>\n\n\n\n<p>ESPotify-Echo maakt gebruik van de <em>Spotify-API<\/em> en om daar toegang toe te krijgen heb je drie belangrijke gegevens nodig waarvan je er twee via het <a rel=\"noreferrer noopener\" href=\"https:\/\/developer.spotify.com\/dashboard\/\" target=\"_blank\">Developers Dashboard<\/a> van Spotify kunt verkrijgen (<em>clientId<\/em> en <em>clientSecret<\/em>) door in te loggen met je Spotify account gegevens (gebruikersnaam en wachtwoord) en een applicatie aan te maken.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyDashboard_1-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyDashboard_1-1.png\" alt=\"\" class=\"wp-image-7008\" width=\"753\" height=\"288\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyDashboard_1-1.png 1004w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyDashboard_1-1-300x115.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyDashboard_1-1-768x294.png 768w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Log in als je al een account hebt, maak anders eerst een account aan.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyDashboard_2-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyDashboard_2-1-1024x112.png\" alt=\"\" class=\"wp-image-7009\" width=\"768\" height=\"84\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyDashboard_2-1-1024x112.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyDashboard_2-1-300x33.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyDashboard_2-1-768x84.png 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyDashboard_2-1.png 1200w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Klik op <code>[CREATE AN APP]<\/code> en vul een &#8220;<em>Application name<\/em>&#8221; en een &#8220;<em>Application description<\/em>&#8221; voor deze &#8220;<em>app<\/em>&#8221; in (het maakt niet uit wat je invult. Bedenk iets leuks).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyDashboard_3-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyDashboard_3-1.png\" alt=\"\" class=\"wp-image-7010\" width=\"353\" height=\"660\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyDashboard_3-1.png 470w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/SpotifyDashboard_3-1-160x300.png 160w\" sizes=\"auto, (max-width: 353px) 100vw, 353px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Het belangrijkste wat je moet invullen is de &#8220;<em>Redirect URL&#8217;s<\/em>&#8220;. Hier moet je dit:<\/p>\n\n\n\n<p>                       <code>https:\/\/getyourspotifyrefreshtoken.herokuapp.com\/callback<\/code><\/p>\n\n\n\n<p>invullen. Klik op [ADD].<\/p>\n\n\n\n<p>Sla deze gegevens ergens op want je hebt ze nodig om de ESPotify-Echo aan jouw Spotify account te kunnen koppelen.<\/p>\n\n\n\n<p>Het derde gegeven (<em>refreshToken<\/em>) moet je via een omweg bemachtigen door, na het aanmaken van je applicatie het <em>clientId<\/em> en het <em>clientSecret<\/em> op <a rel=\"noreferrer noopener\" href=\"https:\/\/getyourspotifyrefreshtoken.herokuapp.com\/\" target=\"_blank\">deze site<\/a> in te voeren. Vink \u201c<em>Select all<\/em>\u201d aan en klik op <code>[Submit]<\/code>. Onderin het scherm verschijnt nu jouw <em>refreshToken<\/em>. Vergeet ook niet het <em>refreshToken<\/em> ergens op te slaan.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/GetYourRefreshToken.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/GetYourRefreshToken.png\" alt=\"\" class=\"wp-image-7013\" width=\"412\" height=\"347\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/GetYourRefreshToken.png 824w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/GetYourRefreshToken-300x252.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/GetYourRefreshToken-768x646.png 768w\" sizes=\"auto, (max-width: 412px) 100vw, 412px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Deze gegevens moet je vervolgens in de ESPotify-Echo GUI invoeren bij <code>[Settings]<\/code>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-Echo-Settings.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-Echo-Settings-1024x872.png\" alt=\"\" class=\"wp-image-7014\" width=\"512\" height=\"436\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-Echo-Settings-1024x872.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-Echo-Settings-300x255.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-Echo-Settings-768x654.png 768w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotify-Echo-Settings.png 1043w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Klik nu op <code>[Save]<\/code> en vervolgens op <code>[reStart]<\/code>.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Printplaat Rev 1.0 (18-08-2022)<\/h1>\n\n\n\n<p>Helaas zijn bij deze versie van het ontwerpen een paar dingen fout gegaan.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Er is geen ruimte op het PCB voor de LED-weerstanden. Deze moeten daarom op de LED-strips gesoldeerd worden.<\/li><li>Ik had het data-sheet van de CH340C niet goed gelezen. <br>Zoals de PCB nu is zijn de TX- en RX-lijnen van de CH340C <em>5 volt<\/em> terwijl deze lijnen van de ESP32 natuurlijk 3v3 zijn. Dit is waarschijnlijk geen probleem omdat de CH340C een maximale stroom van 3mA levert. Daar kan de ESP32 wel tegen. Vind je dit toch bezwaarlijk dan moet je een print spoortje onderbreken (rood omcirkeld op onderstaande afbeelding) tussen de 5 Volt voedingslijn en pin 16 van de CH340C en deze pin 16 vervolgens verbinden met de 3v3 voedingslijn (onderkant R6).<\/li><li>De ori\u00ebntatie van het MPR121 board is niet goed. Deze moet daarom \u201cop zijn kop\u201d (dus met de onderdelen aan de onderkant) op de PCB gesoldeerd worden. Je kunt vervolgens de firmware aanpassen (de <code>#define<\/code> <code>_CAP_SW_DOWN<\/code> en <code>_CAP_SW_UP<\/code>) zodat niet switch 0 en 1 gebruikt worden maar switch 10 en 11 \u00f3f je kunt, zoals ik in onderstaande afbeelding heb gedaan, geen pin header voor de twee meest rechtse switches solderen en een draadje leggen tussen de twee meest linkse switches.<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEcho_PCB1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEcho_PCB1.png\" alt=\"\" class=\"wp-image-7015\" width=\"512\" height=\"384\" srcset=\"https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEcho_PCB1.png 1024w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEcho_PCB1-300x225.png 300w, https:\/\/willem.aandewiel.nl\/wp-content\/uploads\/2022\/09\/ESPotifyEcho_PCB1-768x576.png 768w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>This post has 3,980 keer bekeken \/ views Hoewel ik in veel gevallen een \u201cearly adaptor\u201d ben heb ik pas een paar maanden geleden een aantal Amazon Echo&#8217;s in huis gehaald.We gebruiken ze voornamelijk als fotolijst, kookwekker en om muziek &hellip; <a href=\"https:\/\/willem.aandewiel.nl\/index.php\/2022\/09\/07\/spotify-muziek-speler-met-intuitieve-bediening\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[153,157,10,115,20],"tags":[119,51,55],"class_list":["post-6977","post","type-post","status-publish","format-standard","hentry","category-3d-printing","category-esp32","category-hardware","category-kicad","category-wifi","tag-esp32","tag-firmware","tag-hardware"],"views":3980,"_links":{"self":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/6977","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/comments?post=6977"}],"version-history":[{"count":44,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/6977\/revisions"}],"predecessor-version":[{"id":7334,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/posts\/6977\/revisions\/7334"}],"wp:attachment":[{"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/media?parent=6977"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/categories?post=6977"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/willem.aandewiel.nl\/index.php\/wp-json\/wp\/v2\/tags?post=6977"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}