あなたは、別途のようなprint()を使用して送信することができます
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\"");
をn_decimals
を使用すると、印刷したい小数点以下の桁数を。
それとも@starkは、あなたのATコマンドを生成するためにsnprintf
を使用することができ、コメントで述べているように:
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);
注:私はあなたがURLの値は引用符の間に行きたいかどうかわからなかったので、私はそれらを残しました。
Q.浮動小数点数と文字列を追加するとどうなりますか? A.コンパイラエラー! – stark
imはコンパイルエラーになりません。私はデータベースにnull値を持っているので、データに行く代わりにその変数名に行く。二重引用符の問題.i動的パラメータを持つAPIが必要 –
snprintfを使用して値を文字列に出力する(またはC++のやり方をする場合はstringstreamを使用する)。 – stark