Я работаю над взаимодействием SIM7600E-H (модуль GPS + LTE) с Arduino UNO через UART с использованием AT-команд. План высокого уровня состоит в том, чтобы получить долготу и широту с помощью функции IZAT и передать их по LTE на сервер данных.
Совет по разработке: Arduino UNO с UART с использованием <SoftwareSerial.h>
Сначала я получаю данные GPS с помощью функции IZAT GPS, затем полученные данные раздваиваются, чтобы получить фактическую долготу и широту. Затем создание строки данных включает запрос POST и полученные данные долготы и широты. Длина строки данных составляет 217 байтов. Эта строка данных затем передается на SIM7600E-H с помощью команды AT + CIPSEND и терминатора - 0x1A. Теперь, согласно руководству по набору AT-команд, команда + CIPSEND должна вернуть полученные байты, но она подтверждает с 0,2,2 вместо 0,217,217. Теперь, если мы выполняем те же шаги для автономного GPS вместо IZAT GPS, то мы получаем успешное подтверждение с 0,217,217, и данные также публикуются на сервере данных.
Дальнейшее тестирование с включенной функцией IZAT GPS, I обнаружил, что я могу передавать только около 150 байтов, при использовании команды + CIPSEND. Если я добавляю еще несколько байтов, то это снова подтверждается с 0,2,2.
Предыдущее сомнение было, <SoftwareSerial.h>
создает эту проблему или нет? Итак, я попытался с <AltSoftSerial.h>
и даже с Hardware serial на DIO 0 и 1. Но проблема все еще сохраняется.
Итак, я столкнулся с такой проблемой с командой + CIPSEND при включении функции IZAT GPS.
Последовательные выходы монитора при отдельном использовании IZAT GPS и Автономного GPS: