Arduino Uno&GSM Shield SIM900 (aliexpress)

Тема в разделе "Arduino & Shields", создана пользователем Иван Н. Пулькин, 30 ноя 2015.

  1. Добрый день. Требуется помощь
    Имеется сабджевый набор. Никак не могу добиться ХОТЬ КАКОГО-то ответа от шилда
    Сабдж на хардовом уровне конфигурировался вот по этому мануалу, хотя немного ему не соответствует - http://www.seeedstudio.com/wiki/GPRS_Shield_V1.0 Режим SoftwareSerial.
    Тестовый скетч взят вот такой - http://www.seeedstudio.com/wiki/GPRS_Shield_V1.0

    //Serial Relay - Arduino will patch a
    //serial link between the computer and the GPRS Shield
    //at 19200 bps 8-N-1
    //Computer is connected to Hardware UART
    //GPRS Shield is connected to the Software UART

    #include <SoftwareSerial.h>

    SoftwareSerial GPRS(7, 8);
    unsigned char buffer[64]; // buffer array for data recieve over serial port
    int count=0; // counter for buffer array
    void setup()
    {
    GPRS.begin(19200); // the GPRS baud rate
    Serial.begin(19200); // the Serial port of Arduino baud rate.

    }

    void loop()
    {
    if (GPRS.available()) // if date is comming from softwareserial port ==> data is comming from gprs shield
    {
    while(GPRS.available()) // reading data into char array
    {
    buffer[count++]=GPRS.read(); // writing data into array
    if(count == 64)break;
    }
    Serial.write(buffer,count); // if no data transmission ends, write buffer to hardware serial port
    clearBufferArray(); // call clearBufferArray function to clear the storaged data from the array
    count = 0; // set counter of while loop to zero


    }
    if (Serial.available()) // if data is available on hardwareserial port ==> data is comming from PC or notebook
    GPRS.write(Serial.read()); // write it to the GPRS shield
    }
    void clearBufferArray() // function to clear buffer array
    {
    for (int i=0; i<count;i++)
    { buffer=NULL;} // clear all index of array with command NULL
    }

    7pin arduino - tx шилда
    8pin - rx шилда
    Запитан шилд - отдельным БП 5В 1 А
    Симптомы и проведенные работы

    1. в шилд после его прихода из китая вставлены батарейка CR2012 и симка. С симки предварительно сняты пинкоды и прочее. Она - рабочая.
    2. при подаче питания и нажатии на кнопку шилд грузится. если звонить на эту симку - идет длинный нормальный гудок. Предполагаю что GSM часть шилда рабочая.
    3. Поставить шилд сверху на Arduino нет возможности ввиду отсутствия контактов.
    4. Соединяю проводками, гружу скетч, запускаю прогу работы с компортом (com4 у меня), соединяю по USB с Arduino - ноль реакции на команды.ни команды и ответы в терминале порта не пишет.
    5. Джамперы ВРОДЕ БЫ выставлены в режим SS. Беру с 7 и 8 ног Arduino Uno

    Что делалось
    а. Менял пару джамперов на HS - нет реакции
    б. Менял контакты на пару 0&1 ардуины в том числе в HS режиме - нет реакции
    в. менял контакты на 2и3 ардуины - нет реакции
    г. менял контакты местами - нет реакции.

    Плат пришло две - ситуация одинаковая на обоих чтопозволяет предположить что что то я о них НЕ ЗНАЮ. Но вот что - НУХОТЬУБЕЙТЕ не пойму.
    Требуется помощь в части

    1. Заставить работать шилд
    2. Заставить его программно включаться из скетча, ибо сейчас попытка включить его вот таким скетчем ни к чему не приводит

    void setup()
    {
    //Включаем GPRS Shield, эмулируя нажатие кнопки POWER
    pinMode(5, OUTPUT);
    digitalWrite(5, LOW); // и отпускаем в Low.
    delay(1000); // Ждём 5 секунд для старта шилда
    digitalWrite(5, HIGH); // Подаем High на пин 9
    delay(2000); // на 3 секунды
    digitalWrite(5, LOW); // и отпускаем в Low.
    delay(3000); // Ждём 5 секунд для старта шилда
    }
    void loop()
    {
    //Пока ничего больше не делаем
    } resized_30112015_e4656e.jpg resized_30112015_f4d81a.jpg resized_30112015_fac8ff.jpg
     
  2. /*

    This example tests to see if the modem of the
    GSM shield is working correctly. You do not need
    a SIM card for this example.

    Circuit:
    * GSM shield attached

    Created 12 Jun 2012
    by David del Peral
    modified 21 Nov 2012
    by Tom Igoe

    http://www.arduino.cc/en/Tutorial/GSMToolsTestModem

    This sample code is part of the public domain

    */

    // libraries
    #include <GSM.h>

    // modem verification object
    GSMModem modem;

    // IMEI variable
    String IMEI = "";

    void setup()
    {
    // initialize serial communications and wait for port to open:
    Serial.begin(9600);
    while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
    }

    // start modem test (reset and check response)
    Serial.print("Starting modem test...");
    if (modem.begin())
    Serial.println("modem.begin() succeeded");
    else
    Serial.println("ERROR, no modem answer.");
    }

    void loop()
    {
    // get modem IMEI
    Serial.print("Checking IMEI...");
    IMEI = modem.getIMEI();

    // check IMEI response
    if (IMEI != NULL)
    {
    // show IMEI in serial monitor
    Serial.println("Modem's IMEI: " + IMEI);
    // reset modem to check booting:
    Serial.print("Resetting modem...");
    modem.begin();
    // get and check IMEI one more time
    if (modem.getIMEI() != NULL)
    {
    Serial.println("Modem is functoning properly");
    }
    else
    {
    Serial.println("Error: getIMEI() failed after modem.begin()");
    }
    }
    else
    {
    Serial.println("Error: Could not get IMEI");
    }
    // do nothing:
    while (true);
    }

    Данный скетч говорит в сериал порте следующее

    Starting modem test...ERROR, no modem answer.
    Checking IMEI...Modem's IMEI: 0
    Resetting modem...Modem is functoning properly

    При этом первые 8 контактов ардуины соединены с 8 контактами платы
     
  3. MDV

    MDV Гик

    1 включаем дергая пин 9. Ты же в в программе дёргаешь пин 5
    2 проверь на плате должна быть запаяна перемычка от пин 9 к power on
    3 после того как справимся с п 1 и 2, смотрим куда подключён управление, перемычки стоят на софт, а провода воткнуты на хард
    4 меняем библу на амперкину
    5 пишем что получилось
     
  4. 1. Я дергаю 5 ногу на ардуине потому как 9 занял одним из контактов датчика DHT22. На GSM Shield эта 5 нога скомутирована проводком с 9 ногой. Или я что-то не так сделал?
    2. Я просто НЕ ВИЖУ этого пятака. на плате столь малый монтаж и акая ОТВРАТИТЕЛЬНАЯ печать что без лупы НИХРЕНА прочитать невозможно. А ее под рукой и нет. Где примерно он должен находиться?
    3. это - одна из вариаций, сделаная от безисходности. ниже фотка как коммутирую на софт. Я правильно понимаю что софт это 2&3 на 1&0 соответственно (ардуино и плата) а хард это 7&8 на 0&1 соответственно?
    4. библиотеку поставил. взял отсюда - https://github.com/amperka/gprs-shield. сделал скетч:
    #include <GPRS_Shield_Arduino.h>
    #include <sim900.h>
    #include <SoftwareSerial.h>

    GPRS gprs(9600);

    void setup()
    {
    gprs.powerUpDown();
    while (!gprs.init())
    delay(1000);

    gprs.sendSMS("+79121098086", "Hello SMS from Amperka!");
    }

    void loop()
    {
    }

    скомутировано на софт.
    Результат - 0

    pic (1).jpg pic.jpg
     
  5. В нескольких местах написано что при загрузке скетча то плату надо обесточить то Rx&Tx контакты разорвать - надо ли это делать?
     
  6. MDV

    MDV Гик

    Привет
    1 контакты которые необходимо соединить видно даже на фотке
    Смотри над нижним крайним правым пином когда антенна с левой стороны
    2 не выкладывай свой номер телефона
    3 соединение уарт или 1-1;2-2 или 7-7; 8-8.
    4 про общий провод надеюсь не забыл
    5 при заливке лучше снимать ТХ и RX
     
    Последнее редактирование: 1 дек 2015
  7. Стоять Зорька! Что есть - ОБСЧИЙ провод!?!?
    СНимать или просто плату шилда выключать?
     
  8. Когда сделал вот так и использовал прогу работы с компортом появились следующие сиптомы
    На ардуине при посыле команды АТ мигает Rx диод однократно. Tx диод ардуины не мигает. ответа нет IMG_20151201_084020-min.jpg
     
  9. Суть проблемы похоже в явно НЕ ПРАВИЛЬНОЙ коммутации контактов. Ардуина честно в режиме моста пытается что то ЧИТАТЬ. Но по идее то сначала на ардуине должен мигнуть Тх диод (отправка команды) и только потом Rx диод (чтение ответа). или я не прав?
    Вообще сильно похоже на то что ардуиной в режиме аппаратного кома посылается команда но ответа на команду шилдом не производится.
    чисто логически проблема в шилде
    либо неправильная коммутация либо че то еще надо на нем сделать. Там наверху еще 4 контакта-штыря.
    помоему две земли и 4.10 и VCC5 помоему. может с ними надо что то сделать?
    ВОт кстати фото шилда с жопы. может что то подскажет IMG_20151201_090600-min.jpg
     
  10. И еще соединяю контакты под номерами 7,8 или те на которых написано 7,8
    это разные ноги. нумерация с 0 начинается
    тоже самое с 1,2
     
    Последнее редактирование: 1 дек 2015
  11. MDV

    MDV Гик

    Соединять надо по номерам пинов D0 и D1 нашильде к таким же D0 и D1 на уно плюс необходимо соединить GND. По алгоритму работы уно посылает команду и ждет ответа при этом диод по приему мигнет только после отправки ответа с Шильда. Для проверки можешь включать и выключать модем при выключении модем шлет в порт строку, что он выключился.
     
  12. IMG_20151201_101144-min.jpg ССССССССССССССУУУУУУУУУУУУУУУУККККККККККККККККККККК,,,,,,,,,,,,,,,,,,,,,,,!!!!!!!!!!!!!!!!!!!!!!!
    Черт бы побрал всех этих китайцев вместе со всеми их правилами письма СПРАВА!!!
    Надыбал лупу! Присмотрелся к полустертой краске с завода маркировке перемычек.
    Хард режим - перемычки НАПРАВО! Софт - НАЛЕВО!!! И кроме того еще и Tx и Rx местами перепутаны.
    Вот в таком виде начал хоть что то отвечать!!!
     
  13. Еще одни, скорее теоретический вопрос. Когда рекомендовано применять хард режим а когда софтсериал. чем они принципиально отличаются.
     
  14. В целом эта хрень работает в режиме модема через АТ команды достаточно хорошо и уверено.
    Если бы не ё..ля с ее подключением и не низкое качество печати на самой плате надписей - можно было бы сказать что отлично. Надо бы определится в каком режиме ее буду эксплуатировать и дописывать код уже под нее
     
  15. MDV

    MDV Гик

    Для модема без разницы с каким УАРТ работать выбирай удобный для себя.
     
  16. MDV

    MDV Гик

    Да еще, у меня возникла проблема с работой на разных диапазонах, то есть в городе где есть 3G работает где только 2G не работает, не видит сеть.
     
  17. Понято. благодарю. Будут еще проблемы с проектом - напишу.
     
  18. Xelper

    Xelper Нуб

    Друг! Ну как так!? Задал вопрос, нашёл на него ответ - а всем не рассказал…
    Точно такой же китайский GPRS SHIELD. Работать я его заставил, когда разобрался зачем, куда какие джампики. А вот как включить его софтом, не понял. Нога 9, как на фирменном, не даёт никаких подвижек. Некоторые движения возникают при подаче сигнала на D6 - загораются светодиоды Status (тускло) и NetLight (ярко, как должен), но после снятия сигнала с D6 эти светодиоды гаснут. Пробовал разную продолжительность сигнала, вплоть до 5сек. Такое ощущение, что нужно подать сигнал ещё куда-то.
    Вообще этот шилд способен включится программно?
     
  19. Ну ответ на вопрос то я нашел и тут написал. у китайцев - правосторонне движение. и пишут они справа. так что смотрите пост.
    насчет софт и хард режима - я уже плохо помню но проще использовать софт режим. он больше описаны на сайтах. хардрежим я не запускал.
    А в чем вопрос то?
    посмотрите внимательно схему коммутации у меня в посте №13, скоммутируйте аналогично.
    Если готовы формулировать вопросы - постараюсь помочь