|
||
---|---|---|
bin | ||
init | ||
jukebox | ||
media | ||
static | ||
templates | ||
.gitignore | ||
config.json.sample | ||
config.json.vagrant | ||
LICENSE | ||
nodemon.json | ||
package.json | ||
player.js | ||
README.md | ||
requirements.txt | ||
Vagrantfile |
Rasperry Pi RFID Jukebox
Disclaimer: this is a perpetual work in progress!
This is a personal project of Annika Backstrom for using a Raspberry Pi as an RFID-controlled "jukebox". Given an RPi with attached MFRC522, UIDs from 1K MIFARE tags can be associated with media (MP3 files) and actions (currently, STOP and PAUSE).
Components
- Jukebox app with web frontend (node.js)
- RFID tag reader (Python)
- MP3 player (mpg321, not included)
Setup
This section is incomplete (of course) and parts are tuned to my setup and for my own convenience:
- Clone project
- Copy config.json.sample to config.json
- Edit config.json for your setup
npm install
(node.js dependencies)make all
(Python dependencies, mpg321 dependency)
TODO: Can this be streamlined? Maybe move Makefile commands into npm
commands.
config.json
The following keys are available:
-
port
-- web server port -
tag_reader
-- path to tag reader script. jukebox expects the tag reader to spit out a unique string for each tag (e.g. 10 character hex UID) -
mpg321
-- path to mpg321 executable. should be run in "remote control" mode (-R
), reading commands from stdin. -
stop_id
-- id of the card that stops playback -
pause_id
-- id of card that pauses playback