Motoo Tanaka
/
test_BME280
test program for my BME280 library. Both I2C and SPI mode have been tested.
main.cpp@1:21463f9ca08d, 2017-05-10 (annotated)
- Committer:
- Rhyme
- Date:
- Wed May 10 09:12:28 2017 +0000
- Revision:
- 1:21463f9ca08d
- Parent:
- 0:7e8c784a0df1
First working version, both SPI and I2C have been tested
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Rhyme | 0:7e8c784a0df1 | 1 | #include "mbed.h" |
Rhyme | 0:7e8c784a0df1 | 2 | #include "MSS.h" |
Rhyme | 0:7e8c784a0df1 | 3 | #include "BME280.h" |
Rhyme | 0:7e8c784a0df1 | 4 | |
Rhyme | 1:21463f9ca08d | 5 | #define SPI_IF 1 |
Rhyme | 1:21463f9ca08d | 6 | #define I2C_IF 2 |
Rhyme | 1:21463f9ca08d | 7 | |
Rhyme | 0:7e8c784a0df1 | 8 | #define BME280_I2C_ADDRESS 0x76 |
Rhyme | 0:7e8c784a0df1 | 9 | |
Rhyme | 0:7e8c784a0df1 | 10 | DigitalOut csb(PIN_CS0, 1) ; |
Rhyme | 0:7e8c784a0df1 | 11 | |
Rhyme | 0:7e8c784a0df1 | 12 | int main() { |
Rhyme | 0:7e8c784a0df1 | 13 | float temp, hum, pres ; |
Rhyme | 1:21463f9ca08d | 14 | BME280 *bme280 = 0 ; |
Rhyme | 1:21463f9ca08d | 15 | int used_if = I2C_IF ; /* SPI_IF for SPI */ |
Rhyme | 1:21463f9ca08d | 16 | |
Rhyme | 1:21463f9ca08d | 17 | if (used_if == I2C_IF) { |
Rhyme | 1:21463f9ca08d | 18 | bme280 = new BME280(PIN_SDA, PIN_SCL, BME280_I2C_ADDRESS) ; |
Rhyme | 1:21463f9ca08d | 19 | } else if (used_if == SPI_IF) { |
Rhyme | 1:21463f9ca08d | 20 | bme280 = new BME280(PIN_SCK, PIN_MISO, PIN_MOSI, PIN_CS0) ; |
Rhyme | 1:21463f9ca08d | 21 | } else { |
Rhyme | 1:21463f9ca08d | 22 | printf("Unsupported IF for BME280 [%d]\n", used_if) ; |
Rhyme | 1:21463f9ca08d | 23 | exit(EXIT_FAILURE) ; |
Rhyme | 1:21463f9ca08d | 24 | } |
Rhyme | 0:7e8c784a0df1 | 25 | |
Rhyme | 0:7e8c784a0df1 | 26 | bme280->reset() ; |
Rhyme | 0:7e8c784a0df1 | 27 | wait(2) ; |
Rhyme | 0:7e8c784a0df1 | 28 | bme280->init() ; |
Rhyme | 0:7e8c784a0df1 | 29 | wait(1) ; |
Rhyme | 1:21463f9ca08d | 30 | printf("\n=== test BME280 for %s (%s) ===\n", BOARD_NAME, __DATE__) ; |
Rhyme | 1:21463f9ca08d | 31 | if (used_if == I2C_IF) { |
Rhyme | 1:21463f9ca08d | 32 | printf("IF = I2C, ") ; |
Rhyme | 1:21463f9ca08d | 33 | } else if (used_if == SPI_IF) { |
Rhyme | 1:21463f9ca08d | 34 | printf("IF = SPI, ") ; |
Rhyme | 1:21463f9ca08d | 35 | } |
Rhyme | 0:7e8c784a0df1 | 36 | printf("ID = 0x%02X (0x60 expected for BME280)\n", bme280->getID()) ; |
Rhyme | 1:21463f9ca08d | 37 | |
Rhyme | 0:7e8c784a0df1 | 38 | printf("Temperature(C) , Humidity(%%), Pressure(hPa)\n") ; |
Rhyme | 0:7e8c784a0df1 | 39 | while(1) { |
Rhyme | 0:7e8c784a0df1 | 40 | bme280->trigger() ; |
Rhyme | 0:7e8c784a0df1 | 41 | while(bme280->busy()) { |
Rhyme | 0:7e8c784a0df1 | 42 | wait(0.1) ; |
Rhyme | 0:7e8c784a0df1 | 43 | } |
Rhyme | 1:21463f9ca08d | 44 | temp = bme280->getTemperature() ; |
Rhyme | 1:21463f9ca08d | 45 | hum = bme280->getHumidity() ; |
Rhyme | 1:21463f9ca08d | 46 | pres = bme280->getPressure() ; |
Rhyme | 0:7e8c784a0df1 | 47 | printf("%.2f, %.2f, %.2f\n", temp, hum, pres) ; |
Rhyme | 0:7e8c784a0df1 | 48 | wait(2) ; |
Rhyme | 0:7e8c784a0df1 | 49 | } |
Rhyme | 0:7e8c784a0df1 | 50 | } |