UNO + SIM900
- Войдите на сайт для отправки комментариев
Ср, 21/04/2021 - 13:55
Доброго времени суток, никак не получается связать UNO с Sim900, чтобы для начала хотя-бы общаться через виртуальный терминал посредством AT команд.
#include <SoftwareSerial.h>
// Создать объект программного последовательного порта для связи с SIM900
// Tx и Rx SIM900 подключены к выводам 7 и 8 Arduino
SoftwareSerial mySerial(7, 8);
void setup()
{
// Начать последовательную связь Arduino и Arduino IDE (монитор последовательного порта)
Serial.begin(9600);
// Начать последовательную связь Arduino и SIM900
mySerial.begin(9600);
Serial.println("Initializing...");
delay(1000);
// Рукопожатие с SIM900
mySerial.println("AT");
updateSerial();
// Тест качества сигнала, диапазон значений 0-31, 31 - лучший
mySerial.println("AT+CSQ");
updateSerial();
// Прочитать информацию о SIM карте, чтобы убедиться, что SIM карта подключена
mySerial.println("AT+CCID");
updateSerial();
// Проверяем, зарегистрирован ли модуль в сети
mySerial.println("AT+CREG?");
updateSerial();
}
void loop()
{
updateSerial();
}
void updateSerial()
{
delay(500);
while (Serial.available())
{
// Пересылка того, что было получено с аппаратного последовательного порта,
// на программный последовательный порт
mySerial.write(Serial.read());
}
while(mySerial.available())
{
// Пересылка того, что было получено с программного последовательного порта,
// на аппаратный последовательный порт
Serial.write(mySerial.read());
}
}
на виртуальном терминале получаю:
Initializing... ⸮⸮⸮⸮ RDY +CFUN: 1 +CPIN: READY Call Ready
на команды не реагирует, при звонке на сим пишет в терминал, что есть входящий звонок (RING)
Сделан в виде модуля, почти такой же как на изображении ( за исключением пары мелких изменений)
В чем заключается "не получается"? сообщения модема на терминале получаете, насколько я вижу...
Модуль не реагирует на команды по типу "AT" "AT+GMR" , ни из кода и ни из виртуального терминала , соответственно общение отсутствует, не получается вручную опросить его или взять входящий вызов
попробуйте так
mySerial.print("AT\r\n");Ничего не изменилось. Есть также плата леонардо, но с ним этот модуль вообще никак не хочет общаться. (а так же есть ардуино нано, в которой в теории залита рабочая прошивка для работы именно с этим модулем, но ведь из него никак не достанешь исходники))