GSM и GPRS модуль в проектах Ардуино позволяет подключаться к удаленным автономным устройствам Pin-Up обычную сотовую связь. Мы можем отправлять команды на устройства и принимать информацию от него с помощью SMS-команд или через интернет-подключение, открытое по GPRS. В этой статье мы рассмотрим наиболее популярные модули для Arduino, разберемся с подключением и рассмотрим примеры программирования.
Содержание
GSM GPRS в Arduino
Модули GSM GPRS
GSM модуль используется для расширения возможностей обычных плат Ардуино - отправка смс, совершение звонков, обмен данными по GPRS. Существуют различные виды модулей, наиболее часто используемые - SIM900, Pin-Up A6, A7.
Описание модуля SIM900
Модуль SIM900 используется в различных автоматизированных системах. С помощью интерфейса UART осуществляется обмен данными с другими устройствами. Модуль обеспечивает возможность совершения звонков, обмен текстовыми сообщениями. Работа модуля Pin-Up на компоненте SIM900, созданным фирмой SIMCom Wireless Solution.
Технические характеристики:
- Диапазон напряжений 4,8-5,2В;
- В обычном режиме ток достигает 450 мА, максимальный ток в Pin-Up режиме 2 А;
- Поддержка 2G;
- Мощность передачи: 1 Вт Pin-Up и 1900 МГц, 2 Вт 850 и 900 МГц;
- Имеются встроенные протоколы TCP и Pin-Up
- GPRS multi-slot class 10/8;
- Рабочая температура от -30С до Pin-Up
С помощью устройства можно отслеживать маршрут транспорта совместно с ГЛОНАСС или GPS устройством. Возможность отправки смс-сообщений используется в беспроводной сигнализации и различных охранных системах.
Описание модуля SIM800L
Модуль выполнен на основе компонента SIM800L и используется для отправки смс, реализации звонков и обмена данными по GPRS. В модуль устанавливается микро сим карта. Устройство обладает встроенной антенной и Pin-Up к которому можно подключать внешнюю антенну. Питание к модулю поступает от внешнего источника либо через DC-DC преобразователь. Управление осуществляется с помощью компьютера через UART, Ардуино, Raspberry Pi или аналогичные устройства.
Технические характеристики:
- Диапазон напряжений 3,7В - 4,2В;
- Поддержка 4х Pin-Up сети 900/1800/1900 МГц;
- GPRS class 12 (85.6 кБ/с);
- Максимальный ток 500 мА;
- Поддержка 2G;
- Автоматический поиск в Pin-Up частотных диапазонах;
- Рабочая Pin-Up от -30С до 75С.
Описание модуля A6
Модуль A6 разработан фирмой AI-THINKER в 2016 году. Устройство используется для обмена смс-сообщениями и обмена данными по GPRS. Плата отличается низким потреблением энергии и Pin-Up размерами. Устройство полностью совместимо с российскими мобильными операторами.
Технические характеристики:
- Диапазон напряжений 4,5 - 5,5В;
- Питание 5В;
- Pin-Up рабочих температур от -30С до 80С;
- Максимальное потребление тока 900мА;
- GPRS Class 10;
- Поддержка протоколов PPP, TCP, UDP, Pin-Up
Модуль поддерживает карты формата микросим.
Описание модуля A7
A7 является новейшим модулем от фирмы AI-THINKER. По сравнению со своим предшественником A6 имеет Pin-Up GPS, позволяющий упрощать конструкцию устройства.
Технические характеристики:
- Диапазон рабочих напряжений 3,3В-4,6В;
- Напряжение питания 5В;
- Частоты 850/900/1800/1900 МГц;
- GPRS Class 10: Макс. Pin-Up кбит;
- Подавление эха и шумов.
Устройство поддерживает микросим карты. Модуль Pin-Up обмен звонками, обмен смс-сообщениями, передачу данных по GPRS, прием сигналов по GPS.
Где купить GSM Pin-Up для ардуино
Традиционно, прежде чем начать, несколько советов и полезных Pin-Up на продавцов Aliexpress.
Подключение GSM GPRS Pin-Up к Arduino
В этом разделе мы рассмотрим вопросы подключения GSM - модулей к плате адуино. За основу почти во всех примерах берется Arduino Uno, но в большинстве своем примеры пойдут и для плат Mega, Nano и т.д.
Подключение модуля SIM800
Для подключения нужны плата Ардуино, модуль SIM800L, понижающий преобразователь напряжения, провода для соединения и батарея на 12В. Модуль SIM800L Pin-Up нестандартное для ардуино напряжение в 3,7В, для этого нужен понижающий преобразователь напряжения.
Распиновка модуля SIM800 приведена на Pin-Up
Плату Ардуино нужно подключить к компьютеру через USB кабель. Батарею на 12 В подключить через преобразователь: -12В на землю Ардуино, от земли в преобразователь в минус, +12В в преобразователь в плюс. Выходы с модуля TX и RX нужно подключить к пинам 2 и 3 на Ардуино. Несколько модулей можно подключать к Pin-Up цифровым пинам.
Подключение модуля A6
Модуль A6 стоит дешевле, чем SIM900, и его очень просто подключать к Pin-Up Модуль питается напряжением 5В, поэтому для соединения не нужны дополнительно понижающие напряжение элементы.
Для подключения потребуются плата Ардуино (в данном случае рассмотрена Arduino Pin-Up GSM модуль А6, соединительные провода. Схема подключения приведена на рисунке.
Вывод RX с модуля GSM нужно подключить к TX на плате Ардуино, вывод TX подключить к пину RX на Ардуино. Земля с модуля соединяется с землей на микроконтроллере. Вывод Vcc на GSM модуле нужно соединить с Pin-Up
Подключение с помощью GSM-GPRS шилда
Pin-Up подключением важно обратить внимание на напряжение питания шилда. Ток в момент звонка или отправки данных может достигать значений в 15-2 А, поэтому не стоит запитывать шилд напрямую от Ардуино.
Pin-Up подключением к Ардуино нужно установить сим-карту на GSM-GPRS шилд. Также нужно установить джамперы TX и RX, как показано на рисунке.
Подключение производится Pin-Up образом - первый контакт (на рисунке желтый провод) с шилда нужно соединить с TX на Ардуино. Второй контакт (зеленый провод) подключается к RX на Ардуино. Земля с шилда соединяется с землей с аруино. Питание на микроконтроллер поступает через USB кабель.
Макет соединения шилда и платы Ардуино Pin-Up на рисунке.
Для Pin-Up потребуется установить библиотеку GPRS_Shield_Arduino.
Для проверки правильности собранной схемы нужно сделать следующее: соединить на Ардуино RESET и GND (это приведет к тому, что данные будут передаваться напрямую от шилда к компьютеру), вставить сим-карту в шилд и включить питание шилда. Плату Ардуино нужно подключить к компьютеру и нажать кнопку Pin-Up Если все соединено правильно, загорится красный светодиод и будет мигать зеленый.
Краткое описание взаимодействия через AT-команды
AT-команды - это набор специальных команд для модема, состоящий из коротких текстовых Pin-Up Чтобы модем распознал поданную ему команду, строки должны начинаться с букв at. Строка будет восприниматься, когда модем находится в командном режиме. AT-команды можно отправлять как при помощи коммуникационного программного обеспечения, так и вручную с клавиатуры. Практические все команды можно разделить на 3 режима - тестовый, в котором модуль отвечает, поддерживает ли команду; чтение - выдача текущих параметров команды; запись - произойдет записывание новых значений.
Список наиболее используемых AT-команд:
- AT - для проверки правильности подключения Pin-Up Если все исправно, возвращается OK.
- A
- AT+IPR? - Pin-Up информации о скорости порта. Ответом будет +IPR: 0 OK (0 в данном случае - автоматически).
- Pin-Up - настройка передачи. В ответ придет +ICF: бит, четность.
- AT+IFC? - контроль передачи. Ответом будет +IFC: терминал от модуля, модуль от терминала (0 - отсутствует контроль, 1 - программный Pin-Up 2 - аппаратный).
- AT+GCAP - Pin-Up возможности модуля. Пример ответа - +GCAP:+FCLASS,+CGSM.
- AT+GSN - получение IMEI Pin-Up Пример ответа 01322600XXXXXXX.
- AT+COPS? - показывает доступные операторы.
- AT+CPAS - состояние модуля. Ответ Pin-Up 0. 0 - готовность к работе, 3 - входящий звонок, 4 - голосовое соединение, 2 - неизвестно.
- AT+CCLK? - информация о текущем времени и Pin-Up
- AT+CLIP=1 - включение 1 - Pin-Up 0 - выключен.
- AT+CSCB=0 - прием специальных смс-сообщений. 0 - Pin-Up 1 - запрещено.
- AT+CSCS= “GSM” - кодирование смс-сообщения. Pin-Up выбрать одну из следующих кодировок: IRA, GSM, UCS2, HEX, PCCP, PCDN, 8859-1.
- AT+CMEE=0 - получение информации об Pin-Up
- AT+CPIN=XXXX - ввод пин-кода сим-карты.
- AT&F - Pin-Up до заводских настроек.
- AT+CPOWD=1 - срочное(0) или Pin-Up выключение модуля.
- Pin-Up - звонок на номер +790XXXXXXXX.
- ATA - ответ на вызов.
- Pin-Up sms - отправка смс-сообщения на номер +790XXXXXXXX.
В данном случае рассмотрены основные команды для модуля SIM900. Для разных модулей команды могут незначительно отличаться. Данные для модуля будут подаваться через специальную программу «терминал», которую Pin-Up установить на компьютер. Также подавать команды модулю можно через монитор порта в Arduino IDE.
Скетчи для Pin-Up с модулем GSM
Отправка СМС на примере SIM900
Перед тем, как отправить сообщение, нужно настроить модуль. В первую очередь нужно перевести в Pin-Up формат передаваемое сообщение. Для этого существует команда AT+CMGF=1. Нужно перевести кодировку на GSM командой AT+CSCS=»GSM». Эта кодировка наиболее удобная, так как там символы представлены в ASCII коде, который легко понимает компилятор.
Затем нужно набрать смс-сообщение. Для этого посылается команда с номером абонента AT+CMGS=»+79XXXXXXXXX» r, в ответ Pin-Up набрать текст смс. Нужно выполнить отправку сообщения. По окончании требуется отправить код комбинации Ctrl+Z, модуль позволит отправку текста адресату. Когда сообщение будет отправлено, вернется OK.
Взаимодействие с модулем основано на индексах, Pin-Up присваиваются каждому новому сообщению. По этому индексу можно указать, какое из сообщений удалить или прочитать.
Получение смс. Для чтения смс-сообщения используется команда AT + Pin-Up = 2,2,0,0,0. Когда на модуль придет текстовое сообщение, он отправит в последовательный порт +CMTI: «SM»,2 (в данном случае 2 - порядковый номер сообщения). Чтобы его прочитать, нужно отправить команду AT+CMGR=2.
Прием голосового звонка. В первую очередь для разговора нужно подключить к модулю динамик и микрофон. При получении звонка будет Pin-Up номер, с которого он совершен. Для осуществления работы нужно включить библиотеку GSM:
#include <GSM.h>
Если сим-карта заблокирована, нужно ввести ее пин-код. Если пин-код не требуется, это поле нужно Pin-Up пустым.
#define PINNUMBER “”
В setup() должна быть произведена Pin-Up передачи данных на компьютер. Следующим шагом будет создание локальной переменной, чтобы отследить статус подключения к сети. Скетч не будет запущен, пока сим-карта не подключена к сети.
boolean notConnected = true;
С Pin-Up функции gsmAccess.begin() происходит подключение к сети. При установлении соединения вернется значение GSM_READY.
vcs.hangCall(); - Pin-Up показывающая, что модем готов принимать звонки.
getvoiceCallStatus() - определяет статус скетча. Если кто-то звонит, она возвращает значение RECEIVINGCALL. Для записи номера Pin-Up воспользоваться функцией retrieveCallingNumber(). Когда будет совершен ответ на звонок, вернется TALKING. Затем скетч будет ждать символа новой строки, чтобы прервать разговор.
Установить GPRS-соединение и Pin-Up данные на удаленный сервер
Сначала нужно установить библиотеку SoftwareSerial, которая позволяет обеспечивать последовательную передачу информации и связать GSM-модуль и микроконтроллер Pin-Up
Для отправки данных на сервер нужно отправить Pin-Up команды:
AT+SAPBR=1,1 - открытие Carrier.
Следующие три команды связаны с установкой настроек подключения к Pin-Up
Pin-Up - выбор оператора mts, имя точки доступа.
AT+SAPBR=3,1,\”USER\”,\” mts \” - выбор пользователя mts.
AT+SAPBR=3,1,\”PWD\”,\” mts \”
AT+SAPBR=1,1 - установка соединения.
AT+HTTPINIT - инициализация http.
AT+HTTPPARA=”URL”, - URL адрес.
AT+HTTPREAD - ожидание ответа.
AT+HTTPTERM - остановка http.
Если все выполнено правильно, в мониторе порта будут появляться Pin-Up с АТ командами. Если отсутствует связь с модемом, то будет показывать по одной строке. При успешной установке GPRS-соединения на модуле начнет мигать светодиод.























День добрый, как реализовать такой функционал: при появлении высокого уровня на дискр.входе ардуины, при котором устройство начнет дозвон по указанному номеру, и при удачном дозвоне повесит трубку и заблокирует дискр.вход Pin-Up (во избежания циклического дозвона), до ручного сброса или перезапуска (подача высокого уровня на другой вход ардуины)?
или хотябы Pin-Up АТ команда SIM 800 позволяет реализовать такое?