Sie können separat senden mit print() wie:
int n_decimals = 3;
float PHValue = Value/10;
float DOValue= 12.22;
gprsSerial.print("AT+HTTPPARA=\"URL\",\"http://itempurl.com/smartpond/AddTemprature?WaterTemperature=");
gprsSerial.print(celsius, n_decimals);
gprsSerial.print("&PHValue=");
gprsSerial.print(PHValue, n_decimals);
gprsSerial.print("&DOValue=");
gprsSerial.print(DOValue, n_decimals);
gprsSerial.println("¤tTime=06-30-2016\"");
Mit n_decimals
die Anzahl der Dezimalstellen, die Sie gedruckt werden soll.
Oder wie @stark in den Kommentaren sagt können Sie snprintf
verwenden Ihre AT-Befehl zu generieren:
char command[256];
float PHValue = Value/10;
float DOValue= 12.22;
snprintf(command, sizeof(command), "AT+HTTPPARA=\"URL\",\""
"http://itempurl.com/smartpond/AddTemprature?"
"WaterTemperature=%f&PHValue=%f&DOValue=%f"
"¤tTime=06-30-2016\"", celsius, PHValue, DOValue);
gprsSerial.println(command);
Anmerkung: Ich war nicht sicher, wenn Sie die Werte in der URL wollen zwischen Anführungszeichen gehen, so Ich habe sie ohne verlassen.
Q. Was erhalten Sie, wenn Sie einen Float und eine Zeichenfolge hinzufügen? A. Ein Compilerfehler! – stark
Ich erhalte keinen Kompilierungsfehler. Ich bekomme NULL-Werte in der Datenbank, weil es Variablennamen anstelle von Daten geht. Problem in doppelten Anführungszeichen. Ich brauche die API mit dynamischen Parametern –
Verwenden Sie snprintf, um die Werte in eine Zeichenfolge zu drucken (oder verwenden Sie stringstream, wenn Sie die C++ - Methode ausführen möchten). – stark