/RPi-Jukebox-RFID

A jukebox for the Raspberry Pi, playing local music, podcasts and web streams / netradio triggered by RFID cards and web app. All plug and play via USB, no soldering iron needed.

Primary LanguagePHPMIT LicenseMIT

Phoniebox: the RPi-Jukebox-RFID

A contactless jukebox for the Raspberry Pi, playing local audio files, playlists or even web streams triggered by RFID cards. All plug and play via USB, no soldering iron needed. Update: if you must, it now also features a howto for adding GPIO buttons controls.

Important update news

  • Phoniebox 0.9.7 released The next release after that will not (actively) support jessie anymore. And will replace VLC with mpd to save battery power and add resume play as a feature - which is not meant for toddlers but audiobook lovers (aka Phoniebox is growing up!). On the release page you can find a list of features. (2018-07-19)
  • Changing audio player? Your thoughts please There is a new branch with 'resume play' in the repo using mpd instead of vlc for audio playout. What do you think? Use this thread for feedback and opinions (2018-07-17)
  • Podcasts! More for myself than anybody else, I guess, I added the podcast feature for Phoniebox (2018-05-09)
  • config.php removed in repo To fix a flaw of the initial commit, I removed the config.php file from the htdocs directory. It will be created automatically from config.php.sample. If you encounter problems after git pull, download config.php.sample adjust and copy to config.php. (2018-05-03)

Prototype of the RFID jukebox

See the Phoniebox code in action, watch this video and read the blog post from iphone-ticker.de

What makes this Phoniebox easy to install and use:

  • Runs on all Raspberry Pi models (1, 2 and 3) and Raspberry Zero. (jump to the install instructions)
  • Just plug and play using USB, no soldering iron needed.
  • Once the Phoniebox is up and running, add music from any computer on your home network.
  • Register new RFID cards easily without having to connect to the RPi.
  • Play single or multiple files, even mix them with web streams.
  • Volume control is also done with RFID cards or key fobs.
  • Connect to your Phoniebox via your wifi network or run the Phoniebox like an access point and connect directly without a router.
  • Bonus: control the Phoniebox from your phone or computer via a web app.

The web app allows you to change the volume level, list and play audio files and folders, stop the player and shut down the RPi gracefully.

The web app runs on any device and is mobile optimised. It provides:

  • An audio player to pause, resume, stop and skip to previous and next track.
  • Control and change the volume level.
  • Full list of all available audio and trigger to play it from the browser.
  • Shutdown or reboot the RPi gracefully.

Phoniebox Gallery

Caption Caption Caption Caption Caption Caption

See more innovation, upcycling and creativity in the Phoniebox Gallery or visit and share the project's homepage at phoniebox.de. There is also an english Phoniebox page.

Installation

Adding push buttons to control volume, skipping tracks, pause, play: read the GPIO buttons installation guide.

A German version for the installation ... hier ist eine etwas überholte deutsche Version der Installationsdoku für Jessie von hailogugo

Manual

In MANUAL.md you will learn:

Contributing improvements

The preferred way of code contributions are pull requests (follow this link for a small howto). And ideally pull requests using the "running code" on your Phoniebox. Alternatively, feel free to post tweaks, suggestions and snippets in the "issues" section.

Reporting bugs

If you find something that doesn't work. And you tried and tried again, but it still doesn't work, please report your issue in the "issues" section. Make sure to include information about the system and hardware you are using, like:

Raspberry ZERO, OS Jessie, Card reader lists as (insert here) when running scripts/RegisterDevice.py, installed Phoniebox version 0.9.3 (or: using latest master branch).

Troubleshooting

There is a growing section of troubleshooting including:

  • I want to improve the onboard audio quality
  • I am moving, how do I get the Phoniebox into my new WiFi network?
  • The RFID Reader doesn't seem to work.
  • Changing the volume does not work, but the playout works.
  • Script daemon_rfid_reader.py only works via SSH not by RFID cards.
  • Script daemon is closing down unexpectedly.
  • Everything seems to work, but I hear nothing when swiping a card.
  • I would like to use two cards / IDs to do the same thing.

Acknowledgments

There are many, many, many inspiring suggestions and solutions on the web to bring together the idea of a jukebox with RFID cards. I want to mention a few of these that have inspired me.

For my rendition of the RFID jukebox, I have forked two files from Francisco Sahli to register the RFID reader and read the ID from the cards with the python scripts Reader.py and RegisterDevice.py.

I also want to link to two proprietary and commercial projects, because they also inspired me. And they challenged me, because of their shortcomings in terms of openness and in the case of tonies, the lack of "ownership" of the audiobooks and plays you actually bought. However, both products are very well made.

Shopping list

Here is a list of equipment needed. Chances are that you will find most of it in the back of your drawers or at the bottom of some shoe box. Well, most of it, possibly not the RFID reader itself.