Transmisión GPRSBee ARDUINO UNO

Estimados, soy nuevo en los foros de Arduino, he hecho un proyecto con arduino donde transmito información medida por sensores de temperatura y sonido a una plataforma IOT a través de comunicación Via cable Ethernet.
Ahora quisiera realizar lo mismo pero la comunicación realizarla a través de un módulo 3G.

Cuento con un Módulo TELIT UL865-NAD, conectado a un Shield XBEE el cual está conectado a mi Arduino.

Mi consulta es la siguiente, ¿es posible realizar la configuración de mi UL865 a través de la programación de Arduino?, he estado leyendo manuales del módulo y buscado información en la web pero todos hacen la configuración a través de HERCULES o XCTU y para ello necesito los drivers del mismo módulo los cuales no poseo ya que me lo prestaron.

He avanzado en la programación y he podido lograr que me indique los datos medidos en el monitor serial, pero, no puedo lograr que envíe la información a ThingSpeak. Anteriormente hice el mismo programa pero la comunicación a Thingspeak fue via Ethernet y en ese programa también indique el canal de mi cuenta. En este caso creo que debo hacer lo mismo pero no veo el como, he revisado en internet programas similares y en ninguno indican el número de canal al que quieren enviar la información.
Código en el ultimo post

No podía transmitir la información a ThingSpeak ya que no hacia buena comunicación el Arduino con el Módulo debido al Shield que estaba usando, utilicé otro y santo remedio.
Ahora puedo enviar los datos a la plataforma pero de los 3 que mido solo llegan 2, creo que la variable "valueDb" me está causando el conflicto.

#include <DHT.h>
#include <DHT_U.h>
#include <SoftwareSerial.h>

//Sensor de Temperatura.

#define DHTPIN 8 // PIN Sensor de Temperatura.
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE); //Configuración Sensor de Temperatura.

//Sensor de Sonido.

const double dBAnalogQuiet = 10; //Valores para calibrar el sensor de sonido.
const double dBAnalogModerate = 12;
const double dBAnalogLoud = 17;
#define PIN_ANALOG_IN A0 //PIN Sensor de Sonido.

#define SENSOR_TEMP1 "Tem"
#define SENSOR_HUM1 "Hum"
#define SENSOR_SONIDO "Dec"

const char * myWriteAPIKey = "AFFRO7S0G657Q7YX";

SoftwareSerial GPRSBee(3,2); // RX, TX
float t = 0.0;
float h = 0.0;
float valueDb = 0.0;
int PowerModem = 7;
char dato;
int  salida = 0;


void setup()
{
  pinMode (PowerModem, OUTPUT);
  GPRSBee.begin(9600);
  Serial.begin(9600);
  delay(10);
  dht.begin();
  digitalWrite(PowerModem, HIGH);  
  delay(2000);
  digitalWrite(PowerModem, LOW);   
  delay(2000);
  digitalWrite(PowerModem, HIGH);  
  delay(3000);
  VerSerial();
  Serial.println("//-------------------------------------------------------------------------------------------");
  Serial.println("Iniciando");
  Serial.println("Configurando Puertos:");
  delay(2000);
  VerSerial();
  delay(1000);
    while(salida==0)
    {
    delay(1000);
    configuracionGPRSBee();  
    //Se configuran Parámetros para usar el módulo, si todo OK salida=1
    delay(1000);
    }
  VerSerial();
  
}

void loop()
{
  Serial.println("//-------------------------------------------------------------------------------------------");
  Serial.println("Leyendo Sensores");
  Sensores();
  MonitorSerial();
  String Tem = String (t);
  String Hum = String (h);
  String Dec = String (valueDb);
  Serial.println("//-------------------------------------------------------------------------------------------");
  Serial.println("Enviado Información al Servidor");
  delay(1000);
  SendtempGPRSBee(SENSOR_TEMP1, Tem, SENSOR_HUM1, Hum, SENSOR_SONIDO, Dec); 
  delay(1000);

}

//-------------------------------------------------------------------------------------------
int VerSerial()
{
  
  while(Serial.available() != 0)
  {
    dato = Serial.read();
    GPRSBee.print(dato);
  }
  while(GPRSBee.available() != 0)
  {
    dato = GPRSBee.read();
    Serial.print(dato);
  }

}

