enviar datos a desde arduino a emoncms.org

Ayuda por favor estoy intentando enviar los datos obtenidos por el sensor hasta emoncms, estoy utilizando arduino uno y shieldgsm aqui dejo codigo que estoy utilizando espero me puedan ayudar. continuación parte del código que estoy utilizando

/*************************PROGRAMA DE MONITOREO EN ARDUINO**********************/


void ConectarRED() {
  if (conexionIniciada) {                                              //SI SE HA REALIZADO UNA CONEXION SERIAL CON EL SHIELD GPRS
    Serial.println("CONECTANDO RED GPRS..");
    Serial.println("CGATT-->");
    gprsSt = '0';
    actualizarPantalla();
    if (gsm.SendATCmdWaitResp ("AT+CGATT=1", 1000, 200, "OK", 3) == 1 ) {        //adjuntar el gprs
      Serial.println("GPRS-->");
      gprsSt = '1';
      actualizarPantalla();
      if (gsm.SendATCmdWaitResp ("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"", 1000, 200, "OK", 3) == 1 ) { //configurar parametros del gprs

        apnConexion = "AT+SAPBR=3,1,\"APN\",\"" + apnLocal + "\"";          //ES UNA CADENA DE CARACTERES
        //apnConexion="AT+SAPBR=3,1,\"APN\",\"internet.claro.com.ec\"";

        Serial.println("APN -->");
        gprsSt = '2';
        actualizarPantalla();
        if (gsm.SendATCmdWaitResp (apnConexion.c_str(), 3000, 200, "OK", 3) == 1 ) {    //configurar parametros del apn
          Serial.println("ATTACH-->");
          gprsSt = '3';
          actualizarPantalla();
          if (gsm.SendATCmdWaitResp ("AT+SAPBR=1,1", 10000, 200, "OK", 3) == 1 ) {      //abrir una conexion

            gprsIniciado = true;

            gprsSt = '4';
            actualizarPantalla();
          }
          else
            Serial.println("CONNECTION ERROR");
        }
        else
          Serial.println("APN ERROR");
      }
      else
        Serial.println("GPRS PARAMETER ERROR");
    }
    else
      Serial.println("GPRS ATTACH ERROR");
  }
}


void EnviarDatos() {
  if (gprsIniciado) {
    Serial.println("HTTP INIT -->");
    datoSt = '0';
    actualizarPantalla();
    if (gsm.SendATCmdWaitResp ("AT+HTTPINIT", 1000, 200, "OK", 3) == 1 ) {   //INICIAR conexion htttp
      /*area de test*/
      String dato ((random(0, 100)), DEC);
      request="AT + HTTPPARA =\"URL\", \"http://emoncms.org/input/post.json?json={consumo: "+ dato +"}&apikey=1e7743b555b2f14ab1bd4586f732c111\"";

//String webpage1 = “GET /emoncms/input/post.json?json={variable_arduino:”+ dato +”}&apikey=”+APIKEY+” HTTP/1.0\r\n”;
      
      //"AT+HTTPPARA=\"URL\",\"www.url.com\"",
      /*Fin area de test*/

      //request = "AT+HTTPPARA=\"URL\",\"http://emoncms.org/input/post.json?json&apikey=edf3c181536d7aa8253a5e71c68484b1"+ totalLitros + consumo + "\"";  //armar URL
      //Serial.println(request.c_str());
      Serial.println("URL -->");
      datoSt = '1';
      actualizarPantalla();
      if (gsm.SendATCmdWaitResp (request.c_str(), 2000, 100, "OK", 5) == 1 ) {     //cagar url al shield

        Serial.println("GET -->");
        datoSt = '2';
        actualizarPantalla();
        
        //gsm.SimpleWriteln("AT+HTTPACTION=0"); 
        if (gsm.SendATCmdWaitResp ("AT+HTTPACTION=0", 2000, 200, "OK", 2) == 1 ) {  //  "+HTTPACTION:0,200,188", 2) == 1 ) {          //enviar solicitud al servidor

          //gsm.SimpleWriteln("AT+HTTPREAD");      //LEER LOS DATOS
          //delay(5000);
          //Read until serial buffer is empty.
          //gsm.WhileSimpleRead();
          gsm.SimpleWriteln("AT+HTTPTERM");      //FIN CONEXION HTTP
          gsm.SimpleWriteln("AT+HTTPTERM"); 
          //delay(2000);
          //gsm.WhileSimpleRead();

          datoSt = '3';
          actualizarPantalla();
        }
        else {
          Serial.println("DATA GET ERROR");
          gsm.SimpleWriteln("AT+HTTPTERM");
          gsm.SimpleWriteln("AT+HTTPTERM");
        }
      }
      else {
        Serial.println("URL ERROR");
        gsm.SimpleWriteln("AT+HTTPTERM");
        delay(10);
        gsm.SimpleWriteln("AT+HTTPTERM");
      }
    }
    else {
      Serial.println("HTTP INIT ERROR");
      gsm.SimpleWriteln("AT+HTTPTERM");
    }
    request=" "; 
  }
}
void setup()
{
  pinMode(pinSensor, INPUT);      //declaracion de entrada
  attachInterrupt(0, interrupcionPulso, RISING); //en el flanco de subida

  lcd.begin(16, 2);               // inicializar LCD
  //lcd.setCursor(0,0);             // cursor en 0,0 (columna, fila)
  lcd.setCursor(2, 0);  lcd.print("INICIANDO!!!");
  delay(1000);
  lcd.clear();

  //Inicio de conexión serial hacia el PC
  Serial.begin(9600);

  ConectarGPRS();

  /*if (started) {                                                Ejemplo de uso de comandos en librería, no recomendado para esta aplicación.
      //GPRS attach, put in order APN, username and password.
          //If no needed auth let them blank.
          if (inet.attachGPRS("internet.claro.com.ec", "", "")){
               Serial.println("status=ATTACHED");
               attachedGPRSS=true;
          }
          else Serial.println("status=ERROR");
          delay(1000);

          //Read IP address.
          gsm.SimpleWriteln("AT+CIFSR");
          delay(5000);
          //Read until serial buffer is empty.
          gsm.WhileSimpleRead();
    }*/
    delay(1000);
    delay(1000);
    ConectarRED(); 
  valorTiempoSt = tiempoActualizacion;
};