GSM модуль NEOWAY M590 – описание и команды управления

Описание GSM модуля NEOWAY M590, команды управления
GSM модуль представляет собой беспроводное коммуникационное устройство (модем) для приема/передачи данных в сетях мобильной связи. В любом мобильном телефоне установлен такой модуль, благодаря которому возможно голосовое общение, прием сообщений, выход в интернет. В этой статье я расскажу про GSM/GPRS модуль NEOWAY M590, приведу описание и назначение основных команд.
Данный модуль, смонтированный на плате с минимальной обвязкой (а также в виде конструктора) можно приобрести в Китае, где он позиционируется как модуль под Arduino.

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

На следующей картинке представлена схема с рекомендуемой обвязкой модуля:

GSM модуль NEOWAY M590, схема подключения
Модуль питается напряжением 3,3 – 4,5В, максимальный ток потребления кратковременно может достигать 2А (особенно в момент включения), поэтому конденсатор C1 должен иметь минимальную емкость в 1000 мкФ, желательно больше. В режиме ожидания средний ток потребления модуля равен 25 мА.

Для включения модуля необходимо подать положительный импульс на линию ON/OFF (база транзистора VT1), длительность импульса должна быть не менее 300 мс. После успешного включения и выхода в рабочий режим, светодиод статуса HL1 начнет мигать с частотой в 1Гц. Рекомендуется выдержать паузу в 2 секунды после включения, прежде чем отправлять команды на модуль. При включении модуль выдает сообщение MODEM:STARTUP, затем через 10-15 секунд сообщение +PBREADY, означающее, что телефонная книга готова к использованию.

Для выключения модуля необходимо повторно подать такой же положительный импульс, или же отправить специальную команду на выключение (AT+CPWROFF). В выключенном состоянии модуль потребляет ток в пределах 80 мкА.

Номинальное рабочее напряжение линий ввода/вывода модуля (RXD, TXD, DTR, RING, LED) составляет 2,85В. Напряжения на линиях ввода (RXD, DTR) не должны превышать 3,3В, для исключения их повреждения, поэтому для их сопряжения с логическими уровнями большего напряжения установлены элементы VD1, R1, VD2, R2. С помощью резисторов эти входы подтягиваются к линии VCCIO, после включения модуля на этой линии появляется напряжение величиной 2,85В (макс. выход. ток 3 мА), тем самым обеспечивается безопасный логический уровень для линий ввода. Диоды предотвращают входы от перенапряжения.

В случае зависания модуля, имеется возможность аварийного выключения, для этого необходимо подать положительный импульс на линию EMERGENCY OFF (база транзистора VT2) длительностью 100 мс. После этого необходимо выдержать паузу в 5 секунд перед повторным включением, чтобы исключить возможность повреждения модуля.

“Общение” с модулем осуществляется с помощью стандартного интерфейса UART, линия MCU TX подключается к выходу передатчика управляющего устройства (микроконтроллер, компьютер), вывод MCU RX к входу приемника управляющего устройства.

Для снижения энергопотребления в модуле предусмотрен спящий режим, по умолчанию этот режим отключен, для его включения необходимо предварительно подать команду на разрешение спящего режима (at+enpwrsave=1). Затем необходимо установить низкий логический уровень на линии SLEEP, после чего, через 10-30 секунд модуль “заснет”. Во время “сна” модуль не реагирует на команды, поступающие по UART. Установка высокого логического уровня на линии SLEEP, выводит модуль из спящего режима в течение 50 мс. Если во время “сна” поступит SMS сообщение, данные от сервера, или входящий звонок, то модуль проснется и отправить соответствующее сообщение по UART, после чего управляющее устройство должно выставить высокий логический уровень на линии SLEEP, чтобы продолжить обмен данными. Если этого не произойдет, модуль автоматически уйдет в “сон” в течение 10-30 сек. В спящем режиме потребляемый ток составляет 2,5-3 мА.

При поступлении входящего вызова на линии RING появляются импульсы с низким логическим уровнем длительностью 30 мс, частота следования один раз в 5 секунд (в такт звуку гудка). При получении SMS сообщения, на линии появляется однократный импульс длительностью 25-35 мс. Данную линию можно использовать для генерации прерываний в управляющем устройстве.

Линии DCD (16-й вывод модуля), DSR (17-й вывод модуля) не используются, остальные выводы задействованы для подключения СИМ карты A2.

В модуле отсутствует микрофонный вход, поэтому голосовую связь осуществить не получится, но само соединение устанавливается, если принять звонок от модуля, в динамике будет стоять тишина.

Чтобы поработать с модулем я подключил его к компьютеру с помощью USB-UART преобразователя. В качестве терминальной программы я использовал Terminal v1.9b by Bray. В программе необходимо выставить следующие настройки подключения: 8 бит данных, без проверки четности, один стоповый бит, управление потоком отключаем. По умолчанию модуль настроен на скорость 9600 бит/сек, также поддерживаются 1200, 2400, 4800, 19200, 38400, 57600, 115200 бит/сек.

На следующем скриншоте можно увидеть последовательность приема/передачи данных между компьютером и модулем:
Обмен данными между GSM модулем и компьютером
Теперь рассмотрим структуру стандарта связи, инструкции и особенности приема/передачи данных. GSM модули управляются специальными AT командами, которые изложены в нескольких стандартах, таких как GSM 03.40, GSM 07.07 и т.д.

Любая команда начинается с символов AT, после которых следует название команды, параметр команды, и завершающий символ <CR> – возврат каретки (шестнадцатеричное значение 0x0D, в языках программирования “\r”), этот символ должен присутствовать в конце каждой команды. Пример:

AT+IPR=9600<CR>, где +IPR – название команды (настройки скорости порта UART), 9600 – значение скорости порта которое передается модулю.

Для большинства команд можно запросить ее текущие и возможные варианты параметров:
Команда AT+IPR?<CR>, запрашивает текущее значение скорости порта.
Команда AT+IPR=?<CR>, запрашивает возможные варианты значений для скорости порта.

Если в конце команды опустить символ <CR>, то модуль не будет воспринимать команды. Для ввода этого символа в терминальной программе, необходимо указать его шестнадцатеричное значение из таблицы ASCII – $0D, символ $ указывает программе, что далее идет число шестнадцатеричном формате. В итоге команда в терминале будет выглядеть следующим образом: AT+IPR=9600$0D.

В GSM модемах имеется специальный режим, называемый “эхом”, это повторение символов получаемых от управляющего устройства. То есть, модуль возвращает полученную команду, а затем выдает ответ на эту команду. Если “эхо” отключено модем выдает только ответ. В моем случае режим “эха” в модуле был включен по умолчанию, выше на скриншоте программы в окне приема сообщений можно увидеть возвращенные команды.

Каждое ответное сообщение от модуля начинается и заканчивается символами <CR> и <LF>, где <LF> – символ перевода строки (шестнадцатеричное значение 0x0A, в языках программирования “\n”). Пример ответа на команду AT+IPR?:

<CR><LF>+IPR: 9600<CR><LF><CR><LF>OK<CR><LF>

Эквивалентом комбинации символов <CR><LF> является действие клавиши Enter, то есть переход в начало следующей строки. Поэтому в терминале структура ответа выглядит следующем образом:

На этой строке находилась позиция курсора до получения ответа
+IPR: 9600
Здесь пустая строка
OK
Здесь находится текущая позиция курсора после получения ответа

На вышеприведенном скриншоте терминальной программы можно просмотреть структуру ответов модуля.

Ниже представлен список некоторых распространенных команд, используемых для разработки устройств на базе GSM модуля. Самая простая команда – AT, в ответ на которую модуль выдаст сообщение OK.

Команды настройки модуля:

Описание Команда настройки режима “эха”
Формат ATE<n>
Параметр <n>: 0 – выключить; 1 – включить
Ответ OK
Пример ATE0
 
OK

 

Описание Команда проверки модели и версии модуля
Формат ati
Пример ati
NEOWAY
M590
REVISION 01.30c
 
OK
 
Модель
 
Версия

 

Описание Команда чтения версии прошивки модуля
Формат at+getvers
Ответ <версия>
OK
или ERROR
Пример at+getvers
1103_C6C30000_V0130c
 
OK
Версия прошивки

 

Описание Команда сохранения текущей конфигурации настроек в EEPROM память
Формат AT&W<значение>
Параметр <значение>:
0 – сохранить настройки в  0-м профиле, параметр 0 можно не указывать;
1 – сохранить настройки в 1-м профиле
Ответ OK
Пример AT&W
 
OK

 

Описание Команда настройки скорости порта UART
Формат AT+IPR=<скорость предачи>
Параметр <скорость предачи>: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 бит/сек
Ответ OK или ERROR
Пример AT+IPR=9600
OK
Запрос параметра AT+IPR?
+IPR: 9600
 
OK
 
Скорость порта равна 9600 бит/сек

 

Описание Команда проверки статуса модуля
Формат AT+CPAS
Параметр <pas>:
0 – готов к работе
2 – неизвестно
3 – входящий звонок
4 – в режиме соединения
5 – спящий режим
Ответ +CPAS: <pas>
OK
(или ERROR)
Пример AT+CPAS
+CPAS: 0
 
OK
 
Модуль готов к работе

 

Описание Команда проверки регистрации модуля в сети
Формат AT+CREG: <mode>
Параметр <mode>:
0 – выключить уведомление о регистрации в сети
1 –  включить уведомление о регистрации в сети +CREG: <stat>
2 – включить уведомление о регистрации в сети и информацию о местоположении<
 
stat>:
0 – не зарегистрирован, поиск сети не выполняется
1 – зарегистрирован в домашней сети
2 – регистрация отклонена
3 – не зарегистрирован, выполняется поиск сети
4 – неизвестно
5 – зарегистрирован, зона роуминга
Ответ OK или ERROR

AT+CREG: <mode>,<stat>
OK

Пример AT+CREG=1
OK
Включить уведомление о регистрации в сети
Запрос параметров AT+CREG?
+CREG: 0,1
 
OK
 
Зарегистрирован в домашней сети

 

Описание Команда настройки спящего режима
Формат at+enpwrsave=<n>
Параметр <n>:
0 – спящий режим запрещен;
1 – спящий режим разрешен
Ответ OK или ERROR
Пример at+enpwrsave=1
OK
Примечание Значение параметра <n> не сохраняется после выключения модуля.

 

Описание Команда выключения модуля
Формат AT+CPWROFF
Ответ OK или ERROR
Пример AT+CPWROFF
OK
Примечание Не следует одновременно подавать команду и оперировать выводом ON/OFF модуля.

Команды управления вызовом:

Описание Команда настройки автоматического определения номера (АОН)
Формат AT+CLIP=<n>
Параметр <n>:
0 – АОН выключен;
1 – АОН включен
Ответ OK
Пример AT+CLIP=1
OK
Сообщение от модуля RING Входящий звонок (АОН отключен)
RING
 
+CLIP: “79XXXXXXXXX”,145,,,“”,0
Входящий звонок (АОН включен)
 
“79XXXXXXXXX” – номер вызывающего телефона
“” – имя абонента
Примечание Сообщение RING повторяется после каждого гудка

 

Описание Исходящий вызов для установления голосового соединения
Формат ATD+79XXXXXXXXX;
Параметр 79XXXXXXXXX – номер вызываемого телефона
Ответ OK
Пример ATD+79630749105;
OK
Сообщение от модуля CONNECT
BUSY
NO ANSWER
NO CARRIER
Соединение установлено
Занят другим сеансом связи
Нет ответа
Вызов сброшен

 

Описание Команда разъединения соединений (повесить трубку)
Формат ATH<n>
Параметр <n>:
0 – разъединить все вызовы, параметр 0 можно не указывать;
1 – разъединить исходящий вызов
Ответ OK
Пример ATH
OK

Команды для работы с SMS сообщениями:

Описание Команда настройки формата SMS сообщений
Формат AT+CMGF=<режим>
Параметр <режим>: 0 – PDU формат; 1 – текстовый формат
Ответ OK или ERROR
Пример AT+CMGF =1
OK
Примечание Если сообщение отправляется в PDU формате, необходимо установить кодировку UCS2 (при использовании кириллических символов), для текстового формата кодировку GSM, либо UCS2
 
