Neoway m590 подключение к ардуино
Модем NEOWAY M590 – первое знакомство
Пошаговая инструкция по сборке, настройке и работе с модемом NEOWAY M590.
На днях получил посылку с комплектом деталей для сборки GSM/GPRS модема NEOWAY M590. Сейчас работаю над одним проектом для друга, где этот модем и будет использоваться.
Документация по модему:
Не буду тянуть “кота за хвост” и сразу приступим к описанию сборки.
Сборка модема NEOWAY M590
Комплект для сборки модема NEOWAY M590 выглядит так:
Китайцы молодцы – вложили все необходимое и ничего не забыли. Приступим…
Для начала необходимо запаять на плату SMD компоненты.
С одной стороны платы впаиваем диод и резистор как показано на фото. Не забываем, что диод надо установить анодом к контакту +5V.
Переворачиваем плату и устанавливаем на нее еще один резистор и светодиод. Про полярность светодиода не забываем.
Теперь нам необходимо установить сам модуль M590. На модуле и на плате нарисованы кружки. При установке модуля на плату они должны совпасть.
Далее устанавливаем держатель для SIM карты.
Осталось впаять два контакта для питания, 6 для обмена данными и подключить антенну.
Если сейчас установить SIM карту и подать питание, то модем не включится.
Долго с этим разбирался, но удалось найти решение. Для включения модема необходимо закоротить контакты K и G на плате.
Подключение модема NEOWAY M590 к компьютеру
Для подключения модема к компьютеру я буду использовать USB2TTL переходник в котором помимо RX и TX есть еще и питание 5 вольт.
- Вывод T модема NEOWAY M590 подключаем к выводу RXD переходника
- Вывод R модема NEOWAY M590 подключаем к выводу TXD переходника
- Вывод GND модема NEOWAY M590 подключаем к выводу GND переходника
- Вывод +5V модема NEOWAY M590 подключаем к выводу +5V переходника
- Выводы G и K модема NEOWAY M590 необходимо закоротить перемычкой
- Вставить SIM карту без PIN кода
После подключения USB2TTL переходника к USB порту на модеме NEOWAY M590 должен заморгать светодиод.
Проверка модема NEOWAY M590
Для начала, нам необходимо посмотреть номер COM порта переходника. Это можно сделать в диспетчере устройств.
В моем случае это будет COM1.
Проверять работу модема NEOWAY M590 я буду через программу Putty.
Запускаем Putty и выставляем настройки как указано на картинке.
После этого жмем внизу программы на кнопку Open
В открывшемся окне вводим команду AT и жмем Enter.
Если вы не получили ответ OK, то попробуйте изменить в настройках Putty значение Speed на 19200.
Далее я опишу несколько команд с которыми вы можете побаловаться.
AT+GETVERS — узнать версию прошивки модуля.
ATI – выводит модель и версию модуля.
AT+CSQ – определяет уровень сигнала мобильной сети:
ATD[номер телефона> – звонок на указанный номер.
Описание AT команд модема NEOWAY M590:
На этом все. Буду пока разбираться с работой по GPRS с этим модемом через Arduino.
Запуск и сборка GSM модуля M590E
Совсем недавно я решил попробовать такую платформу, как Железона где радиолюбителям предоставляют различные девайсы совершенно бесплатно. Собственно таким образом ко мне в руки попал данный наборчик. Набор предоставлен сайтом Neru5.ru.
Стоимость набора примерно
1150 руб с arduino в комплекте и
600 рублей без arduino. Точные цены можете посмотреть на сайте поставщика.
Конкретно в данном модуле меня заинтересовало заявление «Разработано в России», далеко не часто мне приходится сталкиваться с модулями для ардуино, разработчики которых живут в России (кроме Амперки конечно). Поэтому решено было взять его и разобраться, что к чему и почему.
Наборчик пришел ко мне за 15 дней, в хорошо упакованной бандерольке (было очень много пузырьков). Внутри посылки находились следующие комплектующие.
Слева снизу находится плата Arduino Uno
Справа снизу GSM модуль
Справа сверху Адаптер для GSM модуля
Давнему серферу AliExpress уже давно забрела в голову мысль: «А чего здесь Российского то, я все это уже видел на алике!». «А вот и нет!» — отвечу я вам. Дело в том, что из этого набора Российской разработкой является Адаптер для GSM модуля (сам модуль и ардуино импортные). Поэтому после сборки будем тестировать именно его, и узнаем на сколько он практичен и нужен ли вообще бывалому (или начинающему) ардуинщику. Поехали!
Сборка модуля
Сам GSM модуль поставляется в виде конструктора, который нам будет необходимо спаять. Новичкам не стоит этого боятся поскольку модуль очень простой и собирается за 5-10 минут.
Начнем. Сборку модуля следует начать с запайки SMD компонентов так, как они очень маленькие и после запайки крупных компонентов мы попросту не подберемся к дорожкам. Я начну пожалуй с запайки SMD резисторов. А именно вот с этих черных малюток.
Вам необходимо аккуратно разрезать упаковку (рядом с резистором) и достать его. Внимание! Работайте за чистым столом, что бы не перепутать резистор с песчинкой (волос для демонстрации размера).
Просто кладем резистор на необходимую площадку и в два касания паяльником (придерживая резистор пинцетом) мы припаиваем его к площадке. Кстати говоря, поскольку это резистор, можно не волноваться по поводу полярности.
В итоге у вас должно получится нечто подобное (Необходимо запаять и второй резистор на указанную площадку)
Далее запаиваем светодиод. Он выглядит следующим образом. Светодиод изначально находится в черной упаковке из которой его необходимо достать.
Внимание! На светодиоде есть маленькая зеленая точка которая НЕ должна смотреть на резистор. Так же подключение светодиода вы можете проверить с помощью мультиметра (учитывайте что от ножки чипа-контроллера идет положительный сигнал, т.е +)
Теперь нам необходимо запаять танталовый конденсатор. Внимание! Полоска конденсатора должна смотреть в сторону контактов для гребенки.
Теперь осталось запаять чип-контроллер который будет управлять модулем. Запаиваем чип следующим образом (ориентируемся на выемку под антенну) Совет! При пайке многоножковых компонентов, советую запять сначала крайнюю верхнюю а затем крайнюю нижнюю ногу. Это необходимо для того, что бы чип не двигался во время пайки.
Итак. Мы запаяли все SMD компоненты дальше по мелочи. Диод, антенна и лоток под симкарту.
При запайке диода ориентируйтесь на шелкографию.
Аналогично диоду, запаиваем лоток для сим-карты ориентируясь на шелкографию.
Завершающим штрихом запаиваем антенну и грбенку. Думаю что здесь ничего не вызовет трудностей.
GSM модуль готов! Осталось собрать этот «Сендвич» из Arduino, адаптера и GSM модуля.
Подготовка к запуску
Для начала работы с модулем, нам обязательно нужно вставить sim-карту. Для этого просто отодвигаем верхнюю панельку в право, тогда она сможет откинуться.
Для работы нам, так же понадобится блок питания. Я использовал обычный зарядник от планшета, к которому припаял нужный разъем питания. Автор рекомендует использовать 7-12ти вольтовый блок питания, поскольку иначе реле не будет работать (собственно, что у меня и случилось), однако чистый модуль, без проблем работает на 5ти вольтах.
На счет подключения, провод питания нужно заводить не в ардуино, а в шилд, а usb в ардуино.
Теперь у нас все готово к запуску, можем переходить к программной части.
Запуск
Модуль работает по UART интерфейсу, и управляется с помощью AT комманд. AT команды, представляют из себя строку символов, которая фактически является некоторой командой для модуля, например: подключится к сети, отправить смс и прочее. Список AT команд можете просмотреть здесь. Теперь, что бы протестировать работу модуля, зальем в него следующий скетч
О том как работать с GPRS модулем, вы сможете прочитать так же в других статьях на этом сайте, но в прикрепленных материалах прикладываю скетч работы данного модуля с реле на шилде (Код с подробными комментариями).
Итоги
Кому может понадобится данный модуль?
Вообще при работе с шилдом у меня сложилось следующее впечатление:
- он вряд-ли подойдет для малогабаритных устройств так, как имеет внушительные размеры.
- Однако данная плата идеально подходит для новичков, которые не хотят возится с питанием модуля и прочим, что может отбить всякое желание заниматься радиоэлектроникой. Шилд помогает запустится модулю из коробки без лишних шаманств.
- Так же, я бы порекомендовал модуль различным кружкам и сообществам, например, я был бы не против приобрести еще штук 9 подобных модулей на «Лаборатории интернета вещей Челябинска», где являюсь одним из преподавателей. Во первых, избавляет нас от надобности готовить набор деталей для занятия, а так же помогает участникам сообщества быстрее и лучше разобраться в том как это работает.
- Модуль идеально подходит для макетирования, где главным фактором является стабильность, а не габариты.
Зачем может понадобится данный модуль?
- GSM модуль может послужить некоторой системой дистанционного управления вашим устройством по средствам SMS и телефонных звонков.
- Получение некоторой информации (например местоположение автомобиля) в тех местах, где нужна стабильность передачи, а интернет — роскошь
А что нам дает то, что модуль разработан в России?
- Во первых, это 100% стабильность работы модуля так, как разработчики стараются поддерживать свой статус.
- Для модуля активно разрабатываются скетчи-примеры, которые помогут новичкам разобраться в сложных технологиях
- Модуль активно дорабатывается, и если вы нашли в нем недостатки, то всегда можете написать разработчикам.
Думаю, что все это делает покупку достаточно рациональной, тем более, что цена находится на том, же уровне, что и импортные аналоги.
В общем модуль мне понравился, к тому же, разработчики активно делают к нему различные скетчи примеры.
Кстати, как идея для работы с модулем: попробуйте сделать систему оповещения «угона» велосипеда. Удачи вам в ваших начинаниях
GSM модуль NEOWAY M590 связь с Ардуино
Здравствуйте. Однажды я уже описывал работу с GSM/GPRS-шилдом SIM900, сейчас речь пойдёт о дешёвом (порядка 150 рублей) модуле GSM NEOWAY M590.
Модуль продаётся «врассыпную» (в комплекте есть всё необходимое) , поэтому потребуются навыки пайки, впрочем, ничего сложного там нет.
В комплекте поставляется
•Две маленькие, чёрные штучки — это резисторы, полярность не имеет значения.
•Квадратная жёлтая штука — это танталовый конденсатор, полярность здесь важна, поэтому припаиваем как на картинке.
•Чёрный цилиндр — это диод (в данной конструкции отвечает за понижение напряжения), обязательно соблюдение полярности, так что делаем как на иллюстрации.
•Маленькая прозрачная штучка — это светодиод, опять же, важна полярность, на плате минус расположен ближе к букве Boot.
Остальные детали, думаю, не вызывают вопросов.
Для тех, кто планирует разводить плату под модуль самостоятельно:
Будем считать, что Вы всё правильно спаяли и у Вас получилось вот такое устройство:
Подключение и эксплуатация
NEOWAY общается с ардуиной (или иным устройством) через UART (RX, TX) с помощью AT-команд. Для того чтоб посылать команды, надо выяснить скорость UARTа.
Для выяснения скорости, нужно подключить собраный модуль к компьютеру с помощью USB-UART моста, выглядит эта штука так:
В этом случае соединяем:
USB-UART <> NEOWAY
+5 <> +5
GND <> GND
TX <> RX
RX <> TX
Контакт BOOT используется для включения/отключения модуля кратковременным (
1сек) соединением с GND, однако удобнее просто соединить его с GND и не отсоединять. Включение модуля будет происходить при подачи питания.
Если такой штуки нет, то можно превратить ардуину в USB-UART мост залив в неё вот такой скетч…
… и соединив следующим образом:
Ардуина <> NEOWAY
+5 <> +5
GND <> GND
RX <> RX
TX <> TX
Контакт BOOT соедините с GND.
О питании
Модуль может потреблять большой ток, до 2-х ампер в пике, поэтому для надёжной работы необходимо организовать дополнительный БП. В принципе заработает то он и от ардуины, но в момент регистрации в сети или приёма звонка, модуль может перегружаться.
Так же будет не лишним поставить электролитический конденсатор (
1000 микрофарад, 16 вольт) поближе к модулю.
После подачи питания, на плате должен начать м и г а т ь светодиод (примерно раз в секунду) — это говорит о том, что он готов к работе.
Если ответ — ОК, то значит модуль работает и скорость UARTа установлена 9600. Если ответа нет, то проверьте правильность соединения UARTа и дальше действуйте методом «тыка» подставляя разные скорости, пока не увидите заветное ОК.
После старта модем скажет — MODEM:STARTUP, а о готовности к работе сообщит — +PBREADY
Если модему не будет хватать питания ( большинство возникающих проблем происходят из-за этого ), то он будет постоянно рестартовать.
Ещё я столкнулся с тем, что модем работает не со всеми сим-картами.
Если всё в порядке, тогда переходим к изучению АТ-команд для общения с NEOWAY и его настройки.
АТ-команды
АТ — запрос состояния, ответ — ОК.
ATE0 — отключить «эхо».
ATE1 — включить «эхо».
Эхо — это повтор введённой команды в терминал.
ATI — название и версия модуля.
AT+getvers — версия прошивки.
AT+IPR=9600 — установка скорости UARTа (9600), возможные варианты — 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200.
AT&W0 — сохранение конфигурации настроек в EEPROM.
AT&W1 — сохранение конфигурации настроек в EEPROM.
0 для нулевого профиля, 1 для первого профиля.
AT+CPAS — проверка статуса модема, ответ — +CPAS: 0.
Статусы: 0 — готов к работе, 2 — неизвестно, 3 — входящий звонок, 4 — в режиме соединения.
AT+CPWROFF — отключение модуля.
AT+CLIP=1 — включить АОН.
AT+CLIP=0 — отключить АОН.
ATD+79634759175; — позвонить.
В терминал будут выводиться сообщения: CONNECT — соединение установлено, BUSY — занят, NO ANSWER — нет ответа, NO CARRIER — вызов сброшен.
ATH — сбросить все соединения.
ATH1 — сбросить текущие соединение.
AT+CMGF=1 — настроить на текстовый формат SMS.
AT+CMGF=0 — настроить SMS на PDU формат.
AT+CSCS=«GSM» — кодировка текста sms — ASCII. Переправьте на нормальные кавычки.
Возможны другие кодировки: HEX – шестнадцатеричными значениями, IRA – международный справочный алфавит, PCCP437 – кодировка CP437(IBM PC), 8859-1 – кодовые страницы семейства ISO 8859, UCS2 – кодировка unicode.
AT+CMGR=1 — чтение sms, где цифра — порядковый номер сообщения. То есть в данном случае читается первое сообщение, так — AT+CMGR=2 второе и т.д.
AT+CMGD=1 — удаление sms, где цифра — порядковый номер сообщения.
AT+CMGD=1,1 — удалить все прочитанные sms.
AT+CMGD=1,2 — удалить все прочитанные и отправленные sms.
AT+CMGD=1,3 — удалить все прочитанные, отправленные и неотправленные sms.
AT+CMGD=1,4 — удалить все sms.
AT+CNMI=1,2,2,1,0 — вывод принятого sms в терминал.
Здесь можно найти исчерпывающую информацию по ат-командам.
Отправка SMS будет осуществляться ардуиной.
Далее будем управлять модулем с помощью ардуины
Если на вашем модуле установлена скорость UARTа отличная от 9600, тогда дайте команду:
AT+IPR=9600
При взаимодействии с ардуиной будет использоваться SoftwareSerial, а он плохо работает на скоростях выше 9600.
Отключите девайс от питания и переключите RX и TX (остальное без изменений) модуля к ардуине следующим образом:
Ардуина <> NEOWAY
+5 <> +5
GND <> GND
D2 <> TX
D3 <> RX
Контакт BOOT соедините с GND.
Вначале загружаем в ардуину простой скетч (предварительно вписав номер, с которого будете звонить на модуль).
При старте, на каждую команду должно быть подтверждение — ОК.
При звонке со вписанного номера, будет на 5 секунд зажигаться D13, а связь обрываться. Если это будет другой номер, то ничего не произойдёт. Все действия отображаются в терминале.
Следующий скетч будет посылать SMS в ответ на наш звонок:
Вместо строки «Hello from istarik.ru» можно вписать какую-либо переменную, например температуру с датчика, а звонок заменить каким-либо событием, например, нажатием на кнопку (дописав обработчик нажатия кнопки).
С помощью этого скетча можно отправлять в модуль через терминал какие-то свои команды или АТ-команды. Ответ будет выводится в терминал.
Если ввести в терминале ат-команду — AT+CLIP=1, то включится АОН, а если ввести свою команду — callmy, тогда модуль перезвонит на вписанный в скетче телефон.
Скетч для отправки SMS-команд:
Если отправить модулю смску с текстом — led13on, то светодиод зажжётся, а если отправить текст — led13off, то погаснет.
И последний скетч, который позволяет отправив в модуль смс со специальным словом, получить в ответ смс с балансом денег на симке, которая стоит в NEOWAY
Не забудьте вписать нужный номер.
Отправьте модулю смску с текстом — money и через несколько секунд придёт ответная смс с количеством денег на балансе симки NEOWAY.
Все эксперименты проводились с оператором МТС .
Теперь можно из этих скетчей собирать то, что Вам нужно.
У NEOWAY нет микрофона, поэтому голосовую связь осуществить не получится, но само соединение устанавливается, и если принять звонок от модуля, то в динамике будет просто тишина.
При поступлении входящего вызова на контакте RING появляются импульсы с низким логическим уровнем длительностью 30 мс, в такт звуку гудка. При получении SMS сообщения, появляется однократный импульс длительностью 25-35 мс.
На этом пожалуй всё…
Вступайте в Telegram-группу Arduino
Neoway m590 подключение к ардуино
В этом проекте посмотрим на практический пример отправки http get запроса при помощи любительского GSM-модуля. Активация GPRS модуля и оправка запроса по TCP будет происходить по нажатию на кнопку.
Для чего нам нужны HTTP-запросы через GPRS?
Если вы не в курсе, то ваша жизнь в наше время не мыслима без http запросов. Вы их отсылаете каждый день по многу раз просто заходя на любой сайт со своего браузера и шарясь по разным страничкам.
Так вот, применительно к любительским микроконтроллерным проектам такие запросы тоже могут быть весьма полезными. Представьте, что у нас есть некий сайт в интернете. На этом сайте мы можем создать скрипт на языке PHP, который мы вставим в текстовый файл и назовем x.php. При обращении к этому файлу извне, наш скрипт будет выполнять операции, которые мы в него заложили.
Какие же это могут быть операции: отправка электронного письма (некоторые мобильные операторы позволяют через емейл отправлять sms); запись в текстовом файле на сервере сайта; запись в базе данных на сервере сайта; внесение изменений в запись базы данных; послать сообщение в скайп; принять и сохранить фото.
Возможность отправки емейла может быть интересна для охранной сигнализации и для долгопериодических сообщений от контроллера, например «Полей меня, с любовью твой фикус».
Запись в базе данных на сервере — это самая крутая возможность данной технологии. Таким образом мы можем собирать данные с разных, не привязанных к проводному или wifi интернету, контроллеров и сохранять их для дальнейшего отображения в виде всевозможных графиков и таблиц на сайте.
Сохранение снимков с фотокамеры полезно для охранной сигнализации и для удаленной визуальной оценки ситуации на объекте, вызывающем для нас интерес.
Как работает HTTP-запрос?
HTTP запрос работает очень просто — если отправим нашему серверу в интернете набор информации с предопределённым синтаксисом, то он пришлёт нам в ответ данные, которые мы от него запросили. Например, говорим ему: «сервер с доменом geekmatic.in.ua, пришли нам пожалуйста содержимое веб-странички RF_radio_modul». И он присылает нам гору текстовой информации, которую содержит эта страничка.
Но скачивание в контроллер какой либо веб-странички полностью нам будет интересно только разве что для парсинга данных с чужих сайтов. Таким образом мы можем например собирать данные о прогнозе погоды с погодного сайта и выводить себе на LCD-экранчик.
А самое интересное для нас в HTTP запросе кроется в возможности, при обращении к веб-страничке на нашем сервере, передать ей набор значений для переменных. Синтаксически это выглядит примерно так
Это так называемый запрос «GET». Здесь страничке sensors мы передаем значение переменной sort равное «pd.name» и переменной order равное «ASC». Таким же образом мы можем передать например значение переменной temperatura=32 или vlazhnost=60. Максимальная длина текста такого запроса ограничена настроенной на сервере цифрой — порядка нескольких тысяч символов, но через GPRS лучше передавать GET-запросы по-короче. Данный модуль способен передать 2000 байт. Для длинных запросов и для передачи файлов, в том числе и фотографий, используется POST запрос, который не сильно отличается синтаксисом. В этом проекте мы остановимся пока только на GET запросах через GPRS.
Синтаксис стандартного GET запроса выглядит так
или с передаваемыми данными
В этом проекте мы передадим HTTP GET запрос с обращением к страничке x.php на сервере geekmatic.in.ua. Моя страничка, при обращении к ней, отправит емейл на мой электронный ящик и смс на мобильный (у оператора киевстар можно активировать соответствующую платную возможность принимать емейлы на смс).
Файл x.php содержит следующий скрипт:
При удачном запросе к этому файлу, сервер вернет нам фразу «Запрос принят» и отправит два электронных письма.
Что понадобится для проекта?
Плата контроллера Arduino UNO, а так же источник питания 5 В (я использовал 5 В преобразователя USB 2.0 в TTL UART) и мини кнопка. Если запитать GPRS-модуль от вывода 5 В Arduino UNO, ему не будет хватать мощности и он будет всё время перезагружаться.
Схема подключения GSM GPRS модуля M590 к контроллеру Arduino UNO
Схема подключения показана на следующей картинке. Ваш GPRS модуль может отличаться от используемого в проекте. Поэтому найдите в документации соответсвующие обозначения выводов и соедините их по схеме.
Кнопка подключается без каких либо резисторов, так как мы её дискретный вход подтянем внутренним резистором к плюсу программным способом. Arduino UNO можно питать и от USB-кабеля и тогда провод на вывод 5V не нужен.
Не забываем подключить антенну к модулю NEOWAY M590 и вставить в него симку GSM-оператора. При чем, если вы только-что ее купили, то она требует активации работы и возможно активации GPRS-интернета. Лучше всего её вставить в смартфон, поддерживающий GPRS, и настроить связь с интернетом для этой сим-карты. Теперь её смело можно вставлять в модуль M590 — всё должно работать.
Сам модуль мы не будем все время держать в рабочем состоянии. Для экономии энергии мы его будем включать только при необходимости перед отправкой запроса на сайт.
Как происходит процесс передачи команд модулю от контроллера для организации GET-запроса по GPRS?
Все команды в модуль контроллер будет передавать по программному UART. Для этого мы соединили выводы RX и TX платы Arduino UNO с противоположными выводами TX и RX модуля M590.
GSM модуль управляется предопределённым набором так называемых АТ-команд. Самые простые из них мы упустим здесь из рассмотрения и остановимся на командах, косающихся непосредственно TCP-протокола, который и позволит нам передавать и получать данные по GPRS, используя HTTP GET запросы.
Для начала необходимо подать команду подключения к оператору GPRS по его APN
Дальше подадим команду установки соединения по протоколу PPP
Для проверки получения своего IP от оператора отправим
Дальше пишем IP сайта, который необходимо определить при помощи специальных веб-сервисов в интернете, и номер порта — 80.
Устанавливаем соединение с сервером сайта и присваиваем этому соединению номер 1 (для данного модуля одновременных соединений может быть целых два, под номером 0 или 1). Ещё сюда необходимо ввести длину передаваемого запроса в байтах
Только теперь у нас появляется возможность передать тело самого запроса
Загрузка программы в контроллер
Наша программа должна, по нажатию нами на кнопку, активировать GSM модуль подачей кратковременного сигнала на вход BOOT, подождать инициализации модуля в сети оператора, подать АТ-команды по передаче HTTP-запроса на сайт, подождать ответа от сервера и деактивировать GPRS модуль подачей сигнала на вход BOOT.
Готовый текст программы для Arduino UNO выглядит следующим образом
Загружаем данный скрипт в контроллер с поправкой на свой сайт и IP сервера.
Тестируем отправку GET запроса по GPRS
Подключаем все согласно схеме и нажимаем на кнопку. При этом наблюдаем как мигает светодиод на модеме M590 при его включении.
Если включить Монитор порта Arduino IDE, то можно наблюдать последовательность сообщений от контроллера и иметь представление о происходящем бурном общении между нашими чудо-платами.
При удачном выполнении всех директив контроллера модулем GSM, получим в Мониторе порта ответ от сервера. Если вы просто обратились к какой-нибудь веб-странице в интернете, то получите в ответ весь текст страницы в HTML-формате. Я же в результате получил ответ » Запрос принят » и тут же получил емейл со своего сайта и смс на мобилку. При повторном нажатии на кнопку запрос должен повториться.
Выводы
Я давно хотел научиться пользовать GPRS через GSM модем. Когда все наконец сложилось и получилось, я понял, что не так всё и сложно — просто никто не хочет делиться инфой и публиковать правильный синтаксис в интернете.
На практике HTTP запрос получился такой же надёжной и не менее полезной штукой чем SMS. Сразу в уме возникает множество задумок по применению этой фичи. Хотелось бы собрать GPRS GPS-трекер для автомобиля и собирать данные о его похождениях на веб-страничку.
GPRS при пересылке небольших объемов данных выходит на много дешевле чем SMS. UDP запросам и FTP я пока не вижу действенного применения. Хочется попробовать отослать фото с камеры, используя HTTP POST запрос, но возможно сразу лучше начинать играться с более продвинутыми GSM-модулями, такими как A6C.
Силиконовый браслет RFID 13,56 МГц
Силиконовый браслет для взрослых для идентификации RFIDТакие браслеты используются в спортивных клуб..
Уроки Arduino для новичков 1.2.3 Компиляция программы Arduino
Компиляция программы ArduinoНа этом уроке мы поговорим о компиляции программы в Arduino IDE: как..
Датчик света
Интеллектуальный дискретный датчик света. Рабочее напряжение питания 4. 6 В постоянного тока. Чувст..
Электро насос диафрагменный 12 В 2 л/мин
Насос работает на основе диафрагмы и может применяться для перекачки пищевых продуктовРасход жидкост..
Светодиодная лента адресная WS2812B 1м 30led
Трехцветная светодиодная адресная лента на основе адресных светодиодов WS2812B 30 светодиодо..
Оживляем GSM модуль Neoway m590 2
Это статья о так называемой GSM-розетке, т.е. об источнике питания, который можно включать дистанционно (звонком с сотового телефона). Для этого необходима кучка очень недорогих элементов:
- Плата Ардуино Nano (около $2);
- Набор для сборки GSM модуля Neoway m590(около $2);
- Реле (около $1);
- Макетная плата (для удобства, но можно и обойтись без нее) и проводники для нее ;
- Блок питания для макетной платы (3.3-5В) с током, желательно, не менее 2А. У меня использовался БП на 0,7А, но работало всё. В качестве БП можно приспособить б/у зарядку от смартфона с разъемом под USB кабель (на 2А около 200 р.).
В Китае были заказаны GSM модули Neoway m590 в количестве трех штук (у разных продавцов). Это были наборы для самостоятельной сборки:
Подробности пайки модуля выложены тут . От себя добавлю, что полярность светодиода вот так определяется:
Полярность LED smd
Соответственно светодиод располагают плюсом к резистору. Если не понятно, можно не припаивать сразу, на работу модуля это не влияет.
Выводы модема:
I — При поступлении входящего вызова на линии появляются импульсы с низким логическим уровнем длительностью 30 мс
T — TX
R — RX
U — + напряжение питания 3,3 – 4,5В
K — Включение модуля при соединении с землей
G — Земля
Питание на модуль подавалось с компьютерного БП 5В (впоследствии был приобретен такой модуль питания). Пины G и K модуля должны быть замкнуты ( Например джампером со старой материнки, или простой перемычкой из олова) для включения. Работоспособность определялась по доступности симки из сети ( шли гудки вызова ). Один модуль не отвечал. Пришлось пропаять еще раз заводские пины. Связка модуля с ардуино пробовалась различная. Модули на команды не отвечали. Соединение у ардуино GND и Reset (т.е так ардуино должно было выступить в роли простого конвертера USB-COM ) — также не привело к желаемому результату. Модуль был глух и нем. Пошел обходным путем.
Для подключения к ПК напрямую был приобретен на Али TTL конвертер.
Модуль m590 | TTL конвертер |
TX | RX |
RX | TX |
GND | GND |
Перемычка на конвертере была установлена VCC — 3V3. Вывод 5В — не задействован. Разъем USB конвертера был подключен к ПК. Вставлять симку в модуль не обязательно.
После подключения данной схемы к питанию и ПК, была открыта прога Terminal 1.91b ^
После выбора com-порта (у меня 18), и нажатия кнопки Connect была опробована команда AT. Ответ был в виде кракозябры. Поиграл со скоростями, и на 115200 ответы стали корректными — ок.
Далее выбрал кодировку текста командой AT+CSCS= «GSM». Ответ «ок». Если ответ будет «Error», то команда написана неверно (помогает исправление кавычек). Поменял скорость командой AT+IPR=9600 (9600 Бит/сек). Данная скорость автоматически сохраняется после отключения питания. Переконнектился и изменил скорость со 115200 на 9600.
После настройки модуль был переподключен к ардуине UNO. Сим карта должна быть вставлена в модуль.
Соответственно были задействованы выводы:
m590 | Arduino UNO | На реле/светодиод |
RX | 8 | |
TX | 7 | |
GND | GND | GND |
13 | IN | |
+5 | VCC |
Земля присоединена на фото к пину модуля «К» т.к «К» и «G» спаяны вместе (это нужно для запуска модуля).
Был залит Скетч:
// реагируем на звонок
SoftwareSerial gsm(7, 8); // TX, RX
void setup() <
Serial.begin(9600);
gsm.begin(9600);
if(gsm.find(«RING»)) < // если нашли RING
Serial.println(«RING!»);
gsm.println(«AT+CLIP=1»); // включаем АОН,
while(1) < // в цикле
if (gsm.find(«79275213***»)) < // ищем номер телефона с которого звоним на модуль, если нашли
digitalWrite(13, !digitalRead(13)); // инвертируем 13 выход. вкл/выкл светодиод или реле
Serial.println(«Позвонили. »); // выдаем сообщение
break; // и выходим
>
else < // иначе
gsm.println(«AT+CPAS»); // спрашиваем состояние модема
delay(100);
if (gsm.find(«+CPAS: 0»)) break; // и если он в «готовности», выходим из цикла
> // если звонок в процессе, возвращает +CPAS: 3
> // и крутимся дальше
gsm.println(«AT+CLIP=0»); // выключаем АОН,
delay(100);
gsm.println(«ATH0»); // сбрасываем вызов
При звонке на номер симки (Теле-2) в модуле происходило инвертирование 13 пина ардуины и подключенный к нему светодиод загорался/выключался.
- // звоним по событию
- #include
- SoftwareSerial gsm ( 7 , 8 ); // TX,RX
- void setup () <
- Serial . begin ( 9600 );
- gsm . begin ( 9600 );
- pinMode ( 6 , INPUT_PULLUP );
- >
- void loop () <
- if (! digitalRead ( 6 )) < // если нажали кнопку
- while ( 1 ) < // проверяем готовность модема
- gsm . println ( «AT+CPAS» );
- if ( gsm . find ( «0» )) break ;
- delay ( 100 );
- >
- gsm . println ( «ATD+7927*******;» ); // звоним по указанному номеру
- delay ( 100 );
- if ( gsm . find ( «OK» )) Serial . println ( «OK!» );
- else Serial . println ( «error» );
- >
- >
GSM модуль NEOWAY M590 – описание и команды управления
GSM модуль представляет собой беспроводное коммуникационное устройство (модем) для приема/передачи данных в сетях мобильной связи. В любом мобильном телефоне установлен такой модуль, благодаря которому возможно голосовое общение, прием сообщений, выход в интернет. В этой статье я расскажу про GSM/GPRS модуль NEOWAY M590, приведу описание и назначение основных команд.
Данный модуль, смонтированный на плате с минимальной обвязкой (а также в виде конструктора) можно приобрести в Китае, где он позиционируется как модуль под Arduino.
В китайском интернет магазине можно найти множество предложений с различными ценами на данный модуль, я например заказывал модуль здесь .
На следующей картинке представлена схема с рекомендуемой обвязкой модуля:
Модуль питается напряжением 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 модули управляются специальными AT командами, которые изложены в нескольких стандартах, таких как GSM 03.40, GSM 07.07 и т.д.
Любая команда начинается с символов AT, после которых следует название команды, параметр команды, и завершающий символ – возврат каретки (шестнадцатеричное значение 0x0D, в языках программирования “r”), этот символ должен присутствовать в конце каждой команды. Пример:
AT+IPR=9600 , где +IPR – название команды (настройки скорости порта UART), 9600 – значение скорости порта которое передается модулю.
Для большинства команд можно запросить ее текущие и возможные варианты параметров:
Команда AT+IPR? , запрашивает текущее значение скорости порта.
Команда AT+IPR=? , запрашивает возможные варианты значений для скорости порта.
Если в конце команды опустить символ , то модуль не будет воспринимать команды. Для ввода этого символа в терминальной программе, необходимо указать его шестнадцатеричное значение из таблицы ASCII – $0D, символ $ указывает программе, что далее идет число шестнадцатеричном формате. В итоге команда в терминале будет выглядеть следующим образом: AT+IPR=9600$0D.
В GSM модемах имеется специальный режим, называемый “эхом”, это повторение символов получаемых от управляющего устройства. То есть, модуль возвращает полученную команду, а затем выдает ответ на эту команду. Если “эхо” отключено модем выдает только ответ. В моем случае режим “эха” в модуле был включен по умолчанию, выше на скриншоте программы в окне приема сообщений можно увидеть возвращенные команды.
Каждое ответное сообщение от модуля начинается и заканчивается символами и , где – символ перевода строки (шестнадцатеричное значение 0x0A, в языках программирования “n”). Пример ответа на команду AT+IPR?:
+IPR: 9600 OK
Эквивалентом комбинации символов является действие клавиши Enter, то есть переход в начало следующей строки. Поэтому в терминале структура ответа выглядит следующем образом:
На этой строке находилась позиция курсора до получения ответа
+IPR: 9600
Здесь пустая строка
OK
Здесь находится текущая позиция курсора после получения ответа
На вышеприведенном скриншоте терминальной программы можно просмотреть структуру ответов модуля.
Ниже представлен список некоторых распространенных команд, используемых для разработки устройств на базе GSM модуля. Самая простая команда – AT, в ответ на которую модуль выдаст сообщение OK.