m590-gsm-module/

Сегодня поговорим о 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$), и у меня пока нет опыта работы с ним.

EnglishRussianUkrainian