Code Monkey home page Code Monkey logo

python-i2c-sht's Introduction

Python Driver for Sensirion I²C Temperature and Humidity Sensors

This repository contains the Python driver to communicate with Sensirion temperature and humidity sensors using the I²C interface. For details, please read the package description in README.rst.

Note that we recommend to use the new product specific drivers for SHT3x and SHT4x.

Usage

See package description in README.rst and user manual at https://sensirion.github.io/python-i2c-sht/.

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 "not (needs_device and not needs_sht3x)" # Run all tests for sht3x

The tests with the marker needs_sht3x have following requirements:

  • An SHT3x device must be connected to a SensorBridge on port 1.
    • WARNING: Some tests modify non-volatile configurations of the device, restore factory defaults etc.! Do not run the tests on a device which you don't want to get modified!
  • 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-sht's People

Contributors

dstraessler avatar leoniefierz avatar psachs avatar tiagopossato avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

python-i2c-sht's Issues

Unexpected behavior

Firstly, new to programming, github and all of this, so please correct me if this is not the right channel for this.

Ordered in some SHTC3 sensors to replace my BME280 of which I don't trust the RH data. Using this on old spare Raspberry PIPI and i2cdetect -y 1 returns an address which gives me the impression it's recognized. Running the script @kratsg shared here however gives me: I2C transceive failed: [Errno 121] Remote I/O error
Is there some magic flag I missed, or just ordered from a wrong seller on the big bad internet?
Kind regards,
Remco

pi@serialsds:~ $ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: 70 -- -- -- -- -- -- --                         
pi@serialsds:~ $ python3 sht.py 
Traceback (most recent call last):
  File "sht.py", line 5, in <module>
    sht3x.single_shot_measurement()
  File "/home/pi/.local/lib/python3.7/site-packages/sensirion_i2c_sht/sht3x/device.py", line 48, in single_shot_measurement
    result = self.execute(Sht3xI2cCmdMeasHighRes())
  File "/home/pi/.local/lib/python3.7/site-packages/sensirion_i2c_driver/device.py", line 61, in execute
    return self._connection.execute(self._slave_address, command)
  File "/home/pi/.local/lib/python3.7/site-packages/sensirion_i2c_driver/connection.py", line 116, in execute
    return self._interpret_response(command, response)
  File "/home/pi/.local/lib/python3.7/site-packages/sensirion_i2c_driver/connection.py", line 205, in _interpret_response
    raise response
sensirion_i2c_driver.errors.I2cTransceiveError: I2C transceive failed: [Errno 121] Remote I/O error
pi@serialsds:~ $ 

Document how to use sht3x driver for SHT8x

As it seems like this repository is somewhat maintained (at least recent changes) - I was wondering if there were plans to implement for SHT85 (or newer SHT devices)?

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.