При помощи Arduino GSM модулей можно подключатся к удаленным устройства использую сотовую связь. Передача данных или команд осуществляется при помощи SMS команд или же через подключение через интернет, которое открыто через GPRS.

GSM модуль используется совместно с Arduino и расширяют его функционал, такой как отправка SMS, соединение и передача данных через GRPS, совершение звонков. Наиболее популярные и часто используемые модули SIM900, SIM800L, A6, A7.

GSM модуль SIM900

Этот модуль нашел свое применение в различных автоматизированных системах. Обмен данным с устройствами происходит по интерфейсу UART. Также при его помощи можно делать звонки и обмениваться текстовыми сообщениями. Отправка SMS может использоваться в охранных системах. Также на нем можно отслеживать маршрут совместно с Глонасс или GPS устройством.

Внешний вид модуля SIM900

Модуль работает на микросхеме SIM900 производимой SIMCom Wireless Solution.

Характеристики модуля SIM900

  • напряжение питания 4,8-5,2 В;
  • потребляемы ток в рабочем режиме 450 мА, максимальный ток в импульсном режиме 2 А;
  • поддержка 2G;
  • мощность передачи: 1 Вт 1800 и 1900 МГц, 2 Вт 850 и 900 МГц;
  • имеются встроенные протоколы TCP и UDP;
  • GPRS multi-slot class 10/8;
  • рабочая температура от -30 С до 75 С.

GSM модуль SIM800L

Модуль сделан на базе компонента SIM800L и также предназначен для отправки SMS, совершения звонков и обмена какими либо данными при помощи GPRS. В модуль можно установить микро сим карту. В устройстве есть встроенная антенна и разъем, к этому  разъему можно прицепить антенну. Запитать модуль можно от внешнего источника или через DC-DC преобразователь. Управлять модулем можно через UART , подавая команды с компьютера, Arduino, Raspberry Pi или аналогичные устройства.

Технические характеристики:

  • напряжение питания 3,7В – 4,2В;
  • поддержка 4х диапазонной сети 900/1800/1900 МГц;
  • GPRS class 12 (85.6 кБ/с);
  • максимальный ток 500 мА;
  • поддержка 2G;
  • автоматический поиск в четырех частотных диапазонах;
  • рабочая температура от –30 С до 75 С.

GSM модуль A6

Модуль A6 создан фирмой AI-THINKER в 2016 году. Устройство предназначено для обмена SMS-сообщениями и обмена данными по GPRS. Плата небольшое энергопотребление и небольшими размерами. Модуль совместим с операторами российских сетей. В модуль есть поддержка карт формата микросим.

Технические характеристики:

  • напряжение питания 4,5 – 5,5В;
  • диапазон рабочих температур от -30 С до 80 С;
  • максимальный ток потребление 900мА;
  • GPRS Class 10;
  • поддержка протоколов PPP, TCP, UDP, MUX.

GSM модуль A7

A7 является новейшим модулем от фирмы AI-THINKER. В отличии от A6 имеет встроенный GPS, который упрощает конструкцию. Модуль  также поддерживает микросим карты. Есть функция передачи данных по GPRS, прием сигналов по GPS.

Технические характеристики:

  • напряжение питания 3,3В-4,6В;
  • частоты 850/900/1800/1900 МГц;
  • GPRS Class 10: Макс. 85.6 кбит;
  • подавление эха и шумов.

Подключение GSM модулей к Arduino

Подключение модуля SIM800

Итак для того чтобы подключить модуль SIM800L к Arduino. Понадобится понижающий преобразователь напряжения, который обеспечит нас напряжением в 3.7 В.

Распиновка выводов модуля SIM800

Распиновка модуля SIM800

 

Схема подключения модуля SIM800 к Arduino Uno

Схема подключения модуля SIM800 к Arduino Uno

 

Схема подключение модуля A6 к Arduino Uno

Модуль A6 стоит несколько дешевле, чем SIM900, а подключать к Arduino его гораздо проще. Модуль запитывается от напряжением 5 В, поэтому не нужно всякие там преобразователи, подаем 5 В и все.

Схема подключение модуля A6 к Arduino Uno

 

