Неожиданный результат с GSM-модулем А6
У меня есть модуль GSM A6, вот такой one.
Я собираюсь использовать Arduino Nano в качестве моста для связи с ним, у меня есть внешний источник питания (так как я читал, что этот модуль может потреблять до 2 А при максимальном потреблении) (этот источник питания разделяет GND с модулем и Arduino), и я загружаю следующий код в Nano:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);
void setup()
{
//Начинаем последовательную связь с Arduino и Arduino IDE (Serial Monitor)
Serial.begin(9600);
//Начинаем последовательную связь с Arduino и A6
mySerial.begin(115200);
Serial.println("Initializing...");
delay(1000);
}
void loop()
{
updateSerial();
}
void updateSerial()
{
delay(500);
while (Serial.available())
{
mySerial.write(Serial.read());//Пересылаем полученный последовательный порт в последовательный порт программного обеспечения
}
while(mySerial.available())
{
Serial.write(mySerial.read());//Пересылаем полученное программное обеспечение Serial в последовательный порт
}
}
Я установил скорость передачи данных на 115200 моего порта SoftwareSerial (подключенного к 10 и 11 контактам на ArduinoNano), потому что (даже если модуль говорит, что у него есть автоматический -detect Speed Hability) не работает, если я установил скорость 9600 (или любую другую) и изменил библиотеку SoftwareSerial для расширения буфера из от 64 тыс. до 512 тыс. (пытаюсь решить эту проблему) после этого страница инструкции (также: ХОРОШАЯ РАБОТА на этой странице!!!).
И это работает... работает относительно хорошо, я имею в виду: Команды AT для тестирования (согласно самому описанию) — это AT и ATI (в одном я получаю «AT /r OK», а последний дает некоторую полезную информацию, например, об ОС и прочее), и они работают, только не показывают мне всегда один и тот же ответ, я оставляю скриншоты:
Как видите, ответы не всегда точные, есть мусорные символы, и мне нужно, чтобы они были точными, потому что моя идея состоит в том, чтобы создать своего рода сигнализацию, в которой Arduino (One, Nano или Mega) отправляет и получает AT-команды. Раньше я работал с модулем SIM900 и всегда получал один и тот же ответ, когда отправлял AT-команду.
Итак... есть помощь?!
@k.Cyborg, 👍0
1 ответ
Очевидно, библиотека SoftwareSerial имеет некоторые ограничения, поэтому я меняю скорость передачи данных в модуле, используя это предложение:
AT+IPR=9600
И измените код, который я загружаю в Nano, изменив скорость передачи данных в объявлении, с:
mySerial.begin(115200);
в
mySerial.begin(9600);
И теперь всё хорошо :D
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- SIM800L не регистрируется в сети
- Модуль SIM808 GSM работает нормально, GPS не работает (нет сообщения о готовности GPS при включении питания)
- Подключение модема GSM напрямую к Rx и Tx
- Sim800 FTP Arduino
- GSM и GPS-модуль не работают вместе
- SIM800L не отвечает на AT-команды
- как заставить щит GPRS/GSM SIM900 работать с модулем gps neo-6M с помощью платы Arduino UNO