Arduino:Библиотеки/GSM
{{#setlogo:ArduinoCommunityLogo.png}}
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Библиотека GSM[1]
Библиотека GSM идет в комплекте с IDE Arduino версии 1.0.4 и выше.
Благодаря этой библиотеке плата Arduino, соединенная с модулем Arduino GSM Shield, может выполнять большинство функций GSM-телефона: делать и принимать голосовые звонки, отправлять и получать SMS, а также подключаться к интернету через GPRS-сеть.
У GSM-модуля есть модем, передающий данные от последовательного порта в GSM-сеть. Операции выполняются модемом через серию AT-команд. Цель библиотеки GSM – предоставить программные абстракты для обслуживания низкоуровневой коммуникации между модемом и SIM-картой. Для коммуникации между модемом и Arduino библиотека GSM полагается на библиотеку Software Serial.
Как правило, для выполнения отдельной функции требуется не одна, а несколько команд. Кроме того, если необходимо, библиотека может отправлять и возвращать информацию.
Структура
Поскольку библиотека GSM используется для разнотипных функций, в ней присутствует несколько разных классов:
- Класс GSM отвечает за команды к модему. Он занимается коммуникационными аспектами GSM-модуля и регистрирует вашу систему в GSM-инфраструктуре. Объект этого класса требуется во всех скетчах, использующих GSM/GPRS – чтобы обрабатывать низкоуровневую коммуникацию.
- Класс GSMVoiceCall отвечает за обработку голосовых звонков.
- Класс GSM_SMS отвечает за отправку/получение SMS.
- Класс GPRS отвечает за подключение к интернету.
- Класс GSMClient включает в себя инструменты для управления клиентом – аналогично библиотекам Ethernet и WiFi.
- Класс GSMServer включает в себя инструменты для управления сервером – аналогично библиотекам Ethernet и WiFi. Примечание: Ряд мобильных операторов не разрешают входящие соединения из интернета общего пользования, но разрешают их внутри своей сети. Подробнее о подобных ограничениях спрашивайте у своего оператора.
- Ряд вспомогательных классов вроде GSMScanner или GSMModem
Совместимость
Разработчики старались сделать эту библиотеку максимально совместимой с библиотеками Ethernet и WiFi. Другими словами, если у вас есть скетч, использующий библиотеку Ethernet/WiFi, и вы хотите портировать его на Arduino с GSM-модулем, то с этим не должно возникнуть серьезных проблем. Впрочем, запустить этот скетч «как есть» не получится – в него нужно будет внести небольшие изменения. К примеру, подключить библиотеки, специфичные для GSM и GPRS, и добавить сетевые настройки от вашего мобильного оператора.
Примеры
Примеры для GSM-модуля можно поделить на две группы. Первая – это скетчи-примеры, иллюстрирующие возможности модуля (вроде отправки SMS или подключения к интернету). Вторая – это «обслуживающие» скетчи-примеры, то есть программные инструменты для проверки функционала библиотеки и компонентов модуля, которые она использует.
http://wikihandbk.com/wiki/Arduino:Примеры/GSMExamplesWebServer
Скетчи-примеры для демонстрации функций
- GSM Web Client – Загрузка содержимого вебсайта на Arduino через GPRS
- GSM Web Server – Создание беспроводного веб-сервера через GPRS
- Make Voice Call – Звонок по телефону через монитор порта
- Send SMS – Отправка SMS на разные телефонные номера через монитор порта
- Receive Voice Call – Проверка статуса модема во время входящего телефонного звонка
- Receive SMS – Получение SMS и их отображение на мониторе порта
http://wikihandbk.com/wiki/Arduino:Примеры/GSMExamplesTest_Web_Server
Скетчи-примеры для проверки и отладки
- Band Management – Настройка диапазона частот, к которому будет подключаться GSM-модуль
- GSM Scan Networks – Проверка доступных сетей
- Pin Management – Управление PIN-кодом SIM-карты
- Test GPRS – Проверка функциональности GPRS-сети при помощи SIM-карты
- Test Modem – Получение IMEI-номера модема
- Test Web Server – Создание веб-сервера при помощи GSM-модуля
Классы и функции
Класс GSM
Для коммуникации с модемом.
Класс GSMVoiceCall
Для голосовой коммуникации через модем. Чтобы в полной мере пользоваться этим функционалом, требуются микрофон и динамик.
Класс GSM_SMS
Для отправки и получения SMS-сообщений (от «Short Message Service», что значит «служба коротких сообщений»).
Класс GPRS
Отвечает за подключение файлов из библиотеки для обработки TCP-коммуникации.
Класс GSMClient
Для создания клиента, способного подключаться к серверам, а также отправлять/получать данные.
Класс GSMServer
Для создания сервера, способного отправлять/получать данные от подключенных к нему клиентов (то есть программ, запущенных на других компьютерах и устройствах).
Класс GSMModem
Для диагностической коммуникации с модемом.
Класс GSMScanner
Для получения диагностической информации о сети и мобильном операторе.
Класс GSMPIN
Для коммуникации с SIM-картой.
Класс GSMBand
Для получения информации о диапазоне частот, к которому подключен модем. Также имеет функции для настройки диапазона частот.