joseph adamu / Mbed OS CW_final_thr

Fork of CW_copy by Calvin Kalintra

Committer:
joseph_adamu
Date:
Wed Jan 10 09:50:29 2018 +0000
Revision:
1:dc648c5624b9
version for export

Who changed what in which revision?

UserRevisionLine numberNew contents of line
joseph_adamu 1:dc648c5624b9 1 /**
joseph_adamu 1:dc648c5624b9 2 * BME280 Combined humidity and pressure sensor library
joseph_adamu 1:dc648c5624b9 3 *
joseph_adamu 1:dc648c5624b9 4 * @author Toyomasa Watarai
joseph_adamu 1:dc648c5624b9 5 * @version 1.0
joseph_adamu 1:dc648c5624b9 6 * @date 06-April-2015
joseph_adamu 1:dc648c5624b9 7 *
joseph_adamu 1:dc648c5624b9 8 * Library for "BME280 temperature, humidity and pressure sensor module" from Switch Science
joseph_adamu 1:dc648c5624b9 9 * https://www.switch-science.com/catalog/2236/
joseph_adamu 1:dc648c5624b9 10 *
joseph_adamu 1:dc648c5624b9 11 * For more information about the BME280:
joseph_adamu 1:dc648c5624b9 12 * http://ae-bst.resource.bosch.com/media/products/dokumente/bme280/BST-BME280_DS001-10.pdf
joseph_adamu 1:dc648c5624b9 13 */
joseph_adamu 1:dc648c5624b9 14
joseph_adamu 1:dc648c5624b9 15 #ifndef MBED_BMP280_H
joseph_adamu 1:dc648c5624b9 16 #define MBED_BMP280_H
joseph_adamu 1:dc648c5624b9 17
joseph_adamu 1:dc648c5624b9 18 #include "mbed.h"
joseph_adamu 1:dc648c5624b9 19
joseph_adamu 1:dc648c5624b9 20 //#define _DEBUG
joseph_adamu 1:dc648c5624b9 21 // default address with SDO High 0x77
joseph_adamu 1:dc648c5624b9 22 // address with SDO LOW 0x76
joseph_adamu 1:dc648c5624b9 23 #define DEFAULT_SLAVE_ADDRESS (0x77)
joseph_adamu 1:dc648c5624b9 24
joseph_adamu 1:dc648c5624b9 25 #ifdef _DEBUG
joseph_adamu 1:dc648c5624b9 26 extern Serial pc;
joseph_adamu 1:dc648c5624b9 27 #define DEBUG_PRINT(...) pc.printf(__VA_ARGS__)
joseph_adamu 1:dc648c5624b9 28 #else
joseph_adamu 1:dc648c5624b9 29 #define DEBUG_PRINT(...)
joseph_adamu 1:dc648c5624b9 30 #endif
joseph_adamu 1:dc648c5624b9 31
joseph_adamu 1:dc648c5624b9 32
joseph_adamu 1:dc648c5624b9 33 /** BME280 class
joseph_adamu 1:dc648c5624b9 34 *
joseph_adamu 1:dc648c5624b9 35 * BME280: A library to read environmental data using Bosch BME280 device
joseph_adamu 1:dc648c5624b9 36 * Readds temperature and pressure
joseph_adamu 1:dc648c5624b9 37 *
joseph_adamu 1:dc648c5624b9 38 * BME280 is an environmental sensor
joseph_adamu 1:dc648c5624b9 39 * @endcode
joseph_adamu 1:dc648c5624b9 40 */
joseph_adamu 1:dc648c5624b9 41
joseph_adamu 1:dc648c5624b9 42 class BMP280
joseph_adamu 1:dc648c5624b9 43 {
joseph_adamu 1:dc648c5624b9 44 public:
joseph_adamu 1:dc648c5624b9 45
joseph_adamu 1:dc648c5624b9 46 /** Create a BME280 instance
joseph_adamu 1:dc648c5624b9 47 * which is connected to specified I2C pins with specified address
joseph_adamu 1:dc648c5624b9 48 *
joseph_adamu 1:dc648c5624b9 49 * @param sda I2C-bus SDA pin
joseph_adamu 1:dc648c5624b9 50 * @param scl I2C-bus SCL pin
joseph_adamu 1:dc648c5624b9 51 * @param slave_adr (option) I2C-bus address (default: 0x77)
joseph_adamu 1:dc648c5624b9 52 */
joseph_adamu 1:dc648c5624b9 53 BMP280(PinName sda, PinName sck, char slave_adr = DEFAULT_SLAVE_ADDRESS);
joseph_adamu 1:dc648c5624b9 54
joseph_adamu 1:dc648c5624b9 55 /** Create a BME280 instance
joseph_adamu 1:dc648c5624b9 56 * which is connected to specified I2C pins with specified address
joseph_adamu 1:dc648c5624b9 57 *
joseph_adamu 1:dc648c5624b9 58 * @param i2c_obj I2C object (instance)
joseph_adamu 1:dc648c5624b9 59 * @param slave_adr (option) I2C-bus address (default: 0x77)
joseph_adamu 1:dc648c5624b9 60 */
joseph_adamu 1:dc648c5624b9 61 BMP280(I2C &i2c_obj, char slave_adr = DEFAULT_SLAVE_ADDRESS);
joseph_adamu 1:dc648c5624b9 62
joseph_adamu 1:dc648c5624b9 63 /** Destructor of BME280
joseph_adamu 1:dc648c5624b9 64 */
joseph_adamu 1:dc648c5624b9 65 virtual ~BMP280();
joseph_adamu 1:dc648c5624b9 66
joseph_adamu 1:dc648c5624b9 67 /** Initializa BME280 sensor
joseph_adamu 1:dc648c5624b9 68 *
joseph_adamu 1:dc648c5624b9 69 * Configure sensor setting and read parameters for calibration
joseph_adamu 1:dc648c5624b9 70 *
joseph_adamu 1:dc648c5624b9 71 */
joseph_adamu 1:dc648c5624b9 72 void initialize(void);
joseph_adamu 1:dc648c5624b9 73
joseph_adamu 1:dc648c5624b9 74 /** Read the current temperature value (degree Celsius) from BME280 sensor
joseph_adamu 1:dc648c5624b9 75 *
joseph_adamu 1:dc648c5624b9 76 */
joseph_adamu 1:dc648c5624b9 77 float getTemperature(void);
joseph_adamu 1:dc648c5624b9 78
joseph_adamu 1:dc648c5624b9 79 /** Read the current pressure value (hectopascal)from BME280 sensor
joseph_adamu 1:dc648c5624b9 80 *
joseph_adamu 1:dc648c5624b9 81 */
joseph_adamu 1:dc648c5624b9 82 float getPressure(void);
joseph_adamu 1:dc648c5624b9 83
joseph_adamu 1:dc648c5624b9 84 /** Read the current humidity value (humidity %) from BME280 sensor
joseph_adamu 1:dc648c5624b9 85 *
joseph_adamu 1:dc648c5624b9 86 */
joseph_adamu 1:dc648c5624b9 87 // float getHumidity(void);
joseph_adamu 1:dc648c5624b9 88
joseph_adamu 1:dc648c5624b9 89 private:
joseph_adamu 1:dc648c5624b9 90
joseph_adamu 1:dc648c5624b9 91 I2C *i2c_p;
joseph_adamu 1:dc648c5624b9 92 I2C &i2c;
joseph_adamu 1:dc648c5624b9 93 char address;
joseph_adamu 1:dc648c5624b9 94 uint16_t dig_T1;
joseph_adamu 1:dc648c5624b9 95 int16_t dig_T2, dig_T3;
joseph_adamu 1:dc648c5624b9 96 uint16_t dig_P1;
joseph_adamu 1:dc648c5624b9 97 int16_t dig_P2, dig_P3, dig_P4, dig_P5, dig_P6, dig_P7, dig_P8, dig_P9;
joseph_adamu 1:dc648c5624b9 98 uint16_t dig_H1, dig_H3;
joseph_adamu 1:dc648c5624b9 99 int16_t dig_H2, dig_H4, dig_H5, dig_H6;
joseph_adamu 1:dc648c5624b9 100 int32_t t_fine;
joseph_adamu 1:dc648c5624b9 101
joseph_adamu 1:dc648c5624b9 102 };
joseph_adamu 1:dc648c5624b9 103
joseph_adamu 1:dc648c5624b9 104 #endif // MBED_BME280_H