В PDU формате, текст представлен в виде последовательности шестнадцатеричных чисел.

 

Описание Команда выбора кодировки текста
Формат AT+CSCS=<chset>
Параметр <chset>:
“GSM” – кодировка ASCII
“HEX” – кодировка шестнадцатеричными значениями
“IRA” – международный справочный алфавит
“PCCP437” – кодировка CP437 (IBM PC)
“8859-1” – кодовые страницы семейства ISO 8859
“UCS2” – кодировка Unicode (2 байта на символ)
Ответ OK или ERROR
Пример AT+CSCS=“GSM”
OK

 

Описание Команда чтения SMS сообщения
Формат AT+CMGR=<index>
Параметр <index>: номер считываемого сообщения
Ответ Для текстового формата (CMGF=1):
+CMGR: <stat>,<oa>,<alpha>,<scts><CR><LF><data>
OK
(или ERROR)
 
Для PDU формата (CMGF=0):
+CMGR: <stat>,<alpha>,<length>,<scts><CR><LF><pdu>
OK
(или ERROR)
 
<stat> – статус SMS сообщения:
0 – для PDU формата, REC UNREAD – для текстового формата: входящее непрочитанное сообщение
1 – для PDU формата, REC READ – для текстового формата: входящее прочитанное сообщение
2 – для PDU формата, STO UNSENT – для текстового формата: неотправленное (исходящее) сообщение
3 – для PDU формата, STO SENT – для текстового формата: отправленное сообщение
4 – для PDU формата, ALL – для текстового формата: все сообщения
 
<alpha> – имя отправителя
<scts> – отметка времени сервис-центра в формате:
год/месяц/день, часы: минуты: секунды ± часовой пояс
<data> –  текст сообщения в ASCII символах
<length> – количество символов сообщения (для PDU формата)
<pdu> – информация о SMS и текст сообщения в PDU формате
Пример AT+CMGR=1
+CMGR: “REC READ”,“+79123456789”,“”,“15/11/13,14:39:35+32”
GPS-START2
 
OK
Для текстового формата
кодировка ASCII (GSM)
Получено сообщение: GPS-START2
AT+CMGR=1
+CMGR: “REC READ”,“+79123456789”,“”,“15/11/13,14:39:35+32”
004700500053002D005300540041005200540032
 
OK
Для текстового формата
кодировка Unicode (UCS2)
Получено сообщение: GPS-START2
AT+CMGR=1
+CMGR: 1,,28
07919730071111F1040B919721436587F90000511131419353020
A47E8B435A506A55419
 
OK
Для PDU формата
специальная 7-ми битная
кодировка
Получено сообщение: GPS-START2

 

Описание Команда отправки SMS сообщения
Формат Для текстового формата (CMGF=1):
AT+CMGS=<da><CR><text><ctrl-Z>
 
Для PDU формата (CMGF=0):
AT+CMGS=<length><CR><pdu><ctrl-Z>
Параметр <da> – номер на который посылается сообщение (в ASCII символах)
<text> – текст сообщения в ASCII символах
<length> – количество байт сообщения в PDU формате
<pdu> – информация о SMS и текст сообщения в PDU формате
Ответ +CMGS: <mr>
OK
(или ERROR)
 
<mr> – условный номер, присваиваемый модулем
Пример AT+CMGS=“+79123456789”<CR>
> Perezvoni mne<ctrl-Z>
+CMGS: 2
 
OK
Для текстового формата
Отправка сообщения “Perezvoni mne”
AT+CMGS=27<CR>
> 07919740030900F001000B919721436587F900080E
041F044004380432043504420021<ctrl-Z>
>
+CMGS: 2
 
OK
Для PDU формата
кодировка Unicode (UCS2)
Отправка сообщения “Привет!”
AT+CMGS=22<CR>
> 07919740030900F001000B919721436587F900000A
47E8B435A506A55419<ctrl-Z>
>
+CMGS: 2
 
OK
Для PDU формата
специальная 7-ми битная
кодировка
Отправка сообщения “GPS-START2”
Примечание Сначала необходимо отправить команду AT+CMGS=“+79123456789”, затем дождаться приглашения в виде символов “> ” (> и пробел), после чего отправить текст сообщения. Для завершения процесса следует отправить символ <ctrl-Z> (шестнадцатеричное значение 0х1A)
 
Кириллические символы необходимо отправлять в кодировке Unicode (UCS2), только в формате PDU. Латинские символы можно отправлять в текстовом формате с кодировкой ASCII (GSM), либо в формате PDU с кодировкой Unicode (UCS2), или при помощи специальной 7-ми битной кодировки символами ASCII

 

Описание Команда удаления SMS сообщений
Формат AT+CMGD=<index>,<delflag>
Параметр <index> – порядковый номер удаляемого сообщения, для удаления одного сообщения <delflag> можно не указывать
 
<delflag>:
0 – удалить сообщение с номером <index>
1 – удалить все прочитанные сообщения
2 – удалить все прочитанные и отправленные сообщения
3 – удалить все прочитанные, отправленные и неотправленные сообщения
4 – удалить все сообщения
Ответ OK или ERROR
Пример AT+CMGD=1
OK
Удалить сообщение с номером 1
AT+CMGD=1,4
OK
Удалить все сообщения

 
Отправить сообщение в текстовом формате достаточно просто, а вот в PDU формате могут возникнуть трудности. В PDU формате SMS сообщение закодировано в виде последовательности шестнадцатеричных чисел, рассмотрим подробнее структуру этого формата:

Структура принятого SMS сообщения в формате PDU.

Обозначение SCA PDU Type OA PID DCS SCTS UDL UD
Длина, байты 1-12 1 2-12 1 1 7 1 0-140

Структура передаваемого SMS сообщения в формате PDU.

Обозначение SCA PDU Type MR DA PID DCS VP UDL UD
Длина, байты 1-12 1 1 2-12 1 1 0,1,7 1 0-140

SCA – номер SMS центра, DA – номер телефона на который отправляем сообщение, OA – номер телефона от которого получено сообщение. Каждое из этих полей состоит из 3-х частей:

SCA Размер поля SCA Тип номера Номер
1 байт 1 байт От 0 до 6 байт
DA, OA Длина номера Тип номер Номер
1 байт 1 байт От 0 до 6 байт

Тип номера представляет собой формат номера, например, международному формату соответствует шестнадцатеричное число 91h.

Номер формируется следующим образом (для примера возьмем +79123456789): если значение количества цифр номера нечетное, то дописываем в конце символ F, затем переставляем местами каждые две цифры, получим в итоге 9721436587F9.

“Размер поля SCA” равно количеству байт, которое занимают номер и его тип, для номера это 6 байт (9721436587F9) + тип 1 байт (91), итого 7 байт (07), в результате поле SCA будет выглядеть следующим образом: 07919721436587F9.

Для полей DA, OA, “длина номера” равна количеству цифр в номере, то есть 11 цифр для номера +79123456789, в шестнадцатеричном представлении получим 0Bh, В результате поля DA, OA будут иметь следующий вид:  0B919721436587F9.

Поле SCA можно не использовать, указав вместо него значение 00h, при этом модуль автоматически возьмет номер SMS центра из СИМ карты.

PDU Type – это байт с настройками сообщения:

Бит Название Назначение
7 RP 0 – путь для ответа не определен;
1 – путь для ответа определен
6 UDHI 0 – поле UD содержит сообщение;
1 – поле UD содержит сообщение и дополнительный заголовок.
5 SRR 0 – статус сообщения не запрашивается;
1 – статус сообщения запрашивается.
4,3 VPF 00 – поле VP отсутствует;
01 – зарезервировано;
10 – поле VP содержит время жизни сообщения в относительном формате;
11 – поле VP содержит время жизни сообщения в абсолютном формате.
2 RD 0 – сервисному центру  следует переслать сообщение
получателю, если оно имеет те же значения полей MR и DA, что и предыдущее сообщение;
1 – сервисному центру следует отклонить сообщение, если оно имеет те же значения полей MR и DA, что и предыдущее сообщение.
1,0 MTI 00 – если сообщение принято или подтверждение приема;
01 – если сообщение отправляется или подтверждение отправки;
10 — отчет о доставке или SMS-команда;
11 — зарезервировано.

Для успешной отправки сообщения, поле PDU Type в общем случае может иметь значение 01h (00000001). Поле MTI равно 01, это указывает что сообщение исходящее. Поле VPF равно 00, для упрощения, чтобы исключить поле VP из PDU сообщения. Для принятого сообщения поле MTI, как правило, равно 00.

MR – порядковый номер сообщения, определяется модулем. Для передачи сообщения необходимо установить значение 00h.
PID – идентификатор протокола. Для передачи сообщения необходимо установить значение 00h.

DCS – кодировка текста сообщения:
00h – кодировка 7-бит (символы ASCII, только латинские);
04h – кодировка 8-бит (символы ASCII, только латинские);
08h – кодировка Unicode (UCS2), используется 2 байта на символ;
10h – кодировка 7-бит, сообщение выводится сразу на экран;
14h – кодировка 8-бит, сообщение выводится сразу на экран;
18h – кодировка Unicode (UCS2), сообщение выводится сразу на экран.

Специальная 7-ми битная кодировка представляет собой сжатый вид 8-ми битной кодировки. В ASCII таблице каждый символ занимает 1 байт (8 бит), но латинские символы занимают только 7 бит, самый старший незначащий бит равен нулю. Исходя из этого, придумали метод сжатия данных, в котором этот старший бит тоже используется, то есть биты ASCII символов перераспределяются таким образом, чтобы занять все старшие свободные биты. Для 8-ми битной кодировки в одно SMS сообщение помещается 140 символов, а при 7-ми битной кодировке 160. Для этих кодировок можно использовать только латинские символы, для кириллических символов необходимо использовать кодировку Unicode (справедливо и для латинских символов), где каждый символ кодируется 2-мя байтами, в одно SMS сообщение при этом поместится 70 символов.

VP – время жизни сообщения, необходимо для центра SMS сообщений, по истечении этого времени сообщение удаляется, если оно не получено абонентом. Как было сказано выше, чтобы упростить PDU сообщение, поле VP можно исключить, установив значение VPF равным 00, в поле PDU Type.

SCTS – время получения сообщения SMS центром, может отсутствовать.
UDL – значение длины поля UD в байтах, то есть размер текста сообщения.
UD – текст сообщения.

Рассмотрим пример отправляемого сообщения “Привет” в PDU формате:

AT+CMGS=27
07919740030900F001000B919721436587F900080E041F044004380432043504420021

Число 27 после названия команды (CMGS) означает, что длина PDU сообщения без учета поля SCA равна 27 байт.

07919740030900F0 – закодированный номер SMS центра (+79043090000);
01 – байт с настройками PDU сообщения (PDU Byte);
00 – порядковый номер сообщения (MR);
0B919721436587F9 – закодированный номер, на который отправляем сообщение (+79123456789);
00 – идентификатор протокола (PID);
08 – кодировка текста сообщения (DCS), кодировка Unicode (UCS2);
0E – длина текстового сообщения (UDL), 14 байт.
041F044004380432043504420021 – текст сообщения (UD), “Привет”.

Как было сказано выше, поле SCA с номером SMS центра можно исключить из PDU сообщения, указав вместо него значение 00, модуль автоматически возьмет номер из СИМ карты.

Данный модуль также поддерживает пакетную передачу данных GPRS, то есть можно организовать связь с удаленным сервером, выход в интернет. В статье GSM модуль NEOWAY M590 – GPRS команды приведено описание GPRS команд и способы передачи данных на сервер. На базе модуля совместно с микроконтроллером можно разрабатывать различные охранные устройства, системы сбора информации и т.д. Полный список команд на модуль можно найти в даташите приведенный в архиве в конце статьи, также в архиве присутствует книги и документы по AT командам. На основе этого модуля я разработал GPS GSM трекер, подробнее в статье GPS GSM трекер.

GSM модуль NEOWAY M590

Даташит на GSM/GPRS модуль NEOWAY M590, документы по AT командам
Печатная плата GSM модуля Neoway M590 с обвязкой, в формате Sprint Layout 6

Оцените статью
Добавить комментарий

  1. kysin

    Я ввожу эту команду: AT+CMGS=
    Но после нажатия ctrl-Z выскакивает ERROR.
    Может еще какие то настройки не выполнил?
    И еще вопрос. Как Вы вводите ctrl-Z в программе Terminal v1.9?

    Ответить
    1. admin автор

      Если вы собираетесь отправлять SMS в текстовом виде и латинскими символами, сначала надо настроить формат сообщений командой AT+CMGF=1$0D (1=текстовый формат, $0D это возврат каретки в программе Terminal v1.9, ну то есть символ ), потом настраиваем кодировку текста сообщения командой AT+CSCS=”GSM”$0D (GSM – кодировка ASCII). Далее вводим команду для отправки сообщения: AT+CMGS=”+79XXXXXXXXX”$0D (+79XXXXXXXXX – номер абонента кому шлем SMS), после этого модуль выдаст приглашение в виде символов > (> и пробел), далее вводим текст сообщения в конце которого вводим символы $1A (то есть символ ctrl-Z), тем самым говоря модулю что сообщение окончено, после этого в случае успеха модуль выдаст сообщение +CMGS: и OK.

      Ответить
  2. kysin

    У меня выдается ошибка на этапе настройки кодировки текста сообщения командой AT+CSCS=”GSM”$0D

    Ответить
    1. admin автор

      А как вы вводите символ ” ? если копируете со страницы сайта, то он будет неверным, наберите этот символ на клавиатуре в терминале, символ выглядит как две короткие вертикальные линии

      Ответить
  3. kysin

    Заменил символы. Второй этап прошел успешно. Но на последнем, после ввода текста сообщения и символа $1A выводится ошибка.

    Ответить
  4. kysin

    Отправил в тексте смс только латинские буквы, смска отправилась и дошла до адресата!!! Спасибо огромное за помощь!
    Но, почему-то не ушла смска содержащая только цифры.

    Ответить
    1. admin автор

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

      Ответить
  5. kysin

    Наблюдается некая нестабильность работы. Пропадает сеть. Может и ошибки по этой причине. Буду дальше ковырять. О результатах отпишусь.

    Ответить
  6. Алексей

    здравствуйте, не могу разобраться, только осваиваю программирование в целом, хочу сделать gsm сигнализацию ,приобрел это чудо, отправлять смс, получать звонки научился, а как читать смс понять не могу, имею arduino nano и m590.
    1. можно читать сообщение только под определенным номером? т.е.
    Формат AT+CMGR=
    Параметр : номер считываемого сообщения.
    2. как это вообще оформить в ардуино…
    т.е. я понял надо в setup задать режим кодировки и формата текста. а в loop уже начинать читать сообщение?
    спасибо огромное, очень жду вашего ответа сенсей)

    Ответить
    1. admin автор

      С помощью команды AT+CMGR=index можно считывать только определенные сообщения, но есть и другая команда для чтения группы сообщений: AT+CMGL=index
      index:
      0 или “REC UNREAD” – прочитать принятые (непрочитанные) сообщения;
      1 или “REC READ” – прочитать принятые (прочитанные) сообщения;
      2 или “STO UNSENT” – прочитать сохраненные (неотправленные) сообщения;
      3 или “STO SENT” – прочитать сохраненные (отправленные) сообщения;
      4 или “ALL” – прочитать все сообщения;

      Я ардуино не программирую, так что подсказать ничего не могу…

      Ответить
      1. Алексей

        т.е. если я ему введу команду AT+CMGL=“REC UNREAD” в ответ должен получить что то типа “AT+CMGR=1
        +CMGR: “REC UNREAD”,”+79123456789″,””,”15/11/13,14:39:35+32″
        ON1

        OK
        “ON1” – это если я послал на модуль смс с текстом ON1 c номера +79123456789?

        Ответить
        1. admin автор

          отправив команду AT+CMGL=“REC UNREAD”, модуль выдаст все непрочитанные сообщения по порядку

          Ответить
  7. kysin

    Почему-то модуль не всегда регистрируется в сети, поэтому часть команд не воспринимает, сообщает об ошибке. Но когда регистрируется в сети, то смски отправляются нормально. И цифры и латиница.
    Спасибо за помощь!
    Буду дальше его осваивать. О результатах сообщу.

    Ответить
    1. admin автор

      Попробуйте СИМ карту другого оператора, может в этом дело, проверьте конденсатор по цепи питания, емкость должна быть не менее 1000 мкФ

      Ответить
  8. oleg

    Добрый день.
    Будет очень интересна статья про пакетную передачу данных GPRS.
    Пишите еще.

    Ответить
    1. Алексей

      поддерживаю, gprs вообще отлично было бы по AT командам.

      Ответить
  9. Олег

    Огромное спасибо за инфу. Собираюсь сделать проект для контроля температуры на даче, чтоб я отправлял команду в смс на дачу, на ардуино и обратно получал смс с температурой. Скетч для термодатчика с помощью ютуба написал, залил и он работает. Скиньте пожалуйста ссылку на библиотеку для модуля NEOWAY M590 и помогите со скетчем, укажите хотя бы направление в какой структуре писать. Заранее огромное СПАСИБО.

    Ответить
    1. Алексей

      http://forum.amperka.ru/threads/sms-модуль.5658/page-2 это на ардуино скетч для отправки и получения смс

      Ответить
  10. queit

    Доброго времени суток.
    Имеется ли схема объвязки для ЛУТ? если есть, то поделитесь, пожалуйста.

    Ответить
    1. admin автор

      Печатную плату выложил в конце статьи, она под смд элементы

      Ответить
      1. queit

        Спасибо 🙂

        Ответить
  11. dwk

    День добрый уважаемый админ.Я новичок, так что прошу строго не судить))) Купил данный модуль…завел питание, подключил. В итоге – звонок проходит, закачал скетч тут. В итоге -модуль начал реагировать только на скорости 115200…в итоге в com порте сообщения от модуля приходят с ошибками (есть непонятные символы) определение номера по скетчу также работает с ошибками…(1-2 цифры ошибочны)..в общем работа не стабильная((( Поэтому прошу помощи и ответов на вопросы:
    1.У всех модулей такого типа можно поменять скорость?Или мне попался такой экземпляр где четко фиксированная скорость в 115200?
    2.Как подключить модуль и ардуину к программе Терминал? (кабаля у меня нет)
    3.Что ещё можно сделать для налаживания работы капризного модуля?
    Заранее благодарен.

    Ответить
    1. admin автор

      У всех модемов скорость можно менять командой AT+IPR=9600 (9600 Бит/сек). Данная скорость автоматически сохраняется после отключения питания. Вам необходимо предварительно настроить скорость модема в соответствии со скоростью указанной в скетче (я не программирую Arduino, но предполагаю что в скетче нет автоматической подстройки скорости). Для предварительной настройки модуля необходимо подключить его к компьютеру через стандартный преобразователь USB-COM, и в программе Терминал подобрать скорость при которой от модема будут приходить правильные ответы, а затем изменить скорость на нужную.

      Ответить
  12. dwk

    Да,забыл уточнить – модуль вот такой (немного отличается от Вашего)http://ru.aliexpress.com/item/GPRS-SIM900-GSM-SMS-GPRS-communication-flip-card-slot-replace-SIM900-Through-extension-module/32475525911.html?spm=2114.03010208.3.19.zHwSis&ws_ab_test=searchweb201556_3,searchweb201644_2_505_506_503_504_301_502_10001_10002_10017_10010_10005_10011_10006_10012_10003_10004_401_10009_10007_10008,searchweb201560_3,searchweb1451318400_-1,searchweb1451318411_6451&btsid=d38b5b7d-c74a-4db3-b745-691f36edb9c9

    Ответить
  13. dwk

    Благодарю за оперативный ответ!Про скорость в скетче Вы абсолютно правы(там нет подстройки).
    Буду пробовать.По результату-отпишусь.

    Ответить
  14. dwk

    Аллилуя! Получилось! Перевел модуль на 9600!!! Бился почти неделю-ключ был в том, чтоб отключить питание для запоминания скорости!! Спасибо!!!!!

    Ответить
  15. Олег

    Всем спасибо!

    Ответить
  16. Валерий

    Повторяю плату. Стал смотреть, куда какой элемент и обнаружил несоответствие с принципиальной схемой. Конденсатор С3 на схеме между Е и К VT2, а на плате от 18 вывода на землю. Как правильно?

    Ответить
    1. admin автор

      На схеме ошибка (позже исправлю, ошибка не критичная), конденсатор C3 подключается к 18-у выводу модуля, на печатной плате все правильно.

      Ответить
  17. Валерий

    Спасибо, а то уже плату сделал, паять начал.

    Ответить
  18. gaudin

    От внешнего питания не хочет отправлять смс, при подключении к компьютеру все работает arduino nano

    Ответить
    1. admin автор

      Просто выдает ошибку? или что то другое?

      Ответить
      1. gaudin

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

        Ответить
  19. Артем

    Здравствуйте, помогите пожалуйста. NEOWAY M590 “общается” со мной через монитор порта ардуино иероглифами. Например когда я дозваниваюсь на NEOWAY монитор пишет ä такой символ.

    Ответить
    1. admin автор

      Скорость UART не совпадает скорее всего, с помощью команды AT+IPR=9600 (где 9600 Бит/сек скорость передачи данных по UART) необходимо выставить скорость порта на модуле.

      Ответить
      1. Артем

        Большое спасибо!!! Все работает.

        Ответить
  20. Денис

    Благодарю за статью. Пока ещё холодно, собрал на скорую руку всё в комок, запихал в асбоцементную трубу (кроме антенны), подключил к электро – котлу на даче. Теперь просто звоню и включаю отопление за пару дней до “пикника” Тестяга флян коньяку выкатил! Ещё раз – спасибо!!!

    Ответить
  21. alex

    Оператор Киевстар – Украина. Команда дозвона atd+0932298823; дает ошибку. Модуль запускается только тогда, когда держу влажными пальцами(не мокрыми) за вывод boot.
    Почему так???

    Ответить
    1. admin автор

      Команду ATD набирайте прописными буквами, если набираете в программе Terminal v1.9b by Bray необходимо добавить в конце $0D (ATD+0932298823;$0D), если не помогло попробуйте убрать символ + (ATD0932298823;$0D), или поставить пробел вместо + (ATD 0932298823;$0D).
      Что за вывод boot? Для устойчивого запуска, удерживайте низкий логический уровень на выводе 19 модуля (ON/OFF) или высокий логический уровень на базе транзистора VT1, если он имеется в цепи запуска, бывает что после запуска с помощью короткого импульса через некоторое время модуль выключается, вывод ON/OFF чувствителен к помехам (чем больше длина линии тем выше вероятность отключения). Поэтому вместо короткого импульса лучше удерживать логический уровень, просто замкнуть вывод ON/OFF на общий провод.

      Ответить
      1. Ilyaul

        В некоторых разновидностях модуля вывод ON/OFF выведен на линейку как BOOT/ Просто замкнуть его на землю и модуль включится.

        Ответить
    2. Вася

      GND

      Ответить
  22. alex

    Большое спасибо. Заработал, как только я посадил на ноль boot и набрал команду atd0679735581;

    Ответить
  23. Максим

    У вас ошибка в команде включения и отключения эха, пропущен символ “E”
    ATE1 – включить эхо;
    ATE0 – отключить эхо.

    Ответить
    1. admin автор

      Ошибку исправил, спасибо.

      Ответить
  24. Артак

    Есть такая хорошая АТ команда, ATD>1; позвонить по 1 номеру из сим карты,
    Скажите пожалуйста есть команда который отправит смс на номер 1 из сим карты

    Ответить
    1. admin автор

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

      Ответить
      1. Максим

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

        Ответить
        1. Артак

          Я читаю первый номер из симки, и потом на него отправляю смс.
          Скажите пожалуйста КАК??

          Ответить
          1. Максим

            AT+CPBR=1
            Читаем первую запись из телефонной книги, парсим номер, сохраняем в символьную переменную.
            А затем подставляем символьную переменную в команду отправки смс.
            Скажу сразу – с Ардуино я не работаю, пользую CVAVR.
            Для начала рекомендую подключить модуль по UART к ккомпьютеру, и вручную погонять команды. Как начнет получаться – пробуйте вместо себя заставить контроллер это делать.

            Ответить
            1. Артак

              Я тоже работаю на CVAVR, printf(“AT+CPBR=1\r”); А потом не знаю что сделать?
              Если не трудно можно посмотрет source code на cvavr, или на мейл artakas@list.ru. заранее большое спасибо.

              Ответить
            2. Артак

              Скажите пожалуйста как <> ??????

              Ответить
            3. Artak

              Скажите пожалуйста как ??????
              парсим номер_как???

              Ответить
              1. Денис

                У меня так:
                char i;
                char telefon[12]={”,”,”,”,”,”,”,”,”,”,”,”};
                char a;
                char UDP_telefon[12]={”,”,”,”,”,”,”,”,”,”,”,”};
                void read_nomer(void){
                char i = 0;
                puts(“AT+CPBR=1\r”);//читаю первый номер с симки (ответ: +CPBR: 1,”8920679хххх”,129,”0410″)
                for (i=0;i<22;i++) {//ищу кавычку
                telefon[a] = getchar();
                if(telefon[a]=='"'){
                goto m1;};
                };
                m1:
                for (i=0;i<11;i++) {//считываю то,что после кавычки – номер телефона
                telefon[a] = getchar();
                a++;
                };
                a = 0;
                UDP_telefon[0] = telefon[1];//преобразую номер в UDP-формат
                UDP_telefon[1] = telefon[0];
                UDP_telefon[2] = telefon[3];
                UDP_telefon[3] = telefon[2];
                UDP_telefon[4] = telefon[5];
                UDP_telefon[5] = telefon[4];
                UDP_telefon[6] = telefon[7];
                UDP_telefon[7] = telefon[6];
                UDP_telefon[8] = telefon[9];
                UDP_telefon[9] = telefon[8];
                UDP_telefon[10] = 'F';
                UDP_telefon[11] = telefon[10];
                }

                Ответить
  25. Андрей

    Прошу помощи подружить этот модуль с arduino pro micro (leonardo) Rx, Tx у нее 5 вольт. Rx модуля согласованна по указанной выше схеме. питание обоих от батареи 3.7 масса общая+ ардуинка через usb.

    Ответить
    1. Денис

      Мой совет – научитесь с начала мыргать светодиодом

      Ответить
  26. Денис

    Ахтунг для тех,кто добрался до подключения модуля к уарту микроконтроллера! Команды putchar(),puts() и т.п из библиотеки stdio.h не подходят,потому что втыкают в конец вашей команды модулю не видимый символ ‘0’.Так что нужно управлять регистрами уарт модуля руками,ну или использовать программный уарт.И еще не приятный момент.Модуль не умеет звонить,вернее команду он выполняет,набирает номер и выдает сообщение no carrier.Жаль,хотел сделать автосигу с автозапуском,а тут такой сюрприз!

    Ответить
    1. admin автор

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

      Ответить
      1. Денис

        Тот самый boot у меня изначально на земле. Посылаю команду ATD+7xxxxxxxxxx$0D, модуль говорит OK, а через секунду NO CARRIER. Может команду как-то изменить,сейчас его нет под рукой… С СМС всё в порядке и РУС и ЛАТ.

        Ответить
        1. admin автор

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

          Ответить
          1. Денис

            Спасибо за совет, попробую на днях, модуля нет под рукой…

            Ответить
    2. artak

      printf(“ATE1\r\n”);

      Ответить
  27. Максим

    Подтверждаю – модуль звонит.
    По UART – пользуйтесь готовыми библиотеками! Допустим, библиотекой кольцевого буфера от Паши Бобкова:
    http://chipenable.ru/index.php/programming-avr/item/44-uchebnyy-kurs-organizatsiya-obmena-po-usart-u-s-ispolzovaniem-koltsevogo-bufera.html#comment-3357

    Ответить
    1. Денис

      Заработали звоночки! я сам не внимательный – после номера точку с запятой не ставил!
      ATD можно писать хоть так, хоть прописными.

      Ответить
    2. Виктор С

      Привет, не подкинете свои наработки по отправке смс на номер из сим карты?? Спасибо

      Ответить
  28. ShadS

    Классная статья, спасибо, очень пригодится….
    Попробую тоже побаловаться с данными модулями, пришли недавно 4 комплекта…

    Ответить
  29. Ilyaul

    Спасибо , за статью!
    Посылаю на модуль SMS , он ее получает , но выдает в зашифрованном виде “специальная 7-ми битная кодировка”. Не нашёл в командах , как заставить его выдавать текст не зашифрованный.
    Текст – латиница. Подскажите.

    Ответить
    1. admin автор

      Надо выбрать кодировку текста командой AT+CSCS=”GSM”

      Ответить
  30. Ilyaul

    Спасибо ! Попробую , хотя считал , что это только для отсылки SMS c модуля.

    Ответить
  31. Ilyaul

    AT+CLIP=1 – работает. Хорошая команда.АОН

    Ответить
  32. Ilyaul

    AT+CSCB=1, прием широковещательных сообщений. Это та гадость, через которую сейчас срут все операторы. Эта команда исправляет их ошибку

    Ответить
  33. admin автор

    Добавлена новая статья про GPRS команды модуля https://radiolaba.ru/microcotrollers/gsm-modul-neoway-m590-gprs-komandyi.html

    Ответить
  34. Денис

    Спасибо за столь развернутый и доходчивый материал. Скажите, в команде удаления у вас опечатка? Формат AT+CMGS=,, а в примере AT+CMGD=1. CMGS и CMGS.
    Спасибо

    Ответить
    1. Денис

      сам опечатался CMGS и CMGD

      Ответить
      1. admin автор

        да, опечатка, правильно AT+CMGD, сейчас исправлю, спасибо.

        Ответить
        1. Денис

          Спасибо. Кстати, команда ATH почему-то через раз срабатывает. Как лучше выкрутиться, дублировать ее, или что подскажете? Просто по событию RING у меня смс в ответ отправляет, а если связь не разрывается, то череда смсок летит.

          Ответить
          1. admin автор

            А что именно происходит когда команда не срабатывает, какие сообщения выдает модуль при этом? У меня например команда ATH всегда четко срабатывала.

            Ответить
            1. Денис

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

              Ответить
  35. Денис С.

    Никто с командой “AT+CNMI=0,0,0,0,0” не задавался вопросом? Даташит рекомендует “Suggested to set to +CNMI: 2,1,0,0,0 or +CNMI: 2,2,0,0,0.”
    У меня на входящие СМС вывод RING молчит, с вызовами работает…

    Ответить
    1. admin автор

      Я когда-то пробовал вводить эту команду, для включения оповещения об SMS я отправлял команду AT+CNMI=2,1,0,0,0
      При поступлении SMS модуль выдает сообщение типа: +CMTI: “SM”,n где n-номер сообщения
      Кроме этого на линии RING появляется однократный короткий импульс

      Ответить
  36. Денис С.

    Именно этого импульса и не хватает микроконтроллеру, что б выполнить прилетевшую по смс команду, буду попробовать, по результату отпишу

    Ответить
    1. admin автор

      напомню, что активный уровень линии RING низкий, в нормальном состоянии на линии высокий логический уровень (2,85 В). Можно подтянуть линию RING к линии VCCIO модуля, через резистор 10 кОм, хотя думаю будет работать и без этого.

      Ответить
      1. Денис С.

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

        Ответить
  37. Роман

    При включении в терминале иероглифы. И CTS,DSR,CD и RI не горят зеленым цветом как у вас на скриншоте.

    Ответить
  38. Ilyaul

    Скорость USART поправь

    Ответить
    1. Роман

      Спасибо большое!

      Ответить
  39. Денис С.

    Приветствую. Закидал модуль СМС-ками, теперь он говорит “Абонент вне зоны действия сети”, видимо он завис… А как это должен понять микроконтроллер, что бы передёрнуть вывод EMERGOFF?

    Ответить
    1. Денис С.

      Наверное нужно запустить таймер, и скажем, через каждые 5 минут опрашивать модуль командой AT+CPAS, и если там не 0 (готов к работе) или не 5 (спящий режим) – то дёргать EMERGOFF, так ли рассуждаю?

      Ответить
      1. admin автор

        Можно и так, по идее если модуль завис, то он не будет отвечать на любые команды, можно время от времени отправлять простую команду AT, на которую модуль должен ответить OK.

        Ответить
  40. Ilyaul

    Ну и SMS периодически удаляй из памяти

    Ответить
  41. Ст.Николов

    а не подскажете как можно сделать прерываний в управляющем устройстве
    “….линии RING появляются импульсы….Данную линию можно использовать для генерации прерываний в управляющем устройстве.”

    Ответить
  42. Ilyaul

    Заводишь на вход внешнего прерывания управляющего устройства и ……

    Ответить
    1. Ст.Николов

      ето я и имел ввиду – не знаю какое устройство… что за устройство можно използувать … для прерывания

      Ответить
      1. Ilyaul

        Intel,AVR,ST,Microchip и ещё большая кучка фирм производящие микроконтроллеры . Боюсь спросить , Вы знаете что такое Cи , asm ?

        Ответить
        1. Ст.Николов

          У меня все хорошо с C и asm , но с электроники плохо. (как и с русском – это не мой родной язык, так что не судите строго)
          Я хочу, чтобы иметь возможность перезапустить какое-то устройство с помощью этого модуля
          мне нужно, к примеру, когда я позвоню, чтобы включить реле, которое будет прерывать питание оборудования, которое находится очень далеко , чтобы перезапустить его и все …
          Лучший вариант будет если подскажите примерная схема с какого-то микроконтроллера

          Ответить
          1. Ст.Николов

            я понимаю что примерно ардуино + релемодул + модем и включай реле сколько хочешь, но реч идет в използувание RING pin, так что можно ли с етого пина подавать “сигнал” на Ардуино примерно ?

            Ответить
            1. Максим

              Можно. К сожалению, я не программирую в Ардуино, работаю с CodeVisionAVR напрямую с контроллером.
              Например, используя Atmega8535, подключаем сигнал RING к входу прерывания INT0 (PD2).
              В процедуре инициализации сообщаем контроллеру, что мы ожидаем низкий уровень сигнала
              // External Interrupt(s) initialization
              // INT0: On
              // INT0 Mode: Falling Edge
              // INT1: Off
              // INT2: Off
              GICR|=0x40;
              MCUCR=0x02;
              MCUCSR=0x00;
              GIFR=0x40;

              В начале программы помещаем обработчик прерываний

              // External Interrupt 0 service routine
              interrupt [EXT_INT0] void ext_int0_isr(void)
              {
              // Place your code here
              counter++;
              }

              После этого с каждым звонком переменная “counter” будет увеличиваться на единицу. А дальше делайте с ней что вам угодно.

              Процесс применительно к CVAVR расписан тут

              Буду рад, если помог вам.

              Ответить
      2. Максим

        Вы изложите в 3 фразах чего вы хотите достичь, и с помощью чего. Аппаратное прерывание легко реализуется на всех микроконтроллерах, но надо знать куда вас направить.

        Ответить
  43. Константин

    схема собрана так
    вывод GRD с платы модуля подпаял на вывод 5 разъема DB9, вывод ring на 9, Tx на 2й, Rx на 3й, и вывод Boot подпаял так же на 5й контакт разъема
    пробовал менять местами tx и rx в результате даже ноль не получаю что в общем и логично, т.е. схема собраны как бы верно, остается три варианта, неисправность модуля, проблема в шнурке и третий вариант проблема по

    Ответить
    1. admin автор

      то есть вы подключили модуль напрямую к COM порту компьютера? там же уровни сигналов +12В и -12В, причем логика инвертирована, модуль и не будет работать, и к тому же может выйти из строя. Нужно использовать переходник USB-COM.

      Ответить
      1. Максим

        Да нет, не может такого быть, чтобы взять вот так и напрямую воткнуть модуль в комп… Это гарантировано его спалить, там даже 5,5 вольт опасно на выводы подавать, недаром в питании пол вольта всегда диодом гасят.

        Ответить
        1. Константин

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

          Ответить
          1. Константин

            вот часть текста без ссылок

            Здравствуйте.
            возникла проблема на этапе инициализации устройства, переходник USB-COM использовал мохавский, на шнурке при включении горит светодиод RxD что намекает на то что какие то данные от gsm модуля идут но дойти ни как не могут ) на терминате в момент инициализации получаю [0] [любой символ] [0], при передаче любой команды ответ [0]. помогите пож. разобраться, другой шнурок придет только через месяц, да и не факт что дело в шнурке(

            Ответить
          2. Максим

            Схему подключения увидеть как-то можно? Смущает “подпаял на вывод 5 разъема DB9”

            Ответить
            1. Константин

              Максим
              ссылки ждут модерации без нее вы не увидите схему подключения

              Ответить
              1. Максим

                А что это за переходник такой “мохавский”? На терминале скорость попробуйте переключать. Там при неправильном выборе кракозябры пойдут в окно приема. Неискушенным становится не по себе )))

                Ответить
                1. Константин

                  перепровбовал все настроки даже те которые никак не должны влиять на прием/передачу

                  нужно ждать когда администратор поглядит мои ссылки, он не обратил внимание на то что комментарий ждет модерации(
                  все это гадание на кофейной гуще нужны фоты а их нет пока админ не глянет )

                  11
                  22

                2. Константин

                  переходник MOXA латинские буквы в народе моха

  44. Максим

    Я, видимо туго соображаю сегодня (жара у нас). Если судить по результатам поиска, МОХА этот не просто переходник, а согласователь уровней и эмулятор COM-порта для ноутбуков? Т.е. вы в комп втыкаете шнурок USB, у вас появляется порт COM5, допустим. Потом вы к разъему DB9, т.е. уже к полноценному физическому COM-порту напрямую подключаете ноги чипа? Если так, то у вас гарантированно ничего не заработает.
    Вот что вам надо, или на PL2303
    картинка переходника

    Ответить
  45. admin автор

    Картинки Константина выложил, как я понял МОХА это преобразователь USB – RS232, он не годится для модуля, модуль не может работать напрямую с интерфейсом RS232, я писал выше что уровни напряжения в этом интерфейсе могут достигать +12В и -12В, и логика инвертирована, то есть -12В это лог “1”, +12В лог “0”.

    Нужен преобразователь USB-COM где уровни напряжения ответствуют стандарту TTL (+5В, 0В), кроме этого как в схеме из статьи нужна обвязка (диод VD2 ) по входу RX модуля, чтобы не допустить перенапряжения.

    Ответить
    1. Максим

      Ровно то же, но другими словами. То, что на картинке, работать не будет 100%
      Нужен вот такой

      Ответить
  46. Константин

    Спасибо за разъяснения.
    Максим вы нормально соображаете, на этот счет не волнуйтесь )
    ну судя по тому что модуль отвечает пусть даже и нулем то ничего не сгорело, светодиод по прежнему моргает в 1 гц ) буду ждать переходника

    Ответить
    1. Максим

      Я не волнуюсь, но – спасибо за заботу.
      Поищите у кого-то “за просто так” шнурок к телефону, постарше. Самсунги были в этом отношении молодцы, у них TTL-логика была у целой серии телефонов выведена на разъем. Но уровни были или инвертированы, или как-то зашифрованы. Рецепт очень простой: срезаем резину с разъема, снимаем с платки все, что кроме самого чипа USB-TTL, и припаиваем проводники прям к выводам микросхемы. А их – уже к чипу GSM. И в термоусадку все. Пару десятков кабелей так сделал, пока не пошли косяком от китайцев переходники по цене навоза.
      И не факт, что ваш чип исправен, то что он мигает еще не говорит об исправности входных и выходных сигнальных цепей. 12-ю вольтами их испортить можно легко.

      Ответить
      1. admin автор

        Кстати уровни RS-232 можно привести к TTL с помощью 2-х транзисторов + резисторы, как в этой статье https://radiolaba.ru/microcotrollers/podklyuchenie-mikrokontrollera-k-pk.html

        Ответить
        1. Максим

          Именно так устроен программатор “PonyProg”, но у него нет на ПК COM-порта, как я понял.

          Ответить
          1. admin автор

            Зачем COM порт, у него преобразователь выдает полноценный RS232, так что к нему и можно приделать схемку согласования

            Ответить
            1. Константин

              а в цепи коллектор-эммитер 361го разве не нужен резистор?

              Ответить
              1. admin автор

                Нет, не нужен, при лог. “1” на базе транзистора он закрыт, линия RX при этом притянута к общему проводу (Gnd) резистором, что означает лог “1” для интерфейса RS232. При подаче лог. “0” на базу, транзистор открывается и на линии RX появляется +5В, что соответствует лог. “0” для интерфейса RS232.

                Ответить
                1. Максим

                  Не успел написать, примерно то же самое.

  47. Михаил

    Добрый день. Подскажите такой вопрос плиз. Включаю модуль M590e без симки и БУТ на землю сажу. АТ-команды принимает. Вставляю симку любую и модуль постоянно перезапускается. Пишет стартат циклично. Один раз только был написал что стартанул PEREADY вроде и сразу перезапуск. Запросил статус регистрации в сети – +CREG: 0,3. То есть поиск сети…. Подскажите что может быть не так….?

    Ответить
  48. Михаил

    если без симки запускаю то работает от короткого импульса на БУТ ножке. А с симкой не хочет…..

    Ответить
    1. admin автор

      Возможно питание слабое, блок питания должен обеспечивать ток не менее 1,5-2А, кто-то запитывает от USB порта компьютера, который не способен обеспечить достаточный ток для запуска модуля. И обязательно наличие конденсатора по питанию не менее 1000мкФ.

      Ответить
      1. Михаил

        у меня 12 В 1 А заходит на кренку 7805. На входе 330 мФ. На выходе где 5 вольт 1000 мФ кондер. Должно хватать вроде? Я сейчас осциллографом гляну еще. …

        Ответить
        1. Михаил

          по осциллографу на SIMCLK импульс не прямоугольные, а закругленные….. Частота 3.27 МГц. Это наверно правильно…..теперь и незнаю что делать. EMERGOFF – при перезапуске на ней появляется низкий лог уровень кратковременно….. То есть почемуто аварийный перезапуск.

          Ответить
          1. admin автор

            Подключите модуль к более мощному блок питания (2А), все таки это может повлиять на включение. При включении модуля вывод ON/OFF лучше удерживать на низком лог. уровне, то есть на GND. Если проблема останется, то скорее всего неисправен модуль.

            Ответить
            1. Михаил

              Попробую блок питания поменять. Пока нет 5 вольт 2 А. Но думаю модуль рабочий. Он же все АТ команды выполняет….. Вот даже Get SIM card Identification:+CCID – выполняет между перезагрузками….. Модуль я купил как надор для самостоятельной пайки. На готовую зеленую плату всё впаял правильно…. Буду разбираться еще…..

              Ответить
              1. artak

                думаю что neoway М590Е и neowayМ590 разные, купил 5 штук M590E, не один не работает, А вот М590 без проблем, даже цена у них разные, М590 дороже

                Ответить
  49. Михаил

    Разобрался. Антенна которая в комплекте похоже не рабочая что ли….. Пальцем прижимаю разъем для внешней антенны и модуль запускается, звонит, принимает звонки… Буду искать антеннку внешнюю…

    Ответить
  50. Серж

    такое ощущение что модем при соединении отключается! Что может быть?

    Антенный вход и сама антенна должна на землю звониться?

    Ответить
  51. Серж

    то есть индикатор не мигает АТ молчит

    Ответить
    1. admin автор

      Сопротивление между антенным входом и общим проводом низкое, менее 1 Ом. При каком именно соединении модем отключается? при звонке, регистрации в сети?

      Линию включения модема удерживайте на низком уровне, просто замкните с общим проводом, если линия болтается в воздухе, возникают ложные срабатывания и модем может отключаться.

      Ответить
  52. Серж

    при регистрации сети

    Ответить
  53. Серж

    линию включения замкнул на землю. теперь при регистрации перезапускается

    Ответить
    1. admin автор

      Скорее всего проблемы с питанием, блок питания должен обеспечивать ток не менее 1,5А, бывает кто-то запитывает с USB порта компьютера, этого делать не стоит, там ток недостаточный. И конденсатор по питанию должен быть не менее 1000 мкФ.

      Ответить
  54. Серж

    кондер 1000мкф питание 5в 2А зарядка от сотого

    Ответить
    1. admin автор

      Попробуйте найти другой блок питания, эти зарядки для сотовых не внушают доверия, могут и не выдавать ток указанный на этикетке. Или запитайте от 3 последовательно соединенных пальчиковых батареек (1,5В), только не используйте полудохлые, иначе тоже не хватит тока.

      Ответить
  55. Сергей

    модуль работает ,но не видит ни одну сику, заменил симки на новые проблема не снялась модуль не видит симку.
    MODEM:STARTUP
    at+xbandsel?

    +XBANDSEL: 900,1800

    OK
    at+cops?

    ERROR
    AT+CREG?

    +CREG: 0,3

    OK
    AT+CPAS

    +CPAS: 1

    OK

    Ответить
    1. admin автор

      Проверьте напряжение питания СИМ карты, на линии SIMVCC модуля (14 вывод), там должно быть 3В или 1,8В, также проверьте резистор (на схеме R9, 4,7кОм) между выводами Vcc и I/O СИМ карты, и целостность линии до 11 вывода модуля (SIMIO).
      Может быть имеются проблемы с антенной?

      Ответить
      1. Сергей

        Перепробовал 5 симок, получены 2 года назад. на 1 модем зарегистрировался в сети. но симка не моя. Заменил свои симки на новые 09.2016, но модем не видит новые симки. Напряжение на симкурие (вывод 14 ) есть, но с RST и CLK не появляется. Нет проблемы с антенной, при рабочей симке послал 6 SMS. Версия прошивки 1103_C6C30000_V0130d. Те же проблемы и с прошивкой 1103_C6C30000_V0120d Может можно перепрошить модуль? Где взять прошивку и как прошить?

        Ответить
  56. Виктор

    Здравствуйте, у меня ситуация аналогичная с теми, что ранее столкнулись Михаил с Серж. Ни с того ни с сего стал перезагружаться модуль SIM900. Питание на него подаётся через кренку, на входе и выходе которой стоят электролиты по 4700мкФ. Думал не хватает тока в БП, запитал напрямую, без кренки от компьютерного блока питания – результат тот же. Перезагружается через секунду – две после регистрации в сети (светодиод сначала горит, после мигает часто, пауза, 2 раза мигнёт редко, потом гаснет вместе с диодом питания, и всё сначала). Это в случае, если я вывод включения модема сажаю на землю, а если просто включаю, то после перезагрузки нужно снова подавать сигнал на запуск. Осциллограф показал что примерно через секунду после того, как модуль зарегистрировался в сети на всех выходах падает напряжение до 2v, а на выходе, к которому подключён светодиод питания до 2,8v, еще через секунду на выводе EMERGOFF появляется лог. 0 и модуль перезагружается. Но что вообще интересно, перезагружается он не всегда, а примерно в 80%, в остальных же 20% работает нормально (отправляет данные на сервер).

    Ответить
    1. Денис С.

      Труп! Аналогичная ситуация у меня была с M590E – он не хотел отвечать на мои команды при нормальном напряжении питания 4,2В. Заработал только при 4,8 и проработал ровно неделю, нагрелся и увёл в защиту лабораторный БП. Не превышайте питание и не обращайте внимание на надписи на этих китай платах.

      Ответить
    2. admin автор

      Так у вас модуль то SIM900 или все таки Neoway M590?
      Я тоже замечал перезагрузку модуля M590 в режиме GPRS, склоняюсь к мнению что некоторые версии прошивок не до конца доработаны производителем для полноценной передачи данных GPRS .

      А в обычном режиме (звонки, SMS) я особо не наблюдал глюков, было дело модуль выключался, но после того как я начал прижимать линию включения на общий провод, эта проблема отпала, и лучше провода линии включения делать как можно короче, чтобы не ловить помехи от радиоканала модуля.

      Ну а вообще GSM модуль штука довольна сложная, так что глюки вполне возможны (особенно в режиме GPRS).

      Ответить
      1. Виктор

        Да, Вы были правы. Только что написал для контроллера прогу, которая должна отправлять СМС с текстом “I’m a dead module”. СМСки доходят исправно, модуль ещё ни разу не ребутнулся. А при GPRS режиме спотыкается на команде AT+SAPBR=3,1,”CONTYPE”, “GPRS” отвечает яяяяяAT+SAPBR=3,1,”CONTYPE”, “GPRS” и ребутится. яяяяя или ещё какие символы обычно появляются в ответе если не хватает питания. А его в этот момент судя по тому что светодиод питания меркнет, правда не хватает. Хотя ток потребления модуля в целом в этот момент не растёт.

        Ответить
  57. Виктор

    Модуль у меня Neoway M590 который начал глючить. Я просто ошибся, до этого имел дело только с SIM900, вот и написал. Модуль приобрёл на алиэкспресс, без платы. Плату разводил сам. Работает модуль в режиме GPRS, отправляет данные на сервер.

    Ответить
  58. mummykbf

    Столкнулся с проблемой: модем не удаляет смс.
    по факту перепробовал разные варианты:
    AT+CMGD=0,4
    AT+CMGD=1,4
    AT+CMGD=4
    Счетчик сообщений +CMGS: после каждой смс все равно увеличивается на единицу

    Ответить
    1. admin автор

      Если после сообщения AT+CMGD получаем ответ OK, значит модуль все удаляет.

      Ответ вида +CMGS: это не счетчик сообщений на СИМ карте, этот счетчик просто инкрементируется при каждом отправленном (или неотправленном) сообщении, это условный счетчик, и к нему не надо привязываться.

      Количество сообщений на СИМ карте проверяется командой AT+CPMS? В ответ получаем +CPMS: “SM”,1,25,”SM”,1,25,”SM”,1,25

      Что означает что на СИМ карте есть одно сообщение, а всего на СИМ помещается 25 сообщений.

      Ответить
  59. mummykbf

    с этим всё более-менее устаканилось, но аппетит растет во время еды. есть такая АТ команда AT+CCLK?, которая считывает дату и время с модуля, в ответ на нее получаем строку следующего вида: +CCLK: «05/01/01,00:09:48»
    Как её распарсить на составляющие? допустим хочу присваивать день, месяц и год переменным day, mon, yy соответственно; часы, минуты, секунды соответственно переменным hh, mm, ss.

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

    Ответить
    1. admin автор

      Я конечно Arduino не программирую, могу только подсказать по преобразованию, модуль выдает данные ASCII символами, например возьмем секунды (48), это два ASCII символа ‘4’ и ‘8’ (десятичные значения 52 и 56), для получения десятичного числа секунд, надо вычесть из каждого символа число 48. Далее результат вычитания из первого символа умножаем на 10, и к нему прибавляем результат вычитания из второго символа, в итоге получим искомое десятичное число (52-48)*10+(56-48)=48.

      Ответить
  60. Ст.Николов

    несколько модула уже не работают – при етом диод очень силно греется …. , вообще включаеш и ничего не произходит , как будто короткое замыкание
    возник вопрос у меня ( к сожаление не знаю правилно ли выражус на русский)
    появилас у меня идея тестироват все модули , которые получаю , прежде чем поят их , есть ли такое “крепление” где можно “закрепить” сам модул М590 … цоколь , что то такое … ? есть идеи ?

    Ответить
    1. admin автор

      Какие именно модули у вас не работают M590 или M590E ? Обычно у модулей M590E бывают короткое замыкание по питанию, у меня был такой случай, видимо китайцы когда их выпаивают феном, то перегревают и возникает замыкание, проверяйте модули перед пайкой мультиметром на КЗ между выводами Vbat и Gnd, лучше покупать модуль M590 с изначально запаянными выводами.

      Ответить
      1. Ст.Николов

        да у меня M590E и часто не работают , примерно 20% … наверно просто не повезло !
        А когда говорите м590 имеете ввиду чтото такое ? http://help40.com/other/modem/modemM590.jpg
        Vbat и Gnd ето примерно 3 и 4 пин ?

        Ответить
        1. admin автор

          Да именно такой модуль имею в виду, Vbat это 3,4 выводы, а GND – 1,4,15,20 выводы, вот между этими группами выводов и надо проверять короткое замыкание.

          Ответить
    2. Анатолий

      У меня первый такой модуль и сразу коротыш. Спаял экран с платы , а потом подал питание 1 Вольт с хорошим током в результате коротыш выгорел и модуль заработал.

      Ответить
  61. Сергей

    Перепробовал 5 симок, получены 2 года назад. на 1 модем зарегистрировался в сети. но симка не моя. Заменил свои симки на новые 09.2016, но модем не видит новые симки. Напряжение на симкурие (вывод 14 ) есть, но с RST и CLK не появляется. Нет проблемы с антенной, при рабочей симке послал 6 SMS. Версия прошивки 1103_C6C30000_V0130d. Те же проблемы и с прошивкой 1103_C6C30000_V0120d Может можно перепрошить модуль? Где взять прошивку и как прошить?

    Ответить
  62. Сергей

    С какими версиями прошивок используются модули?

    Ответить
    1. admin автор

      У меня были модули с прошивками 1103_C6C10000_V0111n, 1103_C6C30000_V0130c, 1103_C6C30000_V0120n и все работают с СИМ картой. У меня нет информации по поводу перепрошивки модулей.

      Ответить
      1. Masis

        вот так можно прошить. https://cloud.mail.ru/public/MTb1/R6w81HVBT

        Ответить
  63. zlg

    Уважаемый автор. Объясните пожалуйста. Нет ли в схеме ошибки c полярностью диодов Шоттки VD1 и VD2 SS14? Заранее спасибо.

    Ответить
    1. admin автор

      Здравствуйте, в схеме все правильно, диоды стоят для защиты выводов модуля от повышенного напряжения со стороны микроконтроллера, эти выводы подтянуты резисторами к внутреннему источнику напряжения модуля 2,85 В, если с вывода микроконтроллера поступит лог.1 например 5В, то диод закроется и превышение напряжения на выводе модуля не произойдет, при подаче лог.0 со стороны микроконтроллера вывод модуля через открытый диод подтянется к низкому лог. уровню.

      Ответить
  64. Roma

    2 дня игрался с этими модулями (проблемы с регистрацией и потеря сети).
    Так вот дело тут не в модулях а в сим-карте, все новые симки с sim toolkit (это зашитая в симку програмка-меню сим). симка отдает М590 этот код но по умолчанию модуль его не обрабатывает соотв. симка отпадает и сеть тоже. sim toolkit аппаратно модем поддерживает для этого нужно включить at+cfun=6, но вот все ответы нужно писать самому, а это непросто.

    Ответить
  65. Roma

    Добавлю, это более чем не просто, т.к. разные операторы имеют разные меню, более того разные партии карточек одного и того же оператора имеют разные меню, т.е. лично я не могу представить как реализовать универсальный программный подход для обхода (т.е. выхода) из этого меню. Думаю именно поэтому китайцы их и продают б/у и за копейки.
    Чисто “под себя” под конкретную симку намутить что то можно, но для массового производства они не придатны.

    Ответить
    1. Masis

      (проблемы с регистрацией и потеря сети). что нам даст это команда at+cfun=6??
      но вот все ответы нужно писать самому
      что нужно писать самому??
      в даташите написана
      enables the SIM-toolkit interface and fetching of proactive commands by SIM-APPL from the SIM-card

      Ответить
  66. Павел

    Уважаемый автор, помогите разобраться с проблемой: после включения модуль сообщает MODEM;STARTUP и через несколько минут выключается (+PBSEADY не пишет). Включаю снова – та же картина. Так несколько раз. После очередного включения наконец-то пишет +PBSEADY и остается включенным. В чем может быть проблема?

    Ответить
    1. admin автор

      Приветствую, каким образом включаете модуль, подаете кратковременный отрицательный импульс на линию ON/OFF? Лучше удерживать низкий уровень на линии, чтобы избежать повторных выключений. Если оставить на линии высокий уровень, возможны срабатывания под влиянием помех.

      Ответить
      1. Павел

        Приветствую. Включал замыканием boot и земли. Про помехи думал, т.к. on/off срабатывал даже от касания проводом прижатым к пальцу – как сенсор))) Ситуация несколько прояснилась – такое поведение наблюдается только при внешнем питании. При питании полностью от ардуины – все ок. Так же не очень понятно поведение со спящим режимом – при команде “разрешить спящий режим” моментально уходит в него (гаснет led2), но на AT команды реагирует, в т.ч. и выводится из спячки (at+enpwrsave=0), а вот хардварно будится через boot. Не сталкивались с таким?

        Ответить
      2. Павел

        И подскажите еще, плз, в какой момент модуль должен уведомлять о регистрации в сети? Я отправил AT+CREG=1 получил ОК, но сообщение о регистрации при включении модуля или в процессе работы не получил. Принудительный запрос о статусе регистрации ( AT+CREG?) срабатывает корректно.

        Ответить
        1. admin автор

          Возможно у вас было некачественное внешнее питание, блок питания должен обеспечивать ток не менее 1,5А. Я не знаю какой ток выдает Arduino, но думаю 1,5А не выдаст, поэтому запитываться от нее не стоит.

          Уходи в спящий режим после команды возможен если у вас вывод DTR (9-й вывод) модуля посажен на общий провод. Линия ON/OFF (boot) не предназначена для пробуждения. Я в статье писал про спящий режим, почитайте.

          По команде регистрации, скорее всего модуль не запоминает нового заданного параметра команды после выключения, поэтому при включении не выдает ничего, проверьте параметр команды после перезагрузки с помощью АТ+CREG=?.

          Ответить
  67. Денис С.

    У меня вопрос к автору статьи. М.Б. Вы пробовали GSM модуль вот такой https://ru.aliexpress.com/item/mini-A6-GPRS-GSM-Module-Kit-Wireless-Extension-Module-Board-Antenna-Tested-Worldwide-Store-for-SIM800L/32716931662.html?spm=2114.13010308.0.0.DR8GLQ По цене – дешевле SIM800L, по функционалу – та же голосовая связь, по не многочисленным обзорам с ютуба – не так требователен к питанию и не глючен. Просто эти б/у м590 уже изрядно людям мозг потрепали и мне в том числе. Тестил несколько месяцев в езде по городу (GPS трекинг), связь теряется при идеальном покрытии, а стоит выехать за пределы дом. региона, часами нужно ждать регистрации в чужой сети. Плюс дикая помехо незащищённость, к тому же один из модулей помер по не понятной причине, начал греться и кушать 800мА. В общем бросаю я эти neoway, буду заказывать и пробовать не известные А6, чего и всем “наигравшимся” желаю! Приношу извинения автору за офтоп и пожелание изучить и осветить новые А6…

    Ответить
    1. Денис С.

      Нашёл его название – Ai-Thinker A6, а в А7 ещё и GPS есть – я в шоке, вкуснотища!

      Ответить
      1. admin автор

        Я заказал пару недель назад модуль про который вы говорите A6, еще не пришел, буду пробовать тестировать, статью постараюсь написать.

        Ответить
        1. Денис С.

          Отлично!

          Ответить
          1. Денис С.

            Лёд тронулся, тоже заказал!

            Ответить
        2. Артем

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

          Ответить
    2. Сергей

      Заказал такой модульGSM/GPRS модуль AiThinker А6. http://www.dx.com/ru/p/gprs-a6-mini-serial-gprs-gsm-module-core-developemnt-board-for-arduino-443770#.WItoZ1OLTcs. Приехал быстро. при подаче питания горит светодиод. А вот, запустить не удается . Подал +5 на вход PWR для включения. Не включается. В чем проблема не пойму

      Ответить
      1. Денис С.

        Я тоже заказывал, 43 дня прождал, так и не приехал, вернули деньги. На сколько я знаю, после включения он кучу информации в терминал выдает, подключал к компу?

        Ответить
        1. Сергей

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

          Ответить
          1. Денис С.

            Подозреваю, что у тебя не порядок с usb-uart преобразователем что то не то… Уровни какие выдает, надеюсь 3,3? Задержку между подачей питания на Vcc и pwr попробуй сделать, ножку reset куда нибудь притяни… Да и лучше тему где нибудь на форуме сделать, а то тема не по теме и общаться в этих коментах не возможно.

            Ответить
  68. Артем

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

    Ответить
  69. Артем

    номер и имя заранее прописаны на сим кару

    Ответить
  70. Денис С.

    Имя д.б. латинскими буквами, у меня выводилось…

    Ответить
  71. Артем

    все перепробовал не выводит

    Ответить
  72. Артем

    может команда нужна?

    Ответить
  73. Николай

    я просто за.е…. ((( все перепробовал не могу подключиться к порту, питание разное регулировал от 3,7 до 5,2 ( единственное конденсатор на 10мКф, сейчас поставлю на 1000) но в любом случае, звонок на сим карту проходит, то есть сим в сети зарегалась, но вот по порту не могу получить доступ, что я делаю блин не так, подскажи пожалуйста https://vk.com/tahk_b_kybete это я в контакте, автор помоги пожалуйста, сил моих больше нет

    Ответить
    1. zlg

      Николай, скорее всего может быть три причины:
      1. Не совпадает Baud Rate в модеме и у Вас в терминале.
      2. Перепутаны местами Rx u Tx
      3. Что то не в модеме, а в Вашем компе, терминале, не тот ком. порт выбран

      Ответить
      1. Николай

        У меня уже поздный вечер, 19:35, после того как написал это сообщение принчлся за есп модуль вайфай, с ним тоже напортачил, но при разборе этого модуля обратил внимание что если модуль вайфай подключать не к USB програматору, а к ардуино, то там нужно наоборот: RX>>> TX , TX>>RX, а если через юсб, то рх>>рх тх>>тх, сейчас проверить нет возможности, но пришла мысль что с этим модулем GSM по аналогии подключение??? И просьба, напешите мне в контакте, дабы живой чат обрести , заранее спасибо

        Ответить
        1. zlg

          Ну это же логично. Если один говорит, другой слушает. Говорящая нога модема(8-Тх) подключается к слушающей ноге другого девайса и наоборот, слушающая нога модема(7-Rх) подключается к говорящая ноге другого девайса. Если у Вас Ардуинина, к примеру, настроена, что 2 нога – Rх, получает(слушает), а 3 – Тх, посылает(говорит), то подключаете:
          2 7;
          В USB конвертере, аналогично. Найдите, какая нога на прием, а какая на передачу. Если Вы подключили не правильно, то у Вас выбор невелик – поменяйте местами.

          Ответить
          1. zlg

            Чего то сбилось, а редактировать не дает.
            2 ногу ардуино(Rх) подключаете к 8(Тх) ноге модема;
            3 ногу ардуино(Тх) подключаете к 7(Rх) ноге модема;

            Ответить
            1. Николай

              Нифига так и не получилось 🙂 сим карта МТС, гудок на сим проходит, а связи с модулем так и нет, что делать?

              Ответить
              1. ketty

                проверила на 13 модулях, вылазило 2 ошибки за все время, модем вообще не видит сим. т.к. не подает питание на нее, подавала питание напрямую, тоже не получается, и постоянно говорит что абонет недоступен, либо пишет каракули какие нибудь в порт. хоть и уверена что был настроен на ту скорость с которой пыталась работать с ним. 9600 на все ставлю, но как то сгорел один прям в работе. и начал слать мусор. а что бы вообще не общался небыло такого, попробуйте проверить лучше все соединения

                Ответить
                1. Николай

                  Я уже 3 недели делаю одно и тоже, танцы с бубнами, поменял три ардуинки, блоки питания, в итоге вот какая схема, питание через преобразователб, 4.9 вольт, на выходе кондер на 1000 мкф,( если дать ниже напряжение, не включается), подключение к 5 в, гнд к минусу, boot,тоже замыкаю на гнд, все, приход смс, абонент вновь в сети, подключаю рх и тх к разным входам на ардуинко крест на крест, рх >>тх, тх>>рх, ардуинку тоже привязываю минусом к модулю, и все… что только не пробывал, на разных скоростях, разными редакторами, нет связи с модулем по порту, хоть ты тресни, я ему ат, а он 0 эмоций, заонок принимает, гудки идут…
                  Последняя надежда что стм карта от МТС, не подходит, завтра попробую от билайна, если нет то выкину, сил нет моих больше, ждал 65 дней, и дождался…….

  74. Heres_M

    Вопрос? Имеется ли возможность настройки модуля удаленно через GPRS?

    Ответить
  75. Heres_M

    Дополнение. Например запрещать некоторые входящие звонки.

    Ответить
    1. admin автор

      Через GPRS настраивать модуль не получится, настройка возможна только внешним устройством, микроконтроллером например.

      Ответить
  76. Никита

    Кто-нибудь питал его от батареек? Расскажите, пожалуйста. Интересуют именно батарейки (не блоки питания, не аккумы, не юсб и др.)

    Ответить
    1. admin автор

      У меня GPS трекер собран на этом модуле https://radiolaba.ru/microcotrollers/gps-gsm-treker.html , в качестве питания 3 батарейки типоразмера AA.

      Ответить
      1. Никита

        Интересно. Сейчас посмотрю. Скажите, а вы батарейки эти последовательно же соединяли, да?

        Ответить
        1. admin автор

          Да, последовательно

          Ответить
  77. Ev3658

    Спасибо большое!!! Просто отличная статья!!!!
    Вот, для связи в Bascom (уберёте лишнее):

    $regfile = “m328pdef.dat”
    $crystal = 16000000
    $hwstack = 98
    $swstack = 80
    $framesize = 100

    $baud = 9600
    Config Com1 = Baud , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
    Open “com1:” For Binary As #1
    Config Portd.1 = Output
    Config Portd.0 = Input

    Echo Off

    ‘Конфигурация Подключения Дисплея К Портам Мк
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Rs = Portc.1 , E = Portc.0 , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
    Cursor Off
    Led Alias Portb.5

    Config Led = Output
    Led = 0

    Config Portd.2 = Input
    Signal Alias Pinb.2

    Config Portd.3 = Input

    Dim B As Byte ‘принимаемый байт
    Dim S As String * 20 ‘принимаемые данные
    Dim Priem As Bit ‘принята команда
    On Urxc Redx
    Enable Urxc
    Enable Interrupts

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

    Cls
    Print #1 , “AT+IPR?” ; Chr(13) ; Chr(10) ‘для проверки отсылаем команду
    Do

    If Priem = 1 Then ‘если приняли, выводим
    Cls
    Locate 1 , 1
    Lcd S
    S = “”
    End If
    Waitms 100

    Loop
    End

    Redx: ‘прерывание по получению
    B = Inkey(#1)
    If B > 31 Then ‘запоминаем только видимый текст
    S = S + Chr(b)
    Elseif B = 13 Or B = 10 Then ‘ если конец строки, то мы приняли команду.
    Priem = 1
    End If

    Return

    Ответить
    1. Ev3658

      Тормознул, вот в это:


      Lcd S
      S = «»
      End If
      Waitms 100
      ….
      Добавьте:
      Priem=0

      Ответить
  78. Vladimir_72

    Есть ПК и плата с М590, что ещё нужно для их подключения? На схеме подключения ноги не по порядку, как подключать к контактам на плате М590? Там они по порядку.

    Ответить
  79. Сергей

    Добрый день! Помогите, пожалуйста, разобраться с одной проблемой. (уже несколько недель не получается решения найти)
    Проблема вот в чём: Номер телефона ввожу с клавиатуры Ардуино и записываю его в ЕЕПРОМ. При каждом цикле переменная считывает номер с ЕЕПРОМ и присваивает себе это значение.
    Необходимо: Совершать звонок на этот номер из переменной. Проблема в том, что не могу разобраться, как его прописать строку: gsm.println(“ATD+”); Дело в том, что кавычек “” то в переменной нет и знака “;” тоже нет. Приведенные ниже строки тоже результата не дают…
    Long TEL = 834052454 // номер телефона без +79
    gsm.println(“ATD+”);
    gsm.write(char(34));
    gsm.print(“+”);
    gsm.print(“7”);
    gsm.print(“9”);
    gsm.print(TEL);
    gsm.print(“;”);
    gsm.write(char(34));

    Ответить
  80. Денис С.

    в место переменной создайте массив символов

    Ответить
  81. Сергей

    А отправлять их в GSM модуль поочередно?
    после gsm.println(«ATD+»); ?

    Ответить
    1. Денис С.

      отправить нужно за один присест и с символом “\r” в конце. если отправлять поочерёдно командой print, то модуль выдаст ERROR, потому что print в след за командой посылает ещё и не видимый “\0”. такие дела.

      Ответить
  82. Berg

    Мне вот интерес один момент. Есть команда проверки статуса модуля AT+CPAS. Одним из ответов на команду есть +CPAS: 5 , т.е. модуль в спящем режиме. НО! В описании спящего режима написано – “Во время “сна” модуль не реагирует на команды, поступающие по UART”. Как-то не логично выходит. Кто что знает по этому поводу?

    Ответить
    1. admin автор

      После отправки команды спящего режима модуль не сразу засыпает, а после того как вывод SLEEP установится в 0, вот после получения команды и до сброса линии в 0, модуль и будет выдавать ответ +CPAS: 5 на запрос проверки статуса.

      Ответить
  83. Анатолий

    Привет!У меня такая проблема с этим модулем. СМСки отправляет, принимает, звонит и принимает звонки, с этим проблем нет. НООО он никак не хочет спать!!! Пишу at+enpwrsave=1 в ответ ОК, светодиод перестает моргать, гаснет, на линию sleep подаю низкий логический уровень, но (даже спустя минуту) на команды по юарту он отвечает и токопотребление не снижается. В чем может быть проблема? может есть какой секрет по его усыплению???

    P.S. дабы избежать проблем с ,,китайской платой,, развел свою по даташиту, результат ровно тайкой же

    P.P.S. не сохраняются настройки AT&W
    P.P.P.S модуля 2 от разных продавцов, результат одинаковый

    Ответить
    1. admin автор

      Здравствуйте, вы делали все правильно, а пробовали ждать больше минуты? Я замечал что нет какого-то определенного времени на уход в сон, всегда по разному.

      Ответить
      1. Анатолий

        Пробовал и 10 минут ждать, все тоже самое. Причем когда я перевожу СЛИИП в высокий уровень во время ,,сна,, (когда светодиод не моргает) модуль не ,,просыпается,,. Светодиод по прежнему не мигает. Как будто он вообще не реагирует на линию СЛИП

        Ответить
        1. admin автор

          Светодиод должен включится если послать команду at+enpwrsave=0, проверьте уровень сигнала на 9-ом выводе (DTR) модуля, на факт наличия низкого уровня. Возможно со стороны управляющего устройства идет передача данных, из-за чего модуль не засыпает, проверьте 7-ой вывод RXD на модуле, там должен быть высокий уровень при отсутствии передачи данных.

          Ответить
          1. Владимир

            Добрый день! У меня такая же проблема. На команду at+enpwrsave=1 реагирует, диод перестает моргать, потребляемый ток 25-30 мА. На подачу низкого и высокого уровня на DTR никак не реагирует, как находился в режиме ожидания (25-30 мА), так и остается в нем. UART модема остается в работе, принимает команды и отвечает на них. На 7 выводе (RXD) высокий уровень.
            Команда at+enpwrsave=0 включает диод, потребление тока такое же 25-30 мА.
            (В общем, блинкать светодиодом GSM-модема научился!)
            Пробовал и SoftwareSerial, и AltSoftSerial, и аппаратный UART, и напрямую от TTL-конвертера, – результат один и тот же. Длительное ожидание “усыпления” ничем новым не обернулось. Добиться 2,5-2,8 мА так и не удается.
            Подскажите, пожалуйста, что я делаю не правильно?

            Ответить
  84. 0259

    всем привет подскажите пожалуйста на м590 приходят звонки приходят смс всё читается отправить пробовал ошибка звонить с него не получается отвечает сброшен
    отправляю звонок так ATD+77057x7x0x0 отвечает так NO CARRIER
    отправляю команду AT+CSCS=”GSM” ответ ok
    отправляю смс AT+CMGS=“+77057x7x0x0” ответ >
    отправляю > Perezvoni mne ответ ERROR
    даже отправить не успеваю

    Ответить
    1. admin автор

      Будьте внимательнее, в команде ATD+77057x7x0x0; в самом конце есть символ – ;

      Для sms, после отправки текста сообщения, для завершения процесса следует отправить символ (шестнадцатеричное значение 0х1A)

      Ответить
  85. Михаил

    Здравствуйте, подскажите команда сохранения текущей конфигурации настроек в EEPROM память AT&W, какие параметры сохраняет в eeprom, и как их потом загрузить, очень хочется аон и текстовый формат сообщений не устанавливать посылая команду при каждом включении питания

    Ответить
  86. Вадим

    С модуля не уходит СМС но только с сим картой МТС (эту карту вставлял в телефон – смс работает). И в модуль вставлял мегафоновскую симку – смс уходит. Но нужно, чтобы модуль работал с мтс симкой. Вопрос: в чём проблема?

    Ответить
    1. admin автор

      Приветствую, а какую ошибку пишет модуль? У меня с сим картой МТС все работало.

      Ответить
      1. Вадим

        Я сейчас только начинаю с ними разбираться. Охранная система гаража ( в которой стоит данный модуль) уже была готовая. Посоветуйте с чего начать. По своей глупости купил симку МТС и оплатил 500 р. по тарифу “умное устройство” на год вперёд. Да и все мои на МТС. В общем советы вроде “смени симку не желательны.

        Ответить
        1. admin автор

          Если это готовое устройство, как вы собираетесь в нем что-то менять? вы будете переделывать программу?

          Ответить
          1. Вадим

            Это «готовое устройство» я сделал полностью своими руками, но с готовых схем и программы на ардуино

            Ответить
  87. Вадим

    Это “готовое устройство” я сделал полностью своими руками, но с готовых схем и программы на ардуино

    Ответить
    1. admin автор

      Сложно сказать что не так, надо бы посмотреть какие команды отправляются на модуль во время отправки SMS, подключите к линии RX модуля USB-COM преобразователь и посмотрите на компьютере в терминальной программе что там происходит. А пробовали другую симку от того же МТС?

      Ответить
      1. Вадим

        Пробовал со своего телефона, даже связь не установила с базовой станцией оператора. Сплошные вопросы. Буду пробовать заходить в неё. Да, ещё, это китайский девайс М590Е не NEOWEY а безродный.

        Ответить
  88. Вадим

    Получилось почти всё. Но дохожу до отправки смс , дальше не знаю что делать? Какая команда для отправки смс?
    AT+CMGF =1

    OK
    AT+CSCS=”GSM”

    OK
    AT+CMGS=\”79138801431\”

    > vvv

    Ответить
    1. admin автор

      Для отправки сообщения надо ввести команду: AT+CMGS=“+79XXXXXXXXX”$0D (+79XXXXXXXXX — номер абонента кому шлем SMS, номер должен быть заключен в кавычки), после этого модуль выдаст приглашение в виде символов > (> и пробел), далее вводим текст сообщения в конце которого вводим символы $1A (то есть символ ctrl-Z), тем самым говоря модулю что сообщение окончено, после этого в случае успеха модуль выдаст сообщение +CMGS: и OK.

      Ответить
  89. Вадим

    OK
    AT+CSCS?

    +CSCS: “GSM”

    OK
    AT+CMGS=“+79138801431”

    > Perezvoni mne
    ERROR

    что не так?

    Ответить
  90. Вадим

    символы $1A (то есть символ ctrl-Z) конечно вводил

    Ответить
    1. admin автор

      А ошибку ERROR модуль выдает сразу же или с паузой? в какой терминальной программе отправляете команды? Попробуйте с другой симкой отправлять сообщения.

      Ответить
  91. Dmitrii

    хочу сделать звонилку 1 – 2 номера с использованием M590 и attiny2313. Может кто подскажет чего? Исходники может или готовый hex со схемой

    Ответить
  92. bum224

    Не регистрируется в сети (код 2 – регистрация отклонена). Питание подаю с зарядки на 2А.
    MODEM:STARTUP
    at

    OK

    +PBREADY
    at+creg=1

    OK

    +CREG: 0

    +CREG: 2

    +CREG: 0

    +CREG: 2

    +CREG: 0

    +CREG: 2

    +CREG: 0

    +CREG: 2

    Ответить
  93. Masis

    Скажите пожалуйста SIM IO и SIM VCC надо поставить 4,7 к, или 10 к?
    на даташите написана SIMIO Need to pull up SIMVCC by external resistance 10K

    Ответить
  94. Masis

    на схеме ( R9, 4,7кОм) между выводами Vcc и I/O СИМ карты, можно поставить 10 к?

    Ответить
    1. admin автор

      Да можно ставить и 10к.

      Ответить
  95. Masis

    скажите пожалуйста можно без транзистора VT1, с вывода микроконтроллера через 1к, на контакт 19 (ON/OFF), и поставит PORT на выход, лог.1 например 4.2В. Когда понадобится сделать ресет то поставит PORT лог 0 300 млсикунд?

    Ответить
    1. Masis

      извините не 19 а на 18 Emergency OFF

      Ответить
      1. Masis

        извините не VT1 а VT2

        Ответить
        1. admin автор

          Вывод Emergency OFF подтянут к высокому лог. уровню внутри модуля, не стоит подавать туда внешнее напряжение с микроконтроллера. Надо сделать по другому, линию микроконтроллера настроить на вход в режиме нормальной работы, если надо перезагрузить модуль, то перенастроить линию МК на выход с лог.0, затем заново на вход, чтобы исключить подачу внешнего напряжения.

          Ответить
          1. Masis

            когда сделаю так (линию микроконтроллера настроить на вход в режиме нормальной работы) модуль не стартует MODEM:STARTUP, как будто в ножке 18 модуля лог.0. в чем причина не знаю??

            Ответить
            1. Masis

              а может диод надо поставить???
              https://radiolaba.ru/wp-content/uploads/2018/10/neoway_m590.jpg

              Ответить
              1. admin автор

                Можно и с диодом, тогда линию МК на вход можно не перенастраивать, а устанавливать лог.1
                Я не понял у вас модуль не стартует чтоле? на выводе Emergency_OFF в нормальном режиме работы должна быть лог.1

                Ответить
                1. Masis

                  когда линию микроконтроллера настрою на вход, для нормальной работы модуль не стартует MODEM:STARTUP.

  96. Masis

    жаль что нету редактировать сообщение.
    скажите пожалуйста можно без транзистора VT2, с вывода микроконтроллера через 1к, на контакт 18 (Emergency OFF), и поставит PORT на выход, лог.1 например 4.2В. Когда понадобится сделать ресет то поставит PORT лог 0 , 300 млсикунд?

    Ответить
    1. admin автор

      Masis, вы писали: когда линию микроконтроллера настрою на вход, для нормальной работы модуль не стартует MODEM:STARTUP.

      Значит у вас линия настраивается не на вход, а скорее на выход, отключите вывод модуля Emergency OFF от микроконтроллера и попробуйте запустить модуль, если запускается, значит проблема в неправильно настроенных линиях МК.

      Ответить
  97. Masis

    что сделать если на команду AT+COPS?
    ответ вот такой
    +COPS: 2

    Ответить
  98. Masis

    что сделать если на команду AT+COPS?
    ответ вот такой
    +COPS: 2
    удивительно что на команду AT+CSQ
    ответ вот такой
    +CSQ: 12,3
    симку тоже видит.

    Ответить
    1. admin автор

      Видимо модуль не может зарегестрировать сим-карту в домашней сети. Может вы находитесь в роуминге? Попробуйте другую Сим-карту.

      Ответить
      1. Masis

        A на команду AT+CREG?
        ответ вот такой
        +CREG: 0,3
        Первый параметр: 0 нет кода регистрации сети
        Второй параметр: 3 регистрация отклонена
        У меня таких модулей (neoway m590) уже 8 штук. Симку видит на команду AT+CPBR=1
        дает ответ
        +CPBR: 1,”номер”,129,”имя” ,
        сигнал антены ест +CSQ: 17,2
        НО +COPS: 2, +CREG: 0,3
        попробовал другой модуль neoway m590, на том же сим карте, нормально работает.

        Ответить
  99. Sanya

    Neoway M590 работает нормально, Sleep режим отключаю at+enpwrsave=0, после 1-2 час когда звоню на этот номер (который находится в модуле), абонент временно недоступен. в чем проблема??

    Ответить
    1. admin автор

      Я кстати тоже замечал это явление, но точно не знаю с чем это связано, возможно это из-за слабого, неустойчивого сигнала сети. Вы далеко находитесь от вышек сотовой связи? на телефоне уровень сигнала хороший?

      Ответить
      1. Sanya

        да качество хороший, +CSQ: 20,2, в этот момент когда абонент не доступен, на команду AT+COPS, ответ вот такой +COPS: 2

        Ответить
  100. Masis

    посоветуйте пожалуйста что лучше
    для питании поставить 7805 с радиатором(5 вольт)
    или DC DC step down на 4.2 вольт

    Ответить
    1. admin автор

      Напряжение в 5В многовато для модуля, максимум 4,5В. Лучше в таком случае запитать от импульсного DC-DC на 4.2 вольт.

      Ответить
  101. Алексей

    может кто нибудь знает? есть модули neoway m590e а есть Sinowell G590 так вот вопрос, второй не запускается, никогда сеть не может найти, хотя даташит одинаковый, параметры одинаковые, вообщем копия

    Ответить
  102. Рустэм

    При работе с данным модулем необходимо учесть ряд особенностей его процессор питается от напряжения 3,3 вольт, чтобы он подключался к ардуино у которого питание 5 вольт, ставят последовательно по питанию диод, который понижает напряжение до 5-0,8=4,2вольта, источник питания должно обеспечивать возможность повышения тока до 2 ампер, во время включения модуля ток большой. Но самое главное это сопряжения модуля с ардуино по каналу обмена данными Rx Tx, основное это канал Rx на модуле, на его входе уровень импульсов должен быть 3,3 вольта, а с ардуино идет 5 вольт это приводит к зависанию обмена данными межу ардуино и модулем, ну соответственно ничего не работает после этого, приходится перезагружать ардуино , хотя поначалу кажется все прекрасно работает, необходимо в схему добавлять два развязывающих сопротивления чтобы снизить уровень сигнала от ардуино на входе Rx модуля и все прекрасно работает! Схема представлена по ссылке, другие модули типа SIM 900 имеют ту же проблему, довольно много пришлось помучиться, может кому опыт пригодится.
    https://www.drive2.ru/c/501088956415214410/ смотрите два сопротивления по 10 ком, одно идет на Rx модуля, второе соединяет Tx ардуино с землей. А если не ставить эти сопротивления получается Tx ардуино и Rx модуля соединяются напрямую.

    Ответить
  103. Виктор

    Проще всего, питать всю схему от 3.3 вольт. Я так постоянно делаю, проблем нет.

    Ответить
  104. Masis

    Скажите пожалуйста, почему на 5 ножке поставили 4,7к ?? светодиод ели ели светится. может есть смысл. Я видел на заводском плата где для светодиода поставили транзистор.

    Ответить
  105. Bkmlfh

    Добрый день!
    Уважаемый Admin, почему не сохраняется настройка АОН после перегрузки по питанию? AT&W после включения АОН делал. Может ли быть какая либо усеченная возможность у модуля? И как поправить?

    Ответить
    1. Михаил

      Конкретизирую вопрос.
      Команда AT&W сохраняет текущий профиль.
      Команда AT&V показывает текущий и сохраненные профили.
      Я не нашел команды загрузки текущего профиля из сохраненных.
      Это, вообще предусмотрено?

      Ответить
  106. Masis

    Как отправить СМС на Русский??

    Ответить