//-------------------------------------------------------------------------------------------
void Sensores()
{
  // Sensor de Temperatura y Humedad.

  h = dht.readHumidity();
  t = dht.readTemperature(); 

  // Sensor de Sonido.
  
  int value;
  float decibelsValueQuiet = 49.5;
  float decibelsValueModerate = 65;
  float decibelsValueLoud = 70;
    
  value = analogRead(PIN_ANALOG_IN);
    
  if (value < 13)
  {
    Serial.print("Decibeles: ");
    
    decibelsValueQuiet += calculateDecibels(value, 'q');

    Serial.print(decibelsValueQuiet);
    Serial.println(" dB");
    
    valueDb = decibelsValueQuiet;
  }
  else if ((value > 13) && ( value <= 23) )
  {
    Serial.print("Decibeles: ");
       
    decibelsValueModerate += calculateDecibels(value, 'm');

    Serial.print(decibelsValueModerate);
    Serial.println(" dB");

    valueDb = decibelsValueModerate;
  }
  else if(value > 22)
  {
    Serial.print("Decibeles: ");
    
    decibelsValueLoud += calculateDecibels(value, 'l');

    Serial.print(decibelsValueLoud);
    Serial.println(" dB");
    
    valueDb = decibelsValueLoud;
  }
}

//-------------------------------------------------------------------------------------------

void MonitorSerial()
{
  Serial.print("Temperatura = ");
  Serial.print(t);
  Serial.println("°C");
  Serial.print("Humedad = ");
  Serial.print(h); 
  Serial.println("%");
  delay(2000);
}


//-------------------------------------------------------------------------------------------
int configuracionGPRSBee()
{
  Serial.println("Configurando MODEM Telit UL865-NAD");
  delay(1000);
  GPRSBee.println("AT");   //Verifica funcionamiento
  VerSerial();
  delay(3000);
  GPRSBee.println("AT+CGDCONT=1,\"IP\",\"wap.tmovil.cl\""); // APN de la compañia de tu SIM
  //Claro: bam.clarochile.cl - Movistar: wap.tmovil.cl
  VerSerial();
  delay(3000);
  GPRSBee.println("AT#SGACT=1,1");   //Activa el contexto GSM
  VerSerial();
  delay(3000);
  GPRSBee.println("AT&K0");   //Se configura sin control de flujo
  VerSerial();
  delay(3000);
  GPRSBee.println("AT#SD=1,0,80,\"api.thingspeak.com\",0,0,1"); //Abre la conexión remota a través del socket 
  VerSerial();
  delay(3000);
  salida=1;
}


//-------------------------------------------------------------------------------------------
int SendtempGPRSBee(String sensor_name1, String valor1, String sensor_name2, String valor2, String sensor_name3, String valor3) 
//Función para enviar información al servidor.
{
  Serial.println("Iniciando Envio de Datos");
  GPRSBee.println("AT#SD=1,0,80,\"api.thingspeak.com\",0,0,1"); //Abre la conexión remota a través del socket
  delay(3000);
  VerSerial();
  delay(1000);
  GPRSBee.println("AT#SSEND=1"); //Enviar datos
  VerSerial();
  delay(700);
  GPRSBee.println("GET https://api.thingspeak.com/update?api_key=AFFRO7S0G657Q7YX&field1="+valor1+"&field2="+valor2+"&field3"+valor3);
  VerSerial();
  delay(2000);
  GPRSBee.println((char)26); //Caracter para finalizar el mensaje
  delay(500);
  VerSerial();
  GPRSBee.println("AT#SH=1"); //Finaliza conexión
  delay(500);
  VerSerial();
  delay(200);
}

//-------------------------------------------------------------------------------------------

// Cálculo de Decibeles.

float calculateDecibels(int x, char c)
{
  float decibelsCalculated;
  
    if (c == 'q')
      decibelsCalculated = 20 * log10(x/dBAnalogQuiet);
    if (c == 'm')
      decibelsCalculated = 20 * log10(x/dBAnalogModerate);
    if (c == 'l')
      decibelsCalculated = 20 * log10(x/dBAnalogLoud);  
  
  return (decibelsCalculated);
}

El canal donde envío la información es este: Monitoreo de Variables Canario 3G - ThingSpeak IoT
y como pueden ver no llega la información al 3er campo.

Quizás hay un problema en la sintaxis del código?