POC Breath using SMD commercial sensors

Dependencies:   iAQ_Core Adafruit_SGP30_mbed mbed BME680

Revision:
8:976c405a1da5
Parent:
7:f37620a76a1d
Child:
9:81d1b4833516
diff -r f37620a76a1d -r 976c405a1da5 main.cpp
--- a/main.cpp	Fri May 29 15:41:58 2020 +0000
+++ b/main.cpp	Sun Jun 14 15:01:59 2020 +0000
@@ -113,7 +113,7 @@
     wait(0.5);
     ttl.printf("$$");//enter command mode
     wait(0.5);
-    ttl.printf("SN,POC Breath\r");//set new name
+    ttl.printf("SN,POC Breath v3\r");//set new name
     wait(0.5);
     ttl.printf("SS,C0\r");//set transparent uart
     wait(0.5);
@@ -260,9 +260,7 @@
         myiAQ_Core.iAQ_Core_GetNewReading (  &myiAQ_Core_data ); //Measurement from iAQ-Core C
         wait(0.1);
         sgp30.IAQmeasure();//Measurement from SGP30
-
         rslt = myBME680.bme680_get_sensor_data ( &data, &gas_sensor ); //Measurement for BME680
-
         ZMODtemp.write(ZMODTEMPaddr,wInit,2); //maybe?
         ZMODtemp.write(ZMODTEMPaddr,wTemp,1);
         ZMODtemp.read(ZMODTEMPaddr,rTemp,2); //Returns 2 bytes
@@ -270,8 +268,8 @@
         float SiTemp=((175.72*temp_code)/65536)-46.85;
         ttl.printf("tt%.2f,ff%.2f,cc%.2f,sa%i,sb%i,sc%i,sd%i,se%i,sf%i,sg%i,sh%i,ti%.2f,ic%d,iv%d,ir%d,gc%d,gv%d,br%d,bt%.2f,bh%.2f,bp%.2f,zi%f,zh%f,zc%f,st%.2f\n",0.00,flow(), carbon(),s1(),s2(),s3(),s4(),s5(),s6(),s7(),s8(),stream.read(),myiAQ_Core_data.pred, myiAQ_Core_data.Tvoc, myiAQ_Core_data.resistance, sgp30.eCO2,sgp30.TVOC, data.gas_resistance,( data.temperature/100.0f ), ( data.humidity / 1000.0f ), ( data.pressure / 100.0f ),0.00,0.00,0.00,SiTemp);    //Results after 5 mins of ON
         rslt = myBME680.bme680_set_sensor_mode ( &gas_sensor ); //BME680 reset
-        
-        wait(0.01);
+        wait(0.1);
+
         if (bf==0) {    //finding base flow before breath
             for(i=0; i<4; i++) {
                 bfArray[i]=flow();
@@ -279,7 +277,7 @@
             }
             fv=sf/4;
             //fv=fv+0.2;
-            fv=0.1;
+            fv=0.4;
             //ttl.printf("set\n");
             bf=1;
         }
@@ -302,18 +300,16 @@
                 myiAQ_Core.iAQ_Core_GetNewReading (  &myiAQ_Core_data ); //Measurement from iAQ-Core C
                 wait(0.1);
                 sgp30.IAQmeasure();//Measurement from SGP30
-
                 rslt = myBME680.bme680_get_sensor_data ( &data, &gas_sensor ); //Measurement for BME680
-
                 ZMODtemp.write(ZMODTEMPaddr,wInit,2); //maybe?
                 ZMODtemp.write(ZMODTEMPaddr,wTemp,1);
                 ZMODtemp.read(ZMODTEMPaddr,rTemp,2); //Returns 2 bytes
                 float temp_code=(rTemp[0]<<8)+rTemp[1];
                 float SiTemp=((175.72*temp_code)/65536)-46.85;
