   strcpy(sensorType[1], "1");
   strcpy(sensorType[2], "2");
   strcpy(sensorType[3], "3");
-#if APP_ID == (APPTYPE_PUBLIC_BASE+2)  
+#if APP_ID == (APPTYPE_SYSTEM_BASE+1)
+  strcpy(sensorType[SENSOR_ID_DUST],"d0");
+  strcpy(sensorType[SENSOR_ID_TEMPERATURE], "t0");
+  strcpy(sensorType[SENSOR_ID_HUMIDITY],"h0");
+#elif APP_ID == (APPTYPE_PUBLIC_BASE+2)  
   strcpy(sensorType[SENSOR_ID_DUST],"d0");
 #elif APP_ID == (APPTYPE_PUBLIC_BASE+1)
   strcpy(sensorType[SENSOR_ID_DUST],"d0");

#define SENSOR_ID_BATTERYCHARGING 2 //      battery is charging: (0) not charging, (1) charging
#define SENSOR_ID_GROUNDSPEED 3

#if APP_ID==(APPTYPE_PUBLIC_BASE+2)
  #define SENSOR_ID_DUST 10  
  #define SENSOR_ID_DUST_BLYNK 4 


    Serial.println(sensorValue[SENSOR_ID_GROUNDSPEED]);     

    //sensor 10-19: user sensor
#if APP_ID == (APPTYPE_SYSTEM_BASE+1)
      Serial.print("[Performence TIME-COUNT]:");
      timecount=millis()-timecount;
      Serial.println(timecount);
      timecount=millis();
      sensorValue[SENSOR_ID_DUST] = (float)pm25sensorG3();
      Serial.print("[SENSOR-DUST]:");
      Serial.println(sensorValue[SENSOR_ID_DUST]);
      
      float h,t;
      dht.readHT(&t, &h);
      while (isnan(t) || isnan(h) || t<0 || t>80 || h<0 || h > 100){
        Serial.println("Something wrong with DHT => retry it!");
        delay(100);
        dht.readHT(&t, &h);    
      }
      sensorValue[SENSOR_ID_TEMPERATURE] = t;
      Serial.print("SensorValue(Temperature):");
      Serial.println(sensorValue[SENSOR_ID_TEMPERATURE]);
      sensorValue[SENSOR_ID_HUMIDITY] = h;
      Serial.print("SensorValue(Humidity):");
      Serial.println(sensorValue[SENSOR_ID_HUMIDITY]);
#elif APP_ID == (APPTYPE_PUBLIC_BASE+1)  
      Serial.println("Measure dust, take 30 seconds ...");
      get_sensor_data_dust();
      Serial.print("SensorValue(dust sensor):");
