SIM800 sem retorno dos comandos AT

Alguém poderia me dar uma dica de como resolver um problema relacionando ao retorno de comandos AT no sim800.
Todo o código e os comandos AT estão funcionando , porem ele não retorna as mensagens de confirmação. Estou utilizando no monitor serial a velocidade de 115200 e vem sem nada escrito as outras mostram com caracteres estranhos

`
void loop() {
Serial.println("loop");
digitalWrite(trigger_pin, LOW);
delayMicroseconds(2);
digitalWrite(trigger_pin, HIGH);
delayMicroseconds(10);
digitalWrite(trigger_pin, LOW);
long duration = pulseIn(echo_pin, HIGH);
distance_cm = (duration / 2) / 29.09;
Serial.println(distance_cm);
digitalWrite(16, HIGH);
delay(1000);
digitalWrite(16, LOW);
delay(100);
gsm_send_serial("AT+CGSN"); // abre o compartimento com os parâmetros
previamente definidos
gsm_send_serial("AT+SAPBR=1,1"); // abre o compartimento com os parâmetrospreviamente definidos
gsm_send_serial("AT+SAPBR=2,1"); // consulta o status da operadora GPRS aberta
anteriormente e é apenas para fins de diagnóstico.
gsm_send_serial("AT+HTTPINIT"); // inicializa o serviço HTTP. O SIM800 será informado
que uma requisição HTTP foi iniciada
gsm_send_serial("AT+HTTPPARA=CID,1"); // define o perfil da operadora. Geralmente é
sempre 1.
gsm_send_serial("AT+HTTPSSL=1"); // ATiva o SSL https
gsm_send_serial("AT+HTTPPARA=URL," + url2 + "/" + distance_cm + "/" + id_cliente + "/" + id_caixa + "/" + ipadd1 + "/" + sinal + "/" + totalMilliLitres + "/" + vazao_atual + "/" + apikey ); // passa a URL a ser chamada.
gsm_send_serial("AT+HTTPPARA=CONTENT,application/x-www-form-urlencoded"); // define o tipo de conteúdo da solicitação atual
gsm_send_serial("AT+HTTPDATA=192,5000"); // atenção neste item
gsm_send_serial("param=Aqualizar");
gsm_send_serial("AT+HTTPACTION=0"); // 0=GET, 1=POST, 2=HEAD.
gsm_send_serial("AT+HTTPREAD"); // passa a URL a ser chamada
gsm_send_serial("AT+HTTPTERM"); // aborta uma solicitação HTTP em execução
gsm_send_serial("AT+SAPBR=0,1"); // encerra a portadora GRPS e só é executado após a transferência dos dados.

delay(1000);
}
`

Importas-te de explicar um pouco mais a funcionalidade que colocaste aqui? E os dados também?

O teu código parece enviar para o modem, no entanto vemos os detalhes a aparecer na porta série do computador. Como é que fazes isto?

Como tens o módulo ligado ao Arduino? Em que pinos?

Da mesma forma, o teu código não parece ler nada da porta série... como sabes que não estás a receber nada? Podes colocar aqui o que recebes realmente? E já agora o código todo.

Outra coisa que regra geral se faz nestas situações é tirar todo o código que não interessa para um problema e tentar resolvê-lo isoladamente. Ajuda a focar, retira possíveis interacções com código (que por si só ajudam a resolver o problema) e também para quem te quer ajudar não ter de ler linhas e mais linhas que não afectam o problema. É apenas uma dica.