a

Dependencies:   HCSR04_2 MPU6050_2 mbed SDFileSystem3

Fork of AutoFlight2018_Control by 航空研究会

Committer:
TUATBM
Date:
Fri Sep 07 03:42:49 2018 +0000
Revision:
1:09a162f4f6ce
Parent:
0:813f5cd20cf1
a

Who changed what in which revision?

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