• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Автоматизации
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

GSM модуль NEOWAY M590

3 мая, 2017

Купить модуль neoway m590 можно тут: http://ali.pub/1etjdu

Для подключения модуля к компьютеру нам понадобится:

Конвертер rs485 FTD232: http://ali.pub/1etju6

Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.

 

 

1. Модулей Neoway m590 на Aliexpress очень много, и все разные, поэтому будьте очень внимательны при заказе, так как на моем модуле, не было распиновки, и было непонятно где на модуле VCC, а где GND. Поэтому прежде чем заказать убедитесь, в наличии распиновки хотя бы на картинке у продавца.

Распиновка именно на мой модуль Neoway m590 GPRS100622:

Извиняюсь за мелкий шрифт на картинке, сам нашел эту распиновку случайно.

2.Важно понимать что модуль Neoway m590 самый дешевый, но и самый “прожерливый” по питанию. В пике своей активности потребление тока может достигать на 2А. Поэтому нужно запастись стабильным мощным питанием или припаять конденсатор в разрыв питания и самого модуля, чтоб просадка была поменьше для источника питания. Как я собственно и сделал в Видео ниже это наглядно видно.

3. Убедитесь что у Вас имеется в комплекте с заказываемым модулем антенна, ну или закажите ее отдельно к модулю. Так-как мой модуль пришел без антенны и он не связывается с оператором без нее.

4. Если все-же, Вам удалось подключиться к модуль через компьютер, то Вам необходимо знать список AT команд, чтобы общаться с модулем по средствам этих команд. Ссылку на файл со всеми АТ командами к модему я оставлю в конце этой статьи. Но Некоторые из этих команд я приведу в статье:

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

OK

 

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

 

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

 

Описание Команда сохранения текущей конфигурации настроек в 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: 9600OK
Скорость порта равна 9600 бит/сек

 

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

 

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

 

Описание Команда настройки спящего режима
Формат 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 формате, текст представлен в виде последовательности шестнадцатеричных чисел.

Для нормальной кодировки английского текста я выбирал “GSM”

Описание Команда выбора кодировки текста
Формат 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-START2OK
Для текстового формата
кодировка ASCII (GSM)
Получено сообщение: GPS-START2
AT+CMGR=1
+CMGR: “REC READ”,“+79123456789”,“”,“15/11/13,14:39:35+32”
004700500053002D005300540041005200540032OK
Для текстового формата
кодировка Unicode (UCS2)
Получено сообщение: GPS-START2
AT+CMGR=1
+CMGR: 1,,28
07919730071111F1040B919721436587F90000511131419353020
A47E8B435A506A55419OK
Для 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: 2OK
Для текстового формата
Отправка сообщения “Perezvoni mne”
AT+CMGS=27<CR>
> 07919740030900F001000B919721436587F900080E
041F044004380432043504420021<ctrl-Z>
>
+CMGS: 2OK
Для PDU формата
кодировка Unicode (UCS2)
Отправка сообщения “Привет!”
AT+CMGS=22<CR>
> 07919740030900F001000B919721436587F900000A
47E8B435A506A55419<ctrl-Z>
>
+CMGS: 2OK
Для 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, модуль автоматически возьмет номер из СИМ карты.

Ссылка на все AT команды: https://yadi.sk/i/yNTfsitC3Hc2Fv

Видео:

Primary Sidebar

Поиск

Новые записи

  • Автоматизация перезагрузки устройства по команде Ping.
  • Разблокирование и добавление шлюза Xiaomi gateway 3 в Home Assistant для управления Bluetooth устройствами из экосистемы Xiaomi Home (mihome)
  • Интеграция для локального управления (без интернета) ик пультом Tuya работающим по wifi из Home Assistant
  • Транслируем показания с Уличного Bluetooth Датчика температуры по BTHome на дисплей датчика температуры XIaomi LYWSD03MMC
  • Заставляем Bluetooth датчики температуры tuya и xiaomi отправлять данные по Zigbee в Home Assistant.

Официальный YouTube Канал M5Stack:

Подписывайтесь на Телеграм канал

https://t.me/ypavla

Подписаться на YouTube!

Secondary Sidebar




Подписывайтесь на Telegram Канал!

У Павла!

Footer

Copyright_У Павла! © 2025 ·