ESP8266 recepción serie y envío

Hola a todos. Estoy atascadisimo en casi el final del proyecto.

Tengo una Raspberry 3 de servidor con Mysql, Una leonardo, que luego sustituiré por una UNO, y un ESP8266-01 para mandar los datos al server, que está con codigo C++ del IDE de Arduino. Este conecta bien al wifi, comprobado.

Pues no hay manera de que mande al server los datos que le envío desde arduino por serie. He probado de todo y no doy con el problema, ademas estoy convencido que será una chorrada, pero no doy para más : smiley-confuse:

El código parcial del Arduino:

SoftwareSerial SerialESP8266(10,11); // RX, TX

Void loop();{

String peticionHTTP= "POST /laweb.php?pass=xxxxxx&Temperatura=";
peticionHTTP=peticionHTTP+String(Temp)+"&Humedad="+String(Hum);


 Serial.println("Enviando HTTP . . .");
 SerialESP8266.println(String(peticionHTTP));
 Serial.println(peticionHTTP);

 delay(10000);
}

El Serial.println(peticionHTTP); Muestra perfectamente el String en el monitor serie.

Y del ESP8266 todo el código:

#include <ESP8266WiFi.h> 

const char* ssid = "AAAAAAA"; // Rellena con el nombre de tu red WiFi
const char* password = "XXXXXXXX"; // Rellena con la contraseña de tu red WiFi

const char* host = "miweb.ddns.net";

String data = "";

void setup() {
  Serial.begin(9600);
  delay(10);

  // Conectamos a la red WiFi

  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
 
  /* Configuramos el ESP8266 como cliente WiFi. Si no lo hacemos 
     se configurará como cliente y punto de acceso al mismo tiempo */
  WiFi.mode(WIFI_STA); // Modo cliente WiFi
  WiFi.begin(ssid, password);

  // Esperamos a que estemos conectados a la red WiFi
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected"); 
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP()); // Mostramos la IP
}

void loop() {

  
  Serial.print("connecting to ");
  Serial.println(host);
 
  // Creamos el cliente
  WiFiClient client;

  const int httpPort = 80; // Puerto HTTP
  if (!client.connect(host, httpPort)) {
    // ¿hay algún error al conectar?
    Serial.println("Ha fallado la conexión");
    return;
  }

//---------- Leemos el puerto serie con los datos--------------------
      
 while (Serial.available())
   {
      char bufer = Serial.read();
      if (bufer != '\n')
      {
         data=data+bufer;
      }
      else
      {
         client.println(String(data));  //----- Lo enviamos al servidor
         Serial.println("Enviado");
         data = "";
      }
   }
     
        
 unsigned long timeout = millis();
  while (client.available() == 0) {
    if (millis() - timeout > 5000) {
      Serial.println(">>> Superado el tiempo de espera !");
      client.stop();
      return;
    }
  }

 
 
 
 
  Serial.println();
  Serial.println("Cerrando la conexión");

}

He probado con el comando "client.readStringUntil('\n')" y nada, ahora con un buffer de almacenamiento y nada.

Si lo pongo con el Shield de ethernet va como la seda, pero lo quiero hacer todo por WIFI, Y se le pongo la cadena a enviar al ESP la envía sin problemas. O sea que el problema es la comunicación serie, he probado a mandarle después de la cadena el \n, que creo que se incluye solo también, pero no lo veo.