Отправка координат TinyGPS++ в качестве параметров с GPRS
Я могу просматривать свои координаты на последовательном мониторе с помощью Serial.println(gps.location.lat(), 6);
Я считаю, что тип данных, возвращаемый gps.location.lat()
, — double. Мне нужно передать это значение веб-сервису с помощью AT-команд по GPRS.
двойная широта = gps.location.lat()
Позже в моем коде я выполняю команды AT, чтобы начать HTTP POST. Я хотел бы знать, как передать эти двойные значения в моих параметрах.
gsm.println("AT+HTTPPARA=\"URL\",\"http://webservice/service1\"");
gsm.println("AT+HTTPDATA=192,10000");
gsm.println("latitude=" + latitude);
< Это не разрешено.
Как мне передать этот параметр в мой веб-сервис?
1 ответ
Лучший ответ:
Одним из решений может быть разделение команд:
gsm.print("latitude=");
gsm.println(latitude);
Я не уверен, как следует передавать несколько параметров; если это обычный синтаксис, то можно написать что-то вроде
gsm.print("latitude=");
gsm.print(latitude);
gsm.print("&longitude=");
gsm.println("longitude);
Если у меня будет время, я немного изучу этот вопрос.
Чтобы проверить, в чем проблема, вы можете попробовать отправить «статичные» сообщения, например
gsm.println("latitude=12.345");
Чтобы проверить, является ли этот формат правильным
РЕДАКТИРОВАНИЕ: после очень быстрого исследования
Похоже, AT-команды немного сложнее. Чтобы отправить параметры, по крайней мере на SIM800L, нужно:
- отправить команду HTTPDATA (первый параметр — длина полезной нагрузки)
- подождите, пока плата отправит вам команду СКАЧАТЬ
- Отправьте тело запроса, отформатированное как объект JSON. Это означает, что вам нужно отправить что-то вроде
{ "latitude" : 12.345, "longitude": 98.765 }
В конце концов, гораздо быстрее использовать уже разработанную для этого библиотеку, например ArduinoSIM800L (проверьте библиотеку, доступную для вашего GPRS-модема, или измените эту)
- Как преобразовать строку в массив байтов
- Как публиковать запросы HTTP POST на моем веб-сайте?
- Проблемы с преобразованием byte[] в String
- Как преобразовать строку в длинную?
- Как преобразовать время EPOCH во время и дату на Arduino?
- Почтовый запрос HTTP в формате JSON с использованием модуля SIM900
- Преобразование строки в IP-адрес
- Как правильно отправлять данные через http с помощью sim908?
Разделение значений в отдельных командах печати было трюком. Спасибо!, @Mitchel Stuart Fountaine