testing

Dependencies:   ESP8266_Test_WIFI mbed-src

Committer:
hank51017
Date:
Tue Jun 28 11:03:39 2016 +0000
Revision:
3:f0f39d7c1c16
Parent:
1:6f0b395c052d
for yotta;

Who changed what in which revision?

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