GSM A6 вопрос про RING

Ermine882
Offline
Зарегистрирован: 26.04.2014

Здравствуйте, у меня проблема с симкой от Билайн, не регистрируется в сети. МТС работает нормально. В чем может быть причина? Спасибо.

Logik
Offline
Зарегистрирован: 05.08.2014

Вы могли вставить её не той стороной.

Kshkoj
Offline
Зарегистрирован: 17.04.2017

novak пишет:

После этого идёт ожидание регистрации в сети. Ответ на команду должен прийти 1,1. Вот код

***
       Serial.print(a);
      Serial.print(",");
      Serial.print(b);
      Serial.print(" ");
      if(a==1 and b==1)
        ok = true;
    }
  }  
  return true;
}

Скопировал себе часть кода для эксперимента, но задумался над правильностью алгоритма... 

+CREG: 1,1 риходит, когда регистрация прошла в домашней сети. А если, вдруг, кто то поедет с устройством в другой регион, или симка будет в роуминге?
По логике, может работать при... 
1,1
1,5
А может бываают и 
2,1
2,5
 
Тип регистрации сети

Первый параметр:

0 – нет кода регистрации сети

1 – есть код регистрации сети

2 – есть код регистрации сети + доп параметры

Второй параметр:

0 – не зарегистрирован, поиска сети нет

1 – зарегистрирован, домашняя сеть

2 – не зарегистрирован, идёт поиск новой сети

3 – регистрация отклонена

4 – неизвестно

5 – роуминг
 
electronhic
Offline
Зарегистрирован: 22.05.2017

помогите с етим модулем . не могу прочитать содержымое смс

Logik
Offline
Зарегистрирован: 05.08.2014

пишите разборчивей.

novak
Offline
Зарегистрирован: 25.02.2017

electronhic пишет:

помогите с етим модулем . не могу прочитать содержымое смс

Не можешь прочитать или перекодировать? Если смс на латинице, то нужна просто перекодировка 7бит, смотри пост №23 в этой теме. Если на руском, то чуть сложнее.

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

novak пишет:

Не можешь прочитать или перекодировать? Если смс на латинице, то нужна просто перекодировка 7бит, смотри пост №23 в этой теме. Если на руском, то чуть сложнее.

СМС на латинице вообще не перекодирую, если переключить СМС в текстовой формат - показываются в мониторе порта в читаемом виде. Это вот с USSD несколько сложнее, но тоже довольно просто, если переключить формат в HEX

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

Kshkoj пишет:

+CREG: 1,1 риходит, когда регистрация прошла в домашней сети. А если, вдруг, кто то поедет с устройством в другой регион, или симка будет в роуминге?

 
По опыту, во "внутрисетевом роуминге" по команде CREG приходит 1,1, как в домашнем регионе.
Maxix1
Offline
Зарегистрирован: 27.04.2017

Помогите плизз, дайте пример скетча где принимается смс.

до этого был sim800 так как то проще было.

 

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

Maxix1 пишет:

Помогите плизз, дайте пример скетча где принимается смс.

до этого был sim800 так как то проще было.

возьмите библиотеку для sim800/sim900 - там внутри есть примеры отправки и приема СМС. АТ- Команды sim800 и A6 одинаковы. Единственная особенность - в А6 при любом запросе "непрочитанных" СМС они сразу становятся "ппрочитанными", поэтому все непрочитанные СМС надо извлекать за один паз.

Maxix1
Offline
Зарегистрирован: 27.04.2017

b707 пишет:

возьмите библиотеку для sim800/sim900 - там внутри есть примеры отправки и приема СМС. АТ- Команды sim800 и A6 одинаковы. Единственная особенность - в А6 при любом запросе "непрочитанных" СМС они сразу становятся "ппрочитанными", поэтому все непрочитанные СМС надо извлекать за один паз.

в том то и проблема, до этого был скетч написан для sim800 всё работало.

