Звонки, SMS и GPRS с помощью GSM-модуля Neoway M590

10 июля 2017

Сегодня поговорим о GSM-модуле Neoway M590. С его помощью можно делать и принимать звонки, посылать и принимать SMS, а также выходить в интернет по GPRS. Цена модуля на AliExpress составляет всего лишь 140 рублей с доставкой в Россию (~ 2.3$). Для сравнения, ближайшие аналоги в лице модулей SIM800C и SIM800L обойдутся вам в 290 и 460 рублей соответственно.

Пайка и подключение

Модуль продается в виде конструктора из платы и компонентов, которые нужно припаять к этой плате. Собрать модуль не сложно по картинкам, изображающим модуль в собранном виде. Быть может, понадобится еще приложить щупы мультиметра, чтобы понять, какой стороной припаивать светодиод. Если ранее вам не доводилось паять SMD-компоненты, это не сложно. Как это делается, можно посмотреть на YouTube, или прочитать в дополнении в конце заметки Как я спаял свою первую электронную схему.

Что нужно учитывать при подключении:

  1. Для активации модуля контакт K нужно подсоединить к земле, при помощи перемычки, или припаяв;
  2. Модуль питается от 5 В и может потреблять довольно большой ток (200 мА и выше). Поэтому, если запитать его, скажем, от Arduino, он может не работать. Лично я запитал его от лабораторного блока питания;
  3. Модуль использует 3.3-вольтовую логику. Я просто выставил соответствующую перемычку на адаптере с FT232. В общем случае либо вся логика в цепи должна быть 3.3-вольтовой (например, бывают такие модификации Arduino), или же следует использовать преобразователь логических уровней;
  4. Взаимодействие с модулем происходит по UART на скорости 115200 бод. Я использовал screen, и, соответственно, команду screen /dev/ttyUSB0 115200;
  5. Модулю нужна полноразмерная SIM-карта, которыми сейчас мало кто пользуется. В вашем телефоне, скорее всего, используется какая-нибудь Nano SIM, или вроде того. Соответственно, понадобится переходник и кусочек двухстороннего скотча. На AliExpress переходник стоит менее 30 рублей (0.5$), в российских интернет-магазинах он обойдется где-то в 250 рублей, в салонах связи — примерно в 500 рублей. В теории можно обойтись без адаптера, положившись на ловкость рук, но с адаптером намного удобнее;

Спаянный и подключенный к компьютеру модуль:

GSM-модуль Neoway M590

Это что касается подключения. Теперь поговорим об UART-интерфейсе.

Основные AT-команды, звонки и SMS

Будучи готовым, модуль присылает строчку:

+PBREADY

Проверяем, что мы подключены к сети:

AT+COPS?

Ответ:

+COPS: 0,0,"MTS-RUS"

OK

Теперь, допустим, мы хотим отправить SMS. Делается это так:

AT+CSCS="GSM"
OK
AT+CMGF=1
OK
AT+CMGS="+79161234567"
> This is a test message.^Z
+CMGS: 117
OK

Здесь ^Z означает нажатие Ctr+Z. Этому сочетанию соответствует символ с кодом 26 в десятичной системе счисления.

Чтение входящих SMS:

AT+CMGL="ALL"
+CMGL: 1,"REC READ","+79161112233","","17/06/13,20:31:59+18"
This is a test message.

+CMGL: 2,"REC READ","+79164445566","","17/06/13,22:45:12+18"
Test SMS

OK

Удаление входящего SMS с заданным id:

AT+CMGD=1
OK

Можно позвонить на заданный номер:

ATD+79161234567;
OK

Если взяли трубку, придет:

CONNECT

Когда трубку положили, придет:

NO CARRIER

Такой же ответ придет в случае, если звонок был сброшен.

Положить трубку на своей стороне мы можем так:

ATH
OK

Чтобы принимать звонки, для начала скажем:

AT+CLIP=1
OK

Эта команда включает +CLIP нотификации. Помимо прочего, через них работает АОН (определитель номера). Теперь при входящем звонке где-то раз в 5 секунд нам будет приходить:

RING

+CLIP: "79161234567",145,,,"",0

Ответить на звонок можно командой ATA. Сбросить входящий звонок можно уже рассмотренной выше командой ATH.

Выход в интернет через GPRS

Проверяем, есть ли подключение к GPRS:

AT+CGATT?
+CGATT: 1

OK

Указываем параметры подключения:

AT+XISP=0
OK
AT+CGDCONT=1,"IP","internet.mts.ru"
OK
AT+XGAUTH=1,1,"mts","mts"
OK
AT+XIIC=1
OK

Эти параметры я взял с сайта МТС. У вашего оператора они могут отличаться.

На сервере запускаем netcat:

nc -l -p 31337

Модулю говорим:

AT+TCPSETUP=1,46.101.123.45,31337
OK

+TCPSETUP:1,OK
AT+TCPSEND=1,5
>

Здесь нужно ввести пять символов, которые собираемся послать по TCP. Эхо тут отсутствует, поэтому вводимых символов мы не увидим. Далее:

OK

+TCPRECV:1,7,Hello!

AT+TCPCLOSE=1
+TCPCLOSE:1,OK

Как видите, передача данных в обе стороны превосходно работает. При желании не составляет труда написать свой HTTP-клиент (или сервер), или реализовать любой другой сетевой протокол.

Заключение

Как видите, модуль можно легко интегрировать с Arduino, Raspberry Pi, да и вообще, практически любой электроникой. Полный список AT-команд описан в документе M590 AT Commands Set [PDF].

С помощью GSM модуля можно делать офигительные штуки. Слать самому себе нотификации о различных событиях, сделать двухфакторную аутентификацию, GPS-трекер (см заметку Работа с GPS-модулем на базе NEO-6M из Arduino) умный дом, управляемый при помощи звокнов и SMS, сообщающего погоду IRC/Slack/Gitter-бота, и так далее. Просто безграничный простор для творчества!

Дополнение: Существует модуль с поддержкой 3G и со встроенным GPS, называется SIM5320. Однако он не слишком дешев (~30$), и у меня пока нет опыта работы с ним.

Метки: , , .


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