Problemas sensor YF-S201 + SIM900 + Arduino UNO

Buenos dias:

Estoy armando un caudalimetro con esos componentes. Arme el codigo y cuando compilo da Warning, asi mismo funciona Y el sim900 se conecta Ok. Cuabdi agrego las lineas del Sensor y compilo da el mismo Warning se tilda. Procedi a colocar el Volumen=10 (valor constante) , compilo , da warning pero funciona. Logro que envie el dato al serial y a la Web.
Estoy perdido realmente. Adjunto codigo (warning + que se tilda). Si alguien pudiera ayudarme. Muchas gracias.

#include <SoftwareSerial.h>
#include <String.h>
SoftwareSerial SIM900(7, 8); // Configura el puerto serial para el SIM900. Para el Arduino MEGA utilizar pines 10 y 11

int respuesta;
char aux_str[50];
volatile int NumPulsos; //variable para la cantidad de pulsos recibidos
int PinSensor = 2;    //Sensor conectado en el pin 2
float K=5.5; //para convertir de frecuencia a caudal
float volumen=0;
long dt=0; //variación de tiempo por cada bucle
long t0=0; //millis() del bucle anterior
int frec;//
float caudal_L_m;

//Contenido de la dirección Http  
char direccion[] = "GET /update?api_key=732VSU2FT2L5FU1Z&field1=0\r\nConnection: close\r\n\r\n";

void setup()
{
  SIM900.begin(19200); //Configura velocidad del puerto serie para el SIM900
  Serial.begin(19200); //Configura velocidad del puerto serie del Arduino
  pinMode(PinSensor, INPUT);
  delay(1000);
  Serial.println("Iniciando...");
  power_on();
  attachInterrupt(0,ContarPulsos,RISING);//(Interrupción 0(Pin2),función,Flanco de subida)
  t0=millis();
  iniciar();
  delay(5000);
}

void loop()
{
       frec=ObtenerFrecuecia(); //obtenemos la frecuencia de los pulsos en Hz
       caudal_L_m=frec/K; //calculamos el caudal en L/m
          dt=millis()-t0; //calculamos la variación de tiempo
          t0=millis();
          volumen=volumen+(caudal_L_m/60)*(dt/1000);
          //-----Enviamos por el puerto serie---------------
          Serial.print ("Caudal: "); 
          Serial.print (caudal_L_m,3); 
          Serial.print ("L/min\tVolumen: "); 
          Serial.print (volumen,3); 
          Serial.println (" L");
          delay(5000);
          //volumen=10;  
 /* if (Serial.available()){
        
    switch (Serial.read())
    {
      case 'h':
        
          PeticionHttp();
        break;
      case 'q':
       // Closes the socket
        enviarAT("AT+CIPCLOSE", "CLOSE OK", 10000); //Cerramos la conexion
        enviarAT("AT+CIPSHUT", "OK", 10000); //Cierra el contexto PDP del GPRS
        delay(10000);
       // break;
  */  
    
  if (SIM900.available()) {
    Serial.write(SIM900.read());
  }
}

void ContarPulsos ()  
{ 
  NumPulsos++;  //incrementamos la variable de pulsos
} 

//---Función para obtener frecuencia de los pulsos--------
int ObtenerFrecuecia() 
{
  int frecuencia;
  NumPulsos = 0;   //Ponemos a 0 el número de pulsos
  interrupts();    //Habilitamos las interrupciones
  delay(1000);   //muestra de 1 segundo
  noInterrupts(); //Deshabilitamos  las interrupciones
  frecuencia=NumPulsos; //Hz(pulsos por segundo)
  return frecuencia;
}

