{ "info": { "author": "Connor Kneebone", "author_email": "connor@sfxrescue.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4" ], "description": "SGP30\n=========\n\nLibrary to read eCO2 and TVOC from the [SGP30 sensor](https://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/9_Gas_Sensors/Sensirion_Gas_Sensors_SGP30_Datasheet_EN.pdf). Based on the _smbus2_ i2c library for ease of use.\n\nIt should be compatible with both Python 2 and 3\n\nQuick usage-example:\n--------------------\n\n from smbus2 import SMBusWrapper\n from sgp30 import SGP30\n import time\n \n with SMBusWrapper(1) as bus:\n sgp = SGP30(bus, baseline_filename=BASELINE_FILENAME+\".TESTING\")\n print(\"resetting all i2c devices\")\n sgp.i2c_general_call()\n print(sgp.read_features())\n print(sgp.read_serial())\n sgp.init_sgp()\n for i in range(300):\n\t\t\tprint(sgp.read_measurements())\n\t\t\ttime.sleep(0.1)\n\t\tsgp.store_baseline()\n bus.close()\n\nCurrent design considerations:\n------------------------------\nThe class strives to to be light-weight and portable. It is currently a bit to tightly bound to the smbus2 class. In most cases I try to ease of readability rather than purity or speed.\n\nFeatures that are known to be missing (listing in rough order of importance):\n-----------------------------------------------------------------------------\n* The handing of baseline values is not that great, it should probably be up to the end user to save and restore them as needed.\n* Write doc-strings for all or at least most methods.\n* reading raw-values.\n* A more \"driver like\" class that takes care of all chip identification, polling at regular intervals, restoring baseline and so on.\n* Run real hardware tests under Python3\n\nHardware notices:\n-----------------\nIf you have the Adafruit board with built in level shifters and voltage regulator it is should work if you just plug in [SDA to pin 3, SCL to pin 5, VCC to pin 17 and GND to pin 20](https://pinout.xyz/pinout/i2c). You should then be able to find the SGP30 an address 0x58 using `i2cdetect -y 1`. If you get an error message you probably need to enable i2c in the kernel using [raspi-config and reboot](https://learn.sparkfun.com/tutorials/raspberry-pi-spi-and-i2c-tutorial>)\n\n\nFeel free to contact me with bugs, questions or issues.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Conr86/PySGP30", "keywords": "sgp30 i2c smbus smbus2", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "PySGP30", "package_url": "https://pypi.org/project/PySGP30/", "platform": "", "project_url": "https://pypi.org/project/PySGP30/", "project_urls": { "Homepage": "https://github.com/Conr86/PySGP30" }, "release_url": "https://pypi.org/project/PySGP30/0.1.8/", "requires_dist": null, "requires_python": "", "summary": "Library for reading data from the Sensirion SGP30", "version": "0.1.8" }, "last_serial": 5839276, "releases": { "0.1.6": [ { "comment_text": "", "digests": { "md5": "380e2b769b158f02f738b83b83489331", "sha256": "6fb5783c6d841cc9b01b6c0a0f7e88136f2cc735b9dd17f4094e602195cc2188" }, "downloads": -1, "filename": "PySGP30-0.1.6.tar.gz", "has_sig": false, "md5_digest": "380e2b769b158f02f738b83b83489331", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4041, "upload_time": "2019-09-17T02:23:02", "url": "https://files.pythonhosted.org/packages/48/68/4d0536792e56e10d003f4c5778996b95ffeb039b1551a47d50da8a44e2f5/PySGP30-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "cf26798cee21dd7dc6bcd2fabcd6da08", "sha256": "f1d9c90bfe5629d4cc5d808b9b84d9dcf301d01228e0b0ee0f7a30ef1b085d1b" }, "downloads": -1, "filename": "PySGP30-0.1.7.tar.gz", "has_sig": false, "md5_digest": "cf26798cee21dd7dc6bcd2fabcd6da08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5291, "upload_time": "2019-09-17T03:23:29", "url": "https://files.pythonhosted.org/packages/4a/1a/97b18af4231eea3da5a6b52f53870df4ae15417cce45c7e662d1e366996f/PySGP30-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "80ba00c4ac714964f81c90fe831df911", "sha256": "239439e96f9055965bbd26fc3e836c19024459205f3f29a6fa5088e2aeec47df" }, "downloads": -1, "filename": "PySGP30-0.1.8.tar.gz", "has_sig": false, "md5_digest": "80ba00c4ac714964f81c90fe831df911", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5288, "upload_time": "2019-09-17T03:26:02", "url": "https://files.pythonhosted.org/packages/68/97/4a8d01a65b282f2aca1cc7ae12d43ebf1504bcf217ca2134f64b7593e2af/PySGP30-0.1.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "80ba00c4ac714964f81c90fe831df911", "sha256": "239439e96f9055965bbd26fc3e836c19024459205f3f29a6fa5088e2aeec47df" }, "downloads": -1, "filename": "PySGP30-0.1.8.tar.gz", "has_sig": false, "md5_digest": "80ba00c4ac714964f81c90fe831df911", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5288, "upload_time": "2019-09-17T03:26:02", "url": "https://files.pythonhosted.org/packages/68/97/4a8d01a65b282f2aca1cc7ae12d43ebf1504bcf217ca2134f64b7593e2af/PySGP30-0.1.8.tar.gz" } ] }