Gprs shield выдает ошибку init error

Тема в разделе "Arduino & Shields", создана пользователем kuklindal, 3 апр 2018.

  1. kuklindal

    kuklindal Нерд

    Здравствуйте выдает arduino uno ошибку init error в мониторе порта когда пытаюсь отправить смс через gprs
    shield
     
  2. Asper Daffy

    Asper Daffy Иксперд

  3. kuklindal

    kuklindal Нерд

    Может поможете?
     
  4. Asper Daffy

    Asper Daffy Иксперд

    Как ты себе это видишь?

    ХЗ какой скетч, которого я не вижу, работает в ХЗ какой схеме, которой я не вижу и выдаёт ошибку.

    Чем я могу помочь-то?
     
  5. kuklindal

    kuklindal Нерд

    // библиотека для работы с GPRS устройством
    #include <GPRS_Shield_Arduino.h>

    // библиотека для эмуляции Serial порта
    // она нужна для работы библиотеки GPRS_Shield_Arduino
    #include <SoftwareSerial.h>

    // создаём объект mySerial и передаём номера управляющих пинов RX и TX
    SoftwareSerial mySerial(10, 11);

    // создаём объект класса GPRS и передаём в него объект mySerial
    GPRS gprs(mySerial);
    // можно указать дополнительные параметры — пины PK и ST
    // по умолчанию: PK = 2, ST = 3
    // GPRS gprs(mySerial, 2, 3);

    void setup()
    {
    // открываем последовательный порт для мониторинга действий в программе
    Serial.begin(9600);
    // открываем Serial-соединение с GPRS Shield
    mySerial.begin(9600);
    // ждём, пока не откроется монитор последовательного порта
    // для того, чтобы отследить все события в программе
    while (!Serial) {
    }
    Serial.print("Serial init OK\r\n");
    // включаем GPRS шилд
    gprs.powerOn();
    // проверяем есть ли связь с GPRS устройством
    while (!gprs.init()) {
    // если связи нет, ждём 1 секунду
    // и выводим сообщение об ошибке
    // процесс повторяется в цикле
    // пока не появится ответ от GPRS устройства
    delay(1000);
    Serial.print("Init error\r\n");
    }
    // выводим сообщение об удачной инициализации GPRS Shield
    Serial.println("GPRS init success");
    // отправляем сообщение по указанному номеру с заданным текстом
    gprs.sendSMS("+79025145765", "Hello SMS from Amperka!");
    }

    void loop()
    {
    }



    вот код, подсоединял как на схеме для ардуино уно
     
  6. kuklindal

    kuklindal Нерд

    в мониторе порта пишет init error
     
  7. Asper Daffy

    Asper Daffy Иксперд

    Много раз? Или один раз выдаёт error, а потом "GPRS init success"?
     
  8. kuklindal

    kuklindal Нерд

    Да, много, бесконечно
     
  9. b707

    b707 Гуру

    с шилдом через АТ-команды в терминале пробовали работать? Отвечает? если да - открывайте исходник библиотеки GPRS_Shield_Arduino.h, ищите функцию init() и смотрите, какие команды она должна посылать на модем. Потом попытайтесь повторить эти команды вручную в терминале, если будут ошибки - выложите сюда
     
  10. a1000

    a1000 Гуру

    Ну ты человека и загрузил. Он АТ команды через библиотеку отправляет, а ты "откройте исходник".
     
    Airbus нравится это.
  11. b707

    b707 Гуру

    Ничего зубодробительно страшного я не написал - и это реальный метод решить проблему, без всякого глума. А по ответу хоть будет ясно, есть ли смысл продолжать обсуждение. Если ему слово "исходник" не знакомо - пусть обращается в поддержку Амперки - это их крест, разруливать претензии таких клиентов.
     
  12. a1000

    a1000 Гуру

  13. Питание на gprs-shield какое подаете? Я с этим же столкнулся, подавал 5В 2,77А - часто был init error. Подайте 9В (не менее 2А) - все заработает.
    Так что все просто.
     
  14. Новое
    Питание на gprs-shield какое подаете? Я с этим же столкнулся, подавал 5В 2,77А - часто был init error. Подайте 9В (не менее 2А) - все заработает.
    Так что все просто.
     
  15. Airbus

    Airbus Радиохулиган Модератор

    Код жуткий конечно.2 сериала зачем то.Но тут можно вклинить delay на 5 секунд после myserial begin(9600) чтоб шилд в сети зарегистрировался.
     
  16. "2 сериала зачем то"

    Один для монитора
    Второй для передачи данных между ардуиной и шилдом
     
  17. Airbus

    Airbus Радиохулиган Модератор

    Открою Вам страшную тайну:Можно вместо двух использовать один и причём аппаратный безо всяких библиотек.И все команды в порту точно также отслеживаются только код получается более компактным красивым и шустрым.попробуйте-понравиться!
     
    arkadyf нравится это.
  18. Airbus

    Airbus Радиохулиган Модератор

    Как то так
    Код (C++):

    // отправляем смс в текстовом режиме
    //легко и просто
    //библиотеки в топку включаем моск!
    void setup ()
    {
    Serial.begin(9600);//скорость 9600 самое ОНО
    delay(3000); //ждёмрегимся в сети
    Serial.println("AT + CMGS = \"+79025145765\""); //отправим СМС хозяину
    delay(100);
    // Пишем текст сообщения
    Serial.println("Hello SMS from Amperka!");// йа готово!!!
    delay(100);
    // Отправляем Ctrl+Z, обозначая, что сообщение готово
    Serial.println((char)26);
    }
    void loop()
      { // Здеся можно тоже что нибудь наваять
        // например blink или blynk }
     
     
    arkadyf нравится это.
  19. b707

    b707 Гуру

    фигню написали. Если б наоборот - на 9в глючило, а на 5в нет - это было б похоже на правду, а по вашей схеме быть не может. Если глюки были и пропали - это просто совпадение.Прямое питание (5в) всегда лучше, чем через преобразователь
     
    Airbus нравится это.
  20. Airbus

    Airbus Радиохулиган Модератор

    Ну да 9 Вольт может сгореть нах.
     
    arkadyf нравится это.