별도로 같은 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
메신저 컴파일 오류가 발생하지 않습니다. 데이터베이스에 NULL 값을 가져 오는 중이며 데이터를 이동하는 대신 해당 변수 이름을 사용합니다. 큰 따옴표 안의 문제. 동적 매개 변수가있는 API가 필요합니다. –
snprintf를 사용하여 문자열에 값을 인쇄하십시오 (또는 C++ 방식으로 수행하려면 stringstream을 사용하십시오). – stark