Gprs shield

Тема в разделе "Arduino & Shields", создана пользователем Алексей_Д, 27 янв 2020.

  1. Помогите пожалуйста.
    Скопировал код, указанный ниже, и вставил его в скетч (ARDUINO IDE 1.8.9)
    Код взят со страницы wiki.amperka.ru

    Код (C++):
        // библиотека для работы с GPRS устройством
        #include <GPRS_Shield_Arduino.h>
       
        // создаём объект класса GPRS и передаём в него объект Serial1
        GPRS gprs(Serial1);
        // можно указать дополнительные параметры — пины PK и ST
        // по умолчанию: PK = 2, ST = 3
        // GPRS gprs(Serial1, 2, 3);
       
        void setup()
        {
          // открываем последовательный порт для мониторинга действий в программе
          Serial.begin(9600);
          // открываем Serial-соединение с GPRS Shield
          Serial1.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("+79263995140", "Hello SMS from Amperka!");
        }
       
        void loop()
        {
        }

     

    При проверке кода выдает ошибку: 'Serial1' was not declared in this scope
    Почему так?
     

    Вложения:

    • 1.jpg
      1.jpg
      Размер файла:
      232,5 КБ
      Просмотров:
      250
  2. b707

    b707 Гуру

    плата какая. Уно или Нано, наверно?
    Этот код для Меги, на Уно-нано работать не будет
     
  3. Плата UNO, но я её не подключал к пк в момент проверки скетча.
     
  4. b707

    b707 Гуру

    но вы ее выбрали в настройках? - значит компиляция выполняется для Уно, а код написан для Меги.
    В частности, на Уно просто нет Serial1 -отсюда и ошибка
     
  5. Всё понял! Спасибо!
     
  6. Ещё вопрос: опять ошибка и для "МЕГИ" то же. Почему?
     

    Вложения:

    • 2.jpg
      2.jpg
      Размер файла:
      230,4 КБ
      Просмотров:
      262
  7. b707

    b707 Гуру

    Привыкайте сами читать, что вам компилятор пишет - millis1 не обьявлен.
    Вероятно переменная в 8 строке и в 18 написана по разному - на скрине видно плохо.
     
  8. Внимательно рассмотрел скетч, всё было написано одинаково. Всё равно переписал всё по новому и ошибка исчезла. Это как то связано с копированием и вставкой кода из другого источника...
    Спасибо!
     
  9. Daniil

    Daniil Гуру

    Нет. На скрине это разные переменные.
    Если плохо видите текст, то рекомендую использовать ctrl+<колесико мыши> - это увеличит шрифт в IDE и такие ляпы детектируются быстро.
    Если вы честно копировали весь код, то это либо недосмотр автора кода, либо намеренная защита. Бывают проблемы с буквами "а" и "a" (латинская/кирилица и т.п.), с пробелами (есть необычные пробелы), с ";" (в некоторых языках это буква в греческом это знак вопроса, а значит имеет другой код, т.е. это не тчк с зпт) и др...
    Тут примеры некоторых символов есть.
     
    Последнее редактирование: 27 янв 2020
  10. Нет, всё видно было хорошо. Внимательно всё проверил, символы выглядели одинаково, но скопированы они были из книги в формате "djvu". Не раз замечал, что при копировании кода возможны изменения в отдельных символах, но такое вижу впервые.
    Спасибо за помощь!
     
  11. parovoZZ

    parovoZZ Гуру

    Лучше всё же ручками набить, чтобы отложилось...
     
  12. b707

    b707 Гуру

    Алексей, к чему этот спор - раз компилятор выдал такую ошибку, значит буквы в именах были разные. И точка
     
    Последнее редактирование: 27 янв 2020
  13. Daniil

    Daniil Гуру

    Объявлена millisl (Эль), а ошибка в том что не объявлена переменная millis1 (Адын), на скрине сохранилось)
     
    Ariadna-on-Line нравится это.
  14. Daniil

    Daniil Гуру

    можно, пожалуйста, скрин книги с этим кодом? Интересуют как раз строки 8 и 18
     
  15. Пожалуйста...
     

    Вложения:

    • Book.jpg
      Book.jpg
      Размер файла:
      181,1 КБ
      Просмотров:
      266
    Daniil нравится это.
  16. Да думаю вы правы.
     
  17. SergeiL

    SergeiL Оракул Модератор

    Так там же, на Амперке, есть пример SoftwareSerial, который будет работать и компилироваться под UNO.
     
  18. Что то не получается у меня никак?
     

    Вложения:

    • 4.jpg
      4.jpg
      Размер файла:
      288,6 КБ
      Просмотров:
      245
  19. С настройкой платы и отправкой проверочного смс я разобрался, всё работает. Никак скетч, из книги, не компилируется. А потом надо будет разбираться с "АТ" командами... У меня шилд Sim800C.
     
  20. SergeiL

    SergeiL Оракул Модератор

    В книжке ошибка, бывает
    Должно быть так:
    Код (C++):
    Sim900Serial.begin(9600);
     
    Ariadna-on-Line нравится это.