Какую статью добавить следующей?

Диалог происходит по средством AT команд. Мы шлём модулю нужную команду или запрос, а он её выполняет и отвечает. Самая простая команда AT, на которую модуль тут же ответит OK, если модуль подключен и исправен. Самые популярные команды рассмотрим далее.

Почти все команды имеют 3 режима:

  • тестовый =? – модуль ответит поддерживает ли он команду и возможные её параметры
  • чтение ? – ответом будет текущие параметры для этой команды
  • запись = записываем новые значения для команды.

A/ — повтор предыдущей команды

В статье, идёт речь о GSM модуле SIM900 (B09). Напоминаю, т.к. есть ещё и другие разновидности этого модуля и формат команд с ними может немного отличаться.

Управление портом

По умолчанию модуль настроен 9600 8N1, 9600 – скорость, 8 – бит в посылки, N – нет контроля чётности, 1- стоп бит.

Команда

Ответ

Описание

AT+IPR? +IPR: 0
OK
Скорость порта:
0 – автоматически
1200
2400
4800
9600
19200
38400
57600
115200
AT+ICF? +ICF: 3,3
OK
Настройки передачи.
Первый параметр:
Бит в посылке/чётность/стоп бит
1 – 8/0/2
2 – 8/1/1
3 – 8/0/1
4 – 7/0/2
5 – 7/1/1
6 – 7/0/1
Второй параметр – чётность:
0 – нечётный
1 – чётный
3 – нет
AT+IFC? +IFC: 0,0
OK
Контроль передачи данных
Первый параметр – терминалом от модуля
Второй параметр – модулем от терминала
0 – нет контроля
1 – программный
2 – аппаратный

Информация и состояние

Информация о модуле

Команда

Ответ

Описание

AT+GCAP +GCAP:+FCLASS,+CGSM
OK
Возможности модуля
AT+GMM SIMCOM_SIM900
OK
Идентификатор модуля
AT+GMR Revision:1137B09SIM900M64_ST
OK
Ревизия
AT+GSN 01322600XXXXXXX
OK
IMEI

Информация о состояние модуля

Команда

Ответ

Описание

AT+COPS? +COPS: 0,0,"MTS-RUS"
OK
Информация об операторе
AT+COPS=? +COPS: (2,"MTS RUS","","25001"),(1,"MOTIV","MOTIV","25035"),(1,"Utel","Utel","25039"),,(0,1,4),(0,1,2)
OK
Доступные операторы
AT+CPAS +CPAS: 0
OK
Информация о состояние модуля
0 – готов к работе
2 – неизвестно
3 – входящий звонок
4 – голосовое соединение
AT+CREG? +CREG: 0,1
OK
Тип регистрации сети
Первый параметр:
0 – нет кода регистрации сети
1 – есть код регистрации сети
2 – есть код регистрации сети + доп параметры
Второй параметр:
0 – не зарегистрирован, поиска сети нет
1 – зарегистрирован, домашняя сеть
2 – не зарегистрирован, идёт поиск новой сети
3 – регистрация отклонена
4 – неизвестно
5 – роуминг
AT+CSQ +CSQ: 17,0
OK
Уровень сигнала:
0 -115 дБл и меньше
1 -112 дБл
2-30 -110..-54 дБл
31 -52 дБл и сильнее
99 – нет сигнала.
AT+CCLK? +CCLK: "00/01/01,04:21:27+00"
OK
Текущая дата и время телефона.
AT+CBC +CBC: 0,95,4134
OK
Монитор напряжения питания модуля
Первый параметр:
0 – не заряжается
1 – заряжается
2 – зарядка окончена
Второй параметр:
1-100 % — уровень заряда батареи
Третий параметр:
Напряжение питание модуля (VBAT), мВ
AT+CADC? +CADC: 1,7
OK
Значение АЦП (до 2,8В)

Настройки

Вызовов

Команда

Ответ

Описание

AT+CLIP=1 OK АОН
1 – вкл / 0 – выкл
AT+GSMBUSY=0 OK Запрет входящих звонков
0 – разрешены
1 – запрещены
ATS0=0 OK Автоответ
0 – ручной
1-более – автомотический после заданного количества звонков

СМС

Команда

Ответ

Описание

AT+CMGF=1 OK Текстовый режим
1 – включить
0 – выключить
см. примечание
AT+CSCS= "GSM" OK Кодировка текстового режима
Доступны следующие кодировки:
IRA, GSM, UCS2, HEX, PCCP, PCDN, 8859-1
см. примечание
AT+CSCB=0 OK Приём специальных сообщений
0 – разрешен (по умолчанию)
1 – запрещен

