Coder Social home page Coder Social logo

sensirion / python-i2c-sgp4x Goto Github PK

View Code? Open in Web Editor NEW
2.0 5.0 0.0 57 KB

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

License: BSD 3-Clause "New" or "Revised" License

Python 100.00%
python driver sensor sensirion sgp41 sgp4x nox voc sgp

python-i2c-sgp4x's Introduction

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.

python-i2c-sgp4x's People

Contributors

leoniefierz avatar mbjoern avatar psachs avatar sdmueller avatar sensirion-bot avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

python-i2c-sgp4x's Issues

Computing VOC Index with Python

After reading through the provided example for SGP40 and the API documentation, I do not know how to extract the VOC Index value. Everything I could find in the documentation relates to the raw VOC number, not the computed index scale of 1 - 500. Can you provide an example of how to extract the VOC index value using Python? The raw value alone is not meaningful to an end user. Thanks!

pypi package not found (sensirion-i2c-sgp4x)

On the user manual you provided:

https://sensirion.github.io/python-i2c-sgp4x/

The installation command is this:
pip install sensirion-i2c-sgp4x

This command is not working for me. I am getting an error saying that the following URL cannot be found:

https://pypi.org/simple/sensirion-i2c-sgp4x/

When I search on pypi.org for the sensirion-i2c-sgp4x package, I cannot find it. Can you point me to the package link on pypi.org so that I can install the driver?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.