readme and cleanup

This commit is contained in:
William Clark 2023-11-04 17:26:23 +00:00
parent 410db6fc46
commit e64cc577e9
2 changed files with 76 additions and 18 deletions

View File

@ -1,10 +1,35 @@
# bme680
Example with working temperature, pressure and humidity readout
Example implementation, just lacking gas for now.
```
$ ./bme680
61
linux_i2c_init
linux_i2c_read: D0 (1) [61]
linux_i2c_write: E0 (1) [B6]
linux_i2c_read: E9 (2) [5B,66]
linux_i2c_read: 8A (2) [97,67]
linux_i2c_read: 8C (1) [3]
linux_i2c_read: 8E (2) [C0,88]
linux_i2c_read: 90 (2) [D4,D7]
linux_i2c_read: 92 (1) [58]
linux_i2c_read: 94 (2) [DC,25]
linux_i2c_read: 96 (2) [36,FF]
linux_i2c_read: 99 (1) [1E]
linux_i2c_read: 98 (1) [18]
linux_i2c_read: 9C (1) [FC]
linux_i2c_read: 9E (2) [73,F2]
linux_i2c_read: A0 (1) [1E]
linux_i2c_read: E2 (2) [FA,31]
linux_i2c_read: E1 (2) [3E,FA]
linux_i2c_read: E4 (1) [0]
linux_i2c_read: E5 (1) [2D]
linux_i2c_read: E6 (1) [14]
linux_i2c_read: E7 (1) [78]
linux_i2c_read: E8 (1) [9C]
linux_i2c_read: ED (1) [D0]
linux_i2c_read: EB (2) [85,E9]
linux_i2c_read: EE (1) [12]
par_t1: 26203
par_t2: 26519
par_t3: 3
@ -15,7 +40,7 @@ par_p4: 9692
par_p5: -202
par_p6: 30
par_p7: 24
par_p8: -516
par_p8: -4
par_p9: -3469
par_p10: 30
par_h1: 794
@ -25,10 +50,50 @@ par_h4: 45
par_h5: 20
par_h6: 120
par_h7: -100
temperature: 22.7519 oC (floating-point)
temperature: 2275 oC (integer x100)
pressure: 99711.8 Pa or 0.997118 bar (floating-point)
pressure: 99708 Pa (integer)
humidity: 62.3145 (floating-point)
humidity: 62289 (integer x1000)
linux_i2c_write: 74 (1) [B4]
linux_i2c_write: 72 (1) [4]
linux_i2c_write: 75 (1) [18]
linux_i2c_write: 74 (1) [B5]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [20]
linux_i2c_read: 1D (1) [80]
linux_i2c_read: 22 (3) [75,68,0]
linux_i2c_read: 1F (3) [55,63,70]
linux_i2c_read: 25 (2) [62,9E]
float mode
tfine: 99793.535399
temp: 19.490925 degC
press: 96211.887865 Pa
humidity: 67.809989 % RH
linux_i2c_deinit
```
Low air pressure due to storm not bad sensor

9
main.c
View File

@ -16,7 +16,7 @@ int linux_i2c_read (uint8_t reg, uint8_t *dst, uint32_t size);
int linux_i2c_write (uint8_t reg, uint8_t *src, uint32_t size);
int linux_i2c_deinit (void);
int main(){
int main() {
bme680_t bme680;
uint8_t mode;
@ -52,14 +52,12 @@ int main(){
/* debug */
bme680_print_calibration(&bme680);
/* 6. set up device config */
bme680.cfg.osrs_t = BME680_OVERSAMPLE_16X;
bme680.cfg.osrs_p = BME680_OVERSAMPLE_16X;
bme680.cfg.osrs_h = BME680_OVERSAMPLE_8X;
bme680.cfg.filter = BME680_IIR_COEFF_63;
/* 7. write config to device and set off conversion */
if (bme680_start(&bme680) != 0) {
fprintf(stderr, "bme680_start()\n");
@ -74,7 +72,6 @@ int main(){
exit(EXIT_FAILURE);
}
/* 9. read the ADC's and perform a conversion */
if (bme680_read(&bme680) != 0) {
fprintf(stderr, "bme680_read()\n");
@ -82,10 +79,6 @@ int main(){
exit(EXIT_FAILURE);
}
printf("adc_temp: %d\n", bme680.adc.temp);
printf("adc_press: %d\n", bme680.adc.press);
printf("adc_hum: %d\n", bme680.adc.hum);
/* 10. use data ! */
if (BME680_IS_FLOAT(bme680.mode)) {