Hello everyone, I have the following experimental setup: I want to use the BME688 to distinguish between normal air and compressed air (containing oil). To do this, I have recorded 4 hours of training data in 2 sessions using the Development Kit.
I then loaded the data into the BME AI Studio, processed it and trained an algorithm. The resulting algorithm had a Heater Profile with an accuracy of 99.75%.
Extended testing of the algorithm in the AI studio on another set of training data (normal air) showed a clear assignment.
In a further step, I now took the breakout board from pi3g.com and took the example project from https://github.com/pi3g/BME688CheeseMeatDetector and adapted it to my use case.
If I now test my setup in normal air, the value runs unambiguously (1.0/0.0) to compressed air.
Now I have the following questions:
Has anyone had experience in this direction and can tell me whether the project is at all promising?
What are the limits of the sensor in terms of detecting odours?
What could be the reason that the test in the studio deviates so much from the application on the breakout board?
Many thanks and best regards
Solved! Go to Solution.
I have tried this with Ethanol and Air sucessfully.
I have a tutorial with data/models and python code here: https://github.com/mcalisterkm/teach-your-pi-to-sniff-with-bme688
If the model that AI studio builds has a high degree of discrimination, I can't see why it would not work the same with a breakout board (PI3G, Pimoroni, Adafruit, etc ). Are you using BSEC 2.4.0 ? AI-Studio and BSEC are not at the same version, and you need to be sure of a supported mix, there is a table in my tutorial which lists current versions.
I am surprised you had any sucess recording training data with a single sensor, and sucessfully generating a model in AI-Studio. The PI3G bmerawdata.py has multiple problems (file naming, data structure, etc) that prevent a sucessful model being built. Using the 8 sensor dev-kit is the way to go. Using a model on a single sensor is relatively easy.
One thing to bear in mind is that a model is specific to the data set, in my case I recorded Ethenol is high concentrations. When I used the model to detect low concentrations it mis-categorized it. With more data collection to cover a wider range of scenarios I am sure I could have generated a model with better results across a wider range of concentrations. In your case you are trying to detect an oil mist, that could be something that fouls the sensor - touching the sensor contaminates it requiring cleaning.