{"id":1422,"date":"2022-01-13T13:27:36","date_gmt":"2022-01-13T13:27:36","guid":{"rendered":"https:\/\/picockpit.com\/raspberry-pi\/?p=1422"},"modified":"2023-11-13T09:44:59","modified_gmt":"2023-11-13T09:44:59","slug":"teach-bme688-how-to-smell","status":"publish","type":"post","link":"https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/","title":{"rendered":"Teach your BME688 how to smell"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"638\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/Teach-Your-BME688-How-To-Smell-Title-Image.png\" alt=\"Teach Your BME688 How To Smell Title Image\" class=\"wp-image-5957\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/Teach-Your-BME688-How-To-Smell-Title-Image.png 960w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/Teach-Your-BME688-How-To-Smell-Title-Image-300x199.png 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/Teach-Your-BME688-How-To-Smell-Title-Image-768x510.png 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/Teach-Your-BME688-How-To-Smell-Title-Image-18x12.png 18w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">A complete guide on how to train your BME688 sensor<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hi fellow tech enthusiasts! Bosch released the <a href=\"https:\/\/buyzero.de\/en\/products\/luftqualitatssensor-bosch-bme688-breakout-board?_pos=2&amp;_sid=9d841f7fd&amp;_ss=r\">BME688<\/a>, an awesome new sensor that can distinguish up to four different scents. This guide will explain all the details of teaching your BME688 how to distinguish smells. Don&#8217;t worry if you are new to AI or Python. This guide is suited for beginners.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So, let&#8217;s jump right ahead.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Prerequisites<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/buyzero.de\/en\/products\/raspberry-pi-4-model-b-8gb?_pos=1&amp;_sid=2d20515a2&amp;_ss=r&amp;variant=40326643974324\">Raspberry Pi<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/buyzero.de\/en\/products\/luftqualitatssensor-bosch-bme688-breakout-board?_pos=2&amp;_sid=9d841f7fd&amp;_ss=r\">BME688 Breakout Board<\/a> or <a href=\"https:\/\/buyzero.de\/en\/products\/bosch-bme688-gas-sensor-developer-kit?variant=37884583182516\">Bosch BME688 Gas Sensor Developer Kit<\/a><\/li>\n\n\n\n<li>Specimens that produce desired smells<\/li>\n\n\n\n<li>An airtight container to house the sensor and the specimen<\/li>\n\n\n\n<li><a href=\"https:\/\/www.bosch-sensortec.com\/software-tools\/software\/bme688-software\/\">BSEC and AI Studio by Bosch<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.picockpit.com\/\">PiCockpit<\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Steps<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Choose your application<\/li>\n\n\n\n<li>Record data<\/li>\n\n\n\n<li>Train the algorithm<\/li>\n\n\n\n<li>Detect smells<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">1. Choose your application<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The first step is to choose your application. For this guide I am going to use meat and cheese as examples. But there is an endless range of possibilities. You can distinguish fruits from vegetables or cleaning agents from perfume. You could also try to determine when food has gone bad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There are certain things that you should consider when choosing an application. You need many specimens for each class that you want to distinguish, to ensure that the algorithm becomes robust. To start you should choose something which is cheap and widely available. Also keep in mind that it is advisable to use normal air as one of the classes, since it will almost always be present.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To create a robust algorithm you should use at least half an hour of measurement data for each specimen. Therefore, specimens that produce a constant scent are a good choice. Also make sure to use a wide range of specimens. If for example, you only use oranges, lemons and limes for your fruit class, the sensor might fail to classify a raspberry as fruit, because it is too different from the specimens you used for training. The more different specimens are used the better.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once you have finalised your choice it is time to create a new AI Studio project. Open AI Studio and press the <span style=\"background-color:#0a3ec2\" class=\"tadv-background-color\"> <span style=\"color:#074b68\" class=\"has-inline-color\"><strong><span style=\"color:#ffffff\" class=\"tadv-color\">Create Project &#8230;<\/span><\/strong><\/span> <\/span> Button. Press <strong>Configure BME Board<\/strong> if you want to record data with a specific configuration.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Record data<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This process varies, depending on if you use the <a style=\"font-size: revert;\" href=\"https:\/\/buyzero.de\/en\/products\/luftqualitatssensor-bosch-bme688-breakout-board?_pos=2&amp;_sid=9d841f7fd&amp;_ss=r\">BME688 Breakout Board<\/a><span style=\"font-size: revert; color: initial;\"> or <\/span><a style=\"font-size: revert;\" href=\"https:\/\/buyzero.de\/en\/products\/bosch-bme688-gas-sensor-developer-kit?variant=37884583182516\">Bosch BME688 Gas Sensor Developer Kit<\/a> (further shuttle board). The shuttle board is easier to use and will capture data eight times faster than the breakout board, but it is a lot more expensive. I will explain both methods in detail in the following sections.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong><span style=\"color:#6038b2\" class=\"has-inline-color\">Note:<\/span><\/strong> The BME688 sensor needs some time to adjust to the environment and burn in. Make sure to leave it running for at least 24 hours before recording your training data<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Record data with the BME688 Shuttle Board<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">BOSCH equipped the shuttle board with eight BME688 sensors, hence it produces eight times as much data in the same amount of time. All the software is already installed, and it is ready to go out of the box. Watch <a href=\"https:\/\/youtu.be\/4vdliMRtxBY\">this video tutorial by Bosch<\/a> to learn about the measurement process.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you are recording many specimens in a single session you might want to note down the sequence of specimens to avoid confusion. You can always crop the data in AI Studio later so don&#8217;t be afraid to capture lots of data.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Record data with the BME688 Breakout Board<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If you are using the <a style=\"font-size: revert;\" href=\"https:\/\/buyzero.de\/en\/products\/luftqualitatssensor-bosch-bme688-breakout-board?_pos=2&amp;_sid=9d841f7fd&amp;_ss=r\">BME688 Breakout Board<\/a><span style=\"font-size: revert; color: initial;\"> <\/span>I still advise you to watch the <a href=\"https:\/\/youtu.be\/4vdliMRtxBY\">Bosch tutorial<\/a> because it provides some useful information about the training process in AI Studio. But to record the training data some additional steps are required.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We at <a href=\"https:\/\/pi3g.com\/\">pi3g<\/a> created a python library for the BME68X sensors, which you can upgrade with <a href=\"https:\/\/www.bosch-sensortec.com\/software-tools\/software\/bme688-software\/\">Boschs BSEC 2.0<\/a>. So it is helpful if you have some python experience, but it is not necessary.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong><span style=\"color:#6038b2\" class=\"has-inline-color\">Note:<\/span><\/strong> See the installation and usage instructions directly on our <a href=\"https:\/\/github.com\/pi3g\/bme68x-python-library\">GitHub<\/a>.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Start by cloning our <a href=\"https:\/\/github.com\/pi3g\/bme68x-python-library\">bme68x-python-library<\/a>. This can be done by executing the following command in a bash terminal.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"git clone https:\/\/github.com\/pi3g\/bme68x-python-library.git\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9\">git<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">clone<\/span><span style=\"color: #D8DEE9FF\"> https<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #616E88\">\/\/github.com\/pi3g\/bme68x-python-library.git<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Now you need to build and install the bme68x python module. The <a href=\"https:\/\/www.bosch-sensortec.com\/software-tools\/software\/bme688-software\/\">BSEC 2.0<\/a> is proprietary software so you need to download version 2.0.6.1 directly from Bosch and agree to their license. Unzip it into the bme68x-python-library folder and proceed with these commands.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"cd path\/to\/bme68x-python-library\nsudo python3 setup.py install\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9\">cd<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">path<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">to<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">bme68x<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">python<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9\">library<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">sudo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">python3<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">setup<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">py<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">install<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Now you can run the <strong>bmerawdata.py<\/strong> script with the default settings.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"cd tools\/bmerawdata\npython3 bmerawdata.py\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9\">cd<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">tools<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9\">bmerawdata<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">python3<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">bmerawdata<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">py<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The script will display the recorded data after each measurement. Terminate the script and save the data in an AI Studio compatible file by pressing <strong>Ctrl+c<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Train the algorithm<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Import data<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Regardless whether you are using the <a style=\"font-size: revert;\" href=\"https:\/\/buyzero.de\/en\/products\/luftqualitatssensor-bosch-bme688-breakout-board?_pos=2&amp;_sid=9d841f7fd&amp;_ss=r\">BME688 Breakout Board<\/a><span style=\"font-size: revert; color: initial;\"> or the <\/span><a style=\"font-size: revert;\" href=\"https:\/\/buyzero.de\/en\/products\/bosch-bme688-gas-sensor-developer-kit?variant=37884583182516\">Bosch BME688 Gas Sensor Developer Kit<\/a>, the next step is to import the data into AI Studio. Press the <span style=\"background-color:#0a3ec2\" class=\"tadv-background-color\"> <span style=\"color:#074b68\" class=\"has-inline-color\"><strong><span style=\"color:#ffffff\" class=\"tadv-color\">Import Data<\/span><\/strong><\/span> <\/span> Button and select your .bmerawdata file.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"919\" height=\"762\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ImportData.png\" alt=\"\" class=\"wp-image-1453\" style=\"width:509px;height:421px\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ImportData.png 919w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ImportData-300x249.png 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ImportData-768x637.png 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ImportData-14x12.png 14w\" sizes=\"auto, (max-width: 919px) 100vw, 919px\" \/><figcaption class=\"wp-element-caption\">Import Data dialog<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Your session needs a meaningful name. It is suitable to choose an enumeration of the specimens.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can see a plot of your data for example of the gas data channel as shown below.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"456\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-GasDataChannel-1024x456.png\" alt=\"\" class=\"wp-image-1454\" style=\"width:705px;height:314px\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-GasDataChannel-1024x456.png 1024w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-GasDataChannel-300x134.png 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-GasDataChannel-768x342.png 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-GasDataChannel-18x8.png 18w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-GasDataChannel.png 1402w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Gas data channel<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">If the data comes from the shuttle board you can switch between the data of the eight sensors. Each one of the coloured lines represents one step of the heater profile that was used to capture the data.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong><span style=\"color:#6038b2\" class=\"has-inline-color\">Note:<\/span><\/strong> In most cases you should only use the gas data channel for training.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Now we need to label our specimens. If you recorded the data with the shuttle board and used the on-board buttons to mark specimens, you will already be able to see a template for each one of them. You can also crop the specimens and create new ones (for example if you recorded multiple specimens using our breakout board).<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"419\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-SpecimenLabels-1024x419.png\" alt=\"\" class=\"wp-image-1455\" style=\"width:620px;height:253px\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-SpecimenLabels-1024x419.png 1024w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-SpecimenLabels-300x123.png 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-SpecimenLabels-768x314.png 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-SpecimenLabels-18x7.png 18w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-SpecimenLabels.png 1146w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Specimen labels and time stamps<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">After you have finished editing the session press the<span style=\"color:#074b68\" class=\"has-inline-color\"><strong> <span style=\"background-color:#0a3ec2\" class=\"tadv-background-color\"> <span style=\"color:#074b68\" class=\"has-inline-color\"><strong><span style=\"color:#ffffff\" class=\"tadv-color\">Import Data<\/span><\/strong><\/span> <\/span> <\/strong><\/span>button in the bottom right corner of the dialog.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once you imported and labelled all your specimens it is time to create and train the algorithm.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Create the algorithm<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Select <span class=\"tadv-color\" style=\"color:#0a3ec2\"><span class=\"tadv-background-color\" style=\"background-color:#f5f5f5\"> <strong>My Algorithms<\/strong><\/span><\/span> at the top and click on <span class=\"tadv-background-color\" style=\"background-color:#0a3ec2\"> <mark style=\"background-color:rgba(0, 0, 0, 0);color:#074b68\" class=\"has-inline-color\"><strong><span class=\"tadv-color\" style=\"color:#ffffff\">+ New Algorithm<\/span><\/strong><\/mark> <\/span>. Give your algorithm a name that represents what it is supposed to do, in my case <strong>AirMeatCheese<\/strong>. Then add the classes. I called my classes NormalAir, Meat and Cheese. Select which specimens belong to which class and choose a colour for each class.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"529\" height=\"339\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-NameAlgorithm.png\" alt=\"Name your algorithm\" class=\"wp-image-1458\" style=\"width:420px;height:269px\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-NameAlgorithm.png 529w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-NameAlgorithm-300x192.png 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-NameAlgorithm-18x12.png 18w\" sizes=\"auto, (max-width: 529px) 100vw, 529px\" \/><figcaption class=\"wp-element-caption\">Name your algorithm<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"397\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-Classes-1024x397.png\" alt=\"Edit your classes\" class=\"wp-image-1459\" style=\"width:685px;height:265px\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-Classes-1024x397.png 1024w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-Classes-300x116.png 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-Classes-768x298.png 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-Classes-18x7.png 18w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-Classes.png 1147w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Edit your classes<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">To add or remove specimens you can click on one of the classes. Here is an example of what the <strong>Meat<\/strong> class looks like.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"699\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ClassSettings-1024x699.png\" alt=\"View of Meat class\" class=\"wp-image-1460\" style=\"width:679px;height:463px\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ClassSettings-1024x699.png 1024w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ClassSettings-300x205.png 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ClassSettings-768x524.png 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ClassSettings-18x12.png 18w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ClassSettings.png 1297w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">View of Meat class<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Below the classes you can see some additional data about the algorithm.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"520\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ClassesData-1024x520.png\" alt=\"Additional algorithm data\" class=\"wp-image-1462\" style=\"width:663px;height:336px\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ClassesData-1024x520.png 1024w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ClassesData-300x152.png 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ClassesData-768x390.png 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ClassesData-18x9.png 18w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ClassesData.png 1147w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Additional algorithm data<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">The data balance shows the total measurement duration for each class. To ensure the best performance the measurement duration of each class should be equal. If the measurement duration of one of the classes is far greater, you might experience a bias of the algorithm towards that class. Also note the question mark button in front of each heading. Press it to obtain more detailed info.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong><span style=\"color:#6038b2\" class=\"has-inline-color\">Note:<\/span><\/strong> Make sure to check the BME688 AI Studio Documentation for further info.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Under data channels you can select which of the four sensor outputs you want to use for your algorithm. I recommend only using the gas data channel, since the other channels mostly depend on the environment and not on the specimen. Once you have set everything up it is time for training.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Training and export<\/h3>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"473\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-Training-1024x473.png\" alt=\"Train your algorithm\" class=\"wp-image-1464\" style=\"width:719px;height:332px\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-Training-1024x473.png 1024w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-Training-300x139.png 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-Training-768x355.png 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-Training-18x8.png 18w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-Training.png 1158w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Train your algorithm<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Here you can select the training method, the max rounds and data splitting. If you are new to neural networks, you should leave everything at the default settings. Nevertheless, I will try to explain each of those settings briefly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The only training method available at the time I am writing this is the ADAM optimizer. This is a specific way of finding a minimum in the error function (less error means more accurate predictions). You can select different batch sizes to improve training speed and stability.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Increasing the maximum training rounds is another way to improve the performance of the algorithm. For each round (often referred to as epoch) AI Studio feeds the entire training data set trough the neural network. That means a higher number of maximum rounds will increase the time it takes to train the algorithm. Most of the time AI Studio will detect if a minimum is reached and finish training before the maximum rounds are reached. This reduces training time and avoids overfitting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Overfitting means that the neural network has adjusted too much to the training data. If the algorithm scores very high accuracy in training but performs poorly in real life testing, you might want to decrease the maximum training rounds.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The data splitting setting allows you to select how much of your recorded data is used for training and how much is used for testing. You should avoid using more than a third of the data for testing. As the name suggests, the algorithm will only use the training data for training. After the training is finished AI Studio will evaluate the algorithm using the testing data, which it has never seen before.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Press <span style=\"color:#074b68\" class=\"has-inline-color\"><strong><span style=\"background-color:#0a3ec2\" class=\"tadv-background-color\"> <span style=\"color:#074b68\" class=\"has-inline-color\"><strong><span style=\"color:#ffffff\" class=\"tadv-color\">Train Neural Net<\/span><\/strong><\/span> <\/span><\/strong><\/span> to start the training. You will see the estimated remaining training time and  line chart of the accuracy and loss.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"549\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-TrainingProcess-1024x549.png\" alt=\"Training progress\" class=\"wp-image-1467\" style=\"width:772px;height:413px\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-TrainingProcess-1024x549.png 1024w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-TrainingProcess-300x161.png 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-TrainingProcess-768x412.png 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-TrainingProcess-18x10.png 18w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-TrainingProcess.png 1107w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Training progress<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">With each epoch the Accuracy and Validation Accuracy should improve, while the Loss and Validation Loss should decrease. Wait until the training is finished.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When the training is done, check the confusion matrix. It contains important information about the training results. The most interesting stat is the accuracy but if your training data is unevenly distributed the F1 score might be a better metric.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"505\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ConfusionMatrix-1024x505.png\" alt=\"Confusion matrix and training results\" class=\"wp-image-1468\" style=\"width:702px;height:346px\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ConfusionMatrix-1024x505.png 1024w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ConfusionMatrix-300x148.png 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ConfusionMatrix-768x379.png 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ConfusionMatrix-18x9.png 18w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/BME688-ConfusionMatrix.png 1096w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Confusion matrix and training results<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">You will rarely achieve an accuracy of over 90% so if the accuracy is above 80% you should export the algorithm to test it. We will detect smells using our <a style=\"font-size: revert;\" href=\"https:\/\/www.picockpit.com\/\">PiCockpit<\/a> web interface. Make sure to export the algorithm for BSEC version 2.0.6.1 since <a style=\"font-size: revert;\" href=\"https:\/\/www.picockpit.com\/\">PiCockpit<\/a> only supports this version so far.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong><span style=\"color:#6038b2\" class=\"has-inline-color\">Note:<\/span><\/strong> In most cases the training will be finished before the estimated duration is reached.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">4. Detect smells<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To detect smells simply install the <a style=\"font-size: revert;\" href=\"https:\/\/www.picockpit.com\/\">PiCockpit<\/a> client and connect it to your account. If you do not have <a style=\"font-size: revert;\" href=\"https:\/\/www.picockpit.com\/\">PiCockpit<\/a> yet just register for free and follow the instructions given there. Our Digital Nose App allows you to upload your trained algorithm and see live predictions via the web interface. Check out the <a href=\"https:\/\/picockpit.com\/raspberry-pi\/bme688-digitalnose-detect-different-smell-patterns-with-bosch-bme688-sensor-and-ai-technology\/\">Digital Nose help<\/a> for a complete explanation on how to use the app.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Another way to detect smells is by using our <a href=\"https:\/\/github.com\/pi3g\/bme68x-python-library\">BME68X Python extension<\/a>. This requires some python coding but offers more control and allows you to create your own applications using your algorithm. Refer to the <a href=\"https:\/\/github.com\/pi3g\/bme68x-python-library\/blob\/main\/README.md\">README.md<\/a>, the <a href=\"https:\/\/github.com\/pi3g\/bme68x-python-library\/blob\/main\/PythonDocumentation.md\">Documentation.md<\/a> and the <a href=\"https:\/\/github.com\/pi3g\/bme68x-python-library\/tree\/main\/examples\">examples<\/a> folder to learn how to install and use the extension.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So there you have it. You should now be able to record data, train your algorithm and detect smells. Please let me know if you found this guide useful or if you experienced any trouble while following this guide.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Contact me at nathan@pi3g.com<\/p>\n<div class=\"shariff shariff-align-center shariff-widget-align-left shariff-buttonstretch\"><ul class=\"shariff-buttons theme-white orientation-horizontal buttonsize-medium\"><li class=\"shariff-button twitter shariff-nocustomcolor\" style=\"background-color:#595959\"><a href=\"https:\/\/twitter.com\/share?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fteach-bme688-how-to-smell%2F&text=Teach%20your%20BME688%20how%20to%20smell\" title=\"Share on X\" aria-label=\"Share on X\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#000; color:#000\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#000\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path fill=\"#000\" d=\"M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#000\">share<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button facebook shariff-nocustomcolor\" style=\"background-color:#4273c8\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fteach-bme688-how-to-smell%2F\" title=\"Share on Facebook\" aria-label=\"Share on Facebook\" role=\"button\" rel=\"nofollow\" class=\"shariff-link\" style=\"; background-color:#3b5998; color:#3b5998\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#3b5998\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 18 32\"><path fill=\"#3b5998\" d=\"M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#3b5998\">share<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button telegram shariff-nocustomcolor\" style=\"background-color:#4084A6\"><a href=\"https:\/\/telegram.me\/share\/url?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fteach-bme688-how-to-smell%2F&text=Teach%20your%20BME688%20how%20to%20smell\" title=\"Share on Telegram\" aria-label=\"Share on Telegram\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#0088cc; color:#0088cc\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#0088cc\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 32 32\"><path fill=\"#0088cc\" d=\"M30.8 6.5l-4.5 21.4c-.3 1.5-1.2 1.9-2.5 1.2L16.9 24l-3.3 3.2c-.4.4-.7.7-1.4.7l.5-7L25.5 9.2c.6-.5-.1-.8-.9-.3l-15.8 10L2 16.7c-1.5-.5-1.5-1.5.3-2.2L28.9 4.3c1.3-.5 2.3.3 1.9 2.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#0088cc\">share<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button reddit shariff-nocustomcolor\" style=\"background-color:#ff5700\"><a href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fteach-bme688-how-to-smell%2F\" title=\"Share on Reddit\" aria-label=\"Share on Reddit\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#ff4500; color:#ff4500\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#ff4500\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\"><path fill=\"#ff4500\" d=\"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#ff4500\">share<\/span>&nbsp;<\/a><\/li><\/ul><\/div>","protected":false},"excerpt":{"rendered":"<p>A complete guide on how to train your BME688 sensor Hi fellow tech enthusiasts! Bosch released the BME688, an awesome new sensor that can distinguish up to four different scents. This guide will explain all the details of teaching your BME688 how to distinguish smells. Don&#8217;t worry if you are new to AI or Python.&hellip;<\/p>\n","protected":false},"author":3,"featured_media":5957,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[67,3],"tags":[210,850,849,856,797,851,816,858,854,462,855,193,486,447,476,187,853,857,852],"class_list":["post-1422","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-picockpit-apps","category-raspberry-pi-how-to","tag-ai","tag-ai-studio","tag-beginners-guid","tag-bme-board","tag-bme688","tag-bosch","tag-bsec","tag-digital-nose","tag-fragrance","tag-newbie","tag-perfume","tag-picockpit","tag-project","tag-projects","tag-python","tag-raspberry-pi","tag-scent","tag-shuttle-board","tag-smell"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Teach your BME688 how to smell | PiCockpit<\/title>\n<meta name=\"description\" content=\"In this article, we show you how to configure your BME688 sensor to distinguish different scents and smells!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Teach your BME688 how to smell | PiCockpit\" \/>\n<meta property=\"og:description\" content=\"In this article, we show you how to configure your BME688 sensor to distinguish different scents and smells!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/\" \/>\n<meta property=\"og:site_name\" content=\"PiCockpit\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/pi3gshop\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-13T13:27:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-13T09:44:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/Teach-Your-BME688-How-To-Smell-Title-Image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"638\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Nathan Busler\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@pi3g\" \/>\n<meta name=\"twitter:site\" content=\"@pi3g\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nathan Busler\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/teach-bme688-how-to-smell\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/teach-bme688-how-to-smell\\\/\"},\"author\":{\"name\":\"Nathan Busler\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/person\\\/e38fef75134e5e54175b2615a8c3eb47\"},\"headline\":\"Teach your BME688 how to smell\",\"datePublished\":\"2022-01-13T13:27:36+00:00\",\"dateModified\":\"2023-11-13T09:44:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/teach-bme688-how-to-smell\\\/\"},\"wordCount\":1835,\"commentCount\":9,\"publisher\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/teach-bme688-how-to-smell\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/Teach-Your-BME688-How-To-Smell-Title-Image.png\",\"keywords\":[\"AI\",\"AI studio\",\"beginner's guid\",\"bme board\",\"bme688\",\"Bosch\",\"bsec\",\"digital nose\",\"fragrance\",\"Newbie\",\"perfume\",\"picockpit\",\"project\",\"Projects\",\"python\",\"Raspberry Pi\",\"scent\",\"shuttle board\",\"smell\"],\"articleSection\":[\"PiCockpit Apps\",\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/teach-bme688-how-to-smell\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/teach-bme688-how-to-smell\\\/\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/teach-bme688-how-to-smell\\\/\",\"name\":\"Teach your BME688 how to smell | PiCockpit\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/teach-bme688-how-to-smell\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/teach-bme688-how-to-smell\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/Teach-Your-BME688-How-To-Smell-Title-Image.png\",\"datePublished\":\"2022-01-13T13:27:36+00:00\",\"dateModified\":\"2023-11-13T09:44:59+00:00\",\"description\":\"In this article, we show you how to configure your BME688 sensor to distinguish different scents and smells!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/teach-bme688-how-to-smell\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/teach-bme688-how-to-smell\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/teach-bme688-how-to-smell\\\/#primaryimage\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/Teach-Your-BME688-How-To-Smell-Title-Image.png\",\"contentUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/Teach-Your-BME688-How-To-Smell-Title-Image.png\",\"width\":960,\"height\":638,\"caption\":\"Teach Your BME688 How To Smell Title Image\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/teach-bme688-how-to-smell\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tutorials\",\"item\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/category\\\/raspberry-pi-how-to\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Teach your BME688 how to smell\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#website\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\",\"name\":\"PiCockpit\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\",\"name\":\"PiCockpit.com\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Screenshot-from-2023-07-24-15-01-24.png\",\"contentUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Screenshot-from-2023-07-24-15-01-24.png\",\"width\":1165,\"height\":283,\"caption\":\"PiCockpit.com\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/pi3gshop\",\"https:\\\/\\\/x.com\\\/pi3g\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/person\\\/e38fef75134e5e54175b2615a8c3eb47\",\"name\":\"Nathan Busler\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/93fef66631dac0f47ce2c90f774cd4e4fe44028ea5266602e20fbf246f7d14f9?s=96&d=blank&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/93fef66631dac0f47ce2c90f774cd4e4fe44028ea5266602e20fbf246f7d14f9?s=96&d=blank&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/93fef66631dac0f47ce2c90f774cd4e4fe44028ea5266602e20fbf246f7d14f9?s=96&d=blank&r=g\",\"caption\":\"Nathan Busler\"},\"sameAs\":[\"https:\\\/\\\/buyzero.de\"],\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/author\\\/nathan\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Teach your BME688 how to smell | PiCockpit","description":"In this article, we show you how to configure your BME688 sensor to distinguish different scents and smells!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/","og_locale":"en_US","og_type":"article","og_title":"Teach your BME688 how to smell | PiCockpit","og_description":"In this article, we show you how to configure your BME688 sensor to distinguish different scents and smells!","og_url":"https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/","og_site_name":"PiCockpit","article_publisher":"https:\/\/www.facebook.com\/pi3gshop","article_published_time":"2022-01-13T13:27:36+00:00","article_modified_time":"2023-11-13T09:44:59+00:00","og_image":[{"width":960,"height":638,"url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/Teach-Your-BME688-How-To-Smell-Title-Image.png","type":"image\/png"}],"author":"Nathan Busler","twitter_card":"summary_large_image","twitter_creator":"@pi3g","twitter_site":"@pi3g","twitter_misc":{"Written by":"Nathan Busler","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/#article","isPartOf":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/"},"author":{"name":"Nathan Busler","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/person\/e38fef75134e5e54175b2615a8c3eb47"},"headline":"Teach your BME688 how to smell","datePublished":"2022-01-13T13:27:36+00:00","dateModified":"2023-11-13T09:44:59+00:00","mainEntityOfPage":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/"},"wordCount":1835,"commentCount":9,"publisher":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/#primaryimage"},"thumbnailUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/Teach-Your-BME688-How-To-Smell-Title-Image.png","keywords":["AI","AI studio","beginner's guid","bme board","bme688","Bosch","bsec","digital nose","fragrance","Newbie","perfume","picockpit","project","Projects","python","Raspberry Pi","scent","shuttle board","smell"],"articleSection":["PiCockpit Apps","Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/","url":"https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/","name":"Teach your BME688 how to smell | PiCockpit","isPartOf":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#website"},"primaryImageOfPage":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/#primaryimage"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/#primaryimage"},"thumbnailUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/Teach-Your-BME688-How-To-Smell-Title-Image.png","datePublished":"2022-01-13T13:27:36+00:00","dateModified":"2023-11-13T09:44:59+00:00","description":"In this article, we show you how to configure your BME688 sensor to distinguish different scents and smells!","breadcrumb":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/#primaryimage","url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/Teach-Your-BME688-How-To-Smell-Title-Image.png","contentUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/01\/Teach-Your-BME688-How-To-Smell-Title-Image.png","width":960,"height":638,"caption":"Teach Your BME688 How To Smell Title Image"},{"@type":"BreadcrumbList","@id":"https:\/\/picockpit.com\/raspberry-pi\/teach-bme688-how-to-smell\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/picockpit.com\/raspberry-pi\/"},{"@type":"ListItem","position":2,"name":"Tutorials","item":"https:\/\/picockpit.com\/raspberry-pi\/category\/raspberry-pi-how-to\/"},{"@type":"ListItem","position":3,"name":"Teach your BME688 how to smell"}]},{"@type":"WebSite","@id":"https:\/\/picockpit.com\/raspberry-pi\/#website","url":"https:\/\/picockpit.com\/raspberry-pi\/","name":"PiCockpit","description":"","publisher":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/picockpit.com\/raspberry-pi\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization","name":"PiCockpit.com","url":"https:\/\/picockpit.com\/raspberry-pi\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/logo\/image\/","url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Screenshot-from-2023-07-24-15-01-24.png","contentUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Screenshot-from-2023-07-24-15-01-24.png","width":1165,"height":283,"caption":"PiCockpit.com"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/pi3gshop","https:\/\/x.com\/pi3g"]},{"@type":"Person","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/person\/e38fef75134e5e54175b2615a8c3eb47","name":"Nathan Busler","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/93fef66631dac0f47ce2c90f774cd4e4fe44028ea5266602e20fbf246f7d14f9?s=96&d=blank&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/93fef66631dac0f47ce2c90f774cd4e4fe44028ea5266602e20fbf246f7d14f9?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/93fef66631dac0f47ce2c90f774cd4e4fe44028ea5266602e20fbf246f7d14f9?s=96&d=blank&r=g","caption":"Nathan Busler"},"sameAs":["https:\/\/buyzero.de"],"url":"https:\/\/picockpit.com\/raspberry-pi\/author\/nathan\/"}]}},"_links":{"self":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/posts\/1422","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/comments?post=1422"}],"version-history":[{"count":15,"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/posts\/1422\/revisions"}],"predecessor-version":[{"id":5959,"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/posts\/1422\/revisions\/5959"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/media\/5957"}],"wp:attachment":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/media?parent=1422"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/categories?post=1422"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/wp-json\/wp\/v2\/tags?post=1422"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}