Skip to content

The SGP40 is Sensirion’s new digital VOC (volatile organic compounds) sensor designed for easy integration into air purifiers or demand-controlled ventilation.

License

Notifications You must be signed in to change notification settings

Sensirion/python-i2c-sgp4x

Repository files navigation

Python Driver for Sensirion I²C VOC and NOx Sensor

This repository contains the Python driver to communicate with Sensirion VOC sensor SGP40 and VOC/NOx sensor SGP41 using the I²C interface. For details, please read the user manual.

Supported Sensors

  • SGP40
  • SGP41

Usage

See user manual at https://sensirion.github.io/python-i2c-sgp4x/.

SGP41 Conditioning

After each restart of the SGP41 sensor or when the hotplates have been switched off, the conditioning command must be called from idle mode. The conditioning heats the hotplate of the NOx pixel to a different temperature compared to the measurement mode enabling a faster switch-on thereafter.

It is recommended to execute the conditioning for 10s, but 10s must not be exceeded to avoid damage to the sensing material.

Development

We develop and test this driver using our company internal tools (version control, continuous integration, code review etc.) and automatically synchronize the master branch with GitHub. But this doesn't mean that we don't respond to issues or don't accept pull requests on GitHub. In fact, you're very welcome to open issues or create pull requests :)

Check coding style

The coding style can be checked with flake8:

pip install -e .[test]  # Install requirements
flake8                  # Run style check

In addition, we check the formatting of files with editorconfig-checker:

pip install editorconfig-checker==2.0.3   # Install requirements
editorconfig-checker                      # Run check

Run tests

Unit tests can be run with pytest:

pip install -e .[test]                       # Install requirements
pytest -m "not needs_device"                 # Run tests without hardware
pytest                                       # Run all tests
pytest -m "needs_sgp40 or not needs_device"  # Run all tests for sgp40
pytest -m "needs_sgp41 or not needs_device"  # Run all tests for sgp41

The tests with the marker needs_sgp40 or needs_sgp41 have following requirements:

  • An SGP40 resp. SGP41 device must be connected to a SensorBridge on port 1.
  • Pass the serial port where the SensorBridge is connected with --serial-port, e.g. pytest --serial-port=COM7
  • The SensorBridge must have default settings (baudrate 460800, address 0)

Build documentation

The documentation can be built with Sphinx:

python setup.py install                        # Install package
pip install -r docs/requirements.txt           # Install requirements
sphinx-versioning build docs docs/_build/html  # Build documentation

License

See LICENSE.

About

The SGP40 is Sensirion’s new digital VOC (volatile organic compounds) sensor designed for easy integration into air purifiers or demand-controlled ventilation.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages