Странное поведение GSM модуля Goouuu Tech IOT-GA6

ergeykl
Offline
Зарегистрирован: 20.04.2017

Всем привет!

Приобрёл GSM модуль Goouuu Tech IOT-GA6 (вроде как тоде самое что и AI-Thinker A6 GSM).  В качестве контроллера использую arduino nano.

Подключил всё по инструкции:

питание +5V -> VCC;

GND -> GND модуля + GND контроллера;

URX - > TX; контроллера

UTX -> RX; контроллера

Код примера работы стандартный:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(8, 9); // RX, TX

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

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

void loop() { // run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

Сам модуль в сети регистрируется и даже звонит, если в коде прописать команду ATD, но в мониторе порта отображается только конечный результат от AT команд, т.е. в коде прописано AT, но в мониторе видно только "ОК", самой команды не видно :)

Все команды которые прописываются в коде, работают, но те, которые я пытаюсь отправить через монитор порта, не проходят.

Вопрос: что нетак? может код не верный?

ergeykl
Offline
Зарегистрирован: 20.04.2017

b707
Offline
Зарегистрирован: 26.05.2017

ergeykl пишет:

использую arduino nano.

Подключил всё по инструкции:

питание +5V -> VCC;

GND -> GND модуля + GND контроллера;

URX - > TX; контроллера

UTX -> RX; контроллера

Правильно ли я понял. что Нано у вас подключена к компу по USB. а модем - к ее пинам 0 и 1?

 

ergeykl
Offline
Зарегистрирован: 20.04.2017

Не совсем, Нано подключена к компьютеру по mini usb а модем подключен к нано через пины 8 и 9 (SoftwareSerial mySerial(8, 9); // RX, TX)

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

подемы А6 насколько я помню инициализируют сокрость несколькими командами AT, 12 строка лишняя, а 14х строк несколько подряд поставьте

у меня вот так тестовый код выглядит:

#include <SoftwareSerial.h>
SoftwareSerial SIM800(8, 9);        // 8 - RX Arduino (TX SIM800L), 9 - TX Arduino (RX SIM800L)

void setup() {
  /*pinMode(10, OUTPUT);
    pinMode(7, OUTPUT);
    digitalWrite(10, HIGH);
    digitalWrite(7, HIGH);
    delay(1000);
    digitalWrite(7, LOW);
    delay(20);
    digitalWrite(7, HIGH);
    delay(3000);*/
  Serial.begin(9600);               // Скорость обмена данными с компьютером
  Serial.println("Start!");
  SIM800.begin(9600);               // Скорость обмена данными с модемом
  SIM800.println("AT");             // Автонастройка скорости
  SIM800.println("AT");             // Автонастройка скорости
  SIM800.println("AT");             // Автонастройка скорости
  /*SIM800.println("AT+CLVL?");       // Запрашиваем громкость динамика
    SIM800.println("AT+CMGF=1");      // Включить TextMode для SMS
    SIM800.println("AT+DDET=1,0,1");  // Включить DTMF
    SIM800.println("AT+CLIP=1");      // Включить АОН*/
}

void loop() {
  if (SIM800.available())           // Ожидаем прихода данных (ответа) от модема...
    while (SIM800.available()) {
      byte bb = SIM800.read();
      Serial.write(bb);    // ...и выводим их в Serial
      /*if ((bb < 0x20) || (bb >= 0x7F)) {
        Serial.print("0x"); Serial.println(bb, HEX);
        } else {
        Serial.write(bb);
        }*/
    }
  if (Serial.available())           // Ожидаем команды по Serial...
    while (Serial.available())
      SIM800.write(Serial.read());    // ...и отправляем полученную команду модему
}

 

ergeykl
Offline
Зарегистрирован: 20.04.2017

Спасибо за ответ, но ввод команды AT не помогает. Забыл об этом написать в основном тексте. Ваш код сейчас испробовал, та же хрень :)

На ввод команды АТ вручную не реагирует.

b707
Offline
Зарегистрирован: 26.05.2017

ergeykl пишет:

На ввод команды АТ вручную не реагирует.

 

ergeyk, попробуйте в вашем коде из начального сообщения поменять в строке 28 if на while

while (Serial.available()) {
    mySerial.write(Serial.read());
  }
29  
30  

 

ergeykl
Offline
Зарегистрирован: 20.04.2017

К сожалению, не помогло

И сам итоговый код:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(8, 9); // RX, TX

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

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

void loop() { // run over and over
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  while (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

 

slesar133
Offline
Зарегистрирован: 26.03.2018

Толку писать в loop если команды в setup?

slesar133
Offline
Зарегистрирован: 26.03.2018

Попробуйте вместо Serial.write() Serial.println()

b707
Offline
Зарегистрирован: 26.05.2017

slesar133 пишет:

Попробуйте вместо Serial.write() Serial.println()

неверно

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

в мониторе порта выбрать NL & CR

и отправить попробовать какую нибудь команду с клавиатуры

 

ergeykl
Offline
Зарегистрирован: 20.04.2017

Удивительно, но Ваш совет сработал ровно на половину :D

Теперь при отправке в сериал команды АТ, в ручную, сериал отвечает ОК, но при этом сама команда не высвечивается.

Что-то мистическое

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Ничего мистического, есть команда включения отключения вывода выполняемой команды, скачайте pdf файл к этому модему, там все написано.

ergeykl
Offline
Зарегистрирован: 20.04.2017

andycat, благодарю за оказанную помощь, спасибо большое!