Почему данные не возвращаются, когда я использую http-запрос Sim808
Почему, когда я использую этот код для http-запроса на DFRobot_sim808, я получаю сообщение "выборка поверх", что означает, что данные не возвращаются?
символьные строки:
char http_cmd[] = " HTTP/1.0\r\n"
"Host: 5ac80719.ngrok.io\r\n"
"\r\n";
char first[] = "GET /index.php?lat=";
char requestion[100];
функции, чтобы присоединиться к ним:
void setup() {
float lat = 32.685362, lon = 48.411512;
char char_coor[10];
mySerial.begin(9600);
Serial.begin(9600);
// Установить HTTP-команду
strcpy(requestion,first);
// Для преобразования широты с плавающей запятой в char
dtostrf(lat, 4, 6, char_coor);
strcat(requestion,char_coor);
// Для преобразования долготы с плавающей запятой в символ
dtostrf(lon, 4, 6, char_coor);
strcat(requestion,"&long=");
strcat(requestion,char_coor);
strcat(requestion,http_cmd);
.
.
.
и получение:
sim808.send(requestion, strlen(requestion)-1);
while (true) {
int ret = sim808.recv(buffer, sizeof(buffer)-1);
if (ret <= 0){
Serial.println("fetch over...");
break;
}
/*
Программа останавливается выше
*/
buffer[ret] = '\0';
Serial.print("Recv: ");
Serial.print(ret);
Serial.print(" bytes: ");
Serial.println(buffer);
break;
}
спасибо
@Pooya Behravesh, 👍1
Обсуждение1 ответ
▲ 1
Я вижу одну проблему: в цикле while
есть инструкция break
, которая «выходит» из цикла while
перед печатью данных. . Может помочь удаление этого break
и распечатка данных там, где был break
. Вот пример того, что я пытаюсь сказать:
void setup(){
Serial.begin(9600);
}
void loop(){
while(true){
int ret = 0;
if(ret <= 0){
Serial.println("fetch over...");
// Здесь распечатываем полученные данные...
Serial.print("Recv: ");
Serial.print(ret);
break;
}
}
}
,
@VE7JRO
Смотрите также:
- Как публиковать запросы HTTP POST на моем веб-сайте?
- Почтовый запрос HTTP в формате JSON с использованием модуля SIM900
- HTTP GET запрос с использованием Arduino Uno и ESP8266
- Реализовать связь Visible Light с помощью Arduino
- Невозможно использовать библиотеку клавиатуры с Arduino UNO даже после смены прошивки.
- GSM-модуль Sim800l не может подключить данные gprs
- GSM-модуль IOT-GA6 Arduino + ошибка CME 58
- Скетч мигания ESP8266 не мигает светодиодом
Хорошо, я имею в виду, почему данные не возвращаются??, @Pooya Behravesh
возможно, устройство не подключено к Интернету ... ваша работа заключается в устранении основных неполадок и обновлении вашего вопроса с описанием того, что вы уже пробовали., @jsotola