Сегодня поговорим о GSM-модуле Neoway M590. С его помощью можно делать и принимать звонки, посылать и принимать SMS, а также выходить в интернет по GPRS. Цена модуля на AliExpress составляет всего лишь 140 рублей с доставкой в Россию (~ 2.3$). Для сравнения, ближайшие аналоги в лице модулей SIM800C и SIM800L обойдутся вам в 290 и 460 рублей соответственно.
Пайка и подключение
Модуль продается в виде конструктора из платы и компонентов, которые нужно припаять к этой плате. Собрать модуль не сложно по картинкам, изображающим модуль в собранном виде. Быть может, понадобится еще приложить щупы мультиметра, чтобы понять, какой стороной припаивать светодиод. Если ранее вам не доводилось паять SMD-компоненты, это не сложно. Как это делается, можно посмотреть на YouTube, или прочитать в дополнении в конце заметки Как я спаял свою первую электронную схему .
Что нужно учитывать при подключении:
- Для активации модуля контакт K нужно подсоединить к земле, при помощи перемычки, или припаяв;
- Модуль питается от 5 В и может потреблять довольно большой ток (200 мА и выше). Поэтому, если запитать его, скажем, от Arduino, он может не работать. Лично я запитал его от лабораторного блока питания ;
- Модуль использует 3.3-вольтовую логику. Я просто выставил соответствующую перемычку на адаптере с FT232. В общем случае либо вся логика в цепи должна быть 3.3-вольтовой (например, бывают такие модификации Arduino), или же следует использовать преобразователь логических уровней;
- Взаимодействие с модулем происходит по UART на скорости 115200 бод. Я использовал screen , и, соответственно, команду
screen /dev/ttyUSB0 115200
; - Модулю нужна полноразмерная SIM-карта, которыми сейчас мало кто пользуется. В вашем телефоне, скорее всего, используется какая-нибудь Nano SIM, или вроде того. Соответственно, понадобится переходник и кусочек двухстороннего скотча. На AliExpress переходник стоит менее 30 рублей (0.5$) , в российских интернет-магазинах он обойдется где-то в 250 рублей, в салонах связи — примерно в 500 рублей. В теории можно обойтись без адаптера, положившись на ловкость рук, но с адаптером намного удобнее;
Спаянный и подключенный к компьютеру модуль:
Это что касается подключения. Теперь поговорим об UART-интерфейсе.
Основные AT-команды, звонки и SMS
Будучи готовым, модуль присылает строчку:
Проверяем, что мы подключены к сети:
Ответ:
OK
Теперь, допустим, мы хотим отправить SMS. Делается это так:
OK
AT+CMGF=1
OK
AT+CMGS=»+79161234567″
> This is a test message.^Z
+CMGS: 117
OK
Здесь ^Z
означает нажатие Ctr+Z. Этому сочетанию соответствует символ с кодом 26 в десятичной системе счисления.
Чтение входящих SMS:
+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:
OK
Можно позвонить на заданный номер:
OK
Если взяли трубку, придет:
Когда трубку положили, придет:
Такой же ответ придет в случае, если звонок был сброшен.
Положить трубку на своей стороне мы можем так:
OK
Чтобы принимать звонки, для начала скажем:
OK
Эта команда включает +CLIP
нотификации. Помимо прочего, через них работает АОН (определитель номера). Теперь при входящем звонке где-то раз в 5 секунд нам будет приходить:
+CLIP: «79161234567»,145,,,»»,0
Ответить на звонок можно командой ATA
. Сбросить входящий звонок можно уже рассмотренной выше командой ATH
.
Выход в интернет через GPRS
Проверяем, есть ли подключение к GPRS:
+CGATT: 1
OK
Указываем параметры подключения:
OK
AT+CGDCONT=1,»IP»,»internet.mts.ru»
OK
AT+XGAUTH=1,1,»mts»,»mts»
OK
AT+XIIC=1
OK
Эти параметры я взял с сайта МТС . У вашего оператора они могут отличаться.
На сервере запускаем netcat:
Модулю говорим:
OK
+TCPSETUP:1,OK
AT+TCPSEND=1,5
>
Здесь нужно ввести пять символов, которые собираемся послать по TCP. Эхо тут отсутствует, поэтому вводимых символов мы не увидим. Далее:
+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$), и у меня пока нет опыта работы с ним.