Sim800L Проблемы с загрузкой, HTTPACTION возвращает 0, 302, 701

Я использую модуль Sim800L и GPS-модуль NEO6M в сочетании с Arduino nano для создания простого устройства слежения. Я получаю данные с GPS и пытаюсь загрузить их на свой сайт с помощью простых PHP-скриптов. Я использую этот код здесь:

//функция - которая отвечает за отправку данных на веб-сервер
void sendLocation(String lat, String lon){
 Sim800l.listen();
 //Строка ниже устанавливает URL-адрес, к которому мы хотим подключиться
 Sim800l.println("AT+HTTPPARA=\"URL\", \"http://" + ipAddress + "/log_info.php?dev_id=13&lat=" + lat + "&lon=" + lon + "\"");
 waitUntilResponse("OK");
 //ИДТИ
 Sim800l.println("AT+HTTPACTION=0");
 waitUntilResponse("200");
 Serial.println("Location sent");
 gpsPort.listen();
}

К сожалению, когда я пытаюсь использовать этот код, в моем последовательном мониторе появляется следующее сообщение:

AT+HTTPACTION=0
OK
+HTTPACTION: 0,302,171
error

Я посмотрел в даташите на Sim800L, и цифра 302 означает "Найдено". Я ожидаю число 200 для "ОК". Я понятия не имею, что я сделал не так, по какой-то причине данные не отправляются на веб-сервер. Я надеюсь, что вы можете помочь. Заранее спасибо!

ИЗМЕНИТЬ: Даташит со всеми ошибками для Sim800L https://www.elecrow.com/wiki/images/2/20/SIM800_Series_AT_Command_Manual_V1. 09.pdf

, 👍0

Обсуждение

302 — это HTTP-код, возвращаемый сервером. он используется для перенаправления. попробуйте распечатать ответ с помощью HTTPREAD. наиболее распространенное перенаправление — на https на том же сервере. поддерживает ли сервер незащищенный доступ по http?, @Juraj

Сервер, который я использую, не поддерживает HTTPS. Но как мне использовать эту команду? AT+HTTPREAD=URL или что-то еще?, @Berne Gerrits

страница 261 в руководстве, @Juraj

Спасибо, сейчас попробую., @Berne Gerrits

Я немного новичок в этом, я думаю, что у меня неправильный синтаксис, но я не получаю никакого ответа, пытаясь выполнить эту команду., @Berne Gerrits

Я понял это, но HTTPREAD просто возвращает «1»., @Berne Gerrits

с какими параметрами вы запускали HTTPREAD?, @Juraj

HTTPREAD=0,1 В руководстве указана первая цифра для начального байта (я предполагал, что это будет байт 0?), а вторая - для длины байта., @Berne Gerrits

Вы просили одного персонажа., @Juraj

ооо... Это имеет смысл.. лол. Я должен просто сделать последний больше, верно? например 1024 или что-то в этом роде?, @Berne Gerrits

Я использовал 1024 сейчас, я действительно вижу, что он перенаправляется на https://www.t-mobile.nl/prepaid-data-pass, что странно, потому что у меня осталось 4 евро данных..., @Berne Gerrits

перенаправить на авторизованный портал для ввода пароля перед использованием сети, @Juraj

Спасибо, я полный идиот. большое спасибо!, @Berne Gerrits


1 ответ


Лучший ответ:

1

302 — это HTTP-код, возвращаемый сервером. Используется для переадресации. Распечатайте ответ с помощью AT+HTTPREAD, чтобы увидеть, куда он перенаправляется.

,