03-29-2022 02:02 PM - edited 03-29-2022 02:13 PM
Hello everyone,
I have a little problem with my new bme688 sensor. Sort breaf: I need to use it for temperature, humidity and pressure, to monitor a grow room. I took this sensor in hope to replace my currentDHT22( as I need pressure measurement as well, DHT22 have only temp and hum). My problem starts after some time, over 30 min, around a couple hours, of good readings my sensor suddenly give 195C and 100% humidity and seems to never come back to normal readings again. I'm using "sSense_BME680.h" library( - https://itbrainpower.net/downloadables/ssense_BME680_example.ino, from here) and arduino Due. It seems I can't make BSEC or BSEC2, it won't compile on my Due even if I do the steps from github( - https://github.com/BoschSensortec/Bosch-BSEC2-Library, this one).
i2c breakout that I'm using - https://itbrainpower.net/sensors/BME688
04-16-2022 07:28 PM - edited 04-17-2022 11:21 AM
I did that, giving me this error on ESP32 Wemos Lolin: In file included from C:\Users\d_rad\Documents\Arduino\libraries\Bosch-BSEC2-Library-master\examples\generic_examples\basic\basic.ino:21:C:\Users\d_rad\Documents\Arduino\libraries\Bosch-BSEC2-Library-master\src/bsec2.h:50:10: fatal error: bme68xLibrary.h: No such file or directory#include "bme68xLibrary.h"^~~~~~~~~~~~~~~~~compilation terminated.exit status 1Error compiling for board WEMOS LOLIN32.
Thb I don't know from where to take it atm, I'm using the library from bme680 and its working ok till now. Not worth to keep trying with bsecv2. But thank you all for replies and help.
Update: Not sure what I've done yestarday night but the bsecv2 library is working on my esp32 now. But I have another small problem, the output of the sensor, acording to the library, is a string corresponding to cases, like: BSEC_OUTPUT_RAW_TEMPERATURE, BSEC_OUTPUT_RAW_PRESSURE. But I need to convert that to something so I can publish it over mqtt. I did this but nothing is publishing...Have to say the sensor print the correct values on serial but I guess there is something in my conversion to char that breaks or lose the data.
void newDataCallback(const bme68xData data, const bsecOutputs outputs, Bsec2 bsec) {
if (!outputs.nOutputs) {return;}for (uint8_t i = 0; i < outputs.nOutputs; i++) {const bsecData output = outputs.output[i];switch (output.sensor_id) {case BSEC_OUTPUT_RAW_TEMPERATURE: {String test = String(output.signal);char buff[10];test.toCharArray(buff, 10);client.publish("feedback/growTemp", buff);}break;// case BSEC_OUTPUT_RAW_PRESSURE:// client.publish("feedback/growPress", String(output.signal).c_str());// break;// case BSEC_OUTPUT_RAW_HUMIDITY:// client.publish("feedback/growHum", String(output.signal).c_str());// break;// case BSEC_OUTPUT_RAW_GAS:// client.publish("feedback/growGas", String(output.signal).c_str());// break;}newData = false;}}
Update 2: I made it 😄
Still don't know 100% how but adding void checkBsecStatus(Bsec2 bsec) from the basic example made everthing work as it should, I have the readings send over MQTT an everything seems good. Hope it will stay this way. Thank everyone again for the info and the help.
04-19-2022 11:25 AM
Hi Radu,
You could download BSEC2 package from here: https://www.bosch-sensortec.com/software-tools/software/bme688-software/
And compile BSEC example in this package.
You can write program based on the output of BSEC algorithm and convert it into the format you need.
04-20-2022 06:16 PM
05-06-2022 04:50 AM
Hi Radu,
BSEC integrated temperatures, humidity compensation algorithm. If you read sensor data from BSEC output, the data was compensated.