|
|
|
@ -22,28 +22,28 @@
|
|
|
|
|
#include <stdio.h> |
|
|
|
|
#include <inttypes.h> |
|
|
|
|
|
|
|
|
|
#include "bme280_params.h" |
|
|
|
|
#include "bme280.h" |
|
|
|
|
#include "bmx280_params.h" |
|
|
|
|
#include "bmx280.h" |
|
|
|
|
#include "xtimer.h" |
|
|
|
|
|
|
|
|
|
#define MAINLOOP_DELAY (2 * 1000 * 1000u) /* 2 seconds delay between printf's */ |
|
|
|
|
|
|
|
|
|
int main(void) |
|
|
|
|
{ |
|
|
|
|
bme280_t dev; |
|
|
|
|
bmx280_t dev; |
|
|
|
|
int result; |
|
|
|
|
|
|
|
|
|
puts("BME280 test application\n"); |
|
|
|
|
puts("BMX280 test application\n"); |
|
|
|
|
|
|
|
|
|
printf("+------------Initializing------------+\n"); |
|
|
|
|
result = bme280_init(&dev, &bme280_params[0]); |
|
|
|
|
result = bmx280_init(&dev, &bmx280_params[0]); |
|
|
|
|
if (result == -1) { |
|
|
|
|
puts("[Error] The given i2c is not enabled"); |
|
|
|
|
return 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (result == -2) { |
|
|
|
|
printf("[Error] The sensor did not answer correctly at address 0x%02X\n", bme280_params[0].i2c_addr); |
|
|
|
|
printf("[Error] The sensor did not answer correctly at address 0x%02X\n", bmx280_params[0].i2c_addr); |
|
|
|
|
return 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -64,35 +64,48 @@ int main(void)
|
|
|
|
|
printf("dig_P8: %i\n", dev.calibration.dig_P8); |
|
|
|
|
printf("dig_P9: %i\n", dev.calibration.dig_P9); |
|
|
|
|
|
|
|
|
|
#if defined(MODULE_BME280) |
|
|
|
|
printf("dig_H1: %u\n", dev.calibration.dig_H1); |
|
|
|
|
printf("dig_H2: %i\n", dev.calibration.dig_H2); |
|
|
|
|
printf("dig_H3: %i\n", dev.calibration.dig_H3); |
|
|
|
|
printf("dig_H4: %i\n", dev.calibration.dig_H4); |
|
|
|
|
printf("dig_H5: %i\n", dev.calibration.dig_H5); |
|
|
|
|
printf("dig_H6: %i\n", dev.calibration.dig_H6); |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
printf("\n+--------Starting Measurements--------+\n"); |
|
|
|
|
while (1) { |
|
|
|
|
int16_t temperature; |
|
|
|
|
uint32_t pressure; |
|
|
|
|
#if defined(MODULE_BME280) |
|
|
|
|
uint16_t humidity; |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
/* Get temperature in centi degrees Celsius */ |
|
|
|
|
temperature = bme280_read_temperature(&dev); |
|
|
|
|
temperature = bmx280_read_temperature(&dev); |
|
|
|
|
|
|
|
|
|
/* Get pressure in Pa */ |
|
|
|
|
pressure = bme280_read_pressure(&dev); |
|
|
|
|
pressure = bmx280_read_pressure(&dev); |
|
|
|
|
|
|
|
|
|
#if defined(MODULE_BME280) |
|
|
|
|
/* Get pressure in %rH */ |
|
|
|
|
humidity = bme280_read_humidity(&dev); |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
printf("Temperature [°C]: %d.%d\n" |
|
|
|
|
"Pressure [Pa]: %lu\n" |
|
|
|
|
#if defined(MODULE_BME280) |
|
|
|
|
"Humidity [%%rH]: %u.%02u\n" |
|
|
|
|
#endif |
|
|
|
|
"\n+-------------------------------------+\n", |
|
|
|
|
temperature / 100, (temperature % 100) / 10, |
|
|
|
|
#if defined(MODULE_BME280) |
|
|
|
|
(unsigned long)pressure, |
|
|
|
|
(unsigned int)(humidity / 100), (unsigned int)(humidity % 100)); |
|
|
|
|
(unsigned int)(humidity / 100), (unsigned int)(humidity % 100) |
|
|
|
|
#else |
|
|
|
|
(unsigned long)pressure |
|
|
|
|
#endif |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
xtimer_usleep(MAINLOOP_DELAY); |
|
|
|
|
} |