Остальные

Команда

Ответ

Описание

ATE0 OK ЭХО
1 – вкл (по умолчанию) / 0 – выкл
ATV1 OK Формат ответа модуля
0 – только ответ
1 – полный ответ с ЭХО (по умолчанию)
AT+CMEE=0 OK Информация об ошибках
0 – отключён (по умолчанию)
1 – код ошибки
2 – описание ошибки
AT+CCLK="13/09/25,13:25:33+05" OK Установка часов
«yy/mm/dd,hh:mm:ss+zz»
Где:
год/месяц/дата,
часы:минуты:секунды
+часовой пояс
AT+CPIN=XXXX   Ввод PIN кода
ATZ0   Сброс настроек до по умолчанию (не до заводских)
0 или 1 – выбор профиля
AT&F   Сброс настроек до заводских
AT&W OK Сохранение настроек для текущего профиля
Параметр 0 или 1 — выбор профиля
Параметр указывать сразу за командой (AT&W0)
AT+CPOWD=1 NORMAL POWER DOWN Выключение модуля
0 – срочное
1 – нормальное
AT+CFUN=1,1   Энергосберегающий режим и перезагрузка
Первый параметр:
0 – минимальный функционал
1 – нормальный режим (по умолчанию)
2 – выключения цепей приёма и передачи сигнала
Второй параметр:
0 – выполнить без перезагрузки
1 – перезагрузить (доступно только в нормальном режиме, т.е. параметры = 1,1)

Телефонные звонки

Команда

Ответ

Описание

ATD+790XXXXXXXX; OK Позвонить на номер +790XXXXXXXX;
NO DIALTONE
BUSY
NO CARRIER
NO ANSWER
Нет сигнала
Если вызов отклонён
Повесили трубку
Нет ответа
ATDL OK Позвонить по последнему исходящему номеру
ATA OK Ответить на звонок
ATH0 OK Повесить трубку/ разорвать соединение
  RING Входящий звонок
AT+CLIP=1 OK см. настройки
  RING

+CLIP: "+790XXXXXXXX",145,"",,"",0

Входящий звонок с включенным АОН
Где:
Первый параметр – номер телефона входящего звонка
2 – тип входящего номера
129 – не определен
161 – национальный
145 – интернациональный
177 – сетевой, специальный

СМС

Команды приведены для текстового режима и в GSM кодировке.

Команда

Ответ

Описание

AT+CMGS="+790XXXXXXXX"
>Test sms text
>
+CMGS: 15
OK
Отправка СМС.
Указываем номер получателя в кавычках и отправляем модулю с символом переноса строки (13 в ASCII).
После приглашения «>» вводим текст сообщения.
Для отправки в конце сообщения отправляем символ SUB (26 в ASCII) или ESC (27) для отмены.
AT+CMGF=1
AT+CSCS= "GSM"
  Режим и кодировка.
см. настройки и примечание
  +CMTI: "SM",4 Уведомление о приходе СМС.
Второй параметр номер пришедшего СМС.
AT+CMGL="REC UNREAD" +CMGL: 4,"REC UNREAD","+790XXXXXXXX","","13/09/24,23:02:22+24"
Test2.
OK
Чтение групп СМС.
Всего 5 групп:
REC UNREAD – входящие непрочитанные
REC READ – входящие прочитанные
STO UNSENT – Пользовательские непрочитанные
STO SENT – пользовательские прочитанные
ALL – прочитать все сообщения
AT+CMGR=2 +CMGR: "REC READ","+790XXXXXXXX","","13/09/21,11:57:46+24"
Test sms text
OK
Чтение SMS сообщений.
Запрос:
Первый параметр – номер сообщения.
Второй параметр (необязателен):
0 – обычный режим (по умолчанию)
1 – не изменять статус сообщения
Ответ:
Первый параметр – группа сообщений, см предыдущий пункт.
Второй параметр – номер отправителя
3 – дата отправки
Далее следует текс сообщения.
AT+CMGDA="DEL SENT" OK Удаление групп СМС:
DEL READ — прочитанные
DEL UNREAD — не прочитанные
DEL SENT — отправленные
DEL UNSENT — не отправленные
DEL INBOX — полученные
DEL ALL — всех сообщения
AT+CMGD=4 OK Удаление СМС.
Первый параметр – номер сообщения
Второй параметр:
0 – удаление указанного сообщения (по умолчанию)
1 – удаление прочитанных сообщений
2 – удаление прочитанных и отправленных сообщений
3 – удаление прочитанных, отправленных и не отправленных сообщений
4 – удаление всех сообщений
AT+CSCA? +CSCA: "+79126313431",145
OK
Возвращает номер сервис центра отправки сообщений.