-
                 ttl.printf("tt%.2f,ff%.2f,cc%.2f,sa%i,sb%i,sc%i,sd%i,se%i,sf%i,sg%i,sh%i,ti%.2f,ic%d,iv%d,ir%d,gc%d,gv%d,br%d,bt%.2f,bh%.2f,bp%.2f,zi%f,zh%f,zc%f,st%.2f\n",0.00,flow(), carbon(),s1(),s2(),s3(),s4(),s5(),s6(),s7(),s8(),stream.read(),myiAQ_Core_data.pred, myiAQ_Core_data.Tvoc, myiAQ_Core_data.resistance, sgp30.eCO2,sgp30.TVOC, data.gas_resistance,( data.temperature/100.0f ), ( data.humidity / 1000.0f ), ( data.pressure / 100.0f ),0.00,0.00,0.00,SiTemp);    //Results after 5 mins of ON
                 rslt = myBME680.bme680_set_sensor_mode ( &gas_sensor ); //BME680 reset
-                
+                wait(0.1);
+
                 myArray[m]=carbon();
                 wait(0.1);
             }
@@ -321,13 +317,10 @@
                 //While "flags" is enabled, keeps calculating the standard deviation.
                 for(int m=0; m<9; m++) {
                     //ttl.printf("tt%.2f,ff%.2f,cc%.2f,sa%i,sb%i,sc%i,sd%i,se%i,sf%i,sg%i,sh%i,ti%.2f\n",getTemp(),flow(), carbon(),s1(),s2(),s3(),s4(),s5(),s6(),s7(),s8(),stream.read()); //chemical sensor
-
                     myiAQ_Core.iAQ_Core_GetNewReading (  &myiAQ_Core_data ); //Measurement from iAQ-Core C
                     wait(0.1);
                     sgp30.IAQmeasure();//Measurement from SGP30
-
                     rslt = myBME680.bme680_get_sensor_data ( &data, &gas_sensor ); //Measurement for BME680
-
                     ZMODtemp.write(ZMODTEMPaddr,wInit,2); //maybe?
                     ZMODtemp.write(ZMODTEMPaddr,wTemp,1);
                     ZMODtemp.read(ZMODTEMPaddr,rTemp,2); //Returns 2 bytes
@@ -335,7 +328,7 @@
                     float SiTemp=((175.72*temp_code)/65536)-46.85;
                     ttl.printf("tt%.2f,ff%.2f,cc%.2f,sa%i,sb%i,sc%i,sd%i,se%i,sf%i,sg%i,sh%i,ti%.2f,ic%d,iv%d,ir%d,gc%d,gv%d,br%d,bt%.2f,bh%.2f,bp%.2f,zi%f,zh%f,zc%f,st%.2f\n",0.00,flow(), carbon(),s1(),s2(),s3(),s4(),s5(),s6(),s7(),s8(),stream.read(),myiAQ_Core_data.pred, myiAQ_Core_data.Tvoc, myiAQ_Core_data.resistance, sgp30.eCO2,sgp30.TVOC, data.gas_resistance,( data.temperature/100.0f ), ( data.humidity / 1000.0f ), ( data.pressure / 100.0f ),0.00,0.00,0.00,SiTemp);    //Results after 5 mins of ON
                     rslt = myBME680.bme680_set_sensor_mode ( &gas_sensor ); //BME680 reset
-                    
+                    wait(0.1);
                     sum+=myArray[m];
                     wait(0.1);
 
@@ -346,9 +339,7 @@
                     myiAQ_Core.iAQ_Core_GetNewReading (  &myiAQ_Core_data ); //Measurement from iAQ-Core C
                     wait(0.1);
                     sgp30.IAQmeasure();//Measurement from SGP30
-
                     rslt = myBME680.bme680_get_sensor_data ( &data, &gas_sensor ); //Measurement for BME680
-
                     ZMODtemp.write(ZMODTEMPaddr,wInit,2); //maybe?
                     ZMODtemp.write(ZMODTEMPaddr,wTemp,1);
                     ZMODtemp.read(ZMODTEMPaddr,rTemp,2); //Returns 2 bytes
@@ -356,7 +347,7 @@
                     float SiTemp=((175.72*temp_code)/65536)-46.85;
                     ttl.printf("tt%.2f,ff%.2f,cc%.2f,sa%i,sb%i,sc%i,sd%i,se%i,sf%i,sg%i,sh%i,ti%.2f,ic%d,iv%d,ir%d,gc%d,gv%d,br%d,bt%.2f,bh%.2f,bp%.2f,zi%f,zh%f,zc%f,st%.2f\n",0.00,flow(), carbon(),s1(),s2(),s3(),s4(),s5(),s6(),s7(),s8(),stream.read(),myiAQ_Core_data.pred, myiAQ_Core_data.Tvoc, myiAQ_Core_data.resistance, sgp30.eCO2,sgp30.TVOC, data.gas_resistance,( data.temperature/100.0f ), ( data.humidity / 1000.0f ), ( data.pressure / 100.0f ),0.00,0.00,0.00,SiTemp);    //Results after 5 mins of ON
                     rslt = myBME680.bme680_set_sensor_mode ( &gas_sensor ); //BME680 reset
-                    
+                    wait(0.1);
                     difSum+=(myArray[m]-avg)*(myArray[m]-avg); //Find sum of difference between value X and mean
                     wait(0.1);
                 }
@@ -372,9 +363,7 @@
                         myiAQ_Core.iAQ_Core_GetNewReading (  &myiAQ_Core_data ); //Measurement from iAQ-Core C
                         wait(0.1);
                         sgp30.IAQmeasure();//Measurement from SGP30
-
                         rslt = myBME680.bme680_get_sensor_data ( &data, &gas_sensor ); //Measurement for BME680
-
                         ZMODtemp.write(ZMODTEMPaddr,wInit,2); //maybe?
                         ZMODtemp.write(ZMODTEMPaddr,wTemp,1);
                         ZMODtemp.read(ZMODTEMPaddr,rTemp,2); //Returns 2 bytes
@@ -382,7 +371,7 @@
                         float SiTemp=((175.72*temp_code)/65536)-46.85;
                         ttl.printf("tt%.2f,ff%.2f,cc%.2f,sa%i,sb%i,sc%i,sd%i,se%i,sf%i,sg%i,sh%i,ti%.2f,ic%d,iv%d,ir%d,gc%d,gv%d,br%d,bt%.2f,bh%.2f,bp%.2f,zi%f,zh%f,zc%f,st%.2f\n",0.00,flow(), carbon(),s1(),s2(),s3(),s4(),s5(),s6(),s7(),s8(),stream.read(),myiAQ_Core_data.pred, myiAQ_Core_data.Tvoc, myiAQ_Core_data.resistance, sgp30.eCO2,sgp30.TVOC, data.gas_resistance,( data.temperature/100.0f ), ( data.humidity / 1000.0f ), ( data.pressure / 100.0f ),0.00,0.00,0.00,SiTemp);    //Results after 5 mins of ON
                         rslt = myBME680.bme680_set_sensor_mode ( &gas_sensor ); //BME680 reset
-                        
+                        wait(0.1);
                         myArray[m]=myArray[m+1];  //Shift all CO2 values to the left by 1 value
                         wait(0.1);
 
@@ -398,17 +387,16 @@
                     myiAQ_Core.iAQ_Core_GetNewReading (  &myiAQ_Core_data ); //Measurement from iAQ-Core C
                     wait(0.1);
                     sgp30.IAQmeasure();//Measurement from SGP30
-
                     rslt = myBME680.bme680_get_sensor_data ( &data, &gas_sensor ); //Measurement for BME680
-
                     ZMODtemp.write(ZMODTEMPaddr,wInit,2); //maybe?
                     ZMODtemp.write(ZMODTEMPaddr,wTemp,1);
                     ZMODtemp.read(ZMODTEMPaddr,rTemp,2); //Returns 2 bytes
                     float temp_code=(rTemp[0]<<8)+rTemp[1];
                     float SiTemp=((175.72*temp_code)/65536)-46.85;
-                    ttl.printf("tt%.2f,ff%.2f,cc%.2f,sa%i,sb%i,sc%i,sd%i,se%i,sf%i,sg%i,sh%i,ti%.2f,ic%d,iv%d,ir%d,gc%d,gv%d,br%d,bt%.2f,bh%.2f,bp%.2f,zi%f,zh%f,zc%f,st%.2f\n",0.00,flow(),0.00,s1(),s2(),s3(),s4(),s5(),s6(),s7(),s8(),stream.read(),myiAQ_Core_data.pred, myiAQ_Core_data.Tvoc, myiAQ_Core_data.resistance, sgp30.eCO2,sgp30.TVOC, data.gas_resistance,( data.temperature/100.0f ), ( data.humidity / 1000.0f ), ( data.pressure / 100.0f ),0.00,0.00,0.00,SiTemp);    //Results after 5 mins of ON
-                   rslt = myBME680.bme680_set_sensor_mode ( &gas_sensor ); //BME680 reset
-                   
+                    ttl.printf("tt%.2f,ff%.2f,cc%.2f,sa%i,sb%i,sc%i,sd%i,se%i,sf%i,sg%i,sh%i,ti%.2f,ic%d,iv%d,ir%d,gc%d,gv%d,br%d,bt%.2f,bh%.2f,bp%.2f,zi%f,zh%f,zc%f,st%.2f\n",0.00,flow(), 0.00,s1(),s2(),s3(),s4(),s5(),s6(),s7(),s8(),stream.read(),myiAQ_Core_data.pred, myiAQ_Core_data.Tvoc, myiAQ_Core_data.resistance, sgp30.eCO2,sgp30.TVOC, data.gas_resistance,( data.temperature/100.0f ), ( data.humidity / 1000.0f ), ( data.pressure / 100.0f ),0.00,0.00,0.00,SiTemp);    //Results after 5 mins of ON
+                    rslt = myBME680.bme680_set_sensor_mode ( &gas_sensor ); //BME680 reset
+                    wait(0.1);
+
                     //led=0.4f;  //The brightness is reduced to half during the plateau
                     wait(0.1);
                     flags=1;    //breakes the while loop
@@ -425,9 +413,7 @@
                 myiAQ_Core.iAQ_Core_GetNewReading (  &myiAQ_Core_data ); //Measurement from iAQ-Core C
                 wait(0.1);
                 sgp30.IAQmeasure();//Measurement from SGP30
-
                 rslt = myBME680.bme680_get_sensor_data ( &data, &gas_sensor ); //Measurement for BME680
-
                 ZMODtemp.write(ZMODTEMPaddr,wInit,2); //maybe?
                 ZMODtemp.write(ZMODTEMPaddr,wTemp,1);
                 ZMODtemp.read(ZMODTEMPaddr,rTemp,2); //Returns 2 bytes
@@ -435,7 +421,7 @@
                 float SiTemp=((175.72*temp_code)/65536)-46.85;
                 ttl.printf("tt%.2f,ff%.2f,cc%.2f,sa%i,sb%i,sc%i,sd%i,se%i,sf%i,sg%i,sh%i,ti%.2f,ic%d,iv%d,ir%d,gc%d,gv%d,br%d,bt%.2f,bh%.2f,bp%.2f,zi%f,zh%f,zc%f,st%.2f\n",0.00,flow(), carbon(),s1(),s2(),s3(),s4(),s5(),s6(),s7(),s8(),stream.read(),myiAQ_Core_data.pred, myiAQ_Core_data.Tvoc, myiAQ_Core_data.resistance, sgp30.eCO2,sgp30.TVOC, data.gas_resistance,( data.temperature/100.0f ), ( data.humidity / 1000.0f ), ( data.pressure / 100.0f ),0.00,0.00,0.00,SiTemp);    //Results after 5 mins of ON
                 rslt = myBME680.bme680_set_sensor_mode ( &gas_sensor ); //BME680 reset
-                
+                wait(0.1);
                 myArray[m]=carbon();
                 wait(0.1);
             }
@@ -445,9 +431,7 @@
                     myiAQ_Core.iAQ_Core_GetNewReading (  &myiAQ_Core_data ); //Measurement from iAQ-Core C
                     wait(0.1);
                     sgp30.IAQmeasure();//Measurement from SGP30
-
                     rslt = myBME680.bme680_get_sensor_data ( &data, &gas_sensor ); //Measurement for BME680
-
                     ZMODtemp.write(ZMODTEMPaddr,wInit,2); //maybe?
                     ZMODtemp.write(ZMODTEMPaddr,wTemp,1);
                     ZMODtemp.read(ZMODTEMPaddr,rTemp,2); //Returns 2 bytes
@@ -455,7 +439,7 @@
                     float SiTemp=((175.72*temp_code)/65536)-46.85;
                     ttl.printf("tt%.2f,ff%.2f,cc%.2f,sa%i,sb%i,sc%i,sd%i,se%i,sf%i,sg%i,sh%i,ti%.2f,ic%d,iv%d,ir%d,gc%d,gv%d,br%d,bt%.2f,bh%.2f,bp%.2f,zi%f,zh%f,zc%f,st%.2f\n",0.00,flow(), carbon(),s1(),s2(),s3(),s4(),s5(),s6(),s7(),s8(),stream.read(),myiAQ_Core_data.pred, myiAQ_Core_data.Tvoc, myiAQ_Core_data.resistance, sgp30.eCO2,sgp30.TVOC, data.gas_resistance,( data.temperature/100.0f ), ( data.humidity / 1000.0f ), ( data.pressure / 100.0f ),0.00,0.00,0.00,SiTemp);    //Results after 5 mins of ON
                     rslt = myBME680.bme680_set_sensor_mode ( &gas_sensor ); //BME680 reset
-                    
+                    wait(0.1);
                     sum2+=myArray[m];
                     wait(0.1);
                 }
@@ -465,9 +449,7 @@
                     myiAQ_Core.iAQ_Core_GetNewReading (  &myiAQ_Core_data ); //Measurement from iAQ-Core C
                     wait(0.1);
                     sgp30.IAQmeasure();//Measurement from SGP30
-
                     rslt = myBME680.bme680_get_sensor_data ( &data, &gas_sensor ); //Measurement for BME680
-
                     ZMODtemp.write(ZMODTEMPaddr,wInit,2); //maybe?
                     ZMODtemp.write(ZMODTEMPaddr,wTemp,1);
                     ZMODtemp.read(ZMODTEMPaddr,rTemp,2); //Returns 2 bytes
@@ -475,7 +457,7 @@
                     float SiTemp=((175.72*temp_code)/65536)-46.85;
                     ttl.printf("tt%.2f,ff%.2f,cc%.2f,sa%i,sb%i,sc%i,sd%i,se%i,sf%i,sg%i,sh%i,ti%.2f,ic%d,iv%d,ir%d,gc%d,gv%d,br%d,bt%.2f,bh%.2f,bp%.2f,zi%f,zh%f,zc%f,st%.2f\n",0.00,flow(), carbon(),s1(),s2(),s3(),s4(),s5(),s6(),s7(),s8(),stream.read(),myiAQ_Core_data.pred, myiAQ_Core_data.Tvoc, myiAQ_Core_data.resistance, sgp30.eCO2,sgp30.TVOC, data.gas_resistance,( data.temperature/100.0f ), ( data.humidity / 1000.0f ), ( data.pressure / 100.0f ),0.00,0.00,0.00,SiTemp);    //Results after 5 mins of ON
                     rslt = myBME680.bme680_set_sensor_mode ( &gas_sensor ); //BME680 reset
-                    
+                    wait(0.1);
                     difSum2+=(myArray[m]-avg2)*(myArray[m]-avg2);
                     wait(0.1);
                 }
@@ -488,9 +470,7 @@
                         myiAQ_Core.iAQ_Core_GetNewReading (  &myiAQ_Core_data ); //Measurement from iAQ-Core C
                         wait(0.1);
                         sgp30.IAQmeasure();//Measurement from SGP30
