PaulS:
The sprintf() function will produce the same string without trashing memory. Learn to use it, and forget that the stupid String class even exists.
let's say with a bit of strcat() and dtostrf() because he is using floating point data
but I don't think this is his real problem. if you count the number of character in
PaulS:
That is being sent out. Sure, it will block when the outgoing buffer gets full. But, that isn't a problem.
Yes - but since he is stating that on the server side he is only receiving
server only shows this a=0.00&b=37
that seems to indicate that something is happening with the buffer. as we don't know how this is setup and how often he loops this... wondering how the buffer plays with the dynamic String objects he is playing with...
PaulS:
OP needs to print to the serial port what is actually being written to the (stupidly named) mySerial instance.
Either the data is correct, or it isn't. Right now, we have no way of knowing.
Yes - but may be not enough.
indeed would be on safer grounds with a char array.
You seem to think that some automagic concatenation is going to happen here. It is NOT. Get over it.
char atCommand[120];
sprintf(atCommand, "AT+HTTPPARA=\"URL\",\"www.imkhalid.info/fazlu/data.php?a=%s&b=%s&c=%s&d=%s&e=%s\"", u, v, w, y, z);
modem.println(atCommand);
Notice the meaningful name for the SoftwareSerial instance, instead of the stupid name.
You seem incapable of printing the string that you send to the modem to the Serial Monitor app. I really have to wonder why.
It is nearly impossible to fit a 6 character minimum string in a 6 element array and still have room for the terminating NULL. I suspect that you are writing over memory you don't own.
Personally, I'd be concerned about that INF that is printing. Surely you don't expect to put "INF" in a column that expects a float, do you?