05-18-2019 08:07 PM - edited 05-19-2019 08:27 AM
I have tried to use two BME680 at ESP32 for compare the values for two identical sensors.
Using for each BME a seperate I2C bus.
If I try the BME680_basic_data_logging sample all is working fine, I get values from both sensors.
Using the BME680_config_state sample I will get for the second sensor the iaqSensor.status value "100" back.
Didn't found it in documentation / source code - what does this mean?
As explanation - I use an array for the sensors - maybe the bsec lib have any problems here with it?
Bsec iaqSensor[2]; ... iaqSensor[0].begin(BME680_I2C_ADDR_PRIMARY, I2Cone); iaqSensor[1].begin(BME680_I2C_ADDR_PRIMARY, I2Ctwo); ...
void loop(void)
{
if (iaqSensor[0].run()) {
...
}
if (iaqSensor[1].run()) {
...
}
}
of course modified the functions:
checkIaqSensorStatus(int n) updateState(int n) loadState(int n)
So two questions:
- what does mean the errorcode 100
- is it possible to use the bsce lib with two sensors in one sketch?
Thanks!
Michael
EDIT: In the meantime I have seen that it seems not to be possible without major changes in lib to use 2 sensors with this samples.
02-10-2020 12:11 PM
03-11-2022 11:11 AM
Hi,
jumping in two years later, I just want to add that I think, C++ creating two BSEC library instances, as described in the previous post, might possibly not be the case.
While the Github example indeed creates two instances of the C++ type Bsec, there is still only one instance of the BSEC C library.
What actually happens in the Github example bsec.cpp, is the usual state switching (calling bsec_init, _update_subscriptions and _set_state), which was added in November 2019: