如何在url中发送浮点值,我发送浮点值但得到Null值

时间:2016-06-29 10:38:14

标签: c++ arduino iot

我想发送值并将值插入数据库,但我得到空值。

 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\"");

1 个答案:

答案 0 :(得分:0)

您可以使用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("&currentTime=06-30-2016\"");

使用n_decimals您想要打印的小数位数。

或者@stark在评论中说,您可以使用snprintf来生成AT命令:

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);

注意:我不确定你是否希望url中的值在引号之间,所以我没有留下它们。