Gsm gprs модуль a6 подключение к ардуино

Gsm gprs модуль a6 подключение к ардуино

В предыдущих главе мы рассмотрели мы сделали большие шаги построения "умного дома" – оснастили его датчиками и исполнительными устройствами и создали и обеспечили определенную степень автоматизации для создания комфорта и безопасности. Теперь пришло время сделать наш "умный дом" устройством IoT (Интернета вещей), чтобы получить доступ к нему для мониторинга и управления из любой точки мира по сети интернет. Организуем доступ контроллеров нашего дома к сети интернет.
NodeMCU – это плата на основе Wi-Fi модуля ESP8266, что позволяет подключиться ей к сети интернет по Wi-Fi соединению. С Arduino MEGA немного сложнее – необходимы внешние модули для организации доступа к интернет. В качестве внешних модулей часто используется плата Ethenet shield W5100 или W5500. Можно использовать и модули ESP8266, управляя ими по UART. Мы рассмотрим организацию доступа в интернет с использованием GPRS Shield — платы расширения, позволяющая Arduino работать в сетях сотовой связи по технологиям GSM/GPRS для приёма и передачи данных, SMS и голосовой связи.

8.1. Модуль Ai-Thinker A6

В качестве GPRS-Shield мы будем использовать недорогой модуль Ai-Thinker A6 на плате с антенной (см. рис. 8.1). От аналогов отличается низким энергопотреблением. Поддержка стандартных GSM 07.07,07.05 AT-команд, а так же специальных команд AI-THINKER.

Рис. 8.1. Модуль Ai-Thinker A6 на плате с антенной.

Данный модуль работает с российскими операторами Билайн, МТС, Мегафон. Потребляет ток порядка 80мА. Имеет 1 слот под mini SIM-карту. Скорость модуля по умолчанию 115200. Плата может иметь кнопку Пуск, которую необходимо удерживать около 3х секунд. Выпускается на плате, которую можно подключить к питанию +5вольт через микро usb. Модуль поддерживает АТ команды. Работу с компьютером можно производить через преобразователь UART. Имеет возможность отправлять данные по GSRS.

• Рабочее напряжение: 5В через USB-micro или отдельными контактами;
• Рабочее напряжение чипа: 3.3 — 4.6В;
• Рабочая температура: -30 . +80 градусов;
• Потребление в активном режиме: 100 — 900 мА;
• Потребление в экономном режиме: 3 мА;
• Скорость UART: по умолчанию 115200бит/с (есть автоопределение);
• GPRS Class 10 : Макс. 85.6 кбит;
• Протоколы : PPP, TCP, UDP, MUX;
• Поддержка PBCCH;
• CSD : до 14,4 кбит;
• SIM / USIM : 3V / 1.8V;
• Голос: подавление эха, подавление шума.

8.2. Управление модулем Ai-Thinker A6 с помощью AT-команд

Рассмотрим управление модулем Ai-Thinker A6 с помощью AT-команд. Для этого подключим модуль к компьютеру, используя переходник FTDI. Схема соединений представлена на рис. 8.2.

Рис. 8.2. Подключение модуля Ai-Thinker A6 к компьютеру.

Подключаем модуль к компьютеру и запускаем программу для общения с последовательным портом. Можно использовать монитор последовательного порта Arduino IDE. Будем отправлять на модуль Ai-Thinker A6 AT-команды. Набор команд аналогичен AT-командам для SIM800 или SIM900, но для выходы в интернет используются специальные команды AI-THINKER.
Для включения модуля необходимо нажать кнопку POWER не меньше 2 секунд, при нажатии мигает красный светодиод, и дальше работать в терминале.Набираем в мониторе последовательного порта следующие команды:
AT+CREG?
если ответ +CREG:0,5 или +CREG:0,5, установим 1:
AT+CREG=1
Далее проверка подключения модуля к GPRS-сети
AT + CGATT?
если ответ +CGATT: 0 установим 1:
AT + CGATT=1
Это может занять много времени и написать COMMAND NO RESPONSE, необходимо повторять и потом поверить командой
AT + CGATT?
Подключаемся к точке доступа оператора связи. Для МТС это будет так:

