Overview
The Bosch BME680 is a multi-parameter environmental sensor that measures temperature, humidity, barometric pressure, and gas resistance in a single package. For biodiversity monitoring, this combination provides a rich environmental profile — capturing the microclimate conditions that govern species distribution, pollinator activity, and phenological timing.
sensor-bme680 is a C implementation that reads BME680 sensors via I2C on the Raspberry Pi. It supports multiple sensors on the same bus and outputs JSON compatible with the WildlifeSystems sensor-control framework.
Measurements
- Temperature — degrees Celsius
- Humidity — relative humidity percentage
- Pressure — barometric pressure in hPa (useful for detecting weather fronts that trigger animal movement)
- Gas resistance — in Ohms (an indicator of volatile organic compounds and air quality)
Installation
Via the WildlifeSystems APT repository:
sudo apt update
sudo apt install sensor-bme680Or build from source:
make
sudo make installUsage
sensor-bme680 # read all measurements
sensor-bme680 internal # internal sensors only
sensor-bme680 external # external sensors only
sensor-bme680 list # list available measurement typesConfiguration
Configure sensors in /etc/ws/sensors/bme680.json:
[
{
"address": "0x76",
"internal": false
}
]- address — I2C address (0x76 or 0x77)
- internal — whether the sensor is inside the enclosure
- sensor_id — optional custom identifier
Example Output
[
{"sensor":"bme680_temperature","measures":"temperature","unit":"Celsius","value":23.5,"internal":false},
{"sensor":"bme680_humidity","measures":"humidity","unit":"percentage","value":45.0,"internal":false},
{"sensor":"bme680_pressure","measures":"pressure","unit":"hPa","value":1013.25,"internal":false},
{"sensor":"bme680_gas","measures":"resistance","unit":"Ohms","value":50000.0,"internal":false}
]