int8_t enviarAT(char* ATcommand, char* resp_correcta, unsigned int tiempo)
{

  //int x = 0;
  uint8_t x=0, correcto = 0;
  char respuesta[100];
  unsigned long anterior;

  memset(respuesta, '\0', 100); // Inicializa el string
  delay(100);
  while ( SIM900.available() > 0) SIM900.read(); // Limpia el buffer de entrada
  SIM900.println(ATcommand); // Envia el comando AT
  x = 0;
  anterior = millis();
  // Espera una respuesta
  do {
    // si hay datos el buffer de entrada del UART lee y comprueba la respuesta
    if (SIM900.available() != 0)
    {
        respuesta[x] = SIM900.read();
        x++;
      // Comprueba si la respuesta es correcta
      if (strstr(respuesta, resp_correcta) != NULL)
      {
        correcto = 1;
      }
    }
  }
  // Espera hasta tener una respuesta
  while ((correcto == 0) && ((millis() - anterior) < tiempo));
  Serial.println(respuesta);

  return correcto;
}

void power_on()
{
  int respuesta = 0;

  // Comprueba que el modulo SIM900 esta arrancado
  if (enviarAT("AT", "OK", 2000) == 0)
  {
    Serial.println("Encendiendo el GPRS...");

    pinMode(9, OUTPUT);
    digitalWrite(9, HIGH);
    delay(1000);
    digitalWrite(9, LOW);
    delay(1000);

    // Espera la respuesta del modulo SIM900
    while (respuesta == 0) {
      // Envia un comando AT cada 2 segundos y espera la respuesta
      respuesta = enviarAT("AT", "OK", 2000);
      SIM900.println(respuesta);
    }
  }
}

void power_off()
{
  digitalWrite(9, HIGH);
  delay(1000);
  digitalWrite(9, LOW);
  delay(1000);
}

void reiniciar()
{
  Serial.println("Reiniciando...");
  power_off();
  delay (5000);
  power_on();
}


void mostrarDatosSeriales()//Muestra los datos que va entregando el sim900
{
while(SIM900.available()!=0)
Serial.write(SIM900.read());
}

void iniciar()
{
  //enviarAT("AT+CPIN=\"1867\"", "OK", 1000); //Introducimos el PIN de la SIM
  Serial.println("Conectando a la red...");
  delay (5000);

  //Espera hasta estar conectado a la red movil
  while ( enviarAT("AT+CREG?", "+CREG: 0,1", 1000) == 0 )
  {
  }

  Serial.println("Conectado a la red.");
  enviarAT("AT+CGATT=1\r", "OK", 2000); //Iniciamos la conexión GPRS
  enviarAT("AT+CSTT=\"wap.gprs.unifon.com.ar\",\"wap\",\"wap\"", "OK", 4000); //Definimos el APN, usuario y clave a utilizar
  enviarAT("AT+CIICR", "OK", 3000); //Activamos el perfil de datos inalámbrico
  enviarAT("AT+CIFSR", "", 3000); //Activamos el perfil de datos inalámbrico
}

void PeticionHttp()
{
  if (enviarAT("AT+CREG?", "+CREG: 0,1", 1000) == 1) //Comprueba la conexion a la red
  {
    enviarAT("AT+CIPSTART=\"TCP\",\"api.thingspeak.com\",\"80\"", "CONNECT OK", 5000); //Inicia una conexión TCP
    SIM900.println("AT+CIPSEND");//ENVÍA DATOS A TRAVÉS DE una CONEXIÓN TCP O UDP
    delay(4000);
    mostrarDatosSeriales();
    String datos="GET /update?api_key=732VSU2FT2L5FU1Z&field1=0" + String(volumen);
    SIM900.println(datos);//Envía datos al servidor remoto
    delay(4000);
    mostrarDatosSeriales();
    SIM900.println((char)26);
    delay(5000);//Ahora esperaremos una respuesta pero esto va a depender de las condiones de la red y este valor quizá debamos modificarlo dependiendo de las condiciones de la red
    SIM900.println();
    mostrarDatosSeriales();
    // Envíamos datos a través del TCP
    /*sprintf(aux_str, "AT+CIPSEND=%d", strlen(volumen));
    if (enviarAT(aux_str, ">", 10000) == 1)
    {
      enviarAT(direccion, "OK", 10000);
    }*/
  }
  else
  {
    reiniciar();
    iniciar();
  }
}

Edita el hilo para que se vea el código usando etiquetas </>.
Te envié privado con instrucciones pero el 1er hilo de cada sección tiene una referencia a las normas del foro.