Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Dies ist mein Beitrag zum "Audio"-Wettbewerb - wenn Sie daran interessiert sind, dann stimmen Sie mir bitte ab
In diesem Beitrag wird versucht, eine "scrollfreundliche" Version des Anleitungsvideos zu erstellen, das oben in diesem Beitrag enthalten ist
Das Video geht sehr detailliert auf den Kontrollfluss ein und welche Software ich verwende. Schauen Sie sich das an, wenn Sie mehr erfahren möchten.
Der Ablauf ist wie folgt:
Normaler Betrieb - Karten lesen und Spotify zum Abspielen von Songs auslösen:
1) RFID-Tag wird von einem kompatiblen Kartenleser gelesen
2) Der Kartenleser spuckt serielle Daten für jede Karte an einen Arduino aus
3) Arduino "Seriell druckt" die empfangenen Daten zu einem Himbeer-Pi
4) Pi erhält eine Karten-ID von Arduino. Pi sucht die Karten-ID in einer Tabelle, um den entsprechenden Spotify-URI zu finden
5) Pi ruft die Spotify-API auf, um die ausgewählte URI abzuspielen
Einrichtungsphase: Zuordnen eines RFID-Tags zu einem Spotify-URI
1) bis 3) von oben
4) Pi erwartet ein Befehlszeilen-Arg mit dem spezifischen Spotify-URI, den Sie mit der Karte verknüpfen möchten
5) Pi erstellt einen neuen Eintrag (oder überschreibt, wenn die Karten-ID bereits in der Tabelle gefunden wurde) für das CardID-, SpotifyURI-Paar
Sie "programmieren" diese Tags also nicht. Diese Tags haben einen eigenen eingebauten Mikrocontroller, der das von der Spule des Lesegeräts kommende Feld entsprechend seiner spezifischen ID moduliert. Alles, was Sie tun, ist, ein Wörterbuch von Schlüssel-Wert-Paaren zu erstellen, aus denen das pi lesen kann.
Angenommen, ich habe eine Karte mit der ID "2_54_57_53_23_33_3". Ich weiß anfangs nicht, was die ID ist, aber wenn ich die Ausgabe des Arduino nach dem Scannen lese, kommt dies heraus.
Sagen wir, ich möchte, dass diese Karte das Greatest-Hits-Album von Al Green spielt, wenn sie gescannt wird. Um dies zu erreichen, würde ich zu Spotify gehen und die URI des Albums kopieren und "spotify:album:6W0V8B0fJItvOwC8v114rZ" erhalten. Nun, wie im Video zu sehen, liefere ich diesen URI an ein Python-Programm, um die Karten-ID "2_54_57_53_23_33_3" mit der Spotify-URI von "spotify:album:6W0V8B0fJItvOwC8v114rZ" in einer Tabelle zu verknüpfen. Der "Schlüssel" ist die Karten-ID und der "Wert" ist die URI.
Wenn ich nun das Hauptprogramm bereitstelle und mein pi eine Karten-ID von "2_54_57_53_23_33_3" erhält, wird es in der Tabelle nachgeschlagen, die damit verbundene URI gesammelt und die URI als Argument an die Spotify-API übergeben.
Lieferungen
Dedizierter Computer (Raspberry Pi ist am besten für dieses Tutorial)
RFID-Kartenlesermodul zum Anschluss an den dedizierten Computer
Mit Ihrem Lesegerät kompatible RFID-Karten
Optional, aber empfohlen: Ein Ersatz-Arduino als Mittelsmann zwischen Reader und Computer, um Entwicklungszeit zu sparen
Schritt 1: Codeübersicht
Die beigefügten Screenshots zeigen die grundlegende Codestruktur für die Schnittstelle mit Serial auf dem Arduino und pi. Der Vorteil der Verwendung des Arduino als Mittelsmann besteht darin, dass ich es als seriellen Eingang direkt an den USB-Port des Pi anschließen kann. Das hat mir eine Menge Kopfschmerzen erspart, da ich jetzt nicht mehr wissen muss, wie man die GPIO-Pins als seriellen Eingang einrichtet.
Meine spezielle Karten-/Lesegerät-Kombination führt zu dem ungewöhnlichen Ergebnis, dass alle Karten mit einer 2 beginnen und mit einer 3 enden. Dadurch kann ich schnell und schmutzig wissen, wann eine Übertragung beginnt oder endet. Abhängig von den Karten/Lesern, die Sie haben, muss sich Ihr Code ändern.
Schritt 2: Spotify-Integration
Nun zum schwierigen Teil - die Schnittstelle zu Spotify. Ich habe mich hier stark auf 3 Ressourcen verlassen:
1) Das Spotifyd-Projekt, mit dem Ihr Gerät als zusätzlicher Lautsprecher für Ihr Spotify-Konto angezeigt werden kann.
2) Das Diskplayer-Projekt, bei dem ein zufälliger Typ seine eigenen Go-Skripte für die Schnittstelle mit der Spotify-API geschrieben hat
3) Dieser schöne Mann, der mit Spotify über OAUTH geht. Ohne ihn hätte ich noch so viele Stunden verschwendet.
Installieren Sie zuerst Spotifyd und testen Sie es, um sicherzustellen, dass der Pi als Lautsprecher in Ihrem Konto angezeigt wird.
Sobald das funktioniert, habe ich Diskplayer verwendet, um die Spotify-API zu testen. Hier werden Sie aufgefordert, ein Spotify-API-Token bereitzustellen. Wenn Sie wie ich ein Headless-Setup ausführen, können Sie es nicht in einem Browser auf dem Pi öffnen. Aus diesem Grund müssen Sie die im Video oben in Schritt 3 aufgeführten Schritte ausführen. Dieses Projekt wäre ohne den Mann in diesem Video nicht möglich gewesen!
Schritt 3: Schöner aussehen lassen
Sobald alles funktioniert, werden Sie mit einem Durcheinander von Drähten zurückbleiben, die alles von Spotify abspielen, was Sie wollen. Um es aufzuräumen, legen Sie alles in ein Etui und drucken Sie einige Etiketten für Ihre Karten aus! Ich habe Avery 22822-Etiketten verwendet (die mit einer leeren Photoshop-Vorlage zum Drucken zu Hause geliefert werden). Ich konnte Bilder von Google ziehen und sie nach Bedarf in die Photoshop-Vorlage einfügen. Nachdem ich ein paar Stunden Photoshop gelernt hatte, druckte ich die Etiketten aus und klebte sie auf meine leeren RFID-Tags.
Ich hatte viel Spaß mit diesem Projekt und werde es in Zukunft nutzen, um Leute in meiner Wohnung zu unterhalten. I\Lassen Sie mich wissen, wenn Sie es am Ende selbst machen!
Ich nehme hiermit am "Audio"-Wettbewerb teil - wenn es Ihnen gefallen hat, können Sie dafür abstimmen. Vielen Dank!