Dependencies¶
This driver depends on:
Please ensure all dependencies are available on the CircuitPython filesystem. This is easily achieved by downloading the Adafruit library and driver bundle.
Installing from PyPI¶
On supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally from PyPI. To install for current user:
pip3 install adafruit-circuitpython-bme680
To install system-wide (this may be required in some cases):
sudo pip3 install adafruit-circuitpython-bme680
To install in a virtual environment in your current project:
mkdir project-name && cd project-name
python3 -m venv .env
source .env/bin/activate
pip3 install adafruit-circuitpython-bme680
Usage Example¶
from busio import I2C
import adafruit_bme680
import time
import board
# Create library object using our Bus I2C port
i2c = I2C(board.SCL, board.SDA)
bme680 = adafruit_bme680.Adafruit_BME680_I2C(i2c)
# change this to match the location's pressure (hPa) at sea level
bme680.sea_level_pressure = 1013.25
while True:
print("\nTemperature: %0.1f C" % bme680.temperature)
print("Gas: %d ohm" % bme680.gas)
print("Humidity: %0.1f %%" % bme680.humidity)
print("Pressure: %0.3f hPa" % bme680.pressure)
print("Altitude = %0.2f meters" % bme680.altitude)
time.sleep(2)
Contributing¶
Contributions are welcome! Please read our Code of Conduct before contributing to help this project stay welcoming.
Building locally¶
To build this library locally you’ll need to install the circuitpython-build-tools package.
python3 -m venv .env
source .env/bin/activate
pip install circuitpython-build-tools
Once installed, make sure you are in the virtual environment:
source .env/bin/activate
Then run the build:
circuitpython-build-bundles --filename_prefix adafruit-circuitpython-bme680 --library_location .
Sphinx documentation¶
Sphinx is used to build the documentation based on rST files and comments in the code. First, install dependencies (feel free to reuse the virtual environment from above):
python3 -m venv .env
source .env/bin/activate
pip install Sphinx sphinx-rtd-theme
Now, once you have the virtual environment activated:
cd docs
sphinx-build -E -W -b html . _build/html
This will output the documentation to docs/_build/html
. Open the index.html in your browser to
view them. It will also (due to -W) error out on any warning like Travis will. This is a good way to
locally verify it will pass.
Table of Contents¶
Simple test¶
Ensure your device works with this simple test.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import time
import board
from busio import I2C
import adafruit_bme680
# Create library object using our Bus I2C port
i2c = I2C(board.SCL, board.SDA)
bme680 = adafruit_bme680.Adafruit_BME680_I2C(i2c, debug=False)
# change this to match the location's pressure (hPa) at sea level
bme680.sea_level_pressure = 1013.25
while True:
print("\nTemperature: %0.1f C" % bme680.temperature)
print("Gas: %d ohm" % bme680.gas)
print("Humidity: %0.1f %%" % bme680.humidity)
print("Pressure: %0.3f hPa" % bme680.pressure)
print("Altitude = %0.2f meters" % bme680.altitude)
time.sleep(1)
|
adafruit_bme680
¶
CircuitPython library for BME680 temperature, pressure and humidity sensor.
- Author(s): Limor Fried
Implementation Notes¶
Hardware:
Software and Dependencies:
- Adafruit CircuitPython firmware for the supported boards: https://github.com/adafruit/circuitpython/releases
- Adafruit’s Bus Device library: https://github.com/adafruit/Adafruit_CircuitPython_BusDevice
-
class
adafruit_bme680.
Adafruit_BME680
(*, refresh_rate=10)[source]¶ Driver from BME680 air quality sensor
Parameters: refresh_rate (int) – Maximum number of readings per second. Faster property reads will be from the previous reading. -
altitude
¶ The altitude based on current
pressure
vs the sea level pressure (sea_level_pressure
) - which you must enter ahead of time)
-
filter_size
¶ The filter size for the built in IIR filter
-
gas
¶ The gas resistance in ohms
-
humidity
¶ The relative humidity in RH %
-
humidity_oversample
¶ The oversampling for humidity sensor
-
pressure
¶ The barometric pressure in hectoPascals
-
pressure_oversample
¶ The oversampling for pressure sensor
-
sea_level_pressure
= None¶ Pressure in hectoPascals at sea level. Used to calibrate
altitude
.
-
temperature
¶ The compensated temperature in degrees celsius.
-
temperature_oversample
¶ The oversampling for temperature sensor
-
-
class
adafruit_bme680.
Adafruit_BME680_I2C
(i2c, address=119, debug=False, *, refresh_rate=10)[source]¶ Driver for I2C connected BME680.
Parameters:
-
class
adafruit_bme680.
Adafruit_BME680_SPI
(spi, cs, baudrate=100000, debug=False, *, refresh_rate=10)[source]¶ Driver for SPI connected BME680.
Parameters: - spi (busio.SPI) – SPI device
- cs (digitalio.DigitalInOut) – Chip Select
- debug (bool) – Print debug statements when True.
- baudrate (int) – Clock rate, default is 100000
- refresh_rate (int) – Maximum number of readings per second. Faster property reads will be from the previous reading.