weather sensor

Committer:
brdarji
Date:
Fri Jul 01 10:35:05 2016 +0000
Revision:
0:bd4cdd24731b
weather sensor;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
brdarji 0:bd4cdd24731b 1 #include "mbed.h"
brdarji 0:bd4cdd24731b 2
brdarji 0:bd4cdd24731b 3 //#define _DEBUG
brdarji 0:bd4cdd24731b 4 #define DEFAULT_SLAVE_ADDRESS (0x76 << 1)
brdarji 0:bd4cdd24731b 5
brdarji 0:bd4cdd24731b 6 #ifdef _DEBUG
brdarji 0:bd4cdd24731b 7 extern Serial pc;
brdarji 0:bd4cdd24731b 8 #define DEBUG_PRINT(...) pc.printf(__VA_ARGS__)
brdarji 0:bd4cdd24731b 9 #else
brdarji 0:bd4cdd24731b 10 #define DEBUG_PRINT(...)
brdarji 0:bd4cdd24731b 11 #endif
brdarji 0:bd4cdd24731b 12
brdarji 0:bd4cdd24731b 13
brdarji 0:bd4cdd24731b 14 /** BME280 class
brdarji 0:bd4cdd24731b 15 *
brdarji 0:bd4cdd24731b 16 * BME280: A library to correct environmental data using Boshe BME280 device
brdarji 0:bd4cdd24731b 17 *
brdarji 0:bd4cdd24731b 18 * BME280 is an environmental sensor
brdarji 0:bd4cdd24731b 19 * @endcode
brdarji 0:bd4cdd24731b 20 */
brdarji 0:bd4cdd24731b 21
brdarji 0:bd4cdd24731b 22 class BME280
brdarji 0:bd4cdd24731b 23 {
brdarji 0:bd4cdd24731b 24 public:
brdarji 0:bd4cdd24731b 25
brdarji 0:bd4cdd24731b 26 /** Create a BME280 instance
brdarji 0:bd4cdd24731b 27 * which is connected to specified I2C pins with specified address
brdarji 0:bd4cdd24731b 28 *
brdarji 0:bd4cdd24731b 29 * @param sda I2C-bus SDA pin
brdarji 0:bd4cdd24731b 30 * @param scl I2C-bus SCL pin
brdarji 0:bd4cdd24731b 31 * @param slave_adr (option) I2C-bus address (default: 0x76)
brdarji 0:bd4cdd24731b 32 */
brdarji 0:bd4cdd24731b 33 BME280(PinName sda, PinName sck, char slave_adr = DEFAULT_SLAVE_ADDRESS);
brdarji 0:bd4cdd24731b 34
brdarji 0:bd4cdd24731b 35 /** Create a BME280 instance
brdarji 0:bd4cdd24731b 36 * which is connected to specified I2C pins with specified address
brdarji 0:bd4cdd24731b 37 *
brdarji 0:bd4cdd24731b 38 * @param i2c_obj I2C object (instance)
brdarji 0:bd4cdd24731b 39 * @param slave_adr (option) I2C-bus address (default: 0x76)
brdarji 0:bd4cdd24731b 40 */
brdarji 0:bd4cdd24731b 41 BME280(I2C &i2c_obj, char slave_adr = DEFAULT_SLAVE_ADDRESS);
brdarji 0:bd4cdd24731b 42
brdarji 0:bd4cdd24731b 43 /** Destructor of BME280
brdarji 0:bd4cdd24731b 44 */
brdarji 0:bd4cdd24731b 45 virtual ~BME280();
brdarji 0:bd4cdd24731b 46
brdarji 0:bd4cdd24731b 47 /** Initializa BME280 sensor
brdarji 0:bd4cdd24731b 48 *
brdarji 0:bd4cdd24731b 49 * Configure sensor setting and read parameters for calibration
brdarji 0:bd4cdd24731b 50 *
brdarji 0:bd4cdd24731b 51 */
brdarji 0:bd4cdd24731b 52 void initialize(void);
brdarji 0:bd4cdd24731b 53
brdarji 0:bd4cdd24731b 54 /** Read the current temperature value (degree Celsius) from BME280 sensor
brdarji 0:bd4cdd24731b 55 *
brdarji 0:bd4cdd24731b 56 */
brdarji 0:bd4cdd24731b 57 float getTemperature(void);
brdarji 0:bd4cdd24731b 58
brdarji 0:bd4cdd24731b 59 /** Read the current pressure value (hectopascal)from BME280 sensor
brdarji 0:bd4cdd24731b 60 *
brdarji 0:bd4cdd24731b 61 */
brdarji 0:bd4cdd24731b 62 float getPressure(void);
brdarji 0:bd4cdd24731b 63
brdarji 0:bd4cdd24731b 64 /** Read the current humidity value (humidity %) from BME280 sensor
brdarji 0:bd4cdd24731b 65 *
brdarji 0:bd4cdd24731b 66 */
brdarji 0:bd4cdd24731b 67 float getHumidity(void);
brdarji 0:bd4cdd24731b 68
brdarji 0:bd4cdd24731b 69 private:
brdarji 0:bd4cdd24731b 70
brdarji 0:bd4cdd24731b 71 I2C *i2c_p;
brdarji 0:bd4cdd24731b 72 I2C &i2c;
brdarji 0:bd4cdd24731b 73 char address;
brdarji 0:bd4cdd24731b 74 uint16_t dig_T1;
brdarji 0:bd4cdd24731b 75 int16_t dig_T2, dig_T3;
brdarji 0:bd4cdd24731b 76 uint16_t dig_P1;
brdarji 0:bd4cdd24731b 77 int16_t dig_P2, dig_P3, dig_P4, dig_P5, dig_P6, dig_P7, dig_P8, dig_P9;
brdarji 0:bd4cdd24731b 78 uint16_t dig_H1, dig_H3;
brdarji 0:bd4cdd24731b 79 int16_t dig_H2, dig_H4, dig_H5, dig_H6;
brdarji 0:bd4cdd24731b 80 int32_t t_fine;
brdarji 0:bd4cdd24731b 81
brdarji 0:bd4cdd24731b 82 };