Arduino SIM900 SMS не получено

gsm

Я попробовал руководство по этой ссылке

https://lastminuteengineers.com/sim900-gsm-shield-arduino-tutorial/

для отправки SMS-сообщения с помощью SIM900 GSM Shield

Я успешно выполнил раздел по отправке AT-команд, но не могу получить Arduino Uno для отправки SMS. Ниже приведен вывод, который я получаю после выполнения тестов AT-команды

Initializing...
AT

OK
AT+CPIN?

+CPIN: READY

OK
AT+CSQ

+CSQ: 6,0

OK
AT+CCID

8944500105191448516F

OK
AT+CREG?

+CREG: 0,5

OK
AT+COPS?

+COPS: 0,0,"T-Mobile "

OK
AT+COPS=?

+COPS: (2,"T-Mobile ","T-Mobile ","310260"),,(0,1,4),(0,1,2)

OK

и ниже приведены ответы на смс-код

Initializing...
AT

OK
AT+CMGF=1

OK
AT+CMGS="+1mycellphonenumber" 

> Last Minute Engineers | lastminuteengineers.com

поэтому нет ответа на команду AT+CMGS и НЕ получено SMS. Вилка 5В 2А.

Есть идеи, что может быть причиной проблемы?

Ниже приведен код, который я использовал для функции Setup()

void setup()
{
  // Начать последовательную связь с Arduino и Arduino IDE (последовательный монитор)
  Serial.begin(9600);

  //Начнем последовательную связь с Arduino и SIM900
  mySerial.begin(9600);

  Serial.println("Initializing..."); 
  delay(1000);

  mySerial.println("AT"); //Подтверждение связи с SIM900
  updateSerial();

  mySerial.println("AT+CMGF=1"); // Настройка режима ТЕКСТ
  updateSerial();
  mySerial.println("AT+CMGS=\"+ZZxxxxxxxxxx\"");//изменить ZZ с кодом страны и xxxxxxxxxxx с номером телефона на смс
  updateSerial();
  mySerial.print("Last Minute Engineers | lastminuteengineers.com"); //текстовое содержимое
  updateSerial();
  mySerial.write(26);
}

, 👍0


2 ответа


0

Обычно в Setup() у вас есть эта последовательность в конце

Serial.println("Connecting to the network...");

while( (sendATcommand("AT+CREG?", "+CREG: 0,1", 500) ||
    sendATcommand("AT+CREG?", "+CREG: 0,5", 500)) == 0 );

     sprintf(aux_str, "ATD%s;", phone_number);
     sendATcommand(aux_str, "OK", 10000);

     delay(seconds * 1000);

    Serial.println("ATH"); // отключает существующий вызов

Поэтому после регистрации вы отправляете

 Serial.println("AT+CMGS=\"1234567890\""); //ИЗМЕНЕНИЕ НОМЕРА НАЗНАЧЕНИЯ

Вы использовали "\" для охвата номера. Без вашего реального командования сложно угадать. Лучше используйте тестовая программа Soft Serial GPRS Code, последовательный монитор подвержен ошибкам. EDIT Части кода, опубликованные OP. Код после:

  Serial.println("Initializing..."); 
  delay(1000);

должен быть в цикле(). Посмотрите на связанные примеры, как должна происходить связь, если код запускается один раз, чтобы не было повторяющихся задач, таких как чтение символов и т.п.

,

Я разместил код функции Setup(), который использовал выше, строка ниже предназначена для отправки SMS. mySerial.println("AT+CMGS=\"+1mycellphonenumber\"");, @Olefin


1

Поменял SIM-карту на Ting с Hologram, и все заработало отлично!

,

Можно принять свой собственный ответ как решение проблемы., @VE7JRO