Проблема с GSM модулем IOT-GA6

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

  1. An_druid

    An_druid Нуб

    Здравствуйте, жители Амперки!
    Проблема с GSM модулем IOT-GA6 от GoouuuTech, мозги - Arduino Uno.
    Собрал схему из статьи (clck.ru/DPE5Q), но без резисторов, подключил напрямую и RX, и TX.
    Питание от USB ПК -> Arduino Uno;

    Подключил к ПК, запустил такой простой скетч:
    Код (C++):
    #include <SoftwareSerial.h>
    SoftwareSerial SIM800(8, 9);        // 8 - RX Arduino (TX SIM800L), 9 - TX Arduino (RX SIM800L)

    void setup() {
      // Open serial communications and wait for port to open:
      Serial.begin(9600);
      Serial.println("Start!");
      delay(2000);

      SIM800.begin(9600);
      SIM800.println("AT+IPR=9600"); // Скорость порта GSM модуля (на всякий случай);
      delay(1000);
      SIM800.println("AT");
      delay(1500);
      SIM800.println("AT+COPS?");
      delay(1500);
      SIM800.println("AT+CPAS");
      delay(1500);
      SIM800.println("AT+CREG?");
      delay(1500);
    }

    void loop() { // run over and over
      if (SIM800.available()) {
        Serial.write(SIM800.read());
      }
      if (Serial.available()) {
        SIM800.write(Serial.read());
      }
    }
    После запуска все хорошо собирается, красная лампочка на модуле GSM быстро мигает.
    В Мониторе Порта выводит только надпись:
    START!
    *Белый Квадрат* [⸮]


    Больше ни на какие команды (AT, ATI..) не реагирует.
    Подключил так:
    GA6 -> Arduino Uno
    G -> GND (Возле POWER, под 5V)
    URX -> 9 порт (Где RX и TX)
    UTX -> 8 порт
    VCC -> 3.3V
    В модуле стоит рабочая симка РФ.

    Потом попробовал подключить с 2 резисторами (10 кОм каждый), толку от этого никакого, только GSM Модуль стал как-то ненормально мигать, то медленно, то быстро, то ярко, то мутно, никакой последовательности.
    После этого попробовал подключить доп. питание 9V 300mA, но ничего это опять же не дало, только перебои в работе.

    Заранее спасибо за помощь!

    Ссылки на модули:
    IOT-GA6 - ali.onl/10fu
    Arduino Uno - ali.onl/10fv
     
    Последнее редактирование: 17 май 2018
  2. b707

    b707 Гуру

    Вы взяли схему из статьи про SIM800. а у вас модем - аналог Athinker A6, поэтому схема не подходит.
    Самая первая ошибка - у вашего модема питание 5в, а вы его к 3.3 подключили.
     
    An_druid нравится это.
  3. An_druid

    An_druid Нуб

    После такого подключения:
    GA6 -> Arduino Uno
    G -> GND (Возле POWER, под 5V)
    URX -> 9 порт (Где RX и TX)
    UTX -> 8 порт
    VCC -> 5V,
    Через несколько секунд на модуле загорается красная лампочка и горит, почти одновременно с ней начинает недолго (секунды 2-5) мигать зеленая, потом перестает.
    После запуска скетча, он уходит в бесконечную загрузку, после которой вывело это:
    Код (C++):
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xe7
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xe7
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe7
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xe7
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xe7
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xe7
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe7
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xe7
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xe7
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xe7
    Проблема загрузки в плату. Помощь по загрузке: http://www.arduino.cc/en/Guide/Troubleshooting#upload .
    Попробовал заново с переподключением, скетч загрузился, но, как и в прошлый раз, вывелась только надпись Start!, в это время иногда подмигивала зеленая лампочка, красная все так же горела. Спустя нескольких вводов в консоль команды 'AT' (Без кавычек), вывелся квадратик.

    Выяснил, что зеленый подмигивал тогда, когда я вводил в консоль AT/ATI... и т.п.

    Может, схему нужно как-то поменять? Есть какой-нибудь манульчик по данному модулю, с удовольствием почитал бы?
     
  4. An_druid

    An_druid Нуб

    UP! Нужна помощь!
     
  5. b707

    b707 Гуру

    попробуйте такой код для функции setup()

    Код (C++):
    void setup() {
      // Open serial communications and wait for port to open:
      Serial.begin(9600);
      Serial.println("Start!");
      delay(2000);
      String str
      int k=5;

      SIM800.begin(9600);

      for(int i=0;i<9;i++) {
       delay(300);
       Serial.println("send AT to modem");
       SIM800.println("AT");}
      do {
       k--;
       delay(300);
       SIM800.println("AT");
       str="";
       while(SIM800.available())
        {char ch=SIM800.read();
         str+=ch;
         delay(10);
         }
     
        if(str.indexOf("OK")>-1){ok=true;}
        Serial.println(k);
        if (k<1) {ok=true;Serial.println("modem timeout");}

      } while(!ok);

      SIM800.println("AT+COPS?");
      delay(1500);
      SIM800.println("AT+CPAS");
      delay(1500);
      SIM800.println("AT+CREG?");
      delay(1500);
    }
     
    код из какого-то старого проекта, не проверял, могут быть ошибки.
     
    An_druid нравится это.
  6. An_druid

    An_druid Нуб

    Изначально boolean ok = false:

    Код (C++):
    Start!
    send AT to modem
    send AT to modem
    send AT to modem
    send AT to modem
    send AT to modem
    send AT to modem
    send AT to modem
    send AT to modem
    send AT to modem
    4
    3
    2
    1
    0
    modem timeout
    Если же изначально boolean ok = true:

    Код (C++):
    Start!
    send AT to modem
    send AT to modem
    send AT to modem
    send AT to modem
    send AT to modem
    send AT to modem
    send AT to modem
    send AT to modem
    send AT to modem
    4
     
  7. b707

    b707 Гуру

    да, изначально false
    Судя по всем, модем не отвечает.

    Проверьте соединения, попробйте поменять местами провода RX и TX на модеме - бывают подписаны неправильно.
     
    An_druid нравится это.
  8. An_druid

    An_druid Нуб

    Поменял местами RX и TX, никакого эффекта это не дало.

    Возможно, что-то неправильно спаял или подключил, посмотрите:
    P.S. Провода нужны для подключения к плате
    Специально сфоткал без симки, не подумайте.
    На модуле из всех кастомных проводков к Uno подключен только VCC -> 5V

    Может, питания не хватает?
    [​IMG] [​IMG] [​IMG] [​IMG]
     
    Последнее редактирование: 19 май 2018
  9. b707

    b707 Гуру

    на фото модема над контактами URX UTX я вижу еще одну пару RX TX - попробуйте подключится туда. Почему, кстати, вы выбрали UTX URX - я бы с верхних начал.
     
  10. An_druid

    An_druid Нуб

    Подключил сразу к URX/UTX, т.к. на форуме arduino.ru вычитал, что нужно так :)
    Ссылка на обсуждение: clck.ru/DRGV2

    Там пишут, что HTX/HRX нужны для прошивки, может, кстати, попробовать прошить?
    Но все-таки попробовал подключить к ним, никакой разницы, все так же выводит modem timeout, только зеленая лампочка перестала мигать когда вызываются команды AT и т.п..

    Пробую прошить, но, к сожалению, в программе для прошивки ничего не отображается:
    [​IMG]
     
    Последнее редактирование: 21 май 2018
  11. b707

    b707 Гуру

    тогда, к сожалению, больше ничем не помогу.
    Где-то на Ардуино.ру, помню, была ветка - парень тоже мучался с этим модулем, в итоге перешил его свежей прошивкой и все заработало. Поищите.
     
    An_druid нравится это.
  12. An_druid

    An_druid Нуб

    Ладно, бог с этим модулем, хорошо, что нашелся еще один. Буду с ним предельно осторожен. дабы ничего не испортить.
    GSM/GPRS SIM800L с антенной
    Фото прилагается:
    [​IMG] [​IMG]
    Собственно говоря, вопросы:
    Как его правильно подключить к Arduino Uno? (Желательно подробную схему картинкой)
    Как вставить симку? Какой стороной?
     
  13. Керил

    Керил Нерд

    По этому модулю (SIM800L) в нете море инфы, я его тоже приобрел, сначала не хотел находить сеть и временами вообще переставал работать (сейчас тоже, не знаю с чем это связано, но если потормошить контакты - начинает работать) Кароче если он не заработал сразу или с 3-5 попытки не может найти сеть - значит не повезло модулем, по идее должен сразу работать, только там ньюансы есть по питанию и напряжение на rx или tx лучше опустить до 2.5В тк у него предельные 4.2 вольта, надо через делитель подключать, а не напрямую. инфы море! а вот по thinkerу не понятно ниче, инфы совсем нет(( все чего мне удалось с ним добиться - он находил и подключался к сети, думаю, что он даже правильно работал(к сожалению не проверил принимает ли он звонки) но в терминале он со мной очень плохо общался. Отвечал кракозяброй, иногда после нажатия кнопки на reset он начинал говорить более менее четко, отвечал ОК на команду АТ например, но временами так же всето ОК отправлял кракозябры. К ардуино не подключал его, пытался сначала отдельно его настроить
     

    Вложения:

    • bfZvxJ996B8.jpg
      bfZvxJ996B8.jpg
      Размер файла:
      228,9 КБ
      Просмотров:
      581
    • 1NmgvEI93mI.jpg
      1NmgvEI93mI.jpg
      Размер файла:
      273,9 КБ
      Просмотров:
      630
    • cBmc3hl8p0M.jpg
      cBmc3hl8p0M.jpg
      Размер файла:
      288,3 КБ
      Просмотров:
      501
    • gQ-4KBTqF34.jpg
      gQ-4KBTqF34.jpg
      Размер файла:
      202,7 КБ
      Просмотров:
      527
  14. serj47

    serj47 Нуб

    Модуль Goouuu Tech IOT-GA6 прошитый до v03.06.20171127r
    Через адаптер usb-uart работает норм на 115200 через терминал с ПК.
    А при подкл. к NANO периодически шлет каркозяблы в ответ на команды из ардуиновского терминала. Выставлял 57600, 38400 9600 на железном и софтварном портах.. так вообще команд не видно

    https://ibb.co/862P5xj
    сорри, не вставляется картинка

    Код (C++):
    #include <SoftwareSerial.h>
    SoftwareSerial mySerial(7,8);


    void setup() {
    {
    // Open serial communications and wait for port to open:
    Serial.begin(115200);
    while (!Serial) {
       ; // wait for serial port to connect. Needed for Leonardo only
    }
    Serial.println("Goodnight moon!");
    // set the data rate for the SoftwareSerial port
    mySerial.begin(115200);
    mySerial.println("AT");
    }

    }

    void loop() {

    if (mySerial.available())
       Serial.write(mySerial.read());
    if (Serial.available())
       mySerial.write(Serial.read());
    }
     
    Последнее редактирование: 17 май 2019
  15. b707

    b707 Гуру

    Тут все просто. Вы используете для свзи с модемом Софтовый сериал. Максимальная скорость Софтсериала - 38400. А у модема дефолтная скорость Сериала 115200. Поменять ее нельзя.

    Выхода тут два. Первый, простой. но затратный - использовать для связи с модемом аппартный сериал, Для этого взять микроконтроллер, в котором более одного сериала - например Мегу или СТМ32
    Второй - умный - использовать режим автоподстройки скорости. Если модем некоторое время долбить сообщениями на скорости. скажем, 9600 - через десяток сообщений он должен автоматически перейти на эту скорость. Но делать это придется каждый раз заново, так как модем эту скорость не запоминает и при включении всегда стартует на 115200
     
  16. serj47

    serj47 Нуб

    Долбил уже, не работает это
     
  17. b707

    b707 Гуру

    Вообще должно... Goouuu Tech IOT-GA6 - это копия AThinker A6. На оригинальном А6 это работает, а с китайским клоном IOT-GA6 дела не имел.
    Если и правда в IOT-GA6 нет автоподстройки - то остается только брать плату с двумя Сериалами. Собственно, в своем проекте я так и сделал - перешел с Нано на СТМ32, ибо подстраивать скорость при каждом включении хлопотно
     
  18. Здравствуйте!
    Интересно узнать, актуальна ли сейчас эта тема? Получилось у вас? И какие ещё проблемы встретились?
    У меня этот модуль работает. Помучался, но ничего не прошивал.
    Может кто ещё посещает эту тему. Может кто и поможет:rolleyes:.
    Такой глюк: только с одного номера всё работает отлично. Стоит поменять цифры в коде и начинается дурдом. На разные номера модуль отправляет разное количество смс:mad:. Менял телефоны.

    Код (C++):
    if (val.indexOf("RING") > -1 && val.indexOf("7*****") > -1) {
      mySerial.println("ATH");
      delay(1000);
      mySerial.println("AT+CMGD=2,4\r*");
      delay(1000);
     
      mySerial.println("AT+CMGF=1\r*");
      delay(1000);
     
      mySerial.println("AT+CMGS = \"7********\"");
      delay(1000);