POC Breath using SMD commercial sensors
Dependencies: iAQ_Core Adafruit_SGP30_mbed mbed BME680
Diff: main.cpp
- Revision:
- 8:976c405a1da5
- Parent:
- 7:f37620a76a1d
- Child:
- 9:81d1b4833516
--- 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;