weather sensor
weather.h@0:bd4cdd24731b, 2016-07-01 (annotated)
- Committer:
- brdarji
- Date:
- Fri Jul 01 10:35:05 2016 +0000
- Revision:
- 0:bd4cdd24731b
weather sensor;
Who changed what in which revision?
User | Revision | Line number | New 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 | }; |