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
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
Built Distribution
Hashes for sgp30_driver-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab1ee9d4c04bcab3a20676b05fd39fd2fca0f04baaa2193bf307d44fcbde133f |
|
MD5 | fa487ac43c785fcc938c6127fbc46c47 |
|
BLAKE2b-256 | 8a067bc2bd66365a3028d0b9c332c316f62a07ca6ed9915b6779a86b13abc957 |