Модем GSM A6 и USSD команды
- Войдите на сайт для отправки комментариев
Добрый день!
Дано: модем GSM A6, Arduino UNO, SIM-карта МТС. Модем подключен к уно через SoftwareSerial на 9600. В библиотеке размер буфера увеличен. Модем успешно инициализируется. Все команды, необходимые для работы в скетче, проверялись первоначально через uart-usb + программка Terminal 1.9b. Скетч корректно принимает звонки/SMS, отправляет SMS. Но вот ussd команды из скетча не выполняются (((.
В проге Terminal для отправки ussd делал AT+CUSD=1, ##100##,15$0D (один символ ## интерпритируется прогой как код символа). Все отрабатывается корректно, баланс возвращается.
В скетче
SoftwareSerial A6Serial (2, 3); // GSM модем *** A6Serial.print("AT+CUSD=1,#100#,15\r"); //запрос баланса
Результатом в мониторе является
+CME ERROR:15790320
Изменение кода на A6Serial.println("AT+CUSD=1,#100#,15"); не влияет на ошибку.
Форум лопатил три дня - похожей проблемы не нашел... Может кто сталкивался или идеи есть?
Спасёт отца русской демократии.
Не спасет... Делал и так.
Изменение кода на A6Serial.println("AT+CUSD=1,#100#,15"); не влияет на ошибку.
Судя по длинному коду ошибки - это не ошибка синтаксиса, а проблемы при отсылке запроса и(или) получении ответа.
Синтаксис
A6Serial.println("AT+CUSD=1,#100#,15");
- правильный, у других пользователей работает.
А если так, что будет?
А если так, что будет?
кстати да, установка формата может быть важной в данном случае.
Спасибо, вечером попробую. По результату отпишу.
Изменение кода на A6Serial.println("AT+CUSD=1,#100#,15"); не влияет на ошибку.
Судя по длинному коду ошибки - это не ошибка синтаксиса, а проблемы при отсылке запроса и(или) получении ответа.
Синтаксис
A6Serial.println("AT+CUSD=1,#100#,15");
- правильный, у других пользователей работает.
синтаксис то правильный, и напрмер у меня то работает, но нифига баланс не выдает :(
так что не факт что у ТС заработают
ЗЫ. Кривые и глюченные они все таки эти модули А6, то зависают на какой то команде что еще какой фортель выкинет - зря я его купил, надо было SIM 900 брать :(
Более внимательное рассмотрение показало, что ошибка возникала из-за двух последовательно идущих команд без задержки. Видно модему от этого плохело.
А вообще действительно глючный: ussd уходят через раз, по непонятным причинам. Надо попробовать с другой библиотекой, вместо SoftwareSerial.
Более внимательное рассмотрение показало, что ошибка возникала из-за двух последовательно идущих команд без задержки. Видно модему от этого плохело.
А вообще действительно глючный: ussd уходят через раз, по непонятным причинам. Надо попробовать с другой библиотекой, вместо SoftwareSerial.
не поможет - я подцепил модем на аппаратный UART, а для отображения прикрутил LCD1602 - модем лучше работать не стал :(
не поможет - я подцепил модем на аппаратный UART, а для отображения прикрутил LCD1602 - модем лучше работать не стал :(
andycat, у меня все вполне устойчиво работает. У модема есть несколько особенностей, которые создают трудностии поначалу - в частности инициализация сериала или то, что модем при долгом простое засыпает... Но это именно особенности, которые можно учесть и обойти, а не глюки.
Зато в плане экономичности и неприхотливости к питанию А6 дает 100 очков вперед SIm800 Если в следующих проектах будет нужен GSM- буду снова брать А6
b707, возможно мне не повезло с моделькой (продавцом), или руки у меня кривые.
скиньте плиз ссылку где брали?
и еще вопрос: на USSD команду запроса баланса корректно отвечает?
по поводу засывпает при простое: у меня каждые 2 минуты опрос модема на наличие новых СМС это считается простоем? - и все равно он через часов 14 завис, перестал отвечать......
и еще вопрос: на USSD команду запроса баланса корректно отвечает?
по поводу засывпает при простое: у меня каждые 2 минуты опрос модема на наличие новых СМС это считается простоем? - и все равно он через часов 14 завис, перестал отвечать......
Баланс пробовал, отвечает. Но вообще я USSD запросы в своем проекте не использую, баланс карты в модеме проще на смартфоне контролировать.
Про зависание - у меня при отсуствии ответа 3 раза подряд модем хардварно ресетится через мосфет.
Баланс пробовал, ...........проще на смартфоне контролировать.
у меня тоже отвечает, только пустой строкой
+CUSD: 2, "" ,72
контролировать на смартфоне - через личный кабинет? оно то конечно проще для тех кто имеет ЛК, у меня масса знакомых которые даже тариф свой не знает не то что контролировать какую то левую карту через ЛК :(
ЗЫ. По поводу зависания - я сторонник правильных железок, в деревне температурная сигнализация - аптайм больше 15 дней (как я с празднования НГ уехал и ее включил) - никаких зависаний.
ЗЫЫ. И ссылку если есть на магазин/продавца выложите плиз.
[
у меня тоже отвечает, только пустой строкой
+CUSD: 2, "" ,72
нет, у меня нормально отвечал. Семибитную кодировку было лень декодировать, поэтому пробовал в HEX на латинице. Вообще, ответы на запросы, ИМХО, куда больше зависят от оператора, чем от модема. Я ставил в модем 4 разных симки 3х разных операторов - и у каждого были свои особенности.
ССылку поищу. Я на Ибее брал
Добавка - судя по сообщению +CUSD: 2, "" ,72 - ответ у вас приходит, вы просто его не видите на экране. там в конце идет цифра "72" - это длина ответа в символах, многовато для пустого сообщения. Вы в курсе, что ответы USSD приходят в особой кодировке, не в той. что СМС? ее отдельно декодировать надо
ению +CUSD: 2, "" ,72 - ответ у вас приходит, вы просто его не видите на экране. там в конце идет цифра "72" - это длина ответа в символах, многовато для пустого сообщения. Вы в курсе, что ответы USSD приходят в особой кодировке, не в той. что СМС? ее отдельно декодировать надо
думал над этим, пробовал не сразу на экран/монитор/дисплей выводить и в разных кодировках (HEX/UCS2/GSM), а сначала смотреть что там от модема идет - реально пусто между кавычек.
где то на форумах (может и здесь) мелькала фраза что A6 модем не может отдавать длинный ответ на USSD - косяк прошивки :(
ЗЫ. Будет возможность/настроение - попробуйте пожалуйста на своем экземпляре получение баланса.
ЗЫЫ. На другие запросы USSD ответ короткий приходит ОК, проблема именно с запросом баланса.
Скорей всего дело в софтсириале. Там непройдет и "отдавать длинный ответ " и две команды подряд. Еще электролит на питание добавляете пожырней. Ток потребления у А6 с очень большими короткими импульсами.
Скорей всего дело в софтсириале. Там непройдет и "отдавать длинный ответ " и две команды подряд. Еще электролит на питание добавляете пожырней. Ток потребления у А6 с очень большими короткими импульсами.
Выше читайте внимательнее и фото посмотрите - аппаратный UART
ЗЫ. Будет возможность/настроение - попробуйте пожалуйста на своем экземпляре получение баланса.
Попробовал UUSD запрос
Что в переводе означает
Vash balans 173.00 rub. Bonus: 0.00 rub. Dopolnitel'nye balansy: #106#
Length: 70
Сим-карта Билайн Москва
Версия прошивки V03.03.20161229019H03
Ага, значит у меня реально проблема с модулем
Спасибо.
после команды ATOI
вывода номера версии модем наглухо зависает :(
Скорей всего дело в софтсириале. Там непройдет и "отдавать длинный ответ " и две команды подряд. Еще электролит на питание добавляете пожырней. Ток потребления у А6 с очень большими короткими импульсами.
Выше читайте внимательнее и фото посмотрите - аппаратный UART
Сами читайте. У Rext именно софтовый. У Вас вероятно проблема с кривым софтом. Там типичная бага в архитектуре - не учитывать что модем не только выдает ответы на команды, но и практически в любой момент может выдать сообщение. Ну и электролит опять же отсутствует.
////////////
поищите по форуму, тут где то год назад кто то выкадывал ссылки на прошивалку.
насколько я помню по UART к другим пинам модема заливается новая версия, но та которая у вас вроде как и есть новая ( может просто я не нашел другой), возможно придется откатываться на более старую.
я плюнул, оставил версию как есть, не выдает длинный ответ на USSD, и зависает на команде ATOI, но стабильно работает с СМС - мне достаточно.
Здравствуйте!
Имею Goouuu Tech !IOT-GA6.
Управляю им с помощью Terminal v1.9b через Com1 компа и преобразователь логических уровней на Max232.
Основные команды выполняет исправно, звонит и принимает звонки, а вот отослать СМС не получается -
после ввода текста и CtrlZ пишет:+CMS ERROR:500 – Неизвестная ошибка.
Кто может помочь решить проблему?
Здравствуйте!
Имею Goouuu Tech !IOT-GA6.
Управляю им с помощью Terminal v1.9b через Com1 компа и преобразователь логических уровней на Max232.
Основные команды выполняет исправно, звонит и принимает звонки, а вот отослать СМС не получается -
после ввода текста и CtrlZ пишет:+CMS ERROR:500 – Неизвестная ошибка.
Кто может помочь решить проблему?
интересно, как вы символ CtrlZ вводите с терминала? Надеюсь не прямо так, как тут написали "CtrlZ" ?
Гугл заблокировали?
По факту, этот код ошибки формируется при проблемах на самых разных стадиях отправки сообщения, поэтому может быть вызван разными причинами:
И это форум про Arduino - подключите модем к МК, прогоните тестовый скетч отправки СМС - будет понятно где ошибка. И кстати не каждый терминал позволяет корректно отправлять CtrlZ устройству.
Гугл заблокировали?
По факту, этот код ошибки формируется при проблемах на самых разных стадиях отправки сообщения, поэтому может быть вызван разными причинами:
И это форум про Arduino - подключите модем к МК, прогоните тестовый скетч отправки СМС - будет понятно где ошибка. И кстати не каждый терминал позволяет корректно отправлять CtrlZ устройству.
Спасибо за ответ!
По пунктам:
Модем в сети регистрируется - видно по диагностике при звонках.
Средств на карте достаточно.
Перегрузка в сети - пробовал в разные моменты.
На запрос номера центра обслуживания ответ - ошибка, буду проверять.
Номер абонента правильный, проверено неоднократно.
Программа некорректно работает с данным модемом - непонятно, о какой программе речь?
это форум про Arduino - я через Ардуино модуль и гонял, пока не умер последовательный порт!
И по первому вопросу - Гугл лопачу не первый день!
Извиняюсь, ошибочка вышла: номер центра обслуживания правильный.
хм...так вы выше же писали что через комп отсылали команды....ничего не понял
впрочем не важно, ну вот например вам тестовый для А6 модема, только вс троке отправки исправьте телефон на свой в обратной записи - там подсказка есть - поймете
Я,наверное, не очень внятно объяснил: померла моя Ардуинка, поэтому и взялся за комповый порт:(
Попробую показать, что отправляю и получаю
CtrlZ отправляю следующим образом:
в Notepad++ ввел символ Alt+026, получился маленький прямоугольничек с надписью SUB, вот его копирую и вставляю:)
Было у меня что то подобное, не воспринимал часть команд и текст, сбрасывал в дефолтное заводское состояние, если не поможет - что то с настройками.
А без csmp команды пробовали?
Да и вообще рекомендую в PDU формате и слать и читать - чтоб не путаться в кодировках
Да, и у меня такое впечатление сложилось, что "что-то с настройками". Вот только с какими и где?
Ладно, спасибо за участие, буду мучить настройки, а начну с проверки "без CSMP"...