mirror of
https://github.com/cmur2/python-bme680.git
synced 2025-07-06 11:11:26 +02:00
Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
50902ac08e | |||
05f80690e0 | |||
0f0be7f2c2 | |||
4ae50e2f2c | |||
7e08c2d749 | |||
bc2f729013 | |||
fed191e40e | |||
8cb0dead6b | |||
ae004aa62b | |||
1c9ba41306 | |||
40b4b63b93 |
21
LICENSE
Normal file
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2018 Pimoroni Ltd
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
39
examples/temp-offset.py
Executable file
39
examples/temp-offset.py
Executable file
@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env python
|
||||
import bme680
|
||||
|
||||
print("""Display Temperature, Pressure and Humidity with different offsets.
|
||||
""")
|
||||
|
||||
sensor = bme680.BME680()
|
||||
|
||||
# These oversampling settings can be tweaked to
|
||||
# change the balance between accuracy and noise in
|
||||
# the data.
|
||||
|
||||
sensor.set_humidity_oversample(bme680.OS_2X)
|
||||
sensor.set_pressure_oversample(bme680.OS_4X)
|
||||
sensor.set_temperature_oversample(bme680.OS_8X)
|
||||
sensor.set_filter(bme680.FILTER_SIZE_3)
|
||||
|
||||
def display_data(offset=0):
|
||||
sensor.set_temp_offset(offset)
|
||||
sensor.get_sensor_data()
|
||||
output = "{0:.2f} C, {1:.2f} hPa, {2:.3f} %RH".format(sensor.data.temperature, sensor.data.pressure, sensor.data.humidity)
|
||||
print(output)
|
||||
print("")
|
||||
|
||||
print("Initial readings")
|
||||
display_data()
|
||||
|
||||
print("SET offset 4 degrees celsius")
|
||||
display_data(4)
|
||||
|
||||
print("SET offset -1.87 degrees celsius")
|
||||
display_data(-1.87)
|
||||
|
||||
print("SET offset -100 degrees celsius")
|
||||
display_data(-100)
|
||||
|
||||
print("SET offset 0 degrees celsius")
|
||||
display_data(0)
|
||||
|
@ -1,3 +1,8 @@
|
||||
1.0.5
|
||||
-----
|
||||
|
||||
* New: set_temp_offset to calibrate temperature offset in degrees C
|
||||
|
||||
1.0.4
|
||||
-----
|
||||
|
||||
|
21
library/LICENSE.txt
Normal file
21
library/LICENSE.txt
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2018 Pimoroni Ltd
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
@ -1,5 +1,5 @@
|
||||
include CHANGELOG.txt
|
||||
include LICENSE.txt
|
||||
include README.txt
|
||||
include README.rst
|
||||
include setup.py
|
||||
include bme680.py
|
||||
recursive-include bme680 *.py
|
||||
|
68
library/README.rst
Normal file
68
library/README.rst
Normal file
@ -0,0 +1,68 @@
|
||||
BME680
|
||||
======
|
||||
|
||||
https://shop.pimoroni.com/products/bme680
|
||||
|
||||
The state-of-the-art BME680 breakout lets you measure temperature,
|
||||
pressure, humidity, and indoor air quality.
|
||||
|
||||
Installing
|
||||
----------
|
||||
|
||||
Full install (recommended):
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
We've created an easy installation script that will install all
|
||||
pre-requisites and get your BME680 up and running with minimal efforts.
|
||||
To run it, fire up Terminal which you'll find in Menu -> Accessories ->
|
||||
Terminal on your Raspberry Pi desktop, as illustrated below:
|
||||
|
||||
.. figure:: http://get.pimoroni.com/resources/github-repo-terminal.png
|
||||
:alt: Finding the terminal
|
||||
|
||||
In the new terminal window type the command exactly as it appears below
|
||||
(check for typos) and follow the on-screen instructions:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
curl https://get.pimoroni.com/bme680 | bash
|
||||
|
||||
Manual install:
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Library install for Python 3:
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code:: bash
|
||||
|
||||
sudo pip3 install bme680
|
||||
|
||||
Library install for Python 2:
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code:: bash
|
||||
|
||||
sudo pip2 install bme680
|
||||
|
||||
Development:
|
||||
~~~~~~~~~~~~
|
||||
|
||||
If you want to contribute, or like living on the edge of your seat by
|
||||
having the latest code, you should clone this repository, ``cd`` to the
|
||||
library directory, and run:
|
||||
|
||||
.. code:: bash
|
||||
|
||||
sudo python3 setup.py install
|
||||
|
||||
(or ``sudo python setup.py install`` whichever your primary Python
|
||||
environment may be)
|
||||
|
||||
In all cases you will have to enable the i2c bus.
|
||||
|
||||
Documentation & Support
|
||||
-----------------------
|
||||
|
||||
- Guides and tutorials - https://learn.pimoroni.com/bme680
|
||||
- Get help - http://forums.pimoroni.com/c/support
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@ -2,7 +2,7 @@ from .constants import *
|
||||
import math
|
||||
import time
|
||||
|
||||
__version__ = '1.0.4'
|
||||
__version__ = '1.0.5'
|
||||
|
||||
class BME680(BME680Data):
|
||||
"""BOSCH BME680
|
||||
@ -36,7 +36,7 @@ class BME680(BME680Data):
|
||||
self.set_temperature_oversample(OS_8X)
|
||||
self.set_filter(FILTER_SIZE_3)
|
||||
self.set_gas_status(ENABLE_GAS_MEAS)
|
||||
|
||||
self.set_temp_offset(0)
|
||||
self.get_sensor_data()
|
||||
|
||||
def _get_calibration_data(self):
|
||||
@ -56,6 +56,17 @@ class BME680(BME680Data):
|
||||
self._set_regs(SOFT_RESET_ADDR, SOFT_RESET_CMD)
|
||||
time.sleep(RESET_PERIOD / 1000.0)
|
||||
|
||||
def set_temp_offset(self, value):
|
||||
"""Set temperature offset in celsius
|
||||
|
||||
If set, the temperature t_fine will be increased by given value in celsius.
|
||||
:param value: Temperature offset in Celsius, eg. 4, -8, 1.25
|
||||
"""
|
||||
if value == 0:
|
||||
self.offset_temp_in_t_fine = 0
|
||||
else:
|
||||
self.offset_temp_in_t_fine = int(math.copysign((((int(abs(value) * 100)) << 8) - 128) / 5, value))
|
||||
|
||||
def set_humidity_oversample(self, value):
|
||||
"""Set humidity oversampling
|
||||
|
||||
@ -293,7 +304,7 @@ class BME680(BME680Data):
|
||||
var3 = ((var3) * (self.calibration_data.par_t3 << 4)) >> 14
|
||||
|
||||
# Save teperature data for pressure calculations
|
||||
self.calibration_data.t_fine = (var2 + var3)
|
||||
self.calibration_data.t_fine = (var2 + var3) + self.offset_temp_in_t_fine
|
||||
calc_temp = (((self.calibration_data.t_fine * 5) + 128) >> 8)
|
||||
|
||||
return calc_temp
|
||||
|
@ -39,11 +39,11 @@ classifiers = ['Development Status :: 5 - Production/Stable',
|
||||
|
||||
setup(
|
||||
name = 'bme680',
|
||||
version = '1.0.4',
|
||||
version = '1.0.5',
|
||||
author = 'Philip Howard',
|
||||
author_email = 'phil@pimoroni.com',
|
||||
description = """Python library for driving the Pimoroni BME680 Breakout""",
|
||||
long_description= open('README.txt').read() + open('CHANGELOG.txt').read(),
|
||||
long_description= open('README.rst').read() + "\n" + open('CHANGELOG.txt').read(),
|
||||
license = 'MIT',
|
||||
keywords = 'Raspberry Pi',
|
||||
url = 'http://www.pimoroni.com',
|
||||
|
@ -1,3 +1,9 @@
|
||||
bme680 (1.0.5) stable; urgency=low
|
||||
|
||||
* New: set_temp_offset to calibrate temperature offset in degrees C
|
||||
|
||||
-- Phil Howard <phil@pimoroni.com> Fri, 01 Jun 2018 00:00:00 +0000
|
||||
|
||||
bme680 (1.0.4) stable; urgency=low
|
||||
|
||||
* Fix to range_sw_err for extremely high gas readings
|
||||
|
@ -1,3 +1,9 @@
|
||||
bme680 (1.0.5) stable; urgency=low
|
||||
|
||||
* New: set_temp_offset to calibrate temperature offset in degrees C
|
||||
|
||||
-- Phil Howard <phil@pimoroni.com> Fri, 01 Jun 2018 00:00:00 +0000
|
||||
|
||||
bme680 (1.0.4) stable; urgency=low
|
||||
|
||||
* Fix to range_sw_err for extremely high gas readings
|
||||
|
Reference in New Issue
Block a user