Sim900a AT+HTTPREAD не получает полного ответа
поменял прошивку на SIM900B
попытаться отправить запрос на получение http://dummy.restapiexample.com/api/v1/employee/1
AT+HTTPACTION=0
вернул +HTTPACTION:0,200,98
но когда я пытаюсь прочитать (AT+HTTPREAD
или AT+HTTPREAD=0,98
) данные ответа
Я получил неверный ответ
ожидаемый результат:
+HTTPREAD:98
{"id":"1","employee_name":"Shibani","employee_salary":"999","employee_age":"0","profile_image":""}
и фактические результаты:
+HTTPREAD:98
{"id":"1","employee_name":"Shibani","employee_salary":"999","empe_"0"olme"
+HTTPREAD:98
{"id":"1","employee_name":"Shibani","employee_salary":"999","empe_"0"fea"}
+HTTPREAD:98
{"id":"1","employee_name":"Shibani","employee_salary":"999""pea:,piig"
+HTTPREAD:98
{"id":"1","employee_name":"Shibani","employee_salary":"999",moeg""reae}
мой код Arduino выглядит так
void setup() {
Serial.begin(9600);
mySerial.begin(57600);
delay(5000);
mySerial.println("AT");
Serial.println("End of the setup");
}
void loop() {
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}
@JVic, 👍0
Обсуждение1 ответ
Лучший ответ:
▲ 2
Видимо, вы запускали SoftwareSerial со слишком высокой скоростью передачи данных (57 600), и снижение ее до 9 600 устранило проблему.
,
@tavis
Смотрите также:
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- GSM-модуль Sim800l не может подключить данные gprs
- SIM A9G: +CME ERROR: 53 failure
- Отправить HTTP get запрос от GSM SIM800c и Arduino
- Arduino Nano и SIM800L при питании от батареи
- Работает ли SIM800L в США?
- Как подключить модуль GSM SIM800L?
- Как настроить модуль TinySine 3G (SIM5320E) для запроса HTTP GET
Отредактируйте вопрос: опубликуйте свой код Arduino. Похоже, может произойти переполнение строки., @tavis
Может быть, вы делаете это глупое «подождите 5 секунд и предположим, что есть ответ», которое я вижу повсюду. Или, может быть, вы используете SoftwareSerial на скорости 115200 бод... Никто не может знать, если вы не поделитесь своим кодом..., @Majenko
@Majenko, спасибо, я изменил бод на 9600, и он заработал нормально, @JVic
@Majenko После того, как сделал mySerial.println("AT+HTTPACTION=0"); mySerial.println("AT+HTTPREAD"); задержка(1000); //как получить ответ, не дожидаясь определенного времени., @b.john