2016-06-29 11 views
-3

Ich möchte die Werte senden und fügen Sie die Werte in die Datenbank, aber ich bekomme Null-Werte.wie float-Wert in URL senden, im Senden float-Wert, aber null Werte

float PHValue = Value/10; 
    float DOValue= 12.22; 
    gprsSerial.println("AT+HTTPPARA=\"URL\",\"http://itempurl.com/smartpond/AddTemprature?WaterTemperature=""+celsius+""&PHValue=""+PHValue+""&DOValue=""+DOValue+""&currentTime=06-30-2016\""); 
+0

Q. Was erhalten Sie, wenn Sie einen Float und eine Zeichenfolge hinzufügen? A. Ein Compilerfehler! – stark

+0

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 –

+0

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

Antwort

0

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("&currentTime=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" 
      "&currentTime=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.