sim800 успешно был убит кривым dc-dc преобразователем. sim800 небыло купил a6, но как то не работает.

 

не получается иницилизировать модем.

выставляю скорость, но не понимаю как эту скорость сохранить.

работаю через softwareserial.

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

Maxix1 пишет:

не получается иницилизировать модем.

выставляю скорость, но не понимаю как эту скорость сохранить.

работаю через softwareserial.

А6 всегда стартует на скорости 115200. И нигде вы эту скорость не поменяете. А softwareserial максимально работает на 38400.

Но есть решение. Если несколько секунд долбить модем командами на другой скорости, например на 9600 - он понимает, что с ним хотят общаться на 9600 и перестраивается на эту скорость. Почитайте вот эту  ветку

Maxix1
Offline
Зарегистрирован: 27.04.2017

b707 пишет:

Почитайте вот эту  ветку

 

спасибо, уже изучаю.

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

Maxix1, вот тут пример коннекта к модему А6: http://arduino.ru/forum/programmirovanie/kak-proverit-knopku-ne-vykhodya-iz-tsikla#comment-288846

Тема совсем о другом, но пример рабочий. как адаптировать под себя. наверно разберетесь.

Gart
Offline
Зарегистрирован: 20.07.2017

Уважаеммый Dottore, у Вас получилось увязать этот модуль с Ардуино? Если да, то подскажите как Вы это сделали. Заранее благодарен за ответ.

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

Gart пишет:

Уважаеммый Dottore, у Вас получилось увязать этот модуль с Ардуино? Если да, то подскажите как Вы это сделали. Заранее благодарен за ответ.

Вы хотите спросить именно у Dottore? - он в этой ветке не появлялся с января...

А вообще, у многих людей этот модем работает с ардуиной без проблем

Gart
Offline
Зарегистрирован: 20.07.2017

Уважаемый b707,  собственно я спросил у Dottore потому, что у меня такой же модуль как на фото в его посте.
И у меня что-то не получается увязать его с ардуино :(
Внешне вроде все в порядке, но не хочет отвечать на команды через терминал например.
Если Вы подскажете как это исправить я с радостью приму Ваш совет! :)
Собственно увязать уже удалось, но почему-то  модуль в ответ на команды выдает ответ в виде набора цифр, а не строку...
В чем проблема?

 

pasha413
Offline
Зарегистрирован: 27.11.2016

Здравтвуйте. так и не понял с балансом, отправляю команду AT+CUSD=1,#105#,15 приходит 

Input string:
AT+CUSD=1,*101#,15


