BME280  v1.0.4
Arduino Library for Bosch BME280 Temperature, Humidity, and Pressure
Arduino Library Header to access the Bosch BME280 sensor

Description

Class definition header for the Bosch BME280 temperature / humidity / pressure sensor. The sensor is described at https://www.bosch-sensortec.com/bst/products/all_products/bme280 and the datasheet is available from Bosch at https://ae-bst.resource.bosch.com/media/_tech/media/datasheets/BST-BME280_DS001-11.pdf

The BME280 can use either SPI or I2C for communications. The initial library version 1.0.0 defines only I2C while subsequent versions also allow SPI communications

The most recent version of the library is available at https://github.com/Zanduino/BME280 and extensive documentation of the library as well as example programs are described in the project's wiki pages located at https://github.com/Zanduino/BME280/wiki.

The BME280 is a very small package so it is unlikely for an Arduino hobbyist to play around with directly, the hardware used to develop this library is a breakout board from AdaFruit which is well-documented at https://learn.adafruit.com/adafruit-bme280-humidity-barometric-pressure-temperature-sensor-breakout.

doxygen configuration

This library is built with the standard "Doxyfile", which is located at https://github.com/Zanduino/Common/blob/main/Doxygen. As described on that page, there are only 5 environment variables used, and these are set in the project's actions file, located at https://github.com/Zanduino/BME280/blob/master/.github/workflows/ci-doxygen.yml Edit this file and set the 5 variables - PRETTYNAME, PROJECT_NAME, PROJECT_NUMBER, PROJECT_BRIEF and PROJECT_LOGO so that these values are used in the doxygen documentation. The local copy of the doxyfile should be in the project's root directory in order to do local doxygen testing, but the file is ignored on upload to GitHub.

clang-format

Part of the GitHub actions for CI is running every source file through "clang-format" to ensure that coding formatting is done the same for all files. The configuration file ".clang-format" is located at https://github.com/Zanduino/Common/tree/main/clang-format and this is used for CI tests when pushing to GitHub. The local file, if present in the root directory, is ignored when committing and uploading.

GNU General Public License v3.0

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Author

Written by Arnd Arnd@.nosp@m.Zand.nosp@m.uino..nosp@m.Com at https://www.github.com/SV-Zanshin

Changelog

VersionDate Developer Comments
1.0.5 2019-01-31 wolfbert Issue #9 - Corrected IIR mask bits
1.0.3 2019-01-31 SV-Zanshin Issue #7 - Corrected documentation to Doxygen style
1.0.2 2018-07-22 SV-Zanshin Corrected I2C Datatypes
1.0.2 2018-06-30 SV-Zanshin Issue #6 - Allow faster I2C bus speeds
1.0.2a 2017-08-13 SV-Zanshin Removed extraneous I2C wait loop according to bug report #2
1.0.2 2017-08-04 SV-Zanshin Combined iirFilter() overloaded functions
1.0.1 2017-08-03 SV-Zanshin All read/writes now use getData() and putData() templates in this header. Changed begin() method for I2C to search for first instance of BME280. Added hardware and software SPI functionality and tested it
1.0.0 2017-08-03 SV-Zanshin Initial version with just I2C connectivity
1.0.0b 2017-07-31 SV-Zanshin Continued development
1.0.0a 2017-07-30 SV-Zanshin Started coding