проблемы c GPRS Shield v2

Тема в разделе "Arduino & Shields", создана пользователем Сергей@gprser23, 3 апр 2014.

  1. Здравствуйте имею
    GPRS Shield v2
    проблема следующая :
    Загружаю код :
    #include "SIM900.h"
    #include <SoftwareSerial.h>
    //If not used, is better to exclude the HTTP library,
    //for RAM saving.
    //If your sketch reboots itself proprably you have finished,
    //your memory available.
    //#include "inetGSM.h"

    //If you want to use the Arduino functions to manage SMS, uncomment the lines below.
    #include "sms.h"
    SMSGSM sms;

    //To change pins for Software Serial, use the two lines in GSM.cpp.

    //GSM Shield for Arduino
    //www.open-electronics.org
    //this code is based on the example of Arduino Labs.

    //Simple sketch to send and receive SMS.

    int numdata;
    boolean started=false;
    char smsbuffer[160];
    char n[20];

    void setup()
    {
    //Serial connection.
    Serial.begin(9600);
    Serial.println("GSM Shield testing.");
    //Start configuration of shield with baudrate.
    //For http uses is raccomanded to use 4800 or slower.
    if (gsm.begin(2400)){
    Serial.println("\nstatus=READY");
    started=true;
    }
    else Serial.println("\nstatus=IDLE");
    if(started){
    //Enable this two lines if you want to send an SMS.
    //if (sms.SendSMS("3471234567", "Arduino SMS"))
    //Serial.println("\nSMS sent OK");
    }

    };

    void loop()
    {
    if(started){
    //Read if there are messages on SIM card and print them.
    if(gsm.readSMS(smsbuffer, 160, n, 20))
    {
    Serial.println(n);
    Serial.println(smsbuffer);
    }
    delay(1000);
    }
    };

    после чего включаю шилд кнопкой power загорается сначало зелёный потом красный индекатор , открываю монитор порта в нём должно появится сообщение которое придёт на симкарту , но там появлиятся ошибка :

    GSM Shield testing.
    DB:NO RESP
    DB:NO RESP
    DB:NO RESP
    ERROR: SIM900 doesn't answer. Check power and serial pins in GSM.cpp

    status=IDLE

    помогите пожалуйста Снимок экрана 2014-04-03 в 18.09.51.png ALHrwSycFmI.jpg
     
  2. geher

    geher Гуру

    А если в начало setup() вставить задержку на время, необходимое для включения шилда? Секунд на 30.
    Получается, что пока шилд включается кнопкой, функуция setup() ужк завершает работу, и инициализация не производится.
    Как вариант, после включения шилда надавить на ресет на ардуино (если получится изловчиться, я так понимаю, она оказывается под шилдом, в то время как на самом шилде не дублируется).
    Еще вариант, воспользоваться программным включением шилда (если оно есть, в некоторых шилдах надо что-то там паять, чтобы софтовое питание заработало), дл/ чего подать в самом начале setup() на соответствующий пин (какой именно - смотреть в документации на шилд) HIGH на 2-3 секунды, снять его и выждать паузу после секунд 10-20, чтобы гарантировать полное включение шилда.
     
  3. acos

    acos Официальный гик Администратор

    Ваш код точно подходит для GPRS Shield v2?
    http://wiki.amperka.ru/беспроводная-связь:gprs-shield

    Какие вижу отличия. Для начала Software serial у этого шилда сидит на 7, 8 ноге и общается с Arduino на скорости 19200. У вас же какой-то gsm.begin(2400);
    Мне кажется это код для SIM900, подключённого совсем не так, как это сделано в GPRS Shield v2
     
  4. Airbus

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

    А зачем столько "мусора"?
    #include "SIM900.h"
    #include <SoftwareSerial.h>
    #include "sms.h"
    Зачем вообще програмный serial?В соседних темах обсуждалось и програмное включение и отправка СМС можно тупо почитать.Кстати!Пока у меня не было програмного включения включал шилд вручную-и всё работало.Ему не надо никакой инициализации-только регистрация в ГСМ сети.
     
  5. Но ведь нам надо подключать библиотеки для работы , как работать без библиотек ????
    И расскажите пожалуйста поподробней о регистрации в ГСМ сети .
     
  6. Можетели вы мне помоч с написанием кода , я сам ещё плохо разбираюсь в среде программирования arduino и мне бы не помешала помощь
     
  7. acos

    acos Официальный гик Администратор

    В приведённой мной ссылке на вики есть пример с отправкой смс - просто возьмите его, поменяйте номер телефона и вставьте свой текст отправления и загрузите в ардуино — у вас всё заработает.
     
  8. Airbus

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

    В нашем конкретном случае АТМега-8 и выше имеют "на борту" встроенный USART (он же Serial) тоесть никакой дополнительный програмный USART не нужен.Всё вот это
    #include "SIM900.h"
    #include <SoftwareSerial.h>
    #include "sms.h"
    усложняет программу утяжеляет код и уменьшает быстродействие.Эти библиотеки имеет смысл использовать в маленьких и дешёвых микроконтроллерах не имеющих аппаратного USART В качестве примера можете взять скетч отсюда http://tinyurl.com/omw62xm А вот здесь http://tinyurl.com/lsx3faf уже обсуждалось что и как А здесь http://tinyurl.com/merjphg как работать с "железным"USART (serial)
     
    Последнее редактирование: 4 апр 2014
  9. Airbus

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

    Ах да ещё проверьте перемычки RX/TX при использовании програмного USART как в примерах они должны стоять SW (software) то есть програмный в случае если захотите использовать "железный" USART они должны стоять в положении HW(hardware). Перемычки находятся справа напротив четвёртого контакта голубого разьёма "гребёнки".
     
  10. HfjVPvJdHQU.jpg
    У меня получилось отправлять сообщение при нажатии кнопки , я попробовал загрузить скетч " Управление светодиодами с помощью SMS" он не работает у меня просто загорается зелёный светодиод и он не реагирует на сообщения которые я присылаю , в чём может быть ошибка ?
     
    Последнее редактирование: 5 апр 2014
  11. Airbus

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

    Проверьте регистр букв отправляемого сообщения то есть буквы в отправляемом СМС должны быть такие же как и в скетче.Помните что "А" и "а" это разные буквы.Поэтому если в скетче "Green on" то и надо отправлять "Green on" а если "green on" то "green on".У меня всё сразу заработало.
     
  12. Я попробовал изменить включение зелёного если пришло сообщение с текстом A , но всёровно не чего не работает я ввожу теже символы что и в программе , но не чего не получается , я загружаю скетч в плату и у меня сразу загораются оба светодиода (зелёный и жёлтый ) , может ли быть проблема из за того что я использую Arduino at mega 2560 а не Arduino uno как в статье ?
     
  13. Airbus

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

    "А"-какая русская или английская?Маленькая или большая?Вряд ли проблема в том что у Вас Arduino at mega 2560-компиляция прошла нормально?Скетч загрузился?Тогда всё должно работать.Главное достоинство Си-кросплатформенность то есть переносимость на любой процессор.Сама инициализация перферии-разная (то что в void setup) а сам процесс (то что в void loop)везде одинаков.Попробуйте залить скетч в первозданном виде как в примере и ещё раз проверьте плату и порт
     
  14. Нет всё равно не получается , залил скетч из статьи , проверил плату и порт , всё равно не работает . что делать ?
     
  15. и совсем забыл разве светодиоды должны гореть когда загрузил программу , у меня после загрузки светодиоды горят пока я не отключаю arduino от питания
     
  16. BeletskyAV

    BeletskyAV Нерд

    День добрый. НаписАл скеч, попробуй , может пригодиться.
     

    Вложения:

    • GSM_MINI.zip
      Размер файла:
      4 КБ
      Просмотров:
      513
    xzzt и ИгорьК нравится это.