Ножку RX с модуля подключается к TX на Arduino,а ножка TX подключается к пину RX на Ardiono. GND с модуля соединяется с GND на Arduino. Вывод VCC на модуле соединяется с PWR_KEY.

Схема подключение модуля  SIM900 к Arduino

Перед тем как подключить нужно обратить внимание на напряжение питания шилда. Ток можеть быть 15-2 А в процессе звонка или отправки, по этой причине не нужно подключать шилд напрямую от Ардуино.

Перед тем как подключить Arduino, cначала нужно нужно установить сим-карту на GSM-GPRS шилд и выставить джамперы TX и RX, как показано на рисунке.

Подключение модуля  SIM900 к Arduino

Подключать нужно по следующей схеме – первый провод (желтый) с шилда подключается к TX на Ардуино. Второй провод (зеленый провод) подключается к RX на Ардуино. GND с шилда соединяется с GND Arduino. Напряжение на микроконтроллер поступает через USB кабель либо любой внешний источник питания главное чтобы было 5 В.

Схема подключения модуля  SIM900 к Arduino

Схема подключения модуля  SIM900 к Arduino

 

 

Для того чтобы проверить корректность собранной схемы нужно сделать сделать следующие шаги:

  • соединить на Arduino выводы RESET и GND (в результате данные будут передаваться напрямую от шилда к компьютеру);
  • вставить сим-карту в шилд и подать питание на шилд;
  • плату Arduino нужно подключить к компьютеру и нажать кнопку включения.

Если все шаги выполнены правильно, загорится красный светодиод а зеленый начнет мигать.

AT-команды взаимодействия с модулем GSM

Для начала работы с GSM модулями нужно установить библиотеку GPRS_Shield_Arduino

AT-команды – это специальные команды для модема, которые состоят из коротких текстовых строк. Для того чтобы модем распознал отправленную ему команду, строка обязательно должна начинаться с символов at.  Восприниматься строка будет только тогда, когда GSM модем , будет пребывать в командном режиме.

Отправку AT-команд можно осуществлять с помощью коммуникационного программного обеспечения или же вручную с клавиатуры.

Большинство команд можно разделить на 3 режима:

  • тестовый, в котором модуль отвечает, поддерживает ли команду;
  • чтение – выдача текущих параметров команды;
  • запись – произойдет записывание новых значений.

Список наиболее используемых AT-команд:

  • AT – проверка правильности подключения GSM модуля. Если все исправно, то возвращается OK;
  • A/ – повтор предыдущей команды;
  • AT+IPR? – получение информации о скорости порта. Ответом будет +IPR: 0 OK (0 в данном случае – автоматически);
  • AT+ICF? – настройка передачи. В ответ придет +ICF: бит, четность;
  • AT+IFC? – контроль передачи. Ответом будет +IFC: терминал от модуля, модуль от терминала (0 – отсутствует контроль, 1 – программный контроль, 2 – аппаратный);
  • AT+GCAP – показывает возможности модуля. Пример ответа – +GCAP:+FCLASS,+CGSM;
  • AT+GSN – получение IMEI модуля. Пример ответа 01322600XXXXXXX;
  • AT+COPS? – показывает доступные операторы;
  • AT+CPAS – состояние модуля. Ответ +CPAS: 0. 0 – готовность к работе, 3 – входящий звонок, 4 – голосовое соединение, 2 – неизвестно;
  • AT+CCLK? – информация о текущем времени и дате;
  • AT+CLIP=1 – включение/выключение АОН. 1 – включен, 0 – выключен;
  • AT+CSCB=0 – прием специальных смс-сообщений. 0 – разрешено, 1 – запрещено;
  • AT+CSCS= “GSM” – кодирование смс-сообщения. Можно выбрать одну из следующих кодировок: IRA, GSM, UCS2, HEX, PCCP, PCDN, 8859-1;
  • AT+CMEE=0 – получение информации об ошибке;
  • AT+CPIN=XXXX – ввод пин-кода сим-карты;
  • AT&F – сброс до заводских настроек;
  • AT+CPOWD=1 – срочное(0) или нормальное(1) выключение модуля;
  • ATD+790XXXXXXXX – звонок на номер +790XXXXXXXX;
  • ATA – ответ на вызов;
  • AT+CMGS=»”+790XXXXXXXX”» Test sms – отправка смс-сообщения на номер +790XXXXXXXX;

В данном случае представлены основные команды для модуля SIM900. У других модулей команды незначительно отличаются.

Данные в модуль отправляются через специальную программу «терминал», которая устанавливается на ПК. Подавать команды модулю можно также через мониторинг порта в Arduino IDE.

Отправка AT команд в GSM-модуль через командную строку

Отправка SMS-сообщений AT командами SIM900

В примере используются команды стандарта GSM 07.05.

Перед тем как начать отправку сообщения необходимо провести настройку модуля.

Для начала нужно перевести формат передаваемого модулю текста сообщения в текстовый режим командой «AT+CMGF=1\\r».

По умолчанию используется режим PDU, а сообщения передаются в HEX-виде, а это не очень удобно.

Нужно перевести кодировку на GSM при помощи команды «AT+CSCS=»GSM»\\r»

Кодировка определяет  вид передаваемого номера телефонов, текста сообщений и USSD-запросы.

Самой удобный является «GSM», где символы представлены в ASCII кодах и их без труда понимает компилятор.

Но есть минусы будет доступна только латиница.

Для кириллицы необходимо использовать режим «UCS2» Unicode. Далее пока рассмотрим вариант с кириллицей

Отправка SMS сообщения

  1. Отправляем команду «AT+CMGS=»+79XXXXXXXXX»\\r», ответом будет приглашение набрать текст сообщения — символ ‘>’.
  2. Отправляем текст. По окончании нужно отправить код комбинации клавиш Ctrl+Z (код 0x1A), только тогда модуль поймет, что текст набран и можно посылать сообщение адресату.
  3. Получаем «OK» — поздравляю, сообщение улетело.

Прием голосового звонка

Для начала нужно подсоединить к модулю динамик и микрофон. При получении звонка отобразиться номер, с которого он совершен. Для начала работы необходимо подцепить библиотеку GSM:

#include <GSM.h>

Если сим-карта заблокирована, то необходимо ввести ее пин-код. Если пин-код не требуется, это поле нужно оставить пустым.

#define PINNUMBER “”

В setup() должна быть произведена инициализация передачи данных на компьютер. Следующим шагом будет создание локальной переменной, чтобы отследить статус подключения к сети. Скетч не будет запущен, пока сим-карта не подключена к сети.

boolean notConnected = true;

С помощью функции gsmAccess.begin() происходит подключение к сети. При установлении соединения вернется значение GSM_READY.

vcs.hangCall(); – функция, показывающая, что модем готов принимать звонки.

getvoiceCallStatus() – определяет статус скетча. Если кто-то звонит, она возвращает значение RECEIVINGCALL. Для записи номера нужно воспользоваться функцией retrieveCallingNumber(). Когда будет совершен ответ на звонок, вернется TALKING. Затем скетч будет ждать символа новой строки, чтобы прервать разговор.

 

Похожие записи

Цифровые игральные кости на Arduino

На Arduino можно довольно интересный проект начального уровня - цифровые игральные кости. При помощи которых можно генерировать случайное число от 1 до 6. ...

Системы заземления TN-C, TN-S, TNC-S, TT, IT

Системы заземления, используемые для выполнения заземления. Среди критериев, способствующих обеспечению защиты от такого процесса, как поражение электричеством, особого внимания...

Маркировки кабеля европейских производителей

В Европе для маркировки кабеля используются свои стандарты и нормативные документы. Чтобы расшифровать маркировку импортного кабеля, необходимо знать, что обозначает конкретная...

Подключение сервопривода к Arduino

Сервопривод (servo) - устройство с электрическим мотором, которому можно задать определенный угол поворота и зафиксировать в определенном положении. Подключение сервопривода к Arduino очень...

Схема полицейской мигалки на микроконтроллере

Представленная схема полицейской мигалки на микроконтроллере и светодиодах может работать в 16 различных режимах. Режим выбирается при помощи одной кнопки, и собрана на микроконтроллере...

Функция setup() вызывается первой когда запускается скетч. Эта функция необходима для инициализации переменных, настройки режимов работы портов (выводов), для старта каких либо функций...

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