Gsm module and pushingbox comunication

Hy all!

I have a big problem, i would like upload 3 sensor datas to google form at pushingbox.

I was configured a pushingbox and the google form succesfull.

if i send a sensors datas at my browser it's work fine.

http://api.pushingbox.com/pushingbox?devid=v3094B979C1ECCD1&strm=22.8&strt=28.3&stru=6.3

With this data works fine.

I probaly send this link to my arduino i receive error from the server.

The problem is in my arduino code is but i don't know where

I use Sim800 module and Atmega644p.

Here is my code:

#include <SoftwareSerial.h>
#include <String.h>
SoftwareSerial mySerial(14, 13);

#define modem 4
#define led 23 

void setup() {
  mySerial.begin(9600);  /* Define baud rate for software serial communication */
  Serial.begin(9600); /* Define baud rate for serial communication */
  pinMode(modem, OUTPUT); 
  pinMode(led, OUTPUT); 
}

void loop() {
  GsmStart();
  SendData();

}

void GsmStart()
{
  digitalWrite(modem,HIGH);
  mySerial.println("Gsm Modul On!");  
  mySerial.println("Search Network..."); 
  delay(30000);
}

void SendData()
{
 
  Serial.println("AT");
  delay(1000);

  Serial.println("AT+CPIN?");
  delay(1000);

  Serial.println("AT+CREG?");
  delay(1000);

  Serial.println("AT+CGATT?");
  delay(1000);

  Serial.println("AT+CIPSHUT");
  delay(1000);

  Serial.println("AT+CIPSTATUS");
  delay(2000);

  Serial.println("AT+CIPMUX=0");
  delay(2000);
 
  ShowSerialData();
 
  Serial.println("AT+CSTT=\"internet\"");//start task and setting the APN,
  delay(1000);
 
  ShowSerialData();
 
  Serial.println("AT+CIICR");//bring up wireless connection
  delay(3000);
 
  ShowSerialData();
 
  Serial.println("AT+CIFSR");//get local IP adress
  delay(2000);
 
  ShowSerialData();
 
  Serial.println("AT+CIPSPRT=0");
  delay(3000);
 
  ShowSerialData();
  
  Serial.println("AT+CIPSTART=\"TCP\",\"api.pushingbox.com\",\"80\"");//start up the connection
  delay(6000);

  Serial.println("AT+CIPSEND");//begin send data to remote server
  delay(4000);
  ShowSerialData();

  Serial.print("GET /pushingbox?devid=v3094B979C1ECCD1");
  Serial.print("&strm=");
  Serial.print("23.4");
   delay(200);
  Serial.print("&strt=");
  Serial.print("28.7");
  delay(200);
  Serial.print("&stru=");
  Serial.print("6.4");
   delay(200);
  Serial.println(" HTTP/1.1");
  Serial.print("Host: ");
  Serial.println("api.pushingbox.com");
   delay(200);
  Serial.println();
  delay(3000);
  ShowSerialData();
  delay(10000);//waitting for reply, important! the time is base on the condition of internet 
  Serial.println();

  ShowSerialData();
 
  Serial.println("AT+CIPSHUT");//close the connection
  delay(2000);
  ShowSerialData();
  delay(5000);
  digitalWrite(modem,LOW);
}

void ShowSerialData()
{
  while(Serial.available()!=0)  /* If data is available on serial port */
  mySerial.write(char (Serial.read())); /* Print character received on to the serial monitor */
}

Can you help me?

what output do you actually see on mySerial?

If it was me whenever I wrote to Serial I would also write to mySerial, that way I would know where I was in the sketch and what I was outputting and what responses I was getting.

Gsm Modul On!
Search Network...

RDY

+CFUN: 1

+CPIN: READY

Call Ready

SMS Ready

AT+CSTT="internet"

OK
AT+CIICR

OK
AT+CIFSR

100.123.178.156
AT+CIPSPRT=0

OK
AT+CIPSTART="TCP","api.pushingbox.com","80"

OK

CONNECT OK
GET /pushingbox?devid=v3094B979C1ECCD1&strm=23.4&strt=28.7&stru
ERROR

CLOSED

AT+CIPSHUT

SHUT OK

Are you sure the format of this line is correct
GET /pushingbox?devid=v3094B979C1ECCD1&strm=23.4&strt=28.7&stru
Should there be quote characters ( " ) around it?

I'm sure this is not good

but in code i was sended out this

 Serial.print("GET /pushingbox?devid=v3094B979C1ECCD1");
  Serial.print("&strm=");
  Serial.print("23.4");
   delay(200);
  Serial.print("&strt=");
  Serial.print("28.7");
  delay(200);
  Serial.print("&stru=");
  Serial.print("6.4");
   delay(200);
  Serial.println(" HTTP/1.1");
  Serial.print("Host: ");
  Serial.println("api.pushingbox.com");
   delay(200);
  Serial.println();
  delay(3000);
  ShowSerialData();
http://api.pushingbox.com/pushingbox?devid=v3094B979C1ECCD1&strm=22.8&strt=28.3&stru=6.3

This link is good

I don't know what must be the arduino send out.
And what is a correct format.

I tried browsing to www.pushingbox.com to read about the api and, at least at the moment, the site is not responding.

I mention quotes because in an earlier post you had this line which uses quotes;
AT+CIPSTART="TCP","api.pushingbox.com","80"

but this line does not have quotes;
GET /pushingbox?devid=v3094B979C1ECCD1&strm=23.4&strt=28.7&stru

ardly:
I tried browsing to www.pushingbox.com to read about the api and, at least at the moment, the site is not responding.

I mention quotes because in an earlier post you had this line which uses quotes;
AT+CIPSTART="TCP","api.pushingbox.com","80"

but this line does not have quotes;
GET /pushingbox?devid=v3094B979C1ECCD1&strm=23.4&strt=28.7&stru

yes i know this format is not good.

I need a good format can you help me?

https://drive.google.com/open?id=1RcLQSnJiFiWqDFOisB_yRz89VZkF9qCo

I modificate the arduino code.

Befor the module send out the string, i printed to serial monitor out.

Red underline is the serial monitor string, a blue line is the gsm module string.

Where is the fail?