-
                         rslt = myBME680.bme680_get_sensor_data ( &data, &gas_sensor ); //Measurement for BME680
-
                         ZMODtemp.write(ZMODTEMPaddr,wInit,2); //maybe?
                         ZMODtemp.write(ZMODTEMPaddr,wTemp,1);
                         ZMODtemp.read(ZMODTEMPaddr,rTemp,2); //Returns 2 bytes
@@ -498,7 +478,7 @@
                         float SiTemp=((175.72*temp_code)/65536)-46.85;
                         ttl.printf("tt%.2f,ff%.2f,cc%.2f,sa%i,sb%i,sc%i,sd%i,se%i,sf%i,sg%i,sh%i,ti%.2f,ic%d,iv%d,ir%d,gc%d,gv%d,br%d,bt%.2f,bh%.2f,bp%.2f,zi%f,zh%f,zc%f,st%.2f\n",0.00,flow(), carbon(),s1(),s2(),s3(),s4(),s5(),s6(),s7(),s8(),stream.read(),myiAQ_Core_data.pred, myiAQ_Core_data.Tvoc, myiAQ_Core_data.resistance, sgp30.eCO2,sgp30.TVOC, data.gas_resistance,( data.temperature/100.0f ), ( data.humidity / 1000.0f ), ( data.pressure / 100.0f ),0.00,0.00,0.00,SiTemp);    //Results after 5 mins of ON
                         rslt = myBME680.bme680_set_sensor_mode ( &gas_sensor ); //BME680 reset
-                        
+                        wait(0.1);
                         myArray[m]=myArray[m+1];
                         wait(0.1);
 
@@ -510,9 +490,7 @@
                     myiAQ_Core.iAQ_Core_GetNewReading (  &myiAQ_Core_data ); //Measurement from iAQ-Core C
                     wait(0.1);
                     sgp30.IAQmeasure();//Measurement from SGP30
-
                     rslt = myBME680.bme680_get_sensor_data ( &data, &gas_sensor ); //Measurement for BME680
-
                     ZMODtemp.write(ZMODTEMPaddr,wInit,2); //maybe?
                     ZMODtemp.write(ZMODTEMPaddr,wTemp,1);
                     ZMODtemp.read(ZMODTEMPaddr,rTemp,2); //Returns 2 bytes
@@ -520,9 +498,9 @@
                     float SiTemp=((175.72*temp_code)/65536)-46.85;
                     ttl.printf("tt%.2f,ff%.2f,cc%.2f,sa%i,sb%i,sc%i,sd%i,se%i,sf%i,sg%i,sh%i,ti%.2f,ic%d,iv%d,ir%d,gc%d,gv%d,br%d,bt%.2f,bh%.2f,bp%.2f,zi%f,zh%f,zc%f,st%.2f\n",0.00,flow(), 0.00,s1(),s2(),s3(),s4(),s5(),s6(),s7(),s8(),stream.read(),myiAQ_Core_data.pred, myiAQ_Core_data.Tvoc, myiAQ_Core_data.resistance, sgp30.eCO2,sgp30.TVOC, data.gas_resistance,( data.temperature/100.0f ), ( data.humidity / 1000.0f ), ( data.pressure / 100.0f ),0.00,0.00,0.00,SiTemp);    //Results after 5 mins of ON
                     rslt = myBME680.bme680_set_sensor_mode ( &gas_sensor ); //BME680 reset
-                    
                     wait(0.1);
 
+
                     flage=1;    //breakes the loop
                 }
             }
@@ -531,9 +509,7 @@
             myiAQ_Core.iAQ_Core_GetNewReading (  &myiAQ_Core_data ); //Measurement from iAQ-Core C
             wait(0.1);
             sgp30.IAQmeasure();//Measurement from SGP30
-
             rslt = myBME680.bme680_get_sensor_data ( &data, &gas_sensor ); //Measurement for BME680
-
             ZMODtemp.write(ZMODTEMPaddr,wInit,2); //maybe?
             ZMODtemp.write(ZMODTEMPaddr,wTemp,1);
             ZMODtemp.read(ZMODTEMPaddr,rTemp,2); //Returns 2 bytes