AT + CGDCONT = 1, "IP", "internet.mts.ru"
AT + CSTT = "internet.mts.ru","mts", "mts"
Далее устанавливаем интернет-соединение:
AT + CGACT = 1,1
В случае ответа OK, можем посмотреть наш динамический IP-адрес:
AT + CIFSR
И затем обращаемся к какому-нибудь серверу, например google.ru
AT + CIPSTART = "TCP", www.google.com ", 80
Весь процесс подключения представлен на рис. 8.3.

Рис. 8.3. Процесс работы с модулем Ai-Thinker A6 в мониторе последовательного порта.

Теперь попробуем подключить модуль Ai-Thinker A6 к плате Arduino и отправить сообщение c данными на сервер, например http://sparcfun.com.

8.3. Подключение модуля Ai-Thinker A6 к плате Arduino MEGA

Подключим модуль Ai-Thinker A6 к плате Arduino MEGA и сделаем тестовую отправку данных по GPRS на удаленный сервер. Схема подключения приведена на рис. 8.4.

Рис. 8.4. Подключение модуля Ai-Thinker A6 к плате Arduino MEGA.

В качестве удаленного сервера для отправки данных удобно использовать сервер data.sparkfun.com – здесь не требуется регистрации и можно быстро проверить правильность отправки данных. На главной странице переходим по ссылке создания бесплатного потока данных (рис. 8.5).

Рис. 8.5. Ссылка для создания бесплатного потока данных.

На странице создания потока заполняем необходимые данные (рис. 8.6):

• Название (Title);
• Описание (Description);
• Приватность (Visible/Hidden);
• Cписок полей (Fields).

Рис. 8.6. Форма создания потока данных.

При создании потока генерируются публичный ключ (Public key), приватный ключ (Private key), которые нам понадобятся при создании скетча отправки данных и страница для просмотра отправленных данных (Public URL) (рис. 8.7).

Рис. 8.7. Данные необходимые для создания программы отправки.

Теперь загрузим на плату Arduino MEGA скетч из листинга 8.1., внеся в него изменения – свои данные Public key и Private key для сервиса data.sparkfun.com и данные к точке доступа своего сотового оператоа (в скетче 8.1 данные для сотового оператора МТС).
Листинг 8.1

После загрузки скетча на плату Arduino запускаем монитор последовательного порта и при отправке символа s происходит процесс инициализации отправки данных с аналогового входа A0 в сервис data.sparkfun.com (см. рис. 8.8).

Рис. 8.8. Отображение в мониторе процесса отправки данных в сервис data.sparkfun.com

Скачать данный скетч можно на сайте www.arduino-kit.ru по ссылке.

8.4. Подключение модуля NodeMCU к сети Интернет по Wi-Fi.

Рассмотрим подключение платы NodeMCU к сети интернет. Для этого необходимо подключиться по Wi-Fi к точке доступа, имеющей выход в интернет. Загрузим в плату NodeMCU скетч подключения к Wi-Fi точке доступа и отправки данных в сервис data.sparkfun.com (листинг 8.2), измените данные на свои для подключения к точке доступа и в сервисе data.sparkfun.com:

const char* ss ;
const char* password = " my_point pass";

