Как передать «значение функции» в API-адресе thingSpeak. Я использую Arduino и sim900 GSM

Я хочу загрузить данные датчика дождя на вещи, используя метод HTTP POST, но при использовании «Ключ API = данные для отправки ..» Данные датчика не загружаются на сервер ... а также, поскольку они в кавычках, поэтому это не принимая как функцию может быть.... Как решить эту проблему??

Serial.print("api_key=QI8G7PVTC2BVIREC&field1=TellWater()\\r\\n"); 

person Pankaj Rai    schedule 24.05.2019    source источник


Ответы (1)


Вам нужно зафиксировать возвращаемое значение TellWater() в переменной.

Здесь я предполагаю, что TellWater() возвращает поплавок. Вам нужно преобразовать его в строку.

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) (возврат каретки). Точно так же \\n будет интерпретироваться как символ \ (0x5c) и символ n (0x6e) вместо \n (0x0A) (перевод строки), заставляя ваш модуль GSM ожидать данных, поскольку он не получил символы конца строки (\r\n ).

person Dark Sorrow    schedule 28.05.2019