@@ -541,8 +517,8 @@
             float SiTemp=((175.72*temp_code)/65536)-46.85;
             ttl.printf("tt%.2f,ff%.2f,cc%.2f,sa%i,sb%i,sc%i,sd%i,se%i,sf%i,sg%i,sh%i,ti%.2f,ic%d,iv%d,ir%d,gc%d,gv%d,br%d,bt%.2f,bh%.2f,bp%.2f,zi%f,zh%f,zc%f,st%.2f\n",0.00,flow(), carbon(),s1(),s2(),s3(),s4(),s5(),s6(),s7(),s8(),stream.read(),myiAQ_Core_data.pred, myiAQ_Core_data.Tvoc, myiAQ_Core_data.resistance, sgp30.eCO2,sgp30.TVOC, data.gas_resistance,( data.temperature/100.0f ), ( data.humidity / 1000.0f ), ( data.pressure / 100.0f ),0.00,0.00,0.00,SiTemp);    //Results after 5 mins of ON
             rslt = myBME680.bme680_set_sensor_mode ( &gas_sensor ); //BME680 reset
-            
-            //led=0.4f;  //LED is back to full brightness
+            wait(0.1);
+//led=0.4f;  //LED is back to full brightness
             bf=0;       //reset the detecting base flow flag
             fin=1;      //enables the next section flag
 
@@ -551,16 +527,14 @@
         }
 
         if(carbon()<2.00 && fin ==1) {
-            //User has to wait for the CO2 level to drop less than 2% before testing again.
-            //Once it is less than 2%, all the flags and parameters used in calculations are reset
+            //User has to wait for the CO2 level to drop less than 1% before testing again.
+            //Once it is less than 1%, all the flags and parameters used in calculations are reset
 
             //ttl.printf("tt%.2f,ff%.2f,cc%.2f,sa%i,sb%i,sc%i,sd%i,se%i,sf%i,sg%i,sh%i,ti%.2f\n",getTemp(),flow(),carbon(),s1(),s2(),s3(),s4(),s5(),s6(),s7(),s8(),stream.read()); //chemical sensor
             myiAQ_Core.iAQ_Core_GetNewReading (  &myiAQ_Core_data ); //Measurement from iAQ-Core C
             wait(0.1);
             sgp30.IAQmeasure();//Measurement from SGP30
-
             rslt = myBME680.bme680_get_sensor_data ( &data, &gas_sensor ); //Measurement for BME680
-
             ZMODtemp.write(ZMODTEMPaddr,wInit,2); //maybe?
             ZMODtemp.write(ZMODTEMPaddr,wTemp,1);
             ZMODtemp.read(ZMODTEMPaddr,rTemp,2); //Returns 2 bytes
@@ -568,7 +542,7 @@
             float SiTemp=((175.72*temp_code)/65536)-46.85;
             ttl.printf("tt%.2f,ff%.2f,cc%.2f,sa%i,sb%i,sc%i,sd%i,se%i,sf%i,sg%i,sh%i,ti%.2f,ic%d,iv%d,ir%d,gc%d,gv%d,br%d,bt%.2f,bh%.2f,bp%.2f,zi%f,zh%f,zc%f,st%.2f\n",0.00,flow(), carbon(),s1(),s2(),s3(),s4(),s5(),s6(),s7(),s8(),stream.read(),myiAQ_Core_data.pred, myiAQ_Core_data.Tvoc, myiAQ_Core_data.resistance, sgp30.eCO2,sgp30.TVOC, data.gas_resistance,( data.temperature/100.0f ), ( data.humidity / 1000.0f ), ( data.pressure / 100.0f ),0.00,0.00,0.00,SiTemp);    //Results after 5 mins of ON
             rslt = myBME680.bme680_set_sensor_mode ( &gas_sensor ); //BME680 reset
-            
+            wait(0.1);
             stream.reset();
             stream.stop();
             measurement_started =0;