如何在 thingSpeak 的 api 地址中传递 'function value'。我正在使用 Arduino 和 sim900 GSM
How to pass the 'function value' in api address of thingSpeak.. I am using Arduino and sim900 GSM
我想使用 HTTP POST 方法将雨量传感器数据上传到 thingspeak,但是在使用 "Api key= data to be sent .." 时
传感器数据没有上传到服务器……而且因为它在引号中,所以它没有发挥作用……
如何解决这个问题呢??
Serial.print("api_key=QI8G7PVTC2BVIREC&field1=TellWater()\r\n");
您需要在变量中捕获 TellWater()
的 return 值。
这里我假设 TellWater()
return 浮动。您需要将其转换为字符串。
float water_value = TellWater();
String water_value_str;
water_value_str = String(f);
将传感器数据转换为字符串后,您需要执行字符串连接以准备最终输出字符串。
String output_string = "api_key=QI8G7PVTC2BVIREC&field1=" + water_value_str + "\r\n";
Serial.print(output_string);
你不应该在 \r\n
中转义反斜杠 \
。这将导致编译器将语句解释为字符 \
(0x5c) 和字符 r
(0x72) 而不是 \r
(0x0D) (carriage-return)。同样 \n
将被解释为字符 \
(0x5c) 和字符 n
(0x6e) 而不是 \n
(0x0A) (line-feed) 导致您的 GSM 模块等待数据,因为它尚未收到 line-ending 个字符 (\r\n)。
我想使用 HTTP POST 方法将雨量传感器数据上传到 thingspeak,但是在使用 "Api key= data to be sent .." 时 传感器数据没有上传到服务器……而且因为它在引号中,所以它没有发挥作用…… 如何解决这个问题呢??
Serial.print("api_key=QI8G7PVTC2BVIREC&field1=TellWater()\r\n");
您需要在变量中捕获 TellWater()
的 return 值。
这里我假设 TellWater()
return 浮动。您需要将其转换为字符串。
float water_value = TellWater();
String water_value_str;
water_value_str = String(f);
将传感器数据转换为字符串后,您需要执行字符串连接以准备最终输出字符串。
String output_string = "api_key=QI8G7PVTC2BVIREC&field1=" + water_value_str + "\r\n";
Serial.print(output_string);
你不应该在 \r\n
中转义反斜杠 \
。这将导致编译器将语句解释为字符 \
(0x5c) 和字符 r
(0x72) 而不是 \r
(0x0D) (carriage-return)。同样 \n
将被解释为字符 \
(0x5c) 和字符 n
(0x6e) 而不是 \n
(0x0A) (line-feed) 导致您的 GSM 模块等待数据,因为它尚未收到 line-ending 个字符 (\r\n)。