Source code for bme680

import sys_bme680
import ucollections

# Import old module for compatibility
from sys_bme680 import *  # noqa

Bme680Data = ucollections.namedtuple(
    "Bme680Data", ["temperature", "humidity", "pressure", "gas_resistance"]
)


[docs]class Bme680: """ BME680 4-in-1 environmental sensor. **Example**: .. code-block:: python import bme680 environment = bme680.Bme680() print("Current temperature: {:4.1f} °C".format(environment.temperature())) This class can also be used as a context-manager which will automatically deactivate the sensor on exit: .. code-block:: python import bme680 with bme680.Bme680() as environment: print("H: {:4.1f}%".format(environment.humidity())) # Sensor is off again, saving power .. versionadded:: 1.10 """ def __init__(self): sys_bme680.init() def __enter__(self): return self def __exit__(self, *args): self.close()
[docs] def get_data(self): """ Get all sensor data at once. :py:meth:`~bme680.Bme680.get_data` returns a namedtuple with the following fields: - ``temperature``: Temperature in *°C* - ``humidity``: Relative humidity - ``pressure``: Barometric pressure in *hPa* - ``gas_resistance``: Gas resistance in *Ω* **Example**: .. code-block:: python import bme680 with bme680.Bme680() as environment: data = environment.get_data() print("T: {}".format(data.temperature)) print("H: {}".format(data.humidity)) """ return Bme680Data(*sys_bme680.get_data())
[docs] def close(self): """ Stop/deinit the BME680. If you no longer need measurements, you should call this function to save power. """ sys_bme680.deinit()
[docs] def temperature(self): """ Measure current temperature in *°C*. **Example**: .. code-block:: python environment = bme680.Bme680() print(str(environment.temperature())) """ return self.get_data().temperature
[docs] def humidity(self): """ Measure current relative humidity. **Example**: .. code-block:: python environment = bme680.Bme680() print(str(environment.humidity())) """ return self.get_data().humidity
[docs] def pressure(self): """ Measure current barometric pressure in *hPa*. **Example**: .. code-block:: python environment = bme680.Bme680() print(str(environment.pressure())) """ return self.get_data().pressure
[docs] def gas_resistance(self): """ Measure current gas resistance in *Ω*. **Example**: .. code-block:: python environment = bme680.Bme680() print(str(environment.gas_resistance())) """ return self.get_data().gas_resistance