Модуль A6 GPRS/GSM разработан фирмой AI-THINKER в 2016 году. Устройство используется для обмена смс-сообщениями и обмена данными по GPRS. Плата отличается низким потреблением энергии и малыми размерами. Устройство полностью совместимо с российскими мобильными операторами. A6 mini поддерживает стандартны GSM 07.07, GSM 07.05 AT-команд, а так же специальные команды AI-THINKER.

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

  • Рабочее напряжение: 4.5 – 5.5В через USB-micro или отдельными контактами;
  • Рабочее напряжение чипа: 3.3 — 4.6В;
  • Рабочая температура: -30 . +80 градусов;
  • Потребление в активном режиме: 100 — 900 мА;
  • Потребление в экономном режиме: 3 мА;
  • Интерфейс UART, скорость по умолчанию 115200бит/с (есть автоопределение скорости при отправке команды AT) ;
  • GPRS Class 10 : Макс. 85.6 кбит;
  • Поддержка SMS сообщений
  • Протоколы : PPP, TCP, UDP, MUX;
  • Поддержка PBCCH;
  • CSD : до 14,4 кбит;
  • Диапозон частот: 850, 900, 1800, 1900 МГц
  • SIM / USIM : 3V / 1.8V;
  • Голос: подавление эха, подавление шума.
  • Слот для сим-карты поддерживает карты формата microSIM.
  • Входы толерантны к 5В
  • Совместим с операторами РФ и СНГ
Читайте также:  Divinity original sin 2 как зарядить жезл

Подключение A6 mini модуля к компьютеру

Распиновка AI-THINKER A6 GPRS/GSM (IOT-GA6)

Взаимодействие с модулем осуществляется по последовательному порту посредством AT-команд. Поэтому подключаем A6 mini через выводы URX и UTX к USB-TTL конвертору (не забываем подать питание на модуль и вставить в него рабочую сим-карту 🙂 ), модуль прекрасно работает с 5 вольтовой логикой, поэтому не нужно никаких преобразователей уровней.

Теперь для общения при помощи AT команд нам нужен терминал COM порта, в качестве такового мы можем использовать терминал который есть в IDE Arduino. Модуль может автоматически подстраиваться под следующую скорость обмена: 2400, 4800, 9600, 14400, 19200, 28800, 33600, 38400, 57600, 115200, 230400, 460800, 921600. Скорость COM порта по умолчанию 115200бит/с.

Терминал COM порта в Arduino IDE

При подключении к COM порту в начале вы получите много "муссора", это информация о состоянии подкючения модуля к сети оператора сотовой связи.

Для начала посмотрим что за прошивка закачена в модуль. Для этого отправим модулю команду "ATI" (без кавычек), модуль в ответ должен вернуть версю прошивки и "ОК" (см. рис. выше), если прошивка в модуле не от AI-THINKER, а допустим от Goouuu Tech , то это нормально, если только ваш модуль корректно работает. Я всетаки советую перепрошивать модули прошивками от AI-THINKER. Как это сделать я описал в статье Перепрошивка GSM/GPRS модуля Goouuu Tech IOT-GA6 .

Проверим состояние модуля перед началом работы, для этого отправи команду AT+CPAS – состояние модуля. В ответ мы получим что-то вида: +CPAS: 0. где, 0 – готовность к работе, 3 – входящий звонок, 4 – голосовое соединение, 2 – неизвестно. Если ответ 2 или ошибка, попробуйте сбросить модуль через вывод RST подключив его к выводу GND на 1 сек или соединить контакт PWR c +5В в течении 2-х сек. Если и после всех этих манипуляций модуль не готов к работе, то возможно у вас бракованный модуль.

Проверим уровня сигнала сотовой сети, для этого отправим команду "AT+CSQ", в ответ получим "+CSQ:" и два числа через запятую, первое число и есть уровень. Значение в диапазоне от 2 до 30 (чем больше тем лучше). Если уровень сигнала низкий то придется подключить внешную GSM антенну иначе вы не сможете работать с сетью.