Decode string:
A(-Tj"=b0QL#XD)SA

+CME ERROR:0

что делаю не так?

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

Gart пишет:

Уважаемый b707,  собственно я спросил у Dottore потому, что у меня такой же модуль как на фото в его посте.
И у меня что-то не получается увязать его с ардуино :(
Внешне вроде все в порядке, но не хочет отвечать на команды через терминал например.
Если Вы подскажете как это исправить я с радостью приму Ваш совет! :)
Собственно увязать уже удалось, но почему-то  модуль в ответ на команды выдает ответ в виде набора цифр, а не строку...
В чем проблема?

 

у меня модем, как на фото №13.Но думаю, работает так же, как и ваш с дотторе. У меня проблем связи модема с ардуиной нет.

Для начала прочитайте комментарий #62. Если все равно не понятно - пишите подробно, как подключаетесь к модему, через Hardware или через SoftwareSerial, какая скорость, какие команды даете и какие отаеты получаете.

pasha413
Offline
Зарегистрирован: 27.11.2016

у меня заработало:

#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX

String val = "";          // переменная для хранения данных   

void setup(){  
  Serial.begin(9600);
  mySerial.begin(9600);   
}

void loop() {
  if (mySerial.available()) {
    while (mySerial.available()) {       // сохраняем входную строку в переменную val.
      char ch = mySerial.read();
      val += char(ch);                   //собираем принятые символы в строку
      delay(3);
    } if (val.indexOf(F("+CUSD")) > -1) { 
  //анализируем строку
  int p1 = val.indexOf(F("\"")); //начало строки
  int p2 = val.lastIndexOf(F("\"")); //конец строки
  val = val.substring(p1+1,p2);
  Serial.println("");
  Serial.println("Input string:");
  Serial.println(val);
  String decodestr;
  Decode7bit(val, decodestr);
  Serial.println("");
  Serial.println("Decode string:");
  Serial.println(decodestr);
        }
    val = "";
  }
  if (Serial.available())
    mySerial.write(Serial.read());
}

void Decode7bit(String &instr, String &outstr)
{
  byte reminder = 0;
  int bitstate = 7;
  for(int i=0; i<instr.length(); i++)
  {
    byte b = instr[i];
    byte bb = b << (7 - bitstate);
    char c = (bb + reminder) & 0x7F;
    outstr += c;
    reminder = b >> bitstate;
    bitstate--;
    if(bitstate == 0)
    {
      char c = reminder;
      outstr += c;
      reminder = 0;
      bitstate = 7;
    }
  }
}

но почему строка decode string приходит 2 раза?

Input string:
AT+CUSD=1,#105#,15 


Decode string:
A(-Tj"=b0L#XD)$

Input string:
⸮!5H}.A⸮⸮⸮]

Decode string:
OCTATOK 57.00 p.

 

Gart
Offline
Зарегистрирован: 20.07.2017

Уважаемый b707, спасибо за ответ! Да, я сегодня разобрался с этой темой, после перевода скорости модуля на более низкую все начало работать, и сообщения читабельны и есть реакция модуля на команды. Будем разбираться дальше :)
Еще раз спасибо за ответ!

Dottore
Offline
Зарегистрирован: 19.11.2016

Gart пишет:

Уважаемый b707, спасибо за ответ! Да, я сегодня разобрался с этой темой, после перевода скорости модуля на более низкую все начало работать, и сообщения читабельны и есть реакция модуля на команды. Будем разбираться дальше :)
Еще раз спасибо за ответ!

Извините, за долгое молчание,  был очень занят, времени не хватало на форум. Проблема при обмене данными ардуины с А6 на более высокой скорости может как раз и быть вызвана несогласовынными по уровням входами и выходами А6 и ардуины. Уточните, у вас плата с А6 как на каком фото из какого поста? Преобразователь уровней на МАХ232 есть на плате?

Gart
Offline
Зарегистрирован: 20.07.2017

Доброй ночи Dottore, плата аналогичная на фото в Вашем посте №12 в этой ветке, да преобразователь уровней на МАХ232 есть.

Dottore
Offline
Зарегистрирован: 19.11.2016

Дорогие коллеги! У кого такой модуль, посмотрите, пожалуйста, как там разведены сигналы RxD и TxD на ардуину? просто выведены с модуля напрямую дорожками к пинам платы или имеется простейшее согласование уровней, примерно как на рисунке из даташита:

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

Dottore пишет:

Дорогие коллеги! У кого такой модуль, посмотрите, пожалуйста, как там разведены сигналы RxD и TxD на ардуину?

у меня такой. вечером гляну. С обратной стороны там точно есть преобразователь питания от 5в, а вот преобразования уровней не помню.

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

Dottore пишет:

Дорогие коллеги! У кого такой модуль, посмотрите, пожалуйста, как там разведены сигналы RxD и TxD на ардуину? просто выведены с модуля напрямую дорожками к пинам платы или имеется простейшее согласование уровней, примерно как на рисунке из даташита:

Посмотрел на своем модеме - яснее не стало. Дорожки от RX и TX уходят под держатель СИМкарты и более не появляются. Скорее всего через отверстия на плате они соединяются непосредственно с пинами модуля, без согласующей обвязки - но точно сказать трудно.

