{ "info": { "author": "confirm IT solutions", "author_email": "", "bugtrack_url": null, "classifiers": [ "Environment :: No Input/Output (Daemon)", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Topic :: Multimedia :: Sound/Audio :: Players" ], "description": "Mopidy Pummeluff\n================\n\nPummeluff is a `Mopidy `_ extension which allows you to control Mopidy via RFID tags. It is as simple as that:\n\n- Register an action to an RFID tag\n- Touch that tag on the RFID reader and the action will be executed \n\nThus, the Mopidy Pummeluff extension adds the following features to Mopidy:\n\n- A radically simple web UI which can be used to manage the RFID tags\n- A daemon which continuously reads RFID tags in the background and executes the assigned actions\n\nThere are several actions included, such as replacing the tracklist with a desired URI, setting the volume to a specific level or controlling the playback state.\n\nHardware\n========\n\nRequirements\n------------\n\nTo get the whole thing working, you need at least the following hardware:\n\n- A Raspberry Pi 3 Model B\n- An ``RC522`` RFID module (`RC522 on AliExpress `_ for approx. *USD 1*)\n- RFID tags (``ISO 14443A`` & ``Mifare`` should work, `14443A tags on AliExpress `_ for approx. *0.4 USD* per tag)\n- Female dupont jumper wires (`female dupont jumper cables on AliExpress `_ for approx. *1 USD*)\n\nOptionally you can also add two buttons to the RPi, which can be used for power & playback control:\n\n- Two momentary push buttons (`momentary push buttons on AliExpress `_ for approx. *USD 1-2*) \n\nPummeluff also supports a status LED, which lights up when Pummeluff (i.e. Mopidy) is running. You can go with a separate LED, just make sure it can handle 3.3V or add a resistor. There are also push buttons with integrated LED's available, for example `these 5V momentary push buttons on AliExpress `_.\n\n.. note::\n\n The project will probably run on other RPi models, but I've only tested it on the ``3B``. The RPi ``3B+`` should also work fine, as the GPIO pins are identical. I don't know about RPi ``1`` or ``2``, but you can give it a shot.\n\nConnecting the RC522 module\n---------------------------\n\nPlease connect the ``RC522`` RFID module to the RPi as follows:\n\n- ``RC522 pin 1 [SDA ]`` \u2013\u2013\u2013 ``RPi pin 24 [SPI0 CE0 ]``\n- ``RC522 pin 2 [SCK ]`` \u2013\u2013\u2013 ``RPi pin 23 [SPI0 SCLK]``\n- ``RC522 pin 3 [MOSI]`` \u2013\u2013\u2013 ``RPi pin 19 [SPI0 MOSI]``\n- ``RC522 pin 4 [MISO]`` \u2013\u2013\u2013 ``RPi pin 21 [SPI0 MISO]``\n- ``RC522 pin 5 [IRQ ]`` \u2013\u2013\u2013 ``RPi pin 18 [ GPIO 24 ]``\n- ``RC522 pin 6 [GND ]`` \u2013\u2013\u2013 ``RPi pin 20 [ GND ]``\n- ``RC522 pin 7 [RST ]`` \u2013\u2013\u2013 ``RPi pin 22 [ GPIO 25 ]``\n- ``RC522 pin 8 [3.3V]`` \u2013\u2013\u2013 ``RPi pin 17 [3.3V PWR ]``\n\nPlease have a look at the `Raspberry Pi SPI pinout `_ if you want to have a graphical view of the RPi GPIO pins. \n\n.. note::\n\n This connections are only valid for the RPi model ``3B`` and ``3B+``. If you want to use another RPI model, make sure you're using the correct pins.\n\nConnecting the buttons (optional)\n---------------------------------\n\nYou can connect two buttons to the RPi:\n\n- ``RPi pin 5`` - Power button: Shutdown the Raspberry Pi into halt state & wake it up again from halt state\n- ``RPi pin 7`` - Playback button: Pause and resume the playback\n\nThe buttons must shortcut their corresponding pins against ``GND`` (e.g. pin ``6``) when pressed. This means you want to connect one pin of the button (i.e. ``C``) to RPI's ``GND``, and the other one (i.e. ``NO``) to RPi's pin ``5`` or ``7``.\n\nConnecting the status LED (optional)\n------------------------------------\n\nIf you want to have a status LED which is turned on when the RPi is running, you can connect an LED to a ``GND`` pin (e.g. pin ``6``) & to pin ``8``.\n\nInstallation\n============\n\nPrepare Raspberry Pi\n--------------------\n\nBefore you can install and use Mopidy Pummeluff, you need to configure your Raspberry Pi properly.\n\nWe want to enable the ``SPI`` interface and give the ``mopidy`` user access to it. This is required for the communication to the RFID module. Enter this command:\n\n.. code-block:: bash\n\n sudo raspi-config\n\nIn the configuraton utility, **Enable the SPI** under ``5 Interfacing Options \u2013 P4 SPI``. \n\nAfter that, add your ``mopidy`` user to the ``spi`` and ``gpio`` group:\n\n.. code-block:: bash\n\n sudo usermod -a -G spi,gpio mopidy\n\nIf you're planning to use a button or RFID tag to shutdown the system, you also need to create a sudo rule, so that the ``mopidy`` user can shutdown the system without a password prompt:\n\n.. code-block:: bash\n\n echo \"mopidy ALL = NOPASSWD: /sbin/shutdown\" > /etc/sudoers.d/mopidy\n\nInstall via pip\n---------------\n\nThe recommended way to install Mopidy Pummeluff by using ``pip`` and thus by executing the following command:\n\n.. code-block:: bash\n\n sudo pip install mopidy-pummeluff\n\n.. hint::\n\n If you get an error that ``spidev`` could not be found, run ``pip install spidev`` first. This is an issue related to the ``pi-rc522`` Pypi package.\n\nInstall from source\n-------------------\n\nAlternatively, you can also install Mopidy Pummeluff from source, by running this command:\n\n.. code-block:: bash\n\n sudo su -\n cd /usr/src\n git clone https://github.com/confirm/mopidy-pummeluff.git\n cd mopidy-pummeluff\n python setup.py install\n\n.. hint::\n\n If you get an error that ``spidev`` could not be found, run ``pip install spidev`` first. This is an issue related to the ``pi-rc522`` Pypi package.\n\nConfiguration\n=============\n\nActivate and configure the `Mopidy HTTP `_ extension and make sure you can connect to the Web UI. The minimal config looks like this:\n\n.. code-block::\n\n [http]\n enabled = true\n hostname = 0.0.0.0\n\nUsage\n=====\n\nOpen the Mopidy Web UI (i.e. ``http://{MOPIDY_IP}:6680/``).\nYou should see a ``pummeluff`` web client which can be used to regsiter new RFID tags.\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/confirm/mopidy-pummeluff", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "Mopidy-Pummeluff", "package_url": "https://pypi.org/project/Mopidy-Pummeluff/", "platform": "", "project_url": "https://pypi.org/project/Mopidy-Pummeluff/", "project_urls": { "Homepage": "https://github.com/confirm/mopidy-pummeluff" }, "release_url": "https://pypi.org/project/Mopidy-Pummeluff/1.0.0/", "requires_dist": [ "setuptools", "Mopidy (>=2.2.2)", "pi-rc522 (==2.2.1)", "pycodestyle (==2.5.0); extra == 'develop'", "pylint (==1.9.4); extra == 'develop'" ], "requires_python": "", "summary": "Pummeluff is a Mopidy extension which allows you to control Mopidy via RFID tags", "version": "1.0.0" }, "last_serial": 4989585, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "5270b74d44b63a5fa57d298cc7c7cdcf", "sha256": "6ead5135b43b31922c85c2914842133b79d5cd859c63e283be4940ed41e3950a" }, "downloads": -1, "filename": "Mopidy_Pummeluff-0.1.0-py2-none-any.whl", "has_sig": true, "md5_digest": "5270b74d44b63a5fa57d298cc7c7cdcf", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 14831, "upload_time": "2019-02-24T21:53:18", "url": "https://files.pythonhosted.org/packages/cf/39/d76d998485a2dc7054bec8605f593748d6ca4f5b9a6d7a8d2c8afb69d29f/Mopidy_Pummeluff-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f31c9cdb391bf8f7e5cda545d33b70b", "sha256": "05f39ea5bce1bcbbf3479c8c608796e7a72383325b12378d9bdd2b7d4a5abd8a" }, "downloads": -1, "filename": "Mopidy-Pummeluff-0.1.0.tar.gz", "has_sig": true, "md5_digest": "6f31c9cdb391bf8f7e5cda545d33b70b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19162, "upload_time": "2019-02-24T21:53:20", "url": "https://files.pythonhosted.org/packages/33/4a/2806586673e03f415c96de3286e5497cdaf8c716807535904a2d239b02f4/Mopidy-Pummeluff-0.1.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "f9cd08cc2aecc3f9d9d3fa91e87cd40f", "sha256": "88343478ea6232e23005b4c9550afeac01c55074e9bbfba77ad0b98cd06bb65a" }, "downloads": -1, "filename": "Mopidy_Pummeluff-0.2.1-py2-none-any.whl", "has_sig": true, "md5_digest": "f9cd08cc2aecc3f9d9d3fa91e87cd40f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 57280, "upload_time": "2019-02-27T20:49:36", "url": "https://files.pythonhosted.org/packages/7a/05/ffe1bbb3678ef5f9ed8415ba395218243833b71c5de34ae6f614a8b837fb/Mopidy_Pummeluff-0.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6060046513f1509c10de7fc0be6f4667", "sha256": "77d943eb549ead454ab36730186de4b44f049e2b31b8a61692dd2845dc1690c8" }, "downloads": -1, "filename": "Mopidy-Pummeluff-0.2.1.tar.gz", "has_sig": true, "md5_digest": "6060046513f1509c10de7fc0be6f4667", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63043, "upload_time": "2019-02-27T20:49:38", "url": "https://files.pythonhosted.org/packages/33/1c/29b8188eb0ac3822731356b1318769b15defb6b8e2b9034133ee16d8372b/Mopidy-Pummeluff-0.2.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "13b2091f4d531aba319656e62d16dcf3", "sha256": "6b74f375ae715c91524256d5412eea96c7edacfae117ce275434a95cff329d55" }, "downloads": -1, "filename": "Mopidy_Pummeluff-1.0.0-py2-none-any.whl", "has_sig": true, "md5_digest": "13b2091f4d531aba319656e62d16dcf3", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 63268, "upload_time": "2019-03-26T21:20:49", "url": "https://files.pythonhosted.org/packages/84/6b/03abfeb4e97c7febc234d9790c953750aeb2b392fafe9ff0f3600885e7e0/Mopidy_Pummeluff-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "222333027750b14545ed4d04b4085a0e", "sha256": "69c2775a765d1c080ef66f8bc0ee4fcf695de45f60324b417146359a3554f4c6" }, "downloads": -1, "filename": "Mopidy-Pummeluff-1.0.0.tar.gz", "has_sig": true, "md5_digest": "222333027750b14545ed4d04b4085a0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65425, "upload_time": "2019-03-26T21:20:51", "url": "https://files.pythonhosted.org/packages/2f/00/d4be1e0d946484edc5bf66b9692d76d77172c98e1503e261a0263eeabea1/Mopidy-Pummeluff-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "13b2091f4d531aba319656e62d16dcf3", "sha256": "6b74f375ae715c91524256d5412eea96c7edacfae117ce275434a95cff329d55" }, "downloads": -1, "filename": "Mopidy_Pummeluff-1.0.0-py2-none-any.whl", "has_sig": true, "md5_digest": "13b2091f4d531aba319656e62d16dcf3", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 63268, "upload_time": "2019-03-26T21:20:49", "url": "https://files.pythonhosted.org/packages/84/6b/03abfeb4e97c7febc234d9790c953750aeb2b392fafe9ff0f3600885e7e0/Mopidy_Pummeluff-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "222333027750b14545ed4d04b4085a0e", "sha256": "69c2775a765d1c080ef66f8bc0ee4fcf695de45f60324b417146359a3554f4c6" }, "downloads": -1, "filename": "Mopidy-Pummeluff-1.0.0.tar.gz", "has_sig": true, "md5_digest": "222333027750b14545ed4d04b4085a0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65425, "upload_time": "2019-03-26T21:20:51", "url": "https://files.pythonhosted.org/packages/2f/00/d4be1e0d946484edc5bf66b9692d76d77172c98e1503e261a0263eeabea1/Mopidy-Pummeluff-1.0.0.tar.gz" } ] }