Далее давайте попытаемся позвонить на другой номер через команду ATD+7000000000 (соотв. вы должны свой номер телефона с префиксом +7). Если не удалось позвонить, то проверьте статус регистрации в сотовой связи отправив команду AT+CREG?, в ответ придет два параметра. Первый параметр статус регистрации в сети, если он равен 0, то вы не зарегистрованы в сотовой сети, как возможная причина слабый уровень сигнала. Второй параметр в ответе это доп. параметр р, он должен быть равен 1 или 5, то все хорошо. Если он равен 3 или 0, то это означает, что возможно ваша сим-карта не поддерживается, либо оператор ее заблокировал в целях безопасности и такое тоже может быть.

Попытаемся позвонить на сим картру модуля, но перед этим включим определитель номера при помощи команды AT+CLIP=1. Если в терминале появился текст RING и ваш номер телефона, то все ОК.

Теперь самое интересное, это отправка sms сообщений через A6 mini модуль. Для этого надо выполнить несколько команд: AT+CMGF=1 — задаёт режим работы: 0-цифровой или 1-текстовый. Эта команда будет вызываться первой, от этого зависит формат последующих команд и ответов модема. AT+CMGS=+700000000 Message text. — отправляем sms на заданный номер.

И на конец, протестируем получение sms сообщений на наш модуль. С получением все просто, при получении смс будут сообщения вида:

+CIEV: "MESSAGE",1
+CMT: "+790********",,"2018/01/31,19:46:29+03
testovoe soobshenie

На этом все, если все команды удалось выполнить то у вас рабочий модуль и он работает как надо.

Общие сведения:

GSM/GPRS Shield, A6 — позволяет работать в сетях сотовой связи по технологиям GSM/GPRS для приёма/передачи данных, отправки/получения SMS (Short Message Service) и осуществления телефонной голосовой связи.

GSM/GPRS Shield, A6 подключается по шине UART, а управление осуществляется AT-командами по стандарту GSM07.07,07.05 + команды TCP/IP. Для более удобной работы с GSM/GPRS Shield, A6 нами разработана библиотека iarduino_GSM.

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

Видео:

Спецификация:

  • Напряжение питания: 5 В (постоянного тока).
  • Потребляемый ток: до 3 мА (в спящем режиме).
  • Потребляемый ток: до 100 мА (в режиме ожидания).
  • Потребляемый ток: до 500 мА (в режиме соединения и разговора).
  • Потребляемый ток: до 2 А (пиковый) заявлен производителем модуля A6.
  • Поддерживаются: голосовая связь, SMS-сообщения, передача данных.
  • Стандарт сотовой связи: GSM/GPRS.
  • Чувствительность приёмника: -105 дБм.
  • Частотные диапазоны: 850, 900, 1800, 1900 МГц.
  • Класс GPRS: 10.
  • Максимальная скорость GPRS: 85,6 Кбит/сек (загрузка), 42,8 Кбит/сек (передача).
  • Форматы кодировки речи: HR, FR, EFR, AMR.
  • Используемая шина данных: UART.
  • Логические уровни шины UART: 5 В.
  • Тип передачи данных: AT-команды (стандарт GSM07.07,07.05 + команды TCP/IP).
  • Рабочая температура: -30 . 80 °С.
  • Габариты: Shield.

Подключение:

GSM/GPRS Shield, A6 подключается по шине UART используя выводы D0 и D1, или D7, и D8 (зависит от положения переключателя на плате: "RX-0/TX-1" или "RX-7/TX-8"). Для выключения и перезагрузки модуля используется вывод D9 (модуль выключается подачей логической «1», а включается при наличии логического «0» или отсутствии логических уровней). Из выводов питания используются 5V, 3V3 и GND. Остальные выводы платы не задействованы.

Для удобства на плате указаны названия выводов к которым их требуется подключить (вывод D0 или D7 подключается к выводу RX шины UART Arduino/Piranha, а вывод D1 или D8 подключается к выводу TX шины UART Arduino/Piranha). Что удобно и при создании объекта программной шины UART: SoftwareSerial объект(RX,TX); значит для работы с выводами D7 и D8 нужно написать SoftwareSerial softSerial(7,8); .

Arduino/Piranha UNO:

