Библиотека GSM включена в Arduino IDE, начиная с версии 1.0.4.
С помощью платы расширения Arduino GSM (GSM Shield), данная библиотека позволяет осуществлять большинство основных операций, совершаемых GSM-телефоном: работать с голосовыми вызовами, отправлять и получать SMS, а также подключаться к сети Интернет через GPRS.
Плата расширения GSM содержит модем, который транслирует в GSM-сеть данные, поступающие к нему через последовательный порт. Все операции выполняются модемом в виде последовательности AT-команд. Для улучшения читабельности кода библиотека абстрагирует низкоуровневые функции, работающие с модемом и SIM-картой. GSM-модем взаимодействует с платой Arduino по последовательному интерфейсу с использованием библиотеки 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, на Arduino с GSM-платой расширения должен быть довольно простым. Тем не менее, для запуска программ, написанных для Ethernet, на GSM-плате расширения недостаточно просто скопировать код. Для этого могут потребоваться незначительные изменения в программе, такие, как подключение библиотек GSM и GPRS, получение от провайдера настроек сети и т.д.
Класс GSM
Этот класс содержит функции для управления модемом
GSM
begin()
isAccessAlive()
getStatus()
HWrestart()
HWstart()
ready()
shutdown()
Класс GSMVoiceCall
Позволяет осуществлять голосовую связь через модем. Для наиболее полного использования к устройству рекомендуется добавить микрофон и динамик.
GSMVoiceCall
getVoiceCallStatus()
ready()
voiceCall()
answerCall()
hangCall()
retrieveCallingNumber()
Класс GSM_SMS
Отвечает за отправку и получение SMS-сообщений
GSM_SMS
beginSMS()
ready()
endSMS()
available()
remoteNumber()
read()
write()
print()
peek()
flush()
Класс GPRS
Класс GPRS содержит файлы библиотек, позволяющих реализовать связь по протоколу TCP.
GPRS
attachGPRS()
detachGPRS()
getIPAddress()
getStatus()
ready()
Класс GSMClient
Данный класс позволяет создавать клиентов, способных подключаться к серверу для получения или отправки данных.
GSMClient
ready()
connect()
beginWrite()
write()
endWrite()
connected()
read()
available()
peek()
flush()
stop()
Класс GSMServer
Создает сервер, способный отправлять и получать данные от подключенных клиентов (программ, работающих на удаленных компьютерах или других устройствах).
GSMServer
begin()
ready()
beginWrite()
write()
endWrite()
read()
available()
stop()
Класс GSMModem
Класс GSMModem содержит функции для диагностики состояния модема.
GSMModem
begin()
getIMEI()
Класс GSMScanner
Класс GSMScanner предоставляет информацию о состоянии сети и провайдера.
GSMScanner
begin()
getCurrentCarrier()
getSignalStrength()
readNetworks()
Класс GSMPIN
Класс GSMPIN содержит вспомогательные функции для рабоыт с SIM-картой.
GSMPIN
begin()
isPIN()
checkPIN()
checkPUK()
changePIN()
switchPIN()
checkReg()
getPINUsed()
setPINUsed()
Класс GSMBand
Класс GSMBand предоставляет информацию о диапазоне частот GSM-сети, к которой подключен модем. Класс также содержит методы для задания необходимого диапазона частот.
GSMBand
begin()
getBand()
setBand()
Примеры
Все примеры работы с платой расширения GSM можно условно разбить на две группы. Первая группа - это примеры, демонстрирующие возможности платы (например, отправка SMS-сообщения, подключение к Интернету и т.д.). Вторая группа - инструментарий, с помощью которого можно отлаживать функциональность библиотеки и аппаратных средств Arduino на низком уровне.
Инструментарий
Для получения дополнительной информации о GSM-плате расширения см. страницы Начало работы и Аппаратные средства GSM-платы расширения.
Справочник
Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.
Источник: http://arduino.cc/en/Reference/GSM |