Machine learning can be used to combine different sensor data together to make decisions and classifications. This is a form of sensor fusion. Instead of mixing the readings together to get something like an absolute heading (from an inertial measurement unit), we can instead feed the raw data to a neural network. The network will learn the best ways to mix the data to help make predictions and classifications.
This tutorial will demonstrate the process of collecting gas data to train a machine learning model that can identify different odors. We then deploy the model to a Seeed Studio Wio Terminal so that odor classification can be performed in real time.
A written guide for building this AI artificial nose can be found here:
https://www.digikey.com/en/maker/projects/how-to-make-an-ai-powered-artificialnose/3fcf88a89efa47a1b231c5ad2097716aThe first part of the project involves capturing raw data from a variety of gas sensors, including temperature, humidity, pressure, equivalent CO2, NO2, ethanol, CO, and two different VOC measurements. From there, we analyze the data using Python in Google Colab. That allows us to normalize all of the data so that it fits between the range 0 and 1. Note that you will need to record the minimums and ranges for each of the sensor channels, as you will need to perform normalization on raw data during inference.
Using this information, we can also drop sensor channels that do not appear to help us differentiate among odors. For example, the pressure channel offers little variation among the measurements, so we get rid of it.
Next, we import our preprocessed data into an Edge Impulse project, which guides us through the process of building a neural network that can identify odors. We use Edge Impulse to test our neural network accuracy and generate an Arduino library for us to perform real-time inference.
Finally, we deploy our model to the Wio Terminal, which provides us with inference results on the LCD.
Product Links:
Wio Terminal -
https://www.digikey.com/en/products/detail/seeed-technology-co-ltd/102991299/11689373Grove - Multichannel Gas Sensor v2 -
https://www.digikey.com/en/products/detail/seeed-technology-co.,-ltd/101020820/14317045Grove - SPG30 VOC and eCO2 Gas Sensor -
https://www.digikey.com/en/products/detail/seeed-technology-co.,-ltd/101020512/9489253Grove - BME680 Temperature, Humidity, and Pressure Sensor -
https://www.digikey.com/es/products/detail/seeed-technology-co-ltd/101020513/9369933Grove - I2C Hub -
https://www.digikey.com/en/products/detail/seeed-technology-co-ltd/103020006/5487896Related Videos:
Intro to TinyML Part 1: Training a Neural Network for Arduino in TensorFlow -
https://www.youtube.com/watch?v=BzzqYNYOcWcIntro to TinyML Part 2: Deploying a TensorFlow Lite Model to Arduino -
https://www.youtube.com/watch?v=dU01M61RW8sRelated Project Links:
Intro to TinyML Part 1: Training a Model for Arduino in TensorFlow -
https://www.digikey.com/en/maker/projects/intro-to-tinyml-part-1-training-a-model-for-arduino-in-tensorflow/8f1fc8c0b83d417ab521c48864d2a8ecIntro to TinyML Part 2: Deploying a TensorFlow Lite Model to Arduino -
https://www.digikey.com/en/maker/projects/intro-to-tinyml-part-2-deploying-a-tensorflow-lite-model-to-arduino/59bf2d67256f4b40900a3fa670c14330Related Articles:
What is Edge AI? Machine Learning + IoT -
https://www.digikey.com/en/maker/projects/what-is-edge-ai-machine-learning-iot/4f655838138941138aaad62c170827afLearn more:
Maker.io -
https://www.digikey.com/en/makerDigi-Key’s Blog – TheCircuit
https://www.digikey.com/en/blogConnect with Digi-Key on Facebook
https://www.facebook.com/digikey.electronics/And follow us on Twitter
https://twitter.com/digikey