Dottore
Offline
Зарегистрирован: 19.11.2016

b707 пишет:
Посмотрел на своем модеме - яснее не стало. Дорожки от RX и TX уходят под держатель СИМкарты и более не появляются. Скорее всего через отверстия на плате они соединяются непосредственно с пинами модуля, без согласующей обвязки - но точно сказать трудно.

Вот и я по фото смотрел но так и не нашел. А прозвонить не пробовали? :)

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

Dottore пишет:

 

Вот и я по фото смотрел но так и не нашел. А прозвонить не пробовали? :)

а смысл? он отлично работает без согласования

Dottore
Offline
Зарегистрирован: 19.11.2016

b707 пишет:

а смысл? он отлично работает без согласования

 

Извините, но нельзя же настолько бездумно всё делать...   Прочитайте даташиты на А6 и Ардуино, подумайте....

Тем более, что здесь на форуме этот вопрос многократно обсуждался...

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

Dottore пишет:

b707 пишет:

а смысл? он отлично работает без согласования

 

Извините, но нельзя же настолько бездумно всё делать...   Прочитайте даташиты на А6 и Ардуино, подумайте....

ну почему же бездумно? прежде чем работать с А6, я прочитал и даташит, и кучу обсуждений не только на нашем, но и на импортных форумах. В целом вывод следующий - согласование уровней между модемом А6 и ардуиной - как 5в, так и 3.3в - не является обязательным. Модем спроектирован для работы от мобильного питания и принимает довольно широкий диапазон напряжений - от 3 до 4.2-4.4в. Входы RX TX являются толерантными к 5в

В принципе, если вы считаете, что согласование необходимо - что мешает собрать его самостоятельно по схеме из даташита - там же пара деталей всего.

Добавка 

===Dottore, я смотрю вы про уровни еще в январе спрашивали. Ныне на дворе, считай, август - а вы все еще продолжаете согласование обдумывать? мож все-таки лучше "бездуино" относится, иначе вообще ничего не сделаешь :)

Dottore
Offline
Зарегистрирован: 19.11.2016

[quote=b707]

===Dottore, я смотрю вы про уровни еще в январе спрашивали. Ныне на дворе, считай, август - а вы все еще продолжаете согласование обдумывать? мож все-таки лучше "бездуино" относится, иначе вообще ничего не сделаешь :)

[/quote ]

Ну, если ардуина, это единственное, что вы делаете, то да :))))))))))))))))

На входах модуля стоят стабилитроны, и он "толерантен", однако даташит рекомендует защитить снаружи. А выходной уровень сигналов А6 как соотносится с уровнями чувствительности ардуины? Все уже обсуждено многократно и выводы сделаны.

Мне просто интересно, как изготовлен этот конкретный модуль, стоит ли их покупать или нет, так как возиться с дополнительными навесными элементами неохота.

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

Dottore пишет:

 А выходной уровень сигналов А6 как соотносится с уровнями чувствительности ардуины? Все уже обсуждено многократно и выводы сделаны.

Отлично соотносится. У ардуины высокий уровень - это все что выше 3в, низкий - меньше 2в. У модема при напряжении питания в 4в высокий уровень и будет 3.5-4в, так что никаких проблем быть не должно.

С интересом посмотрел бы ссылку, где это "многократно обсуждено" и "сделаны выводы".

Dottore
Offline
Зарегистрирован: 19.11.2016

b707 пишет:

С интересом посмотрел бы ссылку, где это "многократно обсуждено" и "сделаны выводы".

В темах по модулю Е590

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

alexlord пишет:

Сломал голову с USSD запросом. максимум что получилось....
 
AT+CUSD=1,#101#,15
OK
+CUSD: 2, "UзТщ:AA(Й" ,15
 
может кто дальше продвинулся?
 
 
 
 
по подключению. У меня вот такой модуль
 
