如何在 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)。