Тоновый набор (DTMF)

Тоновые сигналы: 0-9,#,*,A-D

Команда

Ответ

Описание

AT+VTD=3 OK Длительность тоновых сигналов для AT+VTD.
Значение параметра 1..255
AT+VTS="1,4,#,A,6,7,0" OK Отправить последовательность тоновых сигналов (до 20).
Длительность задается командой AT+VTS.
AT+CLDTMF=7, "1,4,#,A,6,7,0" OK Проиграть на модуле (через аудио выход) тоновые сигналы.
Первый параметр — длительность 1-100
Второй параметр – строка тоновых сигналов, до 20.

AT+VTD и AT+VTS команды, как мне кажется, работаю не корректно. VTD – должна устанавливать длительность тонового сигнала, а не паузу между ними, в то время когда тоновый сигнал в AT+VTS проигрывается быстро.

USSD

Команды для текстового режима и в GSM кодировке.

Команда

Ответ

Описание

AT+CUSD=1,"#100#" OK
+CUSD: 0,"Balance:240,68r ",
USSD запрос
Первый параметр – режим обработки операции:
0 – выполнить запрос, ответ проигнорировать
1 – выполнить запрос, вернуть ответ
2 – отменить запрос
Второй параметр – запрос в кавычках.
ATD#100#; OK
+CUSD: 0,"Balance:240,68r ",
Упрощенный USSD запрос (работает только при GSM кодировке)

Отмечу, что есть 2 варианта USSD запроса: начиная с * и начиная с #. В первом варианте ответ приходит на русском языке, во втором в латинице, если оператор такой запрос поддерживает и не ответит так же, как и в первом случае.
Режим отображения такой же, как и для СМС.

Примечание по текстовому режиму и кодировке

От текстового режима (PDU или текстовый) и кодировки модуля зависит формат ввода номеров, USSD запросов, входящих и исходящих СМС.

Самый геморройный и универсальный вариант – это PDU режим, т.к. в нём можно без проблем отправлять и принимать любые текстовые данные, но из-за его «геморойности» рассматривать его не буду.

Самый простой вариант – GSM кодировка. В нём номера вводятся привычным цифровым методом, исходящие и исходящие сообщения, как СМС, так и USSD в латинице отображаются, как им и полагается. С кириллицей дела обстоят посложнее, модуль входящие сообщения с ней отображает в UNICOD, точнее в HEX значениях UNICOD. С исходящими сообщениями дела обстоят сложнее!

Второй вариант, посложнее – UCS2 кодировка. Входящие и исходящие сообщения, USSD запросы, номера телефонов в запросах – всё пишется в UNICOD. Упрощенные USSD запросы не работают.

Другие варианты мной плохо опробованы, но у них тоже всё идёт в своей кодировке.

Пример (номер телефона заменён на +79012345678, добавлены переносы):

Кодировка
и
режим

Запрос

Ответ

PDU AT+CMGR=2 +CMGR: 1,"",38
07919720780110F0000B919710325476F800003190121
175644215D4F29C0E9AB7E72E50985DC6B7CAF8B24B5E07

OK
AT+CMGR=3 +CMGR: 1,"",59
07919720780110F0000B919710325476F800083190122
185134228005400650073007400200073006D00730020
0032002E0020042204350441044200200441043C0441

OK
GSM AT+CMGR=2 +CMGR: "REC READ","+79012345678","","13/09/21,11:57:46+24"
Test sms text

OK
AT+CMGR=3 AT+CMGR=3
+CMGR: "REC READ","+79012345678","","13/09/21,12:58:31+24"
005400650073007400200073006D007300200032
002E0020042204350441044200200441043C0441

OK
AT+CUSD=1,"#100#" OK

+CUSD: 0,"Balance:240,68r ",
UCS2 AT+CMGR=2 +CMGR: "REC READ","002B0037003900300031
0032003300340035003600370038","","13/09/21,11:57:46+24"
005400650073007400200073006D0073002E0020
0061006C00650078002D006500780065002E00720075

