GPRS Shield и прием SMS

Тема в разделе "Проводная и беспроводная связь", создана пользователем Симилячник, 5 авг 2016.

  1. Доброго времени суток, господа форумчане!

    Залил на GPRS Shelid от Амперки скетч GPRS_ReadSMS.ino , но после сообщения о готовности получать сообщения и отправки его на Shield - ничего не приходит, хотя отправка SMS c шилда, а также звонки с шилда и на шилд работают. Никто не сталкивался с проблемой?
     
  2. NikitOS

    NikitOS Король шутов Администратор

    фотку шилда пришли на схеме и скетч добавь
     
  3. Ссылка на скетч была, но продублирую.

    Код (C++):
    // библиотека для работы с GPRS устройством
    #include <GPRS_Shield_Arduino.h>
    // библиотека для эмуляции Serial-порта
    // она нужна для работы библиотеки GPRS_Shield_Arduino
    #include <SoftwareSerial.h>
    // длина сообщения
    #define MESSAGE_LENGTH 160
    // номер сообщения в памяти сим-карты
    int messageIndex = 0;
    // текст сообщения
    char message[MESSAGE_LENGTH];
    // номер, с которого пришло сообщение
    char phone[16];
    // дата отправки сообщения
    char datetime[24];
    // создаём объект класса GPRS. По умолчанию скорость общения с ним 9600 бод
    // с помощью него будем давать команды GPRS шилду
    GPRS gprs(2, 3, 4, 5);
    void setup()
    {
      // включаем GPRS-шилд
      gprs.powerUpDown();
      // открываем последовательный порт для мониторинга действий в программе
      Serial.begin(9600);
      while (!Serial) {
        // ждём пока не откроется монитор последовательного порта
        // для того, чтобы отследить все события в программе
      }
      // проверяем, есть ли связь с GPRS-устройством
      while (!gprs.init()) {
        // если связи нет, ждём 1 секунду
        // и выводим сообщение об ошибке;
        // процесс повторяется в цикле,
        // пока не появится ответ от GPRS-устройства
        delay(1000);
        Serial.print("Init error\r\n");
      }
      // выводим сообщение об удачной инициализации GPRS Shield
      Serial.println("GPRS init success");
      Serial.println("Please send SMS message to me!");
    }
    void loop()
    {
      // если пришло новое сообщение
      if (gprs.ifSMSNow()) {
        // читаем его
        gprs.readSMS(message, phone, datetime);

        // выводим номер, с которого пришло смс
        Serial.print("From number: ");
        Serial.println(phone);
        // выводим дату, когда пришло смс
        Serial.print("Datetime: ");
        Serial.println(datetime);
        // выводим текст сообщения
        Serial.print("Recieved Message: ");
        Serial.println(message);
      }
    }
    Это код из примеров к библиотеке GPRS от Амперки. У меня Arduino UNO и этот GPRS шилд, поэтому перенес RX и TX на 4 и 5 пины соответственно. Фото прилагаю. IMG_20160808_071544.jpg
     
  4. MDV

    MDV Гик

    Если не ошибаюсь проблема в инициализации модема. Такая проблема уже обсуждалась на данном форуме поищи. Если не найдёшь пиши
     
  5. Была похожая тема, но на нее не ответили. Больше не нашел.
     
  6. MDV

    MDV Гик

    Примерно так
    Jungle Cat, Дело в настройках оповещения о получение смс самим шилдом (чипом). Скорее всего у Вас команда "AT+CNMI?" даст "CNMI=2,1,0,0,0". Замените вторую цифру на "2" и скетч заработает. (AT+CNMI=2,2,0,0,0)
     
    Симилячник нравится это.
  7. MDV

    MDV Гик

    Последнее редактирование модератором: 11 авг 2016
    acos нравится это.
  8. MDV

    MDV Гик

    Ну как результат?
     
  9. Сейчас попробую.
     
  10. А как общаться с модулем? Через CoolTerm?
     
  11. MDV

    MDV Гик

    Через терминал порта
    Можно сразу в скетч прописать
     
  12. А в какое конкретно место? Первым в сетап?
     
  13. MDV

    MDV Гик

    Нет
    После включения и инициализации модема
    Когда от модема придёт ответ ready
     
  14. MDV

    MDV Гик

    Можно после
    nit success");
    Serial.println("Please send SMS message to me!"
     
  15. Capture.PNG

    Сделал. Сообщение отправил. Не пришло.
     
  16. Так. Заработало, когда убрал строчку GPRS gprs(2, 3, 4, 5); Capture.PNG
     
  17. Спасибо огромное!