# Rasperry Pi RFID Jukebox Disclaimer: this is a perpetual work in progress! This is a personal project of [Annika Backstrom][1] 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: 1. Clone project 2. Copy config.json.sample to config.json 3. Edit config.json for your setup 4. [Install Node.js](https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions) 4. `npm install` (node.js dependencies) 5. `virtualenv lib` # make a python virtualenv 6. `lib/bin/pip install -r requirements.txt` 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 [1]: https://sixohthree.com/