Для подключения GSM/GPRS Shield, A6 к плате Arduino/Piranha UNO, достаточно установить Shield поверх платы, после чего выбрать переключателем требуемую шину UART:

Читайте также:  Beyond two souls отдаление камеры

Arduino/Piranha UNO
Для плат Arduino/Piranha UNO рекомендуем использовать программную шину UART на выводах D7 и D8, так как аппаратная шина UART на выводах D0 и D1 задействована USB-UART преобразователем. Значит переключатель нужно установить в положение "RX-7/TX-8".

Для реализации программной шины UART необходимо указать в скетче номера выводов, которые требуется использовать как RX и TX шины UART. При использовании библиотеки iarduino_GSM для работы с GSM/GPRS Shield, код создания и указания программной шины UART будет выглядеть следующим образом:
#include // подключаем библиотеку iarduino_GSM.
#include // подключаем библиотеку SoftwareSerial.
iarduino_GSM gsm; // объект gsm для работы с GSM/GPRS Shield.
SoftwareSerial sfs(7,8); // объект для работы с шиной UART (выводы RX, TX).
. //
gsm.begin(softSerial); // указываем объект для работы с шиной UART.

Для подключения к платам Arduino/Piranha Mini или Nano можно воспользоваться Trema Shield NANO или проводами соединить выводы D7, D8, D9, 5V, 3V3 и GND платы GSM/GPRS Shield, A6 с одноимёнными выводами платы Arduino/Piranha Mini или Nano. Далее использовать скетч как для Arduino/Piranha UNO.

Arduino/Piranha Leonardo:

Для подключения GSM/GPRS Shield, A6 к плате Arduino/Piranha Leonardo, достаточно установить Shield поверх платы, после чего выбрать переключателем требуемую шину UART:

Arduino/Piranha Leonardo
Для плат Arduino/Piranha Leonardo рекомендуем использовать аппаратную шину UART1 (она использует выводы D0 и D1). Значит переключатель нужно установить в положение "RX-0/TX-1".

При использовании библиотеки iarduino_GSM для работы с GSM/GPRS Shield, код подготовки и указания аппаратной шины UART1 будет выглядеть следующим образом:

#include // подключаем библиотеку iarduino_GSM.
iarduino_GSM gsm; // объект gsm для работы с GSM/GPRS Shield.
. //
gsm.begin(Serial1); // указываем класс Serial1 для работы с шиной UART1.

Arduino/Piranha MEGA:

Для подключения GSM/GPRS Shield, A6 к плате Arduino/Piranha MEGA, нужно установить Shield на плату, как показано на рисунке:

Arduino/Piranha MEGA
Так как на платах Arduino/Piranha MEGA действуют ограничения на работу с программным UART (вывод RX можно назначить только на выводах: D10, D11, D12, D13, D14, D15, D50, D51, D52, D53, A8, A9, A10, A11, A12, A13, A14 и A15), то рекомендуем использовать аппаратную шину UART3. Значит переключатель нужно установить в положение "RX-7/TX-8", вывод 7 (RX) соединить с выводом RX3, а вывод 8 (ТХ) соединить с выводом TX3, как показано на рисунке. При этом выводы D7 и D8 нельзя задействовать для других целей.
(для работы с UART1 выводы нужно соединять не с RX3,TX3, а с RX1,TX1).
(для работы с UART2 выводы нужно соединять не с RX3,TX3, а с RX2,TX2).

При использовании библиотеки iarduino_GSM для работы с GSM/GPRS Shield, код подготовки и указания аппаратной шины UART3 будет выглядеть следующим образом:
#include // подключаем библиотеку iarduino_GSM.
iarduino_GSM gsm; // объект gsm для работы с GSM/GPRS Shield.
. //
pinMode(7,INPUT); // переводим вывод D7 в режим входа.
pinMode(8,INPUT); // переводим вывод D8 в режим входа.
gsm.begin(Serial3); // указываем класс Serial3 для работы с шиной UART3.

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

