Skip to main content

Python driver for the Sensirion SGP30 multi gas sensor

Project description

sgp30-driver

Easy-to-use python driver for the Sensirion SGP30 multi gas sensor

GitHub Workflow Status PyPI PyPI - License PyPI - Downloads

Installation

The package is available on PyPI. Installation is can be done with your favourite package manager. For example:

pip install sgp30-driver

Usage

In order to initialise the device we need an open SMBus object. Depending on the machine that you are running on you may need to provide another bus number or path:

from sgp30 import SGP30
from smbus2 import SMBus


with SMBus(1) as bus:
    device = SGP30(bus=bus)

The address of the SGP30 defaults to 0x58. This is the (fixed) address of the SGP30 devices, so you should never have to change it. If you do want to change it, you can provide it like SGP30(bus=bus, address=0x59).

Initialisation

After every restart the SGP30 has to be initialised:

device.initialise()

This process can take up to 20 seconds.

This process can be sped up by passing recent values of the baseline compensation algorithm: store the result of device.baseline somewhere in non-volatile memory, and restore it with:

device.initialise(baseline)

Measuring

After initialisation the device is ready for taking measurements. The measure() method returns an SGP30Measurement object which has two attributes: equivalent_co2 which represents the CO2 concentration in ppm (parts-per-million) and tvoc which represents the TVOC (total volatile organic compounds) in ppb (parts-per-billion).

measurement = device.measure()
print(f"{measurement.equivalent_co2} ppm CO2, {measurement.tvoc} ppb TVOC")

In order to ensure the proper working of the baseline compensation algorithm one should call the measure() method in regular intervals of 1 second.

Humidity compensation

The SGP30 has on-chip humidity compensation. In order to enable the compensation, you will need to get a humidity measurement from another sensor, and then set the humidity using set_humidity():

device.set_humidity(15.2)

The accepted humidity value is the absolute humidity in g/m3.

Alternatively, if only the relative humidity is available:

device.set_relative_humidity(
    humidity=0.5,  # 50 %RH
    temperature=20,  # 20°C
)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sgp30-driver-0.2.2.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

sgp30_driver-0.2.2-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file sgp30-driver-0.2.2.tar.gz.

File metadata

  • Download URL: sgp30-driver-0.2.2.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for sgp30-driver-0.2.2.tar.gz
Algorithm Hash digest
SHA256 7becd5b1d43c3f2a02cd5b74e15693d24505dfacd1970c4bb5f5de65c4304677
MD5 753c3ee16b3148ff89773d2e3f2bd624
BLAKE2b-256 28589fffcdad5c88335fbd888e72acc59cbbf0283972d99f32b1afb0085d421e

See more details on using hashes here.

File details

Details for the file sgp30_driver-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: sgp30_driver-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for sgp30_driver-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 02b50048d4ac8de8ef3006372aadcf468f4cae1fa90a2242e7a3a7742f5ed422
MD5 e3972dcc08e28bf789e6256f8dfe83b1
BLAKE2b-256 bbdac451a1d633adcd1e3bd8395e5f31e90837ad88ab43fae5d33368a066b8f5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page