Перейти к содержанию
    

SIM800C - отправка СМС на русском

Здравствуйте, уважаемые специалисты и уважаемые любители!

Столкнулся с проблемой. Требуется Ваша квалификация в области GPRS связи.

Собрал устройство на базе GPRS модуля SIM800C. Схема во вложении. Устройство работает нормально, СМС латинскими буквами отправляются. Но мне нужен русский язык, и я проштудировал статейку

http://hardisoft.ru/soft/samodelkin-soft/o...i-na-c-chast-1/

в поисках истины. Написал программу для отправки СМС в соответствии со статьёй, но в итоге вижу ERROR без всяческих объяснений. Тогда я решил подключить терминалку и отправить код, приведённый непосредственно в статье, в разделе Краткий «Привет!!!», подставив только свой номер телефона (оператор ТЕЛЕ-2). То есть, что я делаю:

1) запускаю выполнение своей программы. Она включает модуль, ждёт когда пройдёт его регистрация в сети и отправляет ему команду AT+CMGF=0. Модуль отвечает ОК. Далее в программе у меня точка останова, в которой процессор отсоединяется от модуля, и в дело вступает терминалка.

С неё я уже отправляю AT+CMGS=31 и получаю приглашение ввести код СМС ">". Отправляю ему код, и получаю ERROR. В чём дело - не могу понять. В коде изменил только номер телефона на свой, по формату и числу цифер в номере он аналогичен. Привожу полную прослушку ответов SIM800C, эхо включено:

 

41 54 0D 0D 0A 4F 4B 0D 0A 0D 0A 52 44 59 0D 0A | AT•••OK••••RDY••

0D 0A 2B 43 46 55 4E 3A 20 31 0D 0A 0D 0A 2B 43 | ••+CFUN: 1••••+C

50 49 4E 3A 20 52 45 41 44 59 0D 0A 0D 0A 43 61 | PIN: READY••••Ca

6C 6C 20 52 65 61 64 79 0D 0A 0D 0A 53 4D 53 20 | ll Ready••••SMS

52 65 61 64 79 0D 0A 41 54 2B 43 4D 47 46 3D 30 | Ready••AT+CMGF=0

0D 0D 0A 4F 4B 0D 0A 41 54 2B 43 4D 47 53 3D 33 | •••OK••AT+CMGS=3

31 0D 0D 0A 3E 20 00 01 00 0B 91 97 00 09 81 78 | 1•••> ••••‘—••x

F6 00 08 20 08 12 04 1F 04 40 04 38 04 32 04 35 | ö•• •••••@•8•2•5

04 42 00 21 00 21 00 21 0D 0A 45 52 52 4F 52 0D | •B•!•!•!••ERROR•

0A | •

 

Если кто-то уже раболтал с отправкой русских СМС, хотелось бы услышать замечания, комментарии, критику)

Спасибо !!!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверьте завершение ввода данных с терминалки - насколько помню, там должно быть или <Ctrl-Z> или что-то подобное.

Кодировка символов. Думаю что Ваша терминалка выдает в ASCII или 866 или CP1251.

А на вход системы SMS скорее всего должен идти юникод. Так как SMS отправляют не только на англ. и русском но и несколько других языках.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверьте завершение ввода данных с терминалки - насколько помню, там должно быть или <Ctrl-Z> или что-то подобное.

Кодировка символов. Думаю что Ваша терминалка выдает в ASCII или 866 или CP1251.

А на вход системы SMS скорее всего должен идти юникод. Так как SMS отправляют не только на англ. и русском но и несколько других языках.

Контрл зэт отправляется (0x1a)б иначе модуль не ответил бы даже еррором. Сообщение, конечно же, отправляется юникодом ...

 

прекрасно русские отправляются в режиме PDU

Я не вполне понял, так я вроде бы как раз в PDU и пытаюсь отправлять ...

 

Изменено пользователем Lisitsin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не помогает даже онлайн-PDU конвертор ...

http://adatum.ru/pdu-converter

41 54 0D 0D 0A 4F 4B 0D 0A 0D 0A 52 44 59 0D 0A | AT•••OK••••RDY••

0D 0A 2B 43 46 55 4E 3A 20 31 0D 0A 0D 0A 2B 43 | ••+CFUN: 1••••+C

50 49 4E 3A 20 52 45 41 44 59 0D 0A 0D 0A 43 61 | PIN: READY••••Ca

6C 6C 20 52 65 61 64 79 0D 0A 0D 0A 53 4D 53 20 | ll Ready••••SMS

52 65 61 64 79 0D 0A 41 54 2B 43 4D 47 46 3D 30 | Ready••AT+CMGF=0

0D 0D 0A 4F 4B 0D 0A 41 54 2B 43 4D 47 53 3D 32 | •••OK••AT+CMGS=2

31 0D 0D 0A 3E 20 00 01 00 0B 91 97 00 09 81 78 | 1•••> ••••‘—••x

F6 00 08 20 08 08 20 08 04 42 04 35 04 41 04 42 | ö•• •• ••B•5•A•B

0D 0A 45 52 52 4F 52 0D 0A | ••ERROR••

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

модемы и вообще система злопамятна.

Сбросьте модем на заводские установки.

(Возможно) Есть команды, относящиеся к GPRS, когда переключение режима запоминается не в регистрах модема

а в системе. Соотв-но, чтобы переключиться, необходимо, даже после at&f, atz, at&w устанавливать (переключать) требуемый режим.

Не исключено, что аналогичные процедуры-настройки и для SMS.

Не знаю как у кого, а тарификация для SMS в ASCII и Unicode разная. Не исключено, что в систему надо выдать команду "хочу работать в Unicode".

Попробуйте на другом операторе.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

модемы и вообще система злопамятна.

Сбросьте модем на заводские установки.

Даже возврат к фабричным настройкам не помогает ... AT+CSCS="UCS2" тоже роли не играет ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возьмите за правило при отладке задавать AT+CMEE=2. Так можно отличать ошибки синтаксиса от ошибок аргументов и прочего.

И у вас похоже, что смска просто неправильная. Первым идёт размер номера сервисного центра, а за ним и номер. А у вас там 0x20 при допустимой длине 1-12.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...