Для громкой связи используется динамик и микрофон подключенные к разъемам PLS-2 с соответствующими значками.
Для включения громкой связи в библиотеке iarduino_GSM необходимо вызвать функцию SOUNDdevice(GSM_SPEAKER); (используется по умолчанию).
Для включения только микрофона громкой связи в библиотеке iarduino_GSM необходимо вызвать функцию SOUNDdevice(GSM_MICROPHONE); .
Для перевода звука на гарнитуру в библиотеке iarduino_GSM необходимо вызвать функцию SOUNDdevice(GSM_HEADSET); .

При работе с модулем через AT-команды, перевод звука между громкой связью и гарнитурой осуществляет команда AT+SNFS .

Антенна:

Встроенная GSM антенна PCB позволяет работать без подключения внешней GSM антенны, но в зоне неуверенного приёма, внешняя антенна значительно усилит качество связи.

Внешняя GSM антенна подключается к разъему IPX UFL. При этом отключение встроенной GSM антенны не является обязательным.
Встроенная GSM антенна отключается путем разрыва контакта перемычки «JP ANT»

Пример подключения внешней антенны к GSM/GPRS Shield, A6:

Вывод D9:

Вывод D9 используется для отключения и перезагрузки модуля. Модуль выключается подачей логической «1», а включается при наличии логического «0» или отсутствии логических уровней.

Если Вы НЕ ИСПОЛЬЗУЕТЕ библиотеку iarduino_GSM и в Вашем проекте нет необходимости отключать или перезагружать модуль, то вывод D9 можно освободить для других целей, разорвав контакт перемычки «JP OFF».

Подробнее о GSM/GPRS Shield:

Есть несколько поколений сетей сотовой связи 1G, 2G, 3G, 4G . где G означает Generation — поколение, так вот 2G это и есть GSM (Global System for Mobile communications) — глобальная система мобильной связи. Это стандарт цифровой мобильной сотовой связи, с Гауссовской частотной модуляцией (GMSK), разделением каналов по времени (TDMA) и частоте (FDMA).

Значит GSM/GPRS Shield, A6 может работать только с SIM (Subscriber Identification Module) картами тех сотовых операторов, которые поддерживают стандарт сотовой связи 2G (GSM). К таким операторам относится тройка: MTS, Megafon и Beeline, о поддержке стандарта GSM другими операторами сотовой связи, уточняйте у их представителей.

GPRS (General Packet Radio Service) — пакетная радиосвязь общего пользования, это дополнение (или надстройка) к GSM позволяющая осуществлять обмен данными с другими устройствами и внешними сетями, в т.ч. интернет.

GSM/GPRS Shield, A6 построен на базе PCB модуля A6 производства компании Ai-Thinker, который отличается от своих конкурентов меньшим энергопотреблением. Не смотря на заявленное производителем пиковое (кратковременное) потребление тока до 2А, в процессе тестирования (в течении месяца) максимальное потребление тока не превышало 500 мА. Такое низкое энергопотребление (по сравнению с другими GSM модулями) позволяет работать от USB порта компьютера (ноутбука, планшета), а при питании от аккумуляторных батарей или Battery Shield, значительно увеличивает срок автономной работы. Для питания модуля на плате установлен импульсный DC-DC преобразователь, так же имеется преобразователь уровней для согласования выводов шины UART с 5В логикой. Встроенная PCB антенна позволяет работать без подключения внешней. Назначение переключателя шин UART и перемычек будут подробно рассмотрены ниже.

На плате имеются разъемы: 3,5 jack — для подключения гарнитуры (с микрофоном), PLS-2 — для подключения динамика и микрофона громкой связи, IPX U.FL — для подключения внешней антенны, SIM LG P970 — для установки SIM карты размера 2FF, а так же разъёмы для установки платы на Arduino/Piranha UNO/MEGA/Leonardo.