OK
AT+CMGR=3 +CMGR: "REC READ","002B00370039003000310032
003300340035003600370038","","13/09/21,12:58:31+24"
005400650073007400200073006D007300200032
002E0020042204350441044200200441043C0441

OK
AT+CUSD=1,"00230031
003000300023"
OK

+CUSD: 0,"00420061006C0061006E00630065003A0032
00340030002C0036003800720020",64

Текст сообщений выданного на запрос «AT+CMGR=3» — «Test sms 2. Тест смс»

Кратко о UNICODE

В юникоде символы кодируются в шестнадцатиричке записанной в текстовом виде, при этом первые 127 символов просто переводятся в HEX, а вот к кириллице добавляется 350h.

Пример: 1 – 0031, G – 0047, z — 007A, Ы — 042B, я — 044F

Программка для кодировки и раскодировки UNICODE – скачать.

В статье привёл значительную часть основных команд GSM модуля SIM900 из огромного списка поддерживаемых им. Для большинства задач все приведенные команды не будут нужны, а хватит только малой их части. В одной из следующих статьей рассмотрю, как пользоваться GPRS AT-командами и пример его использования на примере простенькой домашней сигнализации. Так же бы было интересно достать и посмотреть прошивку «All-in-One».

Комментарии  
-2 # Сергей 06.05.2016 15:00
Такой вопрос.Командой AT+CMGR=2 я могу прочесть входящее сообщение, а как можно читать исходящие , и сохраненные?
Ответить | Ответить с цитатой | Цитировать
+1 # Виталий 10.10.2016 18:20
При поступлении входящего звонка получаем "сигнал" RING. Как "известить" внешнее устройство о приходе SMS сообщения. Более развернуто: модем все время включен, а внешнее устройство (комп) выключен. Как получить сигнал от модема, что пришла SMS. По этому сигналу включится внешнее устройство (комп) и прочитав SMS-ку примет соответствующее решение.
Ответить | Ответить с цитатой | Цитировать
+2 # ARTUR_LI 12.10.2016 22:41
Уведомление о приходе СМС:
+CMTI: "SM",4
Второй параметр -номер пришедшего СМС.

Смотрите команды СМС
Ответить | Ответить с цитатой | Цитировать
-1 # ARTUR_LI 12.10.2016 22:45
Прием SMS

Если во время сеанса на устройство придет SMS, вернется сообщение формата:

+CMTI: "SM",4
здесь 4 — это номер входящего непрочитанного сообщения.

Чтобы прочитать текст этого сообщения, введем:

AT+CMGR=4
В ответ получим:

+CMGR: "REC READ","+790XXXXXXXX","","13/09/21,11:57:46+24"
Hello World!
OK
Ответить | Ответить с цитатой | Цитировать
-2 # Ильдар 29.08.2017 09:21
Добрый день!
Не работает SIM900R.Подключаю гипертерминал, включаю модуль, в ответ

RDY

+CFUN: 1

+CPIN: READY

NORMAL POWER DOWN

Call Ready
модуль вырубается.
Помогите, пожалуйста!!!!! :cry:
Ответить | Ответить с цитатой | Цитировать
-1 # Osip 30.11.2017 02:22
По поводу выражается модуль сим 900, смотри по питанию, при поиске или регистрации в сети он задирает планку до 2-уф Ампера.
Если блок питания его не тянет, то он на выкл.
Ответить | Ответить с цитатой | Цитировать
+3 # Андрей Куприянов 21.01.2018 07:04
Добрый все день! при отправке команды AT+CGPSPWR=1 на модуль Sim 900 с Ардуины в SerialPort выводится ERROR! В чем может быть причина?
Ответить | Ответить с цитатой | Цитировать
+1 # Андрей Куприянов 21.01.2018 07:07
Подскажите в чем проблема. При отправке команды AT+CGPSPWR=1 с ардуины в ответ приходит ERROR.
Ответить | Ответить с цитатой | Цитировать
-1 # Алексей 28.03.2021 02:47
Здравствуйте. А есть список АТ команд по модулю SIM5360E, или он тот же что и по 900?
И ещё вопрос, эти модули могут вести ЮССД диалог? Ну например, при отправке команды оператор предлагает ввести цифру. Как это можно сделать?
И напоследок. Какая команда позволяет прочитать сим id?
Ответить | Ответить с цитатой | Цитировать
Добавить комментарий


Защитный код
Обновить