у него встроенный стабилизатор на 4 в. 
ардуина 5 вольтовая, подключено напрямую..... пока все работает. ;) 
максимум что пока  было это сутки тестовой работы с отправкой данных каждые 6 минут на narodmon.ru 
не завис.
 

А по питанию не капризный?заказал такой же,в пути.

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

fly245 пишет:

А по питанию не капризный?заказал такой же,в пути.

гораздо менее, чем sim800 или m590. Очень экономичный. Если не звонить, модему А6 хватает питания от ардуины, запитанной от USB. При звонке берет до 300-400мА, так что лучше отдельный БП.

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Logik пишет:

Гммм.. ну как бы раз ТСР юзаю, наверно по GPRS. Код выше. Но вобщето актуальней АТ командами делится. Продолжаю здесь http://arduino.ru/forum/apparatnye-voprosy/gsm-modem-a6-v-rezhime-tcp т.к. к рингу это явно не относится.

Благодарю!Значит можно брать и дальше эти модули.

vengeance
Offline
Зарегистрирован: 01.10.2017

Тоже на A6 но с доками который

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

vengeance пишет:
Тоже на A6 но с доками который

что значит "с доками"?

supercelt
Offline
Зарегистрирован: 09.11.2017

Тема ещё жива?)) Даю команду AT+CREG?

Ответ: <\r><\n>+CREG: 1,1<\r><\n><\r><\n>OK<\r><\n>

по даташиту все верно. Должно вернуть 2 числа. Вытаскиваю симку, теперь в ответ:

<\r><\n>+CREG: 1,13<\r><\n><\r><\n>OK<\r><\n>, хотя должно быть <\r><\n>+CREG: 1,3<\r><\n><\r><\n>OK<\r><\n>

Это нормально?

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

supercelt пишет:

Тема ещё жива?)) Даю команду AT+CREG?

Ответ: +CREG: 1,1

OK

по даташиту все верно. Должно вернуть 2 числа. Вытаскиваю симку, теперь в ответ:

+CREG: 1,13

Это нормально?

Что там в прошивке намутили китайцы - неизвестно. У меня тоже модем не вполне соответствует описанию. И, кстати, почему вы решили, что без СИМки должно вернуть 1,3? По-моему, при невозможности регистрации в сети первая цифра должна быть 0

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

Sprut пишет:

toc пишет:
там текст в семибитной кодировке

А можно сделать в 16bit UCS2, тогда и русские символы будут доступны

 

AT+CSCS="HEX"
OK
AT+CUSD=1,*100#,15
OK

+CUSD: 2, "00310030002E003000300440002E000A0416043C04380020002A00320034003000230
0200020041F043E043B044304470438002000350030003000300440002E002004370430002004320
43D0438043C043004420435043B044C043D043E04410442044C002000200028003300300440002F0
031003000200434043D0029" ,72

Расшифровка: "10.00р.
Жми *240# Получи 5000р. за внимательность (30р/10 дн)"

Это вывод непосредственно с терминала, модуль подключен к компу напрямую

А дальше либо PDU Converter, вводим в окно "USSD Entry/Display" и ставим "UCS2"

либо ручками Таблица кодировки UCS2 для СМС

вот и я наткнулся на проблему с модемом A6 - пытаюсь баланс получить - пустая строка выходит

оператор Теле2

AT+CSCS="UCS2" 
 
OK
AT+CUSD=1,*105#,15 
 
OK
 
+CUSD: 2, "" ,72
 
просто на телефоне данная симка отлично отвечает,
пробовал другие кодировки HEX например - аналогично,
причем на рекламный запрос *102# ответ есть
 
AT+CUSD=1,*102#,15
 
OK
 
+CUSD: 1, "@@4@⸮@S@" ,72
 
 

 

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

andycat пишет:

вот и я наткнулся на проблему с модемом A6 - пытаюсь баланс получить - пустая строка выходит

оператор Теле2

AT+CSCS="UCS2" 
 
