Thu, 06 Apr 2023 20:53:06 +0200
Set the new measured deep sleep current consumption. This is half of the Wemos D1 system.
1
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
1 | /* |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
2 | * The MIT License (MIT) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
3 | * |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
4 | * Copyright (c) 2016 sheinz <https://github.com/sheinz> |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
5 | * Copyright (c) 2018 Ruslan V. Uss <unclerus@gmail.com> |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
6 | * |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
7 | * Permission is hereby granted, free of charge, to any person obtaining a copy |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
8 | * of this software and associated documentation files (the "Software"), to deal |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
9 | * in the Software without restriction, including without limitation the rights |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
10 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
11 | * copies of the Software, and to permit persons to whom the Software is |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
12 | * furnished to do so, subject to the following conditions: |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
13 | * The above copyright notice and this permission notice shall be included in all |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
14 | * copies or substantial portions of the Software. |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
15 | * |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
22 | * SOFTWARE. |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
23 | */ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
24 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
25 | /** |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
26 | * @file bmp280.c |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
27 | * |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
28 | * ESP-IDF driver for BMP280/BME280 digital pressure sensor |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
29 | * |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
30 | * Ported from esp-open-rtos |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
31 | * |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
32 | * Copyright (c) 2016 sheinz <https://github.com/sheinz>\n |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
33 | * Copyright (c) 2018 Ruslan V. Uss <unclerus@gmail.com> |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
34 | * |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
35 | * MIT Licensed as described in the file LICENSE |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
36 | */ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
37 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
38 | #include "bmp280.h" |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
39 | #include <inttypes.h> |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
40 | #include <esp_log.h> |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
41 | #include <esp_idf_lib_helpers.h> |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
42 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
43 | #define I2C_FREQ_HZ 1000000 // Max 1MHz for esp-idf |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
44 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
45 | static const char *TAG = "bmp280"; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
46 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
47 | /** |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
48 | * BMP280 registers |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
49 | */ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
50 | #define BMP280_REG_TEMP_XLSB 0xFC /* bits: 7-4 */ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
51 | #define BMP280_REG_TEMP_LSB 0xFB |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
52 | #define BMP280_REG_TEMP_MSB 0xFA |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
53 | #define BMP280_REG_TEMP (BMP280_REG_TEMP_MSB) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
54 | #define BMP280_REG_PRESS_XLSB 0xF9 /* bits: 7-4 */ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
55 | #define BMP280_REG_PRESS_LSB 0xF8 |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
56 | #define BMP280_REG_PRESS_MSB 0xF7 |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
57 | #define BMP280_REG_PRESSURE (BMP280_REG_PRESS_MSB) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
58 | #define BMP280_REG_CONFIG 0xF5 /* bits: 7-5 t_sb; 4-2 filter; 0 spi3w_en */ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
59 | #define BMP280_REG_CTRL 0xF4 /* bits: 7-5 osrs_t; 4-2 osrs_p; 1-0 mode */ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
60 | #define BMP280_REG_STATUS 0xF3 /* bits: 3 measuring; 0 im_update */ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
61 | #define BMP280_REG_CTRL_HUM 0xF2 /* bits: 2-0 osrs_h; */ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
62 | #define BMP280_REG_RESET 0xE0 |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
63 | #define BMP280_REG_ID 0xD0 |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
64 | #define BMP280_REG_CALIB 0x88 |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
65 | #define BMP280_REG_HUM_CALIB 0x88 |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
66 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
67 | #define BMP280_RESET_VALUE 0xB6 |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
68 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
69 | #define CHECK(x) do { esp_err_t __; if ((__ = x) != ESP_OK) return __; } while (0) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
70 | #define CHECK_ARG(VAL) do { if (!(VAL)) return ESP_ERR_INVALID_ARG; } while (0) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
71 | #define CHECK_LOGE(dev, x, msg, ...) do { \ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
72 | esp_err_t __; \ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
73 | if ((__ = x) != ESP_OK) { \ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
74 | I2C_DEV_GIVE_MUTEX(&dev->i2c_dev); \ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
75 | ESP_LOGE(TAG, msg, ## __VA_ARGS__); \ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
76 | return __; \ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
77 | } \ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
78 | } while (0) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
79 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
80 | static esp_err_t read_register16(i2c_dev_t *dev, uint8_t reg, uint16_t *r) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
81 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
82 | uint8_t d[] = { 0, 0 }; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
83 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
84 | CHECK(i2c_dev_read_reg(dev, reg, d, 2)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
85 | *r = d[0] | (d[1] << 8); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
86 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
87 | return ESP_OK; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
88 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
89 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
90 | inline static esp_err_t write_register8(i2c_dev_t *dev, uint8_t addr, uint8_t value) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
91 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
92 | return i2c_dev_write_reg(dev, addr, &value, 1); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
93 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
94 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
95 | static esp_err_t read_calibration_data(bmp280_t *dev) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
96 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
97 | CHECK(read_register16(&dev->i2c_dev, 0x88, &dev->dig_T1)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
98 | CHECK(read_register16(&dev->i2c_dev, 0x8a, (uint16_t *)&dev->dig_T2)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
99 | CHECK(read_register16(&dev->i2c_dev, 0x8c, (uint16_t *)&dev->dig_T3)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
100 | CHECK(read_register16(&dev->i2c_dev, 0x8e, &dev->dig_P1)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
101 | CHECK(read_register16(&dev->i2c_dev, 0x90, (uint16_t *)&dev->dig_P2)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
102 | CHECK(read_register16(&dev->i2c_dev, 0x92, (uint16_t *)&dev->dig_P3)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
103 | CHECK(read_register16(&dev->i2c_dev, 0x94, (uint16_t *)&dev->dig_P4)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
104 | CHECK(read_register16(&dev->i2c_dev, 0x96, (uint16_t *)&dev->dig_P5)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
105 | CHECK(read_register16(&dev->i2c_dev, 0x98, (uint16_t *)&dev->dig_P6)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
106 | CHECK(read_register16(&dev->i2c_dev, 0x9a, (uint16_t *)&dev->dig_P7)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
107 | CHECK(read_register16(&dev->i2c_dev, 0x9c, (uint16_t *)&dev->dig_P8)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
108 | CHECK(read_register16(&dev->i2c_dev, 0x9e, (uint16_t *)&dev->dig_P9)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
109 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
110 | ESP_LOGD(TAG, "Calibration data received:"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
111 | ESP_LOGD(TAG, "dig_T1=%d", dev->dig_T1); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
112 | ESP_LOGD(TAG, "dig_T2=%d", dev->dig_T2); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
113 | ESP_LOGD(TAG, "dig_T3=%d", dev->dig_T3); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
114 | ESP_LOGD(TAG, "dig_P1=%d", dev->dig_P1); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
115 | ESP_LOGD(TAG, "dig_P2=%d", dev->dig_P2); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
116 | ESP_LOGD(TAG, "dig_P3=%d", dev->dig_P3); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
117 | ESP_LOGD(TAG, "dig_P4=%d", dev->dig_P4); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
118 | ESP_LOGD(TAG, "dig_P5=%d", dev->dig_P5); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
119 | ESP_LOGD(TAG, "dig_P6=%d", dev->dig_P6); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
120 | ESP_LOGD(TAG, "dig_P7=%d", dev->dig_P7); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
121 | ESP_LOGD(TAG, "dig_P8=%d", dev->dig_P8); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
122 | ESP_LOGD(TAG, "dig_P9=%d", dev->dig_P9); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
123 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
124 | return ESP_OK; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
125 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
126 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
127 | static esp_err_t read_hum_calibration_data(bmp280_t *dev) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
128 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
129 | uint16_t h4, h5; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
130 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
131 | CHECK(i2c_dev_read_reg(&dev->i2c_dev, 0xa1, &dev->dig_H1, 1)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
132 | CHECK(read_register16(&dev->i2c_dev, 0xe1, (uint16_t *)&dev->dig_H2)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
133 | CHECK(i2c_dev_read_reg(&dev->i2c_dev, 0xe3, &dev->dig_H3, 1)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
134 | CHECK(read_register16(&dev->i2c_dev, 0xe4, &h4)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
135 | CHECK(read_register16(&dev->i2c_dev, 0xe5, &h5)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
136 | CHECK(i2c_dev_read_reg(&dev->i2c_dev, 0xe7, (uint8_t *)&dev->dig_H6, 1)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
137 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
138 | dev->dig_H4 = (h4 & 0x00ff) << 4 | (h4 & 0x0f00) >> 8; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
139 | dev->dig_H5 = h5 >> 4; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
140 | ESP_LOGD(TAG, "Calibration data received:"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
141 | ESP_LOGD(TAG, "dig_H1=%d", dev->dig_H1); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
142 | ESP_LOGD(TAG, "dig_H2=%d", dev->dig_H2); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
143 | ESP_LOGD(TAG, "dig_H3=%d", dev->dig_H3); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
144 | ESP_LOGD(TAG, "dig_H4=%d", dev->dig_H4); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
145 | ESP_LOGD(TAG, "dig_H5=%d", dev->dig_H5); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
146 | ESP_LOGD(TAG, "dig_H6=%d", dev->dig_H6); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
147 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
148 | return ESP_OK; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
149 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
150 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
151 | esp_err_t bmp280_init_desc(bmp280_t *dev, uint8_t addr, i2c_port_t port, gpio_num_t sda_gpio, gpio_num_t scl_gpio) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
152 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
153 | CHECK_ARG(dev); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
154 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
155 | if (addr != BMP280_I2C_ADDRESS_0 && addr != BMP280_I2C_ADDRESS_1) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
156 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
157 | ESP_LOGE(TAG, "Invalid I2C address"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
158 | return ESP_ERR_INVALID_ARG; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
159 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
160 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
161 | dev->i2c_dev.port = port; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
162 | dev->i2c_dev.addr = addr; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
163 | dev->i2c_dev.cfg.sda_io_num = sda_gpio; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
164 | dev->i2c_dev.cfg.scl_io_num = scl_gpio; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
165 | #if HELPER_TARGET_IS_ESP32 |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
166 | dev->i2c_dev.cfg.master.clk_speed = I2C_FREQ_HZ; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
167 | #endif |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
168 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
169 | return i2c_dev_create_mutex(&dev->i2c_dev); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
170 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
171 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
172 | esp_err_t bmp280_free_desc(bmp280_t *dev) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
173 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
174 | CHECK_ARG(dev); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
175 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
176 | return i2c_dev_delete_mutex(&dev->i2c_dev); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
177 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
178 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
179 | esp_err_t bmp280_init_default_params(bmp280_params_t *params) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
180 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
181 | CHECK_ARG(params); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
182 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
183 | params->mode = BMP280_MODE_NORMAL; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
184 | params->filter = BMP280_FILTER_OFF; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
185 | params->oversampling_pressure = BMP280_STANDARD; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
186 | params->oversampling_temperature = BMP280_STANDARD; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
187 | params->oversampling_humidity = BMP280_STANDARD; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
188 | params->standby = BMP280_STANDBY_250; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
189 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
190 | return ESP_OK; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
191 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
192 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
193 | esp_err_t bmp280_init(bmp280_t *dev, bmp280_params_t *params) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
194 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
195 | CHECK_ARG(dev && params); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
196 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
197 | I2C_DEV_TAKE_MUTEX(&dev->i2c_dev); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
198 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
199 | CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, BMP280_REG_ID, &dev->id, 1), "Sensor not found"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
200 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
201 | if (dev->id != BMP280_CHIP_ID && dev->id != BME280_CHIP_ID) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
202 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
203 | CHECK_LOGE(dev, ESP_ERR_INVALID_VERSION, |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
204 | "Invalid chip ID: expected: 0x%x (BME280) or 0x%x (BMP280) got: 0x%x", |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
205 | BME280_CHIP_ID, BMP280_CHIP_ID, dev->id); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
206 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
207 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
208 | // Soft reset. |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
209 | CHECK_LOGE(dev, write_register8(&dev->i2c_dev, BMP280_REG_RESET, BMP280_RESET_VALUE), "Failed to reset sensor"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
210 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
211 | // Wait until finished copying over the NVP data. |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
212 | while (1) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
213 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
214 | uint8_t status; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
215 | if (!i2c_dev_read_reg(&dev->i2c_dev, BMP280_REG_STATUS, &status, 1) && (status & 1) == 0) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
216 | break; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
217 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
218 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
219 | CHECK_LOGE(dev, read_calibration_data(dev), "Failed to read calibration data"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
220 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
221 | if (dev->id == BME280_CHIP_ID) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
222 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
223 | CHECK_LOGE(dev, read_hum_calibration_data(dev), "Failed to read humidity calibration data"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
224 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
225 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
226 | uint8_t config = (params->standby << 5) | (params->filter << 2); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
227 | ESP_LOGD(TAG, "Writing config reg=%x", config); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
228 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
229 | CHECK_LOGE(dev, write_register8(&dev->i2c_dev, BMP280_REG_CONFIG, config), "Failed to configure sensor"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
230 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
231 | if (params->mode == BMP280_MODE_FORCED) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
232 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
233 | params->mode = BMP280_MODE_SLEEP; // initial mode for forced is sleep |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
234 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
235 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
236 | uint8_t ctrl = (params->oversampling_temperature << 5) | (params->oversampling_pressure << 2) | (params->mode); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
237 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
238 | if (dev->id == BME280_CHIP_ID) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
239 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
240 | // Write crtl hum reg first, only active after write to BMP280_REG_CTRL. |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
241 | uint8_t ctrl_hum = params->oversampling_humidity; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
242 | ESP_LOGD(TAG, "Writing ctrl hum reg=%x", ctrl_hum); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
243 | CHECK_LOGE(dev, write_register8(&dev->i2c_dev, BMP280_REG_CTRL_HUM, ctrl_hum), "Failed to control sensor"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
244 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
245 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
246 | ESP_LOGD(TAG, "Writing ctrl reg=%x", ctrl); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
247 | CHECK_LOGE(dev, write_register8(&dev->i2c_dev, BMP280_REG_CTRL, ctrl), "Failed to control sensor"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
248 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
249 | I2C_DEV_GIVE_MUTEX(&dev->i2c_dev); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
250 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
251 | return ESP_OK; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
252 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
253 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
254 | esp_err_t bmp280_force_measurement(bmp280_t *dev) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
255 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
256 | CHECK_ARG(dev); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
257 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
258 | I2C_DEV_TAKE_MUTEX(&dev->i2c_dev); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
259 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
260 | uint8_t ctrl; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
261 | I2C_DEV_CHECK(&dev->i2c_dev, i2c_dev_read_reg(&dev->i2c_dev, BMP280_REG_CTRL, &ctrl, 1)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
262 | ctrl &= ~0b11; // clear two lower bits |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
263 | ctrl |= BMP280_MODE_FORCED; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
264 | ESP_LOGD(TAG, "Writing ctrl reg=%x", ctrl); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
265 | CHECK_LOGE(dev, write_register8(&dev->i2c_dev, BMP280_REG_CTRL, ctrl), "Failed to start forced mode"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
266 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
267 | I2C_DEV_GIVE_MUTEX(&dev->i2c_dev); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
268 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
269 | return ESP_OK; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
270 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
271 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
272 | esp_err_t bmp280_is_measuring(bmp280_t *dev, bool *busy) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
273 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
274 | CHECK_ARG(dev && busy); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
275 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
276 | I2C_DEV_TAKE_MUTEX(&dev->i2c_dev); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
277 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
278 | const uint8_t regs[2] = { BMP280_REG_STATUS, BMP280_REG_CTRL }; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
279 | uint8_t status[2]; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
280 | CHECK_LOGE(dev, i2c_dev_read(&dev->i2c_dev, regs, 2, status, 2), "Failed to read status registers"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
281 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
282 | // Check mode - FORCED means BM280 is busy (it switches to SLEEP mode when finished) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
283 | // Additionally, check 'measuring' bit in status register |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
284 | *busy = ((status[1] & 0b11) == BMP280_MODE_FORCED) || (status[0] & (1 << 3)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
285 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
286 | I2C_DEV_GIVE_MUTEX(&dev->i2c_dev); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
287 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
288 | return ESP_OK; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
289 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
290 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
291 | /** |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
292 | * Compensation algorithm is taken from BMP280 datasheet. |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
293 | * |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
294 | * Return value is in degrees Celsius. |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
295 | */ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
296 | static inline int32_t compensate_temperature(bmp280_t *dev, int32_t adc_temp, int32_t *fine_temp) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
297 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
298 | int32_t var1, var2; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
299 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
300 | var1 = ((((adc_temp >> 3) - ((int32_t)dev->dig_T1 << 1))) * (int32_t)dev->dig_T2) >> 11; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
301 | var2 = (((((adc_temp >> 4) - (int32_t)dev->dig_T1) * ((adc_temp >> 4) - (int32_t)dev->dig_T1)) >> 12) * (int32_t)dev->dig_T3) >> 14; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
302 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
303 | *fine_temp = var1 + var2; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
304 | return (*fine_temp * 5 + 128) >> 8; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
305 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
306 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
307 | /** |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
308 | * Compensation algorithm is taken from BMP280 datasheet. |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
309 | * |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
310 | * Return value is in Pa, 24 integer bits and 8 fractional bits. |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
311 | */ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
312 | static inline uint32_t compensate_pressure(bmp280_t *dev, int32_t adc_press, int32_t fine_temp) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
313 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
314 | int64_t var1, var2, p; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
315 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
316 | var1 = (int64_t)fine_temp - 128000; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
317 | var2 = var1 * var1 * (int64_t)dev->dig_P6; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
318 | var2 = var2 + ((var1 * (int64_t)dev->dig_P5) << 17); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
319 | var2 = var2 + (((int64_t)dev->dig_P4) << 35); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
320 | var1 = ((var1 * var1 * (int64_t)dev->dig_P3) >> 8) + ((var1 * (int64_t)dev->dig_P2) << 12); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
321 | var1 = (((int64_t)1 << 47) + var1) * ((int64_t)dev->dig_P1) >> 33; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
322 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
323 | if (var1 == 0) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
324 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
325 | return 0; // avoid exception caused by division by zero |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
326 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
327 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
328 | p = 1048576 - adc_press; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
329 | p = (((p << 31) - var2) * 3125) / var1; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
330 | var1 = ((int64_t)dev->dig_P9 * (p >> 13) * (p >> 13)) >> 25; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
331 | var2 = ((int64_t)dev->dig_P8 * p) >> 19; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
332 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
333 | p = ((p + var1 + var2) >> 8) + ((int64_t)dev->dig_P7 << 4); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
334 | return p; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
335 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
336 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
337 | /** |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
338 | * Compensation algorithm is taken from BME280 datasheet. |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
339 | * |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
340 | * Return value is in Pa, 24 integer bits and 8 fractional bits. |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
341 | */ |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
342 | static inline uint32_t compensate_humidity(bmp280_t *dev, int32_t adc_hum, int32_t fine_temp) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
343 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
344 | int32_t v_x1_u32r; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
345 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
346 | v_x1_u32r = fine_temp - (int32_t)76800; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
347 | v_x1_u32r = ((((adc_hum << 14) - ((int32_t)dev->dig_H4 << 20) - ((int32_t)dev->dig_H5 * v_x1_u32r)) + (int32_t)16384) >> 15) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
348 | * (((((((v_x1_u32r * (int32_t)dev->dig_H6) >> 10) * (((v_x1_u32r * (int32_t)dev->dig_H3) >> 11) + (int32_t)32768)) >> 10) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
349 | + (int32_t)2097152) * (int32_t)dev->dig_H2 + 8192) >> 14); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
350 | v_x1_u32r = v_x1_u32r - (((((v_x1_u32r >> 15) * (v_x1_u32r >> 15)) >> 7) * (int32_t)dev->dig_H1) >> 4); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
351 | v_x1_u32r = v_x1_u32r < 0 ? 0 : v_x1_u32r; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
352 | v_x1_u32r = v_x1_u32r > 419430400 ? 419430400 : v_x1_u32r; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
353 | return v_x1_u32r >> 12; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
354 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
355 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
356 | esp_err_t bmp280_read_fixed(bmp280_t *dev, int32_t *temperature, uint32_t *pressure, uint32_t *humidity) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
357 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
358 | CHECK_ARG(dev && temperature && pressure); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
359 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
360 | int32_t adc_pressure; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
361 | int32_t adc_temp; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
362 | uint8_t data[8]; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
363 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
364 | // Only the BME280 supports reading the humidity. |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
365 | if (dev->id != BME280_CHIP_ID) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
366 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
367 | if (humidity) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
368 | *humidity = 0; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
369 | humidity = NULL; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
370 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
371 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
372 | I2C_DEV_TAKE_MUTEX(&dev->i2c_dev); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
373 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
374 | // Need to read in one sequence to ensure they match. |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
375 | size_t size = humidity ? 8 : 6; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
376 | CHECK_LOGE(dev, i2c_dev_read_reg(&dev->i2c_dev, 0xf7, data, size), "Failed to read data"); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
377 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
378 | adc_pressure = data[0] << 12 | data[1] << 4 | data[2] >> 4; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
379 | adc_temp = data[3] << 12 | data[4] << 4 | data[5] >> 4; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
380 | ESP_LOGD(TAG, "ADC temperature: %" PRIi32, adc_temp); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
381 | ESP_LOGD(TAG, "ADC pressure: %" PRIi32, adc_pressure); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
382 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
383 | int32_t fine_temp; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
384 | *temperature = compensate_temperature(dev, adc_temp, &fine_temp); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
385 | *pressure = compensate_pressure(dev, adc_pressure, fine_temp); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
386 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
387 | if (humidity) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
388 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
389 | int32_t adc_humidity = data[6] << 8 | data[7]; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
390 | ESP_LOGD(TAG, "ADC humidity: %" PRIi32, adc_humidity); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
391 | *humidity = compensate_humidity(dev, adc_humidity, fine_temp); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
392 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
393 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
394 | I2C_DEV_GIVE_MUTEX(&dev->i2c_dev); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
395 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
396 | return ESP_OK; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
397 | } |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
398 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
399 | esp_err_t bmp280_read_float(bmp280_t *dev, float *temperature, float *pressure, float *humidity) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
400 | { |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
401 | int32_t fixed_temperature; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
402 | uint32_t fixed_pressure; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
403 | uint32_t fixed_humidity; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
404 | CHECK(bmp280_read_fixed(dev, &fixed_temperature, &fixed_pressure, humidity ? &fixed_humidity : NULL)); |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
405 | *temperature = (float)fixed_temperature / 100; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
406 | *pressure = (float)fixed_pressure / 256; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
407 | if (humidity) |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
408 | *humidity = (float)fixed_humidity / 1024; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
409 | |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
410 | return ESP_OK; |
1c9894662795
Added esp-idf-lib for a lot of sensors. Added the basic design for the BMP280 task.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
411 | } |