{ "info": { "author": "Moritz Eissenhauer", "author_email": "moritz.eissenhauer@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "AirPixel\n========\n\n.. figure:: ../images/GitHub-Mark-120px-plus.png\n :align: center\n :target: https://github.com/mmEissen/AirPixel\n\n.. figure:: https://travis-ci.com/mmEissen/airpixel.svg?branch=master\n :align: center\n\n\nControl Your NeoPixels with Python via UDP.\n\nNeoPixels require a microcontroler to be programmed. This makes prototyping slow, as you need to compile and upload your code to the microcontroler. To circumvent this problem, this library uses a static program on a networking enabled microcontroler. The microcontroler reads messages from UDP, deserializes them into color values and shows them on the LEDs.\n\nOn a separate device, the python client can be used to establish a connection,serialize the color values, and send them to the microcontroller.\n\nThe arduino sketch provided in the repo was tested on a ESP2866-01 microcontroler.\n\nRestrictions\n------------\n\nMost of the restrictions are down to the arduino sketch. If you make changes to fit your needs please consider contributing to this project.\n\nThe code is currently only tested:\n - with an ESP2866-01\n - with RGBW (4 colors) NeoPixels\n - on a (simple) local home network\n\nClient Installation\n-------------------\n\nAirpixel requires python 3.6 or higher. You can install the python client from\nPyPi with:\n\n.. code-block:: bash\n\n $ pip install airpixel\n\nServer Installation\n-------------------\n\nThe sketch depends on `NeoPixelBus `_ which can be installed through the arduino library manager.\n\nRename the ``config_template.h`` to ``config.h`` and fill in your WIFI name and password, and the number of LEDs on your strip. For a slight performance boost you may turn off the debug mode. However this should not be necesarry in general.\n\nThe NeoPixels must be connected to the ``RDX0/GPIO3`` pin. Unfortunately this cannot be configured.\n\nIf everything works correctly (and debug mode is enabled in the ``config.h``) you should be able to see some output in your serial monitor:\n\n.. code-block:: txt\n\n SETUP\n WiFi connected.\n ADVERTISING...\n ADVERTISING...\n ADVERTISING...\n ...\n\nUsage\n-----\n\nFirst you will have to create a client and connect to your ESP2866:\n\n.. code-block:: python\n\n >>> from airpixel.client import AirClient, Pixel\n >>> client = AirClient(50000, 50001, 60)\n >>> client.connect()\n\n``AirClient`` takes the port number of the server (configurable in ``config.h`` and 50000 by default), the port number you want to use on your machine (chose any UDP port you want here), and the number of LEDs on your device (in this example 60)\n\nOnce you are connected you can start sending data to your ESP2866:\n\n.. code-block:: python\n\n >>> frame = [Pixel(1, 1, 1) for _ in range(60)]\n >>> client.set_frame(frame)\n >>> client.show()\n\nIf everything works correctly, that should make your NeoPixels white.\n\n\nDevelopment\n-----------\n\nThis project comes with a Pipfile that can be used with `Pipenv `_.\n\nFollow the instructions on the pipenv website to install pipenv. Then run:\n\n.. code-block:: bash\n\n $ pipenv install -d\n\nThis will create a virtualenv and install all the development dependencies. The airpixel package will also be installed in edit mode.\n\nWhile there is a ``requirements.txt`` file, this is currently only used in CI.", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mmEissen/airpixel", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "Airpixel", "package_url": "https://pypi.org/project/Airpixel/", "platform": "", "project_url": "https://pypi.org/project/Airpixel/", "project_urls": { "Homepage": "https://github.com/mmEissen/airpixel" }, "release_url": "https://pypi.org/project/Airpixel/0.8/", "requires_dist": null, "requires_python": "", "summary": "", "version": "0.8" }, "last_serial": 5246151, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "e1d3b5decf63aa8a200bdd5a3b626e5f", "sha256": "67dc39a223e98e4d69332a6232fa33b3eecf20958873522aa638137b455e3c7f" }, "downloads": -1, "filename": "Airpixel-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e1d3b5decf63aa8a200bdd5a3b626e5f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5487, "upload_time": "2018-10-24T20:05:04", "url": "https://files.pythonhosted.org/packages/7c/8c/c06be14377594c54a88f6325dd2ab5cafd72538233dc88391106a3a61b7f/Airpixel-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0886bb364a2108d7637b03083429efb0", "sha256": "2538defcef057d6376bb40a23770047664610f13edfdb62990190d9e8ec26ad0" }, "downloads": -1, "filename": "Airpixel-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0886bb364a2108d7637b03083429efb0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3796, "upload_time": "2018-10-24T20:05:05", "url": "https://files.pythonhosted.org/packages/72/ae/fd4f1ffdaab01f99542117f16f6029860abd7070db7a72697101608408cb/Airpixel-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "d23f99cd3171962d5ee222d3e9afbdc6", "sha256": "388fe3dfbd6645e28b78631fc8b2865e62c987764b057a8eea1ec0498b2f75ee" }, "downloads": -1, "filename": "Airpixel-0.1.1.tar.gz", "has_sig": false, "md5_digest": "d23f99cd3171962d5ee222d3e9afbdc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3772, "upload_time": "2018-10-24T22:18:47", "url": "https://files.pythonhosted.org/packages/7f/f1/f499be9ae243b4b57556739f2dbaf5dd3b68bdeec681b4267deaed098d97/Airpixel-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "cec0408466b2aba49db4eb68466610b4", "sha256": "91df816fd433d8db695b1ca53427049cf3dacd0d076758c63ac2cd42f3743dee" }, "downloads": -1, "filename": "Airpixel-0.2.0.tar.gz", "has_sig": false, "md5_digest": "cec0408466b2aba49db4eb68466610b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4819, "upload_time": "2018-11-03T22:20:48", "url": "https://files.pythonhosted.org/packages/17/0c/9242818d0414f11c90cd98419872f9886186103efd6e626b171bdd07942f/Airpixel-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "de93bb68cedef69464268f9b2fb1e600", "sha256": "bbb8d37d94246ba0632566cdbbccaf09004714c42edf9a066ea6424736c8eaf6" }, "downloads": -1, "filename": "Airpixel-0.2.1.tar.gz", "has_sig": false, "md5_digest": "de93bb68cedef69464268f9b2fb1e600", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4830, "upload_time": "2018-11-04T11:03:38", "url": "https://files.pythonhosted.org/packages/14/ac/209813b19a93a8265d23abe8cff906d62570ac7865176b4c1599338b8467/Airpixel-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "146f3893e3d0986fb8d0d5c36dd87283", "sha256": "642431fb793dd1bf00801dec22cc034bc6fdf9d55e9c095e401b95a65ed1f525" }, "downloads": -1, "filename": "Airpixel-0.2.2.tar.gz", "has_sig": false, "md5_digest": "146f3893e3d0986fb8d0d5c36dd87283", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6449, "upload_time": "2018-11-05T22:49:52", "url": "https://files.pythonhosted.org/packages/a2/da/f8f356a26e7b72ce7e923ecc48831024c133526735fcdeb88c4283b8b8ec/Airpixel-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "a3b42e90b6f94c222c55f552283721c4", "sha256": "127cc9283899cf123e491bf7ab79f08bb1f1637ee18f55e32b9a4bc181e65860" }, "downloads": -1, "filename": "Airpixel-0.2.3.tar.gz", "has_sig": false, "md5_digest": "a3b42e90b6f94c222c55f552283721c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6955, "upload_time": "2018-11-05T23:29:00", "url": "https://files.pythonhosted.org/packages/91/0e/799a2c2a6908af6b40d8e80a2c999a364909a7343444047420fec81ba4be/Airpixel-0.2.3.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "9c679bf336ed64b81d39a8b29fd859ef", "sha256": "ca7dee286807452c644fbda115ef919c7e77f645ac6fef4b184087809a2c5d45" }, "downloads": -1, "filename": "Airpixel-0.3.0.tar.gz", "has_sig": false, "md5_digest": "9c679bf336ed64b81d39a8b29fd859ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7401, "upload_time": "2018-11-24T13:25:28", "url": "https://files.pythonhosted.org/packages/7f/6e/094a4233dcbb5c01a507fea7214cf4e6eec864ba6dc2e77c17e8bcf26f70/Airpixel-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "6aa9829516e7378eaf5d220a6c0f479b", "sha256": "3f4ecdf65a9f64693a74703b7062b8c97b90ff3f162c5bd4ec4aa9022ad5fa95" }, "downloads": -1, "filename": "Airpixel-0.3.1.tar.gz", "has_sig": false, "md5_digest": "6aa9829516e7378eaf5d220a6c0f479b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7406, "upload_time": "2018-11-24T13:39:22", "url": "https://files.pythonhosted.org/packages/48/5d/18a5e24f2e9514b9da268d0229ad5627583f334840c19979db3668b0dc68/Airpixel-0.3.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "0a5b862f3c5db7dacc486d89661dab56", "sha256": "35df4c5b1da8574f003b10d2840314ea8cab8f19adff7e8cf9205675058a3f59" }, "downloads": -1, "filename": "Airpixel-0.5.0.tar.gz", "has_sig": false, "md5_digest": "0a5b862f3c5db7dacc486d89661dab56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7271, "upload_time": "2019-01-06T16:23:35", "url": "https://files.pythonhosted.org/packages/e9/a4/36851c9046b6cb3cdb055de26bcec6b2c238a0b8deb97236069b5482eb9e/Airpixel-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "5f6da38386a266b87d5eaeefddd22f83", "sha256": "5c7db0659738bbe44245e30d09c31ae03036dad5c3cf3ebf9ec2927f23d2fa92" }, "downloads": -1, "filename": "Airpixel-0.5.1.tar.gz", "has_sig": false, "md5_digest": "5f6da38386a266b87d5eaeefddd22f83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7258, "upload_time": "2019-01-06T17:59:01", "url": "https://files.pythonhosted.org/packages/ac/27/0902bce868d50a707dc7f1b4ac8b04fba79b689fc25b7117d8ddb06aeeb3/Airpixel-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "5ec8bb5d077ec73155af7dcdc56e5cc0", "sha256": "f1ff03612ef45f297a3af4b0db2db3b74241df8745f124e622a2c2c3f7791b5a" }, "downloads": -1, "filename": "Airpixel-0.5.2.tar.gz", "has_sig": false, "md5_digest": "5ec8bb5d077ec73155af7dcdc56e5cc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7265, "upload_time": "2019-01-06T19:19:13", "url": "https://files.pythonhosted.org/packages/46/99/a9083b1c47c29e6cd1428d0d3c2142febd9ca7aa74b292b9fd79aab82734/Airpixel-0.5.2.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "d6b8c5c94813521705621c4dfb35d480", "sha256": "e58041782862d7a888f3fe106bbc7a2a27a8862edd224db4f3abf1151d63fba4" }, "downloads": -1, "filename": "Airpixel-0.6.0.tar.gz", "has_sig": false, "md5_digest": "d6b8c5c94813521705621c4dfb35d480", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6425, "upload_time": "2019-03-02T12:49:01", "url": "https://files.pythonhosted.org/packages/f3/38/0c1964c8dc8e5cc8f0b2227a425144a2179c0d030daf97b530b2c462d50c/Airpixel-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "62d4a0a06e160227a44be996ec01ed22", "sha256": "5c94045657cc3e05abe8b438b976c4002b623cada4271f3ea175a6a0c1130eee" }, "downloads": -1, "filename": "Airpixel-0.6.1.tar.gz", "has_sig": false, "md5_digest": "62d4a0a06e160227a44be996ec01ed22", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6469, "upload_time": "2019-03-03T10:41:49", "url": "https://files.pythonhosted.org/packages/27/6b/50ce5a1f9fb066b01895a1cf0e70180fd907c2443aacbd7fe0671279e40a/Airpixel-0.6.1.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "bf1298b11e192f0f8581dad0b8a6572c", "sha256": "a21759ba5a923b320b2ecdc20ec2b0fb60f0060bec7a654b7498c4507cc92122" }, "downloads": -1, "filename": "Airpixel-0.6.3.tar.gz", "has_sig": false, "md5_digest": "bf1298b11e192f0f8581dad0b8a6572c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6516, "upload_time": "2019-03-07T09:32:32", "url": "https://files.pythonhosted.org/packages/09/0f/af6019b6100233514c1281025969a3430ddce61ea697338b98740558b86a/Airpixel-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "3ebd26f7dfb90d28cf77bcafc6f17bd6", "sha256": "d9c4e4e1c2bbecb9e1be818ad0dd21f472c8c218121208ad023d2b55bd25f464" }, "downloads": -1, "filename": "Airpixel-0.6.4.tar.gz", "has_sig": false, "md5_digest": "3ebd26f7dfb90d28cf77bcafc6f17bd6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6444, "upload_time": "2019-03-07T19:42:31", "url": "https://files.pythonhosted.org/packages/27/c2/6c18a1b0c83ff10a75594c36472b82c752d0cdbf415f195b4d69c8108f1a/Airpixel-0.6.4.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "4e4b51a37e2323dc804a7da45a487cb9", "sha256": "9d1eff7eb3141bfecffe4461d3b01755444c0d925db5f52e5249eabde250e27a" }, "downloads": -1, "filename": "Airpixel-0.7.0.tar.gz", "has_sig": false, "md5_digest": "4e4b51a37e2323dc804a7da45a487cb9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6474, "upload_time": "2019-04-01T18:38:07", "url": "https://files.pythonhosted.org/packages/9d/b5/6b22b88764225cc2f53d5fc1c4ac04a9486e9442e77dfaeef319ee698866/Airpixel-0.7.0.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "631728b772bb3becad16253071b6f180", "sha256": "5984a4321744c981a20f03ee3f7e7b4a1ab3eb66f05b4d38d4a215b18339b268" }, "downloads": -1, "filename": "Airpixel-0.8.tar.gz", "has_sig": false, "md5_digest": "631728b772bb3becad16253071b6f180", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6508, "upload_time": "2019-05-09T08:08:26", "url": "https://files.pythonhosted.org/packages/18/34/698a7b7b00e670ea5e3883295ead0abde422bbb3e609e09f387a2504bfb8/Airpixel-0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "631728b772bb3becad16253071b6f180", "sha256": "5984a4321744c981a20f03ee3f7e7b4a1ab3eb66f05b4d38d4a215b18339b268" }, "downloads": -1, "filename": "Airpixel-0.8.tar.gz", "has_sig": false, "md5_digest": "631728b772bb3becad16253071b6f180", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6508, "upload_time": "2019-05-09T08:08:26", "url": "https://files.pythonhosted.org/packages/18/34/698a7b7b00e670ea5e3883295ead0abde422bbb3e609e09f387a2504bfb8/Airpixel-0.8.tar.gz" } ] }