mirror of
https://github.com/meshtastic/firmware.git
synced 2025-04-25 01:42:15 +00:00
use BSEC2 only
This commit is contained in:
parent
9841d49fb8
commit
70dc13a998
@ -102,7 +102,8 @@ lib_deps =
|
|||||||
adafruit/Adafruit Unified Sensor@^1.1.9
|
adafruit/Adafruit Unified Sensor@^1.1.9
|
||||||
adafruit/Adafruit BMP280 Library@^2.6.6
|
adafruit/Adafruit BMP280 Library@^2.6.6
|
||||||
adafruit/Adafruit BME280 Library@^2.2.2
|
adafruit/Adafruit BME280 Library@^2.2.2
|
||||||
https://github.com/meshtastic/BSEC-Arduino-library.git#452f9a7ffa8b53e1debe2c454fe375dfad98b507
|
boschsensortec/BSEC2 Software Library@^1.3.2200
|
||||||
|
boschsensortec/BME68x Sensor Library@^1.1.40407
|
||||||
adafruit/Adafruit MCP9808 Library@^2.0.0
|
adafruit/Adafruit MCP9808 Library@^2.0.0
|
||||||
adafruit/Adafruit INA260 Library@^1.5.0
|
adafruit/Adafruit INA260 Library@^1.5.0
|
||||||
adafruit/Adafruit INA219@^1.2.0
|
adafruit/Adafruit INA219@^1.2.0
|
||||||
|
@ -13,11 +13,7 @@ int32_t BME680Sensor::runOnce()
|
|||||||
return DEFAULT_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS;
|
return DEFAULT_SENSOR_MINIMUM_WAIT_TIME_BETWEEN_READS;
|
||||||
}
|
}
|
||||||
bme680.begin(nodeTelemetrySensorsMap[sensorType], Wire);
|
bme680.begin(nodeTelemetrySensorsMap[sensorType], Wire);
|
||||||
#ifdef USE_BSEC2
|
|
||||||
if (bme680.status == BSEC_OK) {
|
if (bme680.status == BSEC_OK) {
|
||||||
#else
|
|
||||||
if (bme680.bsecStatus == BSEC_OK) {
|
|
||||||
#endif
|
|
||||||
bme680.setConfig(Default_H2S_NonH2S_config);
|
bme680.setConfig(Default_H2S_NonH2S_config);
|
||||||
loadState();
|
loadState();
|
||||||
bme680.updateSubscription(sensorList, 13, BSEC_SAMPLE_RATE_LP);
|
bme680.updateSubscription(sensorList, 13, BSEC_SAMPLE_RATE_LP);
|
||||||
@ -34,18 +30,12 @@ void BME680Sensor::setup() {}
|
|||||||
bool BME680Sensor::getMetrics(meshtastic_Telemetry *measurement)
|
bool BME680Sensor::getMetrics(meshtastic_Telemetry *measurement)
|
||||||
{
|
{
|
||||||
bme680.run();
|
bme680.run();
|
||||||
#ifdef USE_BSEC2
|
|
||||||
measurement->variant.environment_metrics.temperature = bme680.getData(BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE).signal;
|
measurement->variant.environment_metrics.temperature = bme680.getData(BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE).signal;
|
||||||
measurement->variant.environment_metrics.relative_humidity =
|
measurement->variant.environment_metrics.relative_humidity =
|
||||||
bme680.getData(BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_HUMIDITY).signal;
|
bme680.getData(BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_HUMIDITY).signal;
|
||||||
measurement->variant.environment_metrics.barometric_pressure = bme680.getData(BSEC_OUTPUT_RAW_PRESSURE).signal / 100.0F;
|
measurement->variant.environment_metrics.barometric_pressure = bme680.getData(BSEC_OUTPUT_RAW_PRESSURE).signal / 100.0F;
|
||||||
measurement->variant.environment_metrics.gas_resistance = bme680.getData(BSEC_OUTPUT_RAW_GAS).signal / 1000.0;
|
measurement->variant.environment_metrics.gas_resistance = bme680.getData(BSEC_OUTPUT_RAW_GAS).signal / 1000.0;
|
||||||
#else
|
|
||||||
measurement->variant.environment_metrics.temperature = bme680.temperature;
|
|
||||||
measurement->variant.environment_metrics.relative_humidity = bme680.humidity;
|
|
||||||
measurement->variant.environment_metrics.barometric_pressure = bme680.pressure / 100.0F;
|
|
||||||
measurement->variant.environment_metrics.gas_resistance = bme680.gasResistance / 1000.0;
|
|
||||||
#endif
|
|
||||||
// Check if we need to save state to filesystem (every STATE_SAVE_PERIOD ms)
|
// Check if we need to save state to filesystem (every STATE_SAVE_PERIOD ms)
|
||||||
updateState();
|
updateState();
|
||||||
return true;
|
return true;
|
||||||
@ -74,11 +64,7 @@ void BME680Sensor::updateState()
|
|||||||
bool update = false;
|
bool update = false;
|
||||||
if (stateUpdateCounter == 0) {
|
if (stateUpdateCounter == 0) {
|
||||||
/* First state update when IAQ accuracy is >= 3 */
|
/* First state update when IAQ accuracy is >= 3 */
|
||||||
#ifdef USE_BSEC2
|
|
||||||
accuracy = bme680.getData(BSEC_OUTPUT_IAQ).accuracy;
|
accuracy = bme680.getData(BSEC_OUTPUT_IAQ).accuracy;
|
||||||
#else
|
|
||||||
accuracy = bme680.iaqAccuracy;
|
|
||||||
#endif
|
|
||||||
if (accuracy >= 3) {
|
if (accuracy >= 3) {
|
||||||
LOG_DEBUG("%s state update IAQ accuracy %u >= 3\n", sensorName, accuracy);
|
LOG_DEBUG("%s state update IAQ accuracy %u >= 3\n", sensorName, accuracy);
|
||||||
update = true;
|
update = true;
|
||||||
|
@ -1,29 +1,15 @@
|
|||||||
#include "../mesh/generated/meshtastic/telemetry.pb.h"
|
#include "../mesh/generated/meshtastic/telemetry.pb.h"
|
||||||
#include "TelemetrySensor.h"
|
#include "TelemetrySensor.h"
|
||||||
#ifdef USE_BSEC2
|
|
||||||
#include <bsec2.h>
|
#include <bsec2.h>
|
||||||
#else
|
|
||||||
#include <bsec.h>
|
|
||||||
#endif // USE_BSEC2
|
|
||||||
|
|
||||||
#define STATE_SAVE_PERIOD UINT32_C(360 * 60 * 1000) // That's 6 hours worth of millis()
|
#define STATE_SAVE_PERIOD UINT32_C(360 * 60 * 1000) // That's 6 hours worth of millis()
|
||||||
|
|
||||||
#ifdef USE_BSEC2
|
|
||||||
#include "config/Default_H2S_NonH2S/Default_H2S_NonH2S.h"
|
#include "config/Default_H2S_NonH2S/Default_H2S_NonH2S.h"
|
||||||
#else
|
|
||||||
const uint8_t Default_H2S_NonH2S_config[] = {
|
|
||||||
#include <config/generic_33v_3s_4d/bsec_iaq.txt>
|
|
||||||
};
|
|
||||||
#endif // USE_BSEC2
|
|
||||||
|
|
||||||
class BME680Sensor : virtual public TelemetrySensor
|
class BME680Sensor : virtual public TelemetrySensor
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
#ifdef USE_BSEC2
|
|
||||||
Bsec2 bme680;
|
Bsec2 bme680;
|
||||||
#else
|
|
||||||
Bsec bme680;
|
|
||||||
#endif // USE_BSEC2
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void setup() override;
|
virtual void setup() override;
|
||||||
|
@ -3,6 +3,7 @@ extends = nrf52840_base
|
|||||||
board = nordic_pca10059
|
board = nordic_pca10059
|
||||||
board_level = extra
|
board_level = extra
|
||||||
build_flags = ${nrf52840_base.build_flags} -Ivariants/Dongle_nRF52840-pca10059-v1 -D NORDIC_PCA10059
|
build_flags = ${nrf52840_base.build_flags} -Ivariants/Dongle_nRF52840-pca10059-v1 -D NORDIC_PCA10059
|
||||||
|
-L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard"
|
||||||
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/Dongle_nRF52840-pca10059-v1>
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/Dongle_nRF52840-pca10059-v1>
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
|
@ -3,6 +3,7 @@ board_level = extra
|
|||||||
extends = nrf52840_base
|
extends = nrf52840_base
|
||||||
board = nordic_pca10059
|
board = nordic_pca10059
|
||||||
build_flags = ${nrf52840_base.build_flags} -Ivariants/MakePython_nRF52840_eink -D PRIVATE_HW
|
build_flags = ${nrf52840_base.build_flags} -Ivariants/MakePython_nRF52840_eink -D PRIVATE_HW
|
||||||
|
-L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard"
|
||||||
-D PIN_EINK_EN
|
-D PIN_EINK_EN
|
||||||
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/MakePython_nRF52840_eink>
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/MakePython_nRF52840_eink>
|
||||||
lib_deps =
|
lib_deps =
|
||||||
|
@ -3,6 +3,7 @@ board_level = extra
|
|||||||
extends = nrf52840_base
|
extends = nrf52840_base
|
||||||
board = nordic_pca10059
|
board = nordic_pca10059
|
||||||
build_flags = ${nrf52840_base.build_flags} -Ivariants/MakePython_nRF52840_oled -D PRIVATE_HW
|
build_flags = ${nrf52840_base.build_flags} -Ivariants/MakePython_nRF52840_oled -D PRIVATE_HW
|
||||||
|
-L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard"
|
||||||
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/MakePython_nRF52840_oled>
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/MakePython_nRF52840_oled>
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
#define HAS_TELEMETRY 0 // as long as BSEC2 is not supported
|
|
||||||
#define HAS_SENSOR 0 // as long as BSEC2 is not supported
|
|
||||||
|
|
||||||
#define SDA 0
|
#define SDA 0
|
||||||
#define SCL 1
|
#define SCL 1
|
||||||
#define I2C_SDA SDA
|
#define I2C_SDA SDA
|
||||||
|
@ -4,6 +4,7 @@ extends = nrf52840_base
|
|||||||
board = adafruit_feather_nrf52840
|
board = adafruit_feather_nrf52840
|
||||||
board_level = extra
|
board_level = extra
|
||||||
build_flags = ${nrf52840_base.build_flags} -Ivariants/feather_diy -Dfeather_diy
|
build_flags = ${nrf52840_base.build_flags} -Ivariants/feather_diy -Dfeather_diy
|
||||||
|
-L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard"
|
||||||
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/feather_diy>
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/feather_diy>
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
|
@ -15,6 +15,7 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/lora_relay_v1
|
|||||||
-DTFT_DC=ST7735_RS
|
-DTFT_DC=ST7735_RS
|
||||||
-DTFT_RST=ST7735_RESET
|
-DTFT_RST=ST7735_RESET
|
||||||
-DSPI_FREQUENCY=27000000
|
-DSPI_FREQUENCY=27000000
|
||||||
|
-L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard"
|
||||||
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/lora_relay_v1>
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/lora_relay_v1>
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
|
@ -17,6 +17,7 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/lora_relay_v2
|
|||||||
-DSPI_FREQUENCY=27000000
|
-DSPI_FREQUENCY=27000000
|
||||||
-DTFT_WR=ST7735_SDA
|
-DTFT_WR=ST7735_SDA
|
||||||
-DTFT_SCLK=ST7735_SCK
|
-DTFT_SCLK=ST7735_SCK
|
||||||
|
-L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard"
|
||||||
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/lora_relay_v2>
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/lora_relay_v2>
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
|
@ -5,4 +5,5 @@ extends = nrf52840_base
|
|||||||
board = nrf52840_dk_modified
|
board = nrf52840_dk_modified
|
||||||
# add our variants files to the include and src paths
|
# add our variants files to the include and src paths
|
||||||
build_flags = ${nrf52_base.build_flags} -Ivariants/pca10056-rc-clock
|
build_flags = ${nrf52_base.build_flags} -Ivariants/pca10056-rc-clock
|
||||||
|
-L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard"
|
||||||
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/pca10056-rc-clock>
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/pca10056-rc-clock>
|
@ -3,6 +3,7 @@
|
|||||||
extends = nrf52840_base
|
extends = nrf52840_base
|
||||||
board = wiscore_rak4631
|
board = wiscore_rak4631
|
||||||
build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631 -D RAK_4631
|
build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631 -D RAK_4631
|
||||||
|
-L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard"
|
||||||
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631> +<mesh/eth/> +<mesh/api/> +<mqtt/>
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631> +<mesh/eth/> +<mesh/api/> +<mqtt/>
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
extends = nrf52840_base
|
extends = nrf52840_base
|
||||||
board = wiscore_rak4631
|
board = wiscore_rak4631
|
||||||
build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631_epaper -D RAK_4631
|
build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631_epaper -D RAK_4631
|
||||||
|
-L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard"
|
||||||
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631_epaper>
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631_epaper>
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
|
@ -4,6 +4,7 @@ board_level = extra
|
|||||||
extends = nrf52840_base
|
extends = nrf52840_base
|
||||||
board = wiscore_rak4631
|
board = wiscore_rak4631
|
||||||
build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631_epaper -D RAK_4631
|
build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631_epaper -D RAK_4631
|
||||||
|
-L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard"
|
||||||
-D PIN_EINK_EN=34
|
-D PIN_EINK_EN=34
|
||||||
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631_epaper_onrxtx>
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631_epaper_onrxtx>
|
||||||
lib_deps =
|
lib_deps =
|
||||||
|
@ -9,6 +9,7 @@ debug_tool = jlink
|
|||||||
# -DBUSY_PIN=3 -DRST_PIN=2 -DDC_PIN=28 -DCS_PIN=30
|
# -DBUSY_PIN=3 -DRST_PIN=2 -DDC_PIN=28 -DCS_PIN=30
|
||||||
# add -DCFG_SYSVIEW if you want to use the Segger systemview tool for OS profiling.
|
# add -DCFG_SYSVIEW if you want to use the Segger systemview tool for OS profiling.
|
||||||
build_flags = ${nrf52840_base.build_flags} -Ivariants/t-echo
|
build_flags = ${nrf52840_base.build_flags} -Ivariants/t-echo
|
||||||
|
-L "${platformio.libdeps_dir}/${this.__env__}/BSEC2 Software Library/src/cortex-m4/fpv4-sp-d16-hard"
|
||||||
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/t-echo>
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/t-echo>
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${nrf52840_base.lib_deps}
|
${nrf52840_base.lib_deps}
|
||||||
|
Loading…
Reference in New Issue
Block a user