Заставить Arduino отправлять и получать одновременно
Я работаю над проектом, в котором подключаю модуль GPS и экран GPRS SIM900. Местоположение будет отправлено, когда он получит определенный символ.
Теперь мой вопрос: может ли Arduino одновременно получать данные от модуля GPRS и GPS? GPS не выдает координаты, однако работает нормально, не получая сообщения от GPRS.
Я использую программный сериал для обоих. Должен/могу ли я использовать серийный номер оборудования и серийный номер программного обеспечения?
@Bayan Ibr, 👍0
Обсуждение3 ответа
Возможно, вам не нужно использовать GPS и GPRS одновременно. Просто проверьте наличие определенного символа от GPRS в цикле и, когда он появится, проверьте данные GPS.
Почему бы не подключить модуль GPS к аппаратному последовательному порту?
Я использую
SoftwareSerial
для обоих случаев.
Как уже говорили другие, вы не можете прослушивать 2 порта SoftwareSerial
одновременно.
Должен ли/могу ли я использовать
HardwareSerial
иSoftwareSerial
?... может ли Arduino одновременно получать данные от модулей GPRS и GPS?
Да, но...
Этот ответ дает полную информацию о выборе «хороших» комбинаций аппаратных и программных последовательных портов. Подведем итог:
Используйте порт
HardwareSerial
(т. е.Serial
) для одного из устройств. Вы по-прежнему можете использовать его для отладочных распечаток, если устройство имеет какой-либо формат команд. Например, если команды начинаются с «AT», просто убедитесь, что ни одна из ваших отладочных распечаток не начинается с «AT». Это абсолютно лучший выбор. Вам придется отключить вывод RX 0 от устройства, чтобы загрузить новые скетчи через USB.Используйте
AltSoftSerial
для другого устройства. Это наиболее эффективный программный последовательный порт, и его можно использовать одновременно сSerial
. Он работает только на двух определенных контактах.NeoSWSerial
— следующий лучший выбор, с ограниченными скоростями передачи данных. Его можно использовать с вышеуказанными вариантами, но передача наNeoSWSerial
не позволяет им принимать данные.SoftwareSerial
— худший выбор. Прием или передача наSoftwareSerial
не позволяет всем вышеперечисленным устройствам принимать что-либо. Он отключает прерывания на длительные периоды времени.
Вы можете подключить GPS к аппаратному последовательному порту RX и GSM к последовательному порту программного обеспечения. аналогичным образом решаю задачу
- Модуль SIM808 GSM работает нормально, GPS не работает (нет сообщения о готовности GPS при включении питания)
- GSM и GPS-модуль не работают вместе
- как заставить щит GPRS/GSM SIM900 работать с модулем gps neo-6M с помощью платы Arduino UNO
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- SIM800L не регистрируется в сети
- Модуль SIM808: команда определения местоположения GSM (AT+CIPGSMLOC=1,1) дает неверное значение после выполнения команды отправки сообщения (AT+CMGS=+91xxxxxxxx)
- Какие компоненты мне нужны маленького GPS-трекера
- Arduino Mega + SIM808 GSM + модуль GPS + программа включается без нажатия кнопки?
Вы не можете получать с двух последовательных устройств ПО одновременно., @Majenko