Библиотека GSM

Библиотека GSM появилась в Arduino IDE, начиная с версии 1.0.4.

С помощью установленной платы расширения Arduino GSM, данная библиотека позволяет осуществлять большинство основных операций, совершаемых GSM-телефоном: работать с голосовыми вызовами, отправлять и получать SMS, а также подключаться к сети Интернет через GPRS.

Плата расширения GSM содержит модем, который транслирует в GSM-сеть данные, поступающие к нему через последовательный порт. Все операции выполняются модемом в виде последовательности AT-команд. Для улучшения читабельности кода библиотека абстрагирует низкоуровневые функции, работающие с модемом и SIM-картой. GSM-модем взаимодействует с Ардуино по последовательному интерфейсу с использованием библиотеки SoftwareSerial.

Каждая выполняемая модемом команда, как правило, является фрагментом последовательности команд, направленных на выполнение какой-либо функции. Библиотека GSM спроектирована с учетом этого, и способна принимать/возвращать информацию на любом этапе выполнения последовательности команд.

Структура библиотеки

Функциональность библиотеки GSM достаточно широка, поэтому она объединяет в себе несколько различных классов:

  • Класс GSM отвечает за управление радио-модемом. Этот класс содержит низкоуровневые функции для подключения и регистрации платы расширения в GSM-сети. Экземпляр этого класса должен быть объявлен во всех программах, использующих GSM/GPRS.
  • Класс GSMVoiceCall отвечает за голосовые вызовы.
  • Класс GSM_SMS отвечает за отправку и получение SMS-сообщений.
  • Класс GPRS отвечает за подключение к Интернету.
  • В классе GSMClient реализован клиент, подобный клиенту в библиотеках Ethernet и WiFi.
  • В классе GSMServer реализован сервер, подобный серверу в библиотеках Ethernet и WiFi. Примечание: некоторые провайдеры/операторы блокируют входящие соединения из глобальной Интернет-сети, разрешая только внутрисетевые соединения. Уточните у своего оператора действующие ограничения на передачу данных.
  • Множество вспомогательных классов, таких как GSMScanner, GSMModem и др.

Совместимость с библиотекой Ethernet

Разработчиками приложены все усилия для того, чтобы библиотека GSM была максимально совместима с библиотекой Ethernet. Благодаря этому, перенос кода, использующего библиотеки Ethernet или WiFi, на Ардуино с GSM-платой расширения должен быть довольно простым. Тем не менее, для запуска программ, написанных для Ethernet, на GSM-плате расширения недостаточно просто скопировать код. Для этого могут потребоваться незначительные изменения в программе, такие, как подключение библиотек GSM и GPRS, получение от провайдера настроек сети и т.д.

Примеры

Все примеры работы с платой расширения GSM можно условно разбить на две группы. Первая группа - это примеры, демонстрирующие возможности платы (например, отправка SMS-сообщения, подклчение к Интернету и т.д.). Вторая группа - инструментарий, с помощью которого можно отлаживать функциональность библиотеки и аппаратных средств Ардуино на низком уровне.

Инструментарий

Для получения дополнительной информации о GSM-плате расширения см. страницы Начало работы и Аппаратные средства GSM-платы расширения.

Класс GSM

Этот класс содержит функции для управления модемом

 

Класс GSMVoiceCall

Позволяет осуществлять голосовую связь через модем. Для наиболее полного использования к устройству рекомендуется добавить микрофон и динамик.

 

Класс GSM_SMS

Отвечает за отправку и получение SMS-сообщений

 

Класс GPRS

Класс GPRS содержит файлы библиотек, позволяющих реализовать связь по протоколу TCP.

 

Класс GSMClient

Данный класс позволяет создавать клиентов, способных подключаться к серверу для получения или отправки данных.

 

Класс GSMServer

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

 

Класс GSMModem

Класс GSMModem содержит функции для диагностики состояния модема.

 

Класс GSMScanner

Класс GSMScanner предоставляет информацию о состоянии сети и провайдера.

 

Класс GSMPIN

Класс GSMPIN содержит вспомогательные функции для рабоыт с SIM-картой.

 

Класс GSMBand

Класс GSMBand предоставляет информацию о диапазоне частот GSM-сети, к которой подключен модем. Класс также содержит методы для задания необходимого диапазона частот.