OK
AT+CUSD=1,*105#,15 
 
OK
 
+CUSD: 2, "" ,72
 
просто на телефоне данная симка отлично отвечает,
пробовал другие кодировки HEX например - аналогично,
причем на рекламный запрос *102# ответ есть
 
AT+CUSD=1,*102#,15
 
OK
 
+CUSD: 1, "@@4@⸮@S@" ,72
 

Замена оператора и SIM карты ни к чему не привели, в результате дальнейших экспериментов выяснилось что данный GSM A6 модуль обрабатывает только короткие USSD  ответы :(

supercelt
Offline
Зарегистрирован: 09.11.2017

По даташиту статус регистрации - это цифра после запятой. 3 - не рарегено, 2 - не помню, 1 - зарегено. Без симки должно быть 3. А он возвращает 13.

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

supercelt пишет:

По даташиту статус регистрации - это цифра после запятой. 3 - не рарегено, 2 - не помню, 1 - зарегено. Без симки должно быть 3. А он возвращает 13.

это вопрос?

у меня возвращает как положено:

CREG 1,1

а если вставить симку наоборот, возвращает 1,3

 

Logik
Offline
Зарегистрирован: 05.08.2014

Было у меня 13. Не помню точно при какой херне - толи денег не было, толи инет не настроен, толи симка WCDMA.

Угу. Здеся. #41.

ПС. Похоже один я сдуру читаю всю тему по интересующему вопросу, остальные просто спрашивают не парятся :((

Student_With_Arduino
Offline
Зарегистрирован: 10.03.2018

Как заставить работать?

Всем привет, мне необходимо реализовать отправку смс при определенных условиях с модуля А6 mini и определять геолокацию.

Я пока только начинаю изучать и этот модуль, и arduino вцелом.

Прочитал это обсуждение, очень полезно, только вот я не могу понять в чем у меня причина ошибки...

Иногда в мониторе порта заветные строки о нормальной работе: 

^CINIT: 1, 0, 0

^CINIT: 2, 32, 41891

^STN: 37

^CINIT: 4, 8192, 37

^CINIT: 8, 2048, 1

^CINIT: 16, 0, 1638440

^CINIT: 32, 0, 0
...появляются автоматически. Просто при подключении arduino к компу. А когда-то они не появляются вообще. Ни при загрузке пустого скетча, ни при перезапуске. Нет реакции на команду АТ, нет реакции ни на одну из команд. После ввода они даже в мониторе порта не отображаются, а просто пропадают из строки ввода. Работаю на скорости 9600. 
Подскажите, пожалуйста, что сделать? Может быть кто-то сталкивался с этой проблемой
pasha413
Offline
Зарегистрирован: 27.11.2016

А покажите пример, как вы используете gsm модем без softwareserial?

Student_With_Arduino
Offline
Зарегистрирован: 10.03.2018

Не понял вопрос. Я просто подключал А6 к Arduino, потом к ПК. В мониторе порта раньше выходили строки с ^CINIT:......., а сейчас не выходят. С чем это связано - ума не приложу. Монитор порта на команды не реагирует, при вводе элементарной АТ - все просто исчезает, ответа никакого не приходит, ни ОК, ни ошибки, нет ничего. 

Но при написании этого кода: 

char phone_no[]="+77777777777";

void setup() {

Serial.begin(115200);
delay(200);
Serial.println("AT");
delay(7000);
Serial.print("ATD");
Serial.println(phone_no);
delay(15000);
Serial.println("ATH0");

}

звонок идет, но не всегда. И сбрасывается, но тоже не всегда

supercelt
Offline
Зарегистрирован: 09.11.2017

А может так поможет?

Serial.println("AT\r");

И к остальным тоже прибавить этот символ

Student_With_Arduino
Offline
Зарегистрирован: 10.03.2018

Спасибо за ответ)

Попробовал, работает, но и без \r работало.

А что это? как влияет?