Для работы с GSM/GPRS Shield предлагаем воспользоваться библиотекой iarduino_GSM, позволяющей устанавливать голосовые соединения и обмениваться SMS (в т.ч. на Русском языке) используя несколько простых и понятных функций.

Подробнее про установку библиотеки читайте в нашей инструкции.

Читайте также:  Please install the libedit development package

Обратите внимание на то, что при многократной отправке СМС с одинаковым текстом, возможно блокирование сообщений вашим оператором и внесение номера в "спам".

Примеры:

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

В данном примере используется программная шина UART для работы с GSM/GPRS Shield. Отправка SMS сообщения осуществляется функцией SMSsend() с двумя параметрами: строка с отправляемым текстом и строка с номером телефона (перед телефоном можно указывать символ +). Функция SMSsend() возвращает флаг результата отправки сообщения ( true или false ), что используется в примере для вывода сообщений "Sent!" или "Error!".

Важно: Измените номер получателя SMS перед загрузкой данного скетча!

Текст сообщения не должен превышать 70 символов, если в нём есть хотя бы 1 символ Кириллицы. Текст без символов Кириллицы не должен превышать 160 символов.

Обратите внимание на то, что метод отправки SMS сообщения gsm.SMSsend() возвращает результат отправки true (успешно) или false (ошибка). Наиболее частой причиной возникновения ошибки при отправке SMS является плохая связь с аппаратурой оператора связи или недостаточное питание модуля. В таких случаях код отправки SMS сообщения целесообразно заменить на следующий:

В данном варианте SMS сообщение отправляется в цикле for() , который будет завершён либо после 20 неудачных попыток, либо сразу после первой удачной попытки отправки SMS. Стоит отметить наличие в цикле функции gsm.status(); , которая для получения статуса модуля связывается с аппаратурой оператора связи, что увеличивает шансы на успешную отправку SMS в условиях плохого приёма.

Отправка большого (составного) SMS сообщения:

Данный пример похож на предыдущий, но одно сообщение отправляется двумя SMS, которые на телефоне получателя будут отображаться как одно длинное сообщение. Обратите внимание на то, что функция SMSsend() теперь принимает не два, а пять параметров: строка с текстом, строка с телефоном, идентификатор всего сообщения (число от 1 до 65535 одинаковое для всех SMS в составе одного сообщения), количество SMS в сообщении (число от 2 до 255 одинаковое для всех SMS в составе одного сообщения) и номер данной SMS в сообщении (число определяющее порядок "склейки" сообщений на принимающей стороне).

Важно: Измените номер получателя SMS перед загрузкой данного скетча!

Текст одной SMS не должен превышать 66 символов, если в тексте этой SMS есть хотя бы 1 символ Кириллицы (не во всём сообщении, а именно в тексте этой SMS). Текст SMS без символов Кириллицы не должен превышать 152 символа.

Получение коротких SMS сообщений:

При получении SMS в мониторе последовательного порта появится сообщение "SMS came, I read . ", после чего появится информация принятого SMS сообщения:
"SMS sent on ДД.ММ.ГГ ЧЧ:ММ:СС from number 70123456789, message text: ТЕКСТ SMS".

Функция SMSread() имеет только один обязательный параметр — строка для получения текста SMS сообщения, а строки для получения номера отправителя и даты отправки можно не указывать. Так же функция SMSread() возвращает флаг результата чтения сообщения ( true или false ), по этому её можно взять в условие оператора if() для оповещения об успехе чтения, как это сделано с функцией SMSsend() в предыдущем скетче.

На заметку: У данного скетча есть один недостаток, при получении большого (составного) сообщения (состоящего из нескольких SMS) мы не сможем понять, что эти SMS относятся к одному сообщению. Тем более что SMS составного сообщения могут прийти не по порядку, например, середина, конец, начало.

Получение коротких и больших (составных) SMS сообщений:

Данный скетч отличается от предыдущего только тем, что в нём объявлены три дополнительные переменные: SMSlongID , SMSlongSUM и SMSlongNUM . Эти переменные указаны как дополнительные параметры функции SMSread() для получения идентификатора сообщения, количестве и номере SMS в составе большого сообщения. После чего указанные значения, вместе со значениями предыдущего скетча, выводятся в монитор порта:
"SMS 3 in 5, >

При получении короткого SMS сообщения, в мониторе порта будет указано, что идентификатор равен 0, количество SMS в сообщении равно 1 и номер данной SMS равен 1.

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

Запрос баланса:

Функция runUSSD() принимает строку c текстом USSD команды и возвращает текст ответа на указанную команду. В данном примере функция runUSSD() вызвана с параметром "*100#" , а её ответ (текст) будет выведен в монитор.

У большинства Российских операторов связи, команда *100# означает запрос баланса.

На заметку: Вы можете выполнять любые USSD запросы поддерживаемые Вашим оператором связи (не только *100#).

Многие Российские операторы связи придерживаются правила, что ответ на команду начинающуюся с символа ‘*’ возвращается на Русском, а при замене данного символа на символ ‘#’ ответ возвращается на Латинице. Например, команда #100# вернёт баланс на Латинице (для большинства операторов связи).

Обратите внимание на то, что метод отправки USSD запроса gsm.runUSSD() возвращает указатель на строку типа String с текстом ответа. Если при отправке USSD запроса возникла ошибка, то строка с ответом будет пуста. Наиболее частой причиной возникновения ошибки при отправке USSD запросов является плохая связь с аппаратурой оператора связи или недостаточное питание модуля. В таких случаях код отправки USSD запроса целесообразно заменить на следующий:

В данном варианте USSD запрос отправляется в цикле do<> while() , который будет завершён только при наличии ответа в строке txt .

Совершение исходящего голосового вызова:

При старте скетча будет осуществлён исходящий голосовой вызов на номер +7(012)345-67-89. Этот скетч уже может претендовать на готовый проект. Подключите к GSM/GPRS Shield динамик и микрофон, и оставьте его подключённым к USB порту компьютера (или 5В шине питания внутри корпуса системного блока). Теперь при кадом включении компьютера будет осуществляться звонок на указанный в скетче номер телефона. Вам останется лишь поднять трубку и сказать "А ну быстро выключи мой компьютер! )))".

Важно: Измените номер телефона вызываемого абонента перед загрузкой скетча.

Ответ на входящий голосовой вызов:

Данный пример отвечает на все входящие голосовые вызовы (на все звонки).

Функция CALLavailable() может принимать в качестве единственного параметра строку в которую будет записан номер звонящего абонента. Данный функционал можно использовать для сравнения строки с номером и принятия решения, отвечать на вызов или сбросить его.

Описание основных функций библиотеки:

Библиотека iarduino_GSM позволяет устанавливать голосовые соединения и обмениваться SMS (в т.ч. на Русском языке) используя несколько простых и понятных функций:

Ссылка на основную публикацию
Flysky fs i6 инструкция на русском языке
Пульт управления FlySky FS-T6 - это 6 канальный передатчик для радиоуправляемых моделей. Частота на которой работает данный передатчик 2.4 гигагерца,...
Eagle security отзывы специалистов
Кто просматривает этот контент: "Тема" (Всего пользователей: 0; Гостей: 1) Гость Описание Приложение для защиты Вашего телефона от прослушивания Никого...
Eclipse не видит jdk
Наверняка многие из вас сталкивались с ошибкой запуска Eclipse: A Java Runtime Environment (JRE) or Java Development Kit (JDK) must...
Freepbx перенос на другой сервер
Полезно Узнать IP - адрес компьютера в интернете Онлайн генератор устойчивых паролей Онлайн калькулятор подсетей Калькулятор инсталляции IP - АТС...
Adblock detector