diff --git a/README.md b/README.md index c1e6da8..e34e410 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ The loggers spit out the following every minute: >Note: disregard measured gas resistance if the heat stability bit is not 1. -## spi demo +## bme680_{i2c,spi} demo output ``` par_t1: 26203 par_t2: 26519 @@ -67,48 +67,9 @@ gas resistance: 12100.310308 Ohm === heat_stab_r: 1 ``` -## i2c demo -``` -par_t1: 26125 -par_t2: 26370 -par_t3: 3 -par_p1: 36262 -par_p2: -10371 -par_p3: 88 -par_p4: 6713 -par_p5: -103 -par_p6: 30 -par_p7: 31 -par_p8: -251 -par_p9: -3158 -par_p10: 30 -par_h1: 776 -par_h2: 1010 -par_h3: 0 -par_h4: 45 -par_h5: 20 -par_h6: 120 -par_h7: -100 -par_g1: 183 -par_g2: 59281 -par_g3: 18 -range_switching_error: 19 -res_heat_range: 1 -res_heat_val: 39 -float mode -tfine: 97289.819111 -temp: 19.001918 degC -press: 100226.479673 Pa -humidity: 67.022216 % RH -gas resistance: 14702.868852 Ohm -== for heater target=300.0 and ambient temp=19.0 (degC) -=== gas_valid_r: 1 -=== heat_stab_r: 1 -``` - ## Burn-in / logging -See file `example/log.c` +See file `cmd/log.c` ![Graph of gas resistance measured over time](.gitea/gas.png) ![Graph of temperature measured over time](.gitea/temp.png) diff --git a/example/log.c b/example/log.c deleted file mode 100644 index b18a258..0000000 --- a/example/log.c +++ /dev/null @@ -1,101 +0,0 @@ -#define _DEFAULT_SOURCE - -#include -#include -#include -#include - -#include "bme680.h" -#include "i2c.h" - -#define AMBIENT_TEMP_GUESS 19.0 -#define HEATER_TARGET 300.0 - - -int main(void) { - - bme680_t bme680; - uint8_t mode; - double temperature = AMBIENT_TEMP_GUESS; - time_t curr_time; - char date[100]; - - bme680.dev.init = i2c_init; - bme680.dev.read = i2c_read; - bme680.dev.write = i2c_write; - bme680.dev.deinit = i2c_deinit; - bme680.dev.sleep = usleep; - - mode = BME680_MODE_FLOAT | BME680_I2C | BME680_ENABLE_GAS; - - - if (bme680_init(&bme680, mode) != 0) { - fprintf(stderr, "bme680_init()\n"); - exit(EXIT_FAILURE); - } - -START: - bme680_reset(&bme680); - - if (bme680_calibrate(&bme680) != 0) { - fprintf(stderr, "bme680_calibrate()\n"); - bme680_deinit(&bme680); - exit(EXIT_FAILURE); - } - - bme680.cfg.osrs_t = BME680_OVERSAMPLE_X16; - bme680.cfg.osrs_p = BME680_OVERSAMPLE_X16; - bme680.cfg.osrs_h = BME680_OVERSAMPLE_X8; - bme680.cfg.filter = BME680_IIR_COEFF_127; - - bme680.cfg.res_heat[0] = bme680_calc_target(&bme680, HEATER_TARGET, temperature); - bme680.cfg.idac_heat[0] = BME680_IDAC(100); - bme680.cfg.gas_wait[0] = BME680_GAS_WAIT(25, BME680_GAS_WAIT_X4); - - bme680.setpoint = 0; - - if (bme680_configure(&bme680) != 0) { - fprintf(stderr, "bme680_configure()\n"); - bme680_deinit(&bme680); - exit(EXIT_FAILURE); - } - - if (bme680_start(&bme680) != 0) { - fprintf(stderr, "bme680_start()\n"); - bme680_deinit(&bme680); - exit(EXIT_FAILURE); - } - - if (bme680_poll(&bme680) != 0) { - fprintf(stderr, "bme680_poll()\n"); - bme680_deinit(&bme680); - exit(EXIT_FAILURE); - } - - if (bme680_read(&bme680) != 0) { - fprintf(stderr, "bme680_read()\n"); - bme680_deinit(&bme680); - exit(EXIT_FAILURE); - } - - curr_time = time(NULL); - strftime(date, 100, "%FT%T%z", localtime(&curr_time)); - printf("%s %g %g %g %g %d\n", - date, - bme680.fcomp.temp, - bme680.fcomp.press, - bme680.fcomp.hum, - bme680.fcomp.gas_res, - !!bme680.heat_stab); - - temperature = bme680.fcomp.temp; - - // 60 secs - usleep(1000*1000*60); - goto START; - - bme680_deinit(&bme680); - - return 0; -} -