東北大学学友会準加盟団体 From The Earth の高高度ロケットFTE-06(通称:海豚)にて使用したソフトウェアです.ご自由にお使いください.このプログラムによって生じた損害について当団体は一切責任を負いません.また,各モジュールのライブラリは当団体が作成したものではないので再配布は禁止します.

Dependencies:   mbed FATFileSystem

Fork of FTE-06 by Tetsushi Amano

Committer:
mizuki_akaike
Date:
Fri Aug 25 03:42:30 2017 +0000
Revision:
57:d78497a079cf
Parent:
23:9be034083282
??????

Who changed what in which revision?

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