Обмен данными через GPRS
Для управления параметрами подключения в GPRS используется команда AT+SAPBR. Давайте посмотрим, как она применяется в библиотеке SIM800L.
Когда мы вызываем функцию http этой библиотеки, предназначенную для отправки и получения данных, прежде всего вызывается функция connect_gprs, которая создает сессию (bearer), подключаясь к мобильной сети и получает адрес IP.
Проверка сессии
Для проверки нужно выдать такую команду:
AT+SAPBR=2,1
Команда AT+SAPBR используется для управления параметрами подключения к GPRS.
Параметры команды:
- Первое число в команде: тип команды
- В данном случае функция get_ip получает состояние сессии, так как первый параметр равен 2.
- Второе число в команде AT+SAPBR=2,1: идентификатор профиля. Библиотека SIM800L работает с профилем с номером 1.
Результат выполнения команды при закрытой сессии:
AT+SAPBR=2,1
OK
+CME ERROR: 3
- Первое число в ответе этой команды: состояние сессии
- Второе число: тип подключения
- Далее в ответе команды идет адрес IP, выделенный в рамках сессии. В нашем случае сессия открыта, ее тип — GPRS, но адрес IP не выделен. Это означает, что подключение к GPRS еще не выполнено.
Подключение к GPRS и получение адреса IP
Если адрес IP не был выделен, нужно подключиться к GPRS, что и делает функция connect_gprs. Для нашего случая выдаются такие команды:
AT+SAPBR=3,1,CONTYPE,GPRS
AT+SAPBR=3,1,APN,internet.mts.ru
AT+SAPBR=1,1
- Первые две команды устанавливают параметры сессии — тип соединения CONTYPE как “GPRS”, а также имя точки доступа Access Point Name (APN) — как “internet.mts.ru”.
- Третья команда устанавливает соединение для профиля с идентификатором 1.
Когда соединение будет установлено, можно получить параметры сеанса с помощью команды AT+SAPBR=2,1. Однако теперь эта команда вернет адрес IP из внутренней сети мобильного провайдера.
Отправка запроса GET
Чтобы отправить запрос HTTP GET после открытия сессии, сначала нужно проинициализировать сервис HTTP и задать идентификатор профиля сеанса. Затем нужно задать URL сервиса, к которому будет отправляться запрос HTTP GET.
AT+HTTPINIT
AT+HTTPPARA=CID,1
AT+HTTPPARA=URL,http://example.com
Для выполнения запроса GET используйте:
AT+HTTPACTION=0
Дождавшись ответа от команды AT+HTTPACTION=0, выдайте запрос командой AT+HTTPREAD и через некоторое время получите прочитанные от сервера данные:
Если в окне программы терминала minicom вывод выглядит не отформатированным, включите в терминале автоматическое добавление символа возврата каретки CR после каждого символа перевода строки LF. Для этого щелкните комбинацию клавиш Ctrl+A и клавишу Z. Далее нажмите клавишу U.
Если вы работали со статьей Передаем данные от Repka Pi и Raspberry Pi в интернет по GSM связи через модуль SIM868 и GPRS, то можете взять из нее программу управляющего сервиса rest_app.py.
Запустите эту программу на сервере (реальном, виртуальном или облачном) и программу сбора телеметрии get-telemetry.py. Затем выдайте такую последовательность AT-команд (замените адрес сервиса своим):
AT+HTTPPARA=URL, http://my-json-server.ru:9000/api/data:9000/api/data OK
AT+HTTPACTION=0
OK +HTTPACTION: 0,200,785
Команда AT+HTTPREAD выведет на консоль данные телеметрии, знакомые вам по упомянутой статье:
Отправка запроса PUT
Чтобы продемонстрировать отправку данных через GPRS, сделаем запрос PUT к сервису rest_app.py из статьи Передаем данные от Repka Pi и Raspberry Pi в интернет по GSM связи через модуль SIM868 и GPRS.
Вначале закроем сессию и освободим занятые ей ресурсы (закрывать не обязательно, мы сделали это только для примера):
Теперь нужно проинициализировать сервис HTTP и задать идентификатор профиля сеанса:
Далее мы открываем сессию и проверяем, что для этой сессии был выделен адрес IP.
На следующем шаге нужно настроить параметры HTTP-сеанса:
Замените здесь my-json-server.ru своим доменным именем, на котором работает ваш сервис.
Отправляем строку JSON с помощью следующей команды:
После появления в окне терминала строки DOWNLOAD копируем туда нашу строку:
При копировании строка не будет показана в окне терминальной программы.
Далее выдаем запрос POST:
Читаем данные, полученные от сервиса, командной AT+HTTPREAD:
На рис. 11 мы показали протокол обмена с сервисом с помощью AT-команд.
Рис. 11. Протокол обмена с сервисом с помощью AT-команд.
В консоли сервиса rest_app.py вы увидите добавленные данные, а также адрес IP, с которого был выполнен запрос:
Обратите внимание, что модулю SIM868 мобильный провайдер выдал серый адрес IP 10.69.35.140 из своей внутренней сети. Однако запрос PUT пришел на сервис rest_app.py с адреса 213.87.130.175. Этот адрес, принадлежащий мобильному провайдеру, доступен из интернета.
Закрытие сессии и соединения TCP/IP
Чтобы закрыть сессию и не расходовать ресурсы мобильного провайдера, используйте такую команду:
С помощью команды AT+CIPSHUT можно закрыть соединение GPRS:
Команда AT+CIPSHUT закрывает все соединения TCP/UDP, которые могли бы быть открыты на модуле. Это может быть полезным, например, при переустановке соединения или для освобождения ресурсов, занятых предыдущими соединениями.
Интернет с 4G-модемом (LTE)
Настройка модема WBC-4G на контроллере Wiren Board 6.7.2
Отправка AT-команд для модема в терминале программы minicom
Настройка модема как сетевой карты
В отличие от 2G- и 3G-модулей, WBC-4G поддерживает выход в интернет через виртуальную сетевую карту по протоколу RNDIS.
Настройка с помощью minicom:
После этого интернет будет доступен через интерфейс usb0, который можно настроить как обычную сетевую карту.
Настройка с помощью chat:
Этот способ можно использовать при написании скриптов.
Настройка виртуальной сетевой карты
После того как мы настроили модем, нужно настроить виртуальную сетевую карту.
При необходимости можно сменить подсеть модема, чтобы он выдавал контроллеру адрес не из подсети 192.168.0.ххх, а, например, 192.168.100.ххх. Для этого нужно выполнить AT-команду:
Команда имеет следующий синтаксис.
Предупреждение! Данная функция может не работать на модемах со старыми прошивками. Узнать, что модем поддерживает эту функцию можно командой
Функция поддерживается, если получен ответ.
GPRS на модемах SIM7000E 2G/NB-IoT
В терминальном режиме работы с модемом, например, в программе minicom (смотрите раздел Отправка AT-команд), введите команду выбора режима.
Возможные варианты значений (команда AT+CNMP=?):
Установить режим нужно один раз — он запоминается и активен даже после отключения питания.
Чтобы вернуться в режим IoT, выполните команду.
Получаем информацию с помощью AT-команд
Прежде всего мы попробуем получить с помощью AT-команд информацию о состоянии модуля GSM/GPRS/GNSS Bluetooth HAT, которую собирала программа get-telemetry.py с помощью библиотек SIM800L, RoverConnect и Telemetry из предыдущей статьи про этот модуль.
Напомним, что в библиотеке Telemetry определена функция get_telemetry_data, показанная ниже в сокращенном виде:
Все приведенные выше запросы параметров модуля выполнялись при помощи вызова функций модуля SIM800L. Для получения других параметров телеметрии вызывались функции RoverConnect.
Давайте для примера рассмотрим функцию get_hw_revision библиотеки SIM800L, которая позволяет определить версию (ревизию) аппаратного обеспечения модуля:
Как видите, эта функция может использовать два метода получения версии, одна из которых выдает команду AT+GMR, а вторая — команду AT+CGMR.
Если попробовать ввести эти команды в окне терминальной программы minicom, то мы увидим, что обе они возвращают одинаковые строки.
Рис. 6. Получение версии аппаратного обеспечения модуля.
Но почему предусмотрено две команды?
Команда AT+GMR входит в стандарт V.25ter, устанавливающий процедуры и параметры для управления модемами в аналоговых телекоммуникационных системах.
Что же касается команды AT+CGMR, она входит в стандарт (спецификацию) 3GPP TS 27.007, разработанную 3rd Generation Partnership Project (3GPP), который применяется для мобильных сетей, таких как GSM (2G), UMTS (3G), и других.
Модуль SIM868 поддерживает оба этих стандарта.
Если вам нужно узнать, доступна та или иная команда, введите ее в окне терминальной программы с добавлением строки =?.
Рис. 7. Проверка доступности команды.
Строка OK означает, что команда доступна. Если же появилась строка ERROR, то или команда недоступна, или сделана попытка вызвать команду из неправильного контекста.
Теперь, когда вы познакомились с тем, как вводить команды и проверять их доступность, расскажем о некоторых полезных AT-командах.
### Сведения о модуле SIM868 и SIM-карте
Несколько команд, перечисленных в этом разделе, позволяют узнать название модуля, версию его аппаратного обеспечения и получить другую полезную информацию.
Заметим, что серийные номера SIM-карт ICCID, а также идентификаторы мобильного абонента IMSI можно рассматривать как личную информацию, которую не следует раскрывать без необходимости.
### Дата и время с часовым поясом
В модуле SIM868 имеются часы. С помощью AT-команд можно получать и устанавливать дату и время.
Команда AT+CCLK? возвращает текущую дату и время в виде текстовой строки формата YY/MM/DD,HH:MM:SS±ZZ, например, 23/11/27,14:49:05+03.
Здесь YY/MM/DD задают год, месяц и день, соответственно. Часы, минуты и секунды определяются в формате HH:MM:SS.
Что касается ±ZZ, то эта часть строки задает часовой пояс. Для Москвы, например, это +03.
Чтобы установить дату, время и часовой пояс, используйте команду следующего вида:
Модуль GSM/GPRS/GNSS Bluetooth HAT предусматривает установку литий-ионной батарейки CR1220 для питания часов. Если этой батарейки нет, то придется устанавливать дату, время и часовой пояс каждый раз при включении модуля.
### Напряжение питания модуля
Команда AT+CBC возвращает информацию о напряжении питания модуля SIM868 в виде текстовой строки, содержащий три числа, разделенных запятой, например: 0,72,3983.
Первое из этих чисел может иметь значение 0 или 1. В первом случае питающая батарея не заряжается, во втором — заряжается. Надо сказать, что при внешнем питании модуля GSM/GPRS/GNSS Bluetooth HAT это значение можно игнорировать.
Второе число сообщает процент зарядки батареи, и оно также вам не потребуется при питании модуля от внешнего источника или от Repka Pi.
Что касается третьего числа, то оно показывает напряжение питания на SIM868 в мВ.
Модуль SIM868 и другие модули серии SIM800 рассчитаны на питание напряжением 4 В, при этом потребляемый ток может в пике достигать 2 А. Обратите внимание на потребляемый ток — если блок питания не обеспечит как минимум 2 А для SIM868 и еще почти столько же для Repka Pi, связь через GPRS может быть ненадежной.
В составе модуля GSM/GPRS/GNSS Bluetooth HAT и SIM800L EVB уже имеются схемы, позволяющие подавать внешнее питание напряжением 5 В. Если же у вас такой модуль, в которых этих схем нет, рекомендуется понижать напряжение питания до 4 В с помощью диода 1N4007 и дополнительно устанавливать после него конденсатор емкостью 100-2000 мкФ.
### Температура модуля
Команда CMTE позволяет устанавливать режим работы при критической температуре или определить температуру модуля:
Анализируя первый параметр, можно узнать, включено или нет определение температуры:
Через второй параметр возвращается значение температуры в диапазоне от -40⁰ to 90⁰.
Включить определение температуры можно так:
Если определение температуры включено, то при перегреве модуль будет отключен.
Надо сказать, что команда AT+CMTE была добавлена в версии 1.01 документа SIM800 Series_ AT Command Manual, а начиная с версии 1.10 удалена. Вы можете найти описание этой команды, например, в руководстве версии 1.09.
Проверить, поддерживается ли команда AT+CMTE в вашем модуле, можно с помощью описанной выше команды AT+CMTE?.
Просмотр списка мобильных операторов
С помощью следующей команды можно просмотреть список доступных мобильных операторов:
Вывод этой команды, которая выполняется достаточно долго, может выглядеть, например, так, как показано на рис. 8.
Рис. 8. Список доступных мобильных операторов.
Первый элемент списка (2,"MTS","MTS","25001") соответствует текущему оператору, к которому мы подключились.
Элемент состоит из четырех значений. Первое из этих значений — режим выбора оператора:
Из результатов выполнения команды видно, что для подключения доступны операторы MTS, Bee Line GSM и MegaFon, при этом текущий оператор, к которому подключен модуль — МТС.
Втрое и третье значения — полное и краткое название оператора. Например, полное название Bee Line GSM, а краткое BeeLine.
И, наконец, четвертое значение представляет собой код оператора в сети (MCC-MNC, где MCC – код страны, MNC – код оператора). В нашем случае мобильный код страны MCC (Mobile Country Code) для России равен 250.
Что касается кодов оператора, то для МТС, Билайн и Мегафона эти коды равны, соответственно, 1, 99 и 2.
После двух запятых в выдаче команды идут дополнительные параметры (0-4),(0-2). Первый их них задает диапазон значений поддерживаемых режимов выбора оператора:
Второй параметр (0-2) показывает поддерживаемые форматы представления оператора:
Информация о текущем мобильном операторе
Команда AT+COPS? возвращает информацию о текущем выбранном мобильном операторе:
Здесь первый ноль указывает, что для текущего мобильного оператора выбран автоматический режим. Второй ноль — выбран полный текстовый режим. Далее следует полное название оператора.
Команда AT+CSPN? читает имя мобильного оператора из SIM-карты, например:
AT+CSPN? +CSPN: "MTS RUS",0
После названия мобильного оператора идет режим отображения:
Узнать силу сигнала от базовой станции можно при помощи команды AT+CSQ. Команда возвращает индикатор мощности сигнала и частоту ошибок, например:
Значение уровня мощности может иметь значения:
Второй параметр означает качество сигнала RxQual и может находиться в диапазоне от 0 до 7, где 0 соответствует лучшему качеству, а 7 — худшему. Значение 99 означает что качество сигнала неизвестно или не может быть определено.
Значение RxQual отражает частоту ошибок при передаче данных по радиоканалу:
Проверка баланса аккаунта
Чтобы проверить баланс аккаунта, привязанного к SIM-карте, у мобильного провайдера МТС, введите такую команду:
AT+CUSD=1,"#100#",15 OK +CUSD: 0, "Balance:785,48r", 15
Через некоторое время команда вернет баланс в рублях.
Мониторинг сигнала GSM-сети
Для определения качества и уверенного приема сигнала GSM сетей используйте — Мониторинг сигнала.
Утилита лэрс настройка модемов определит наличие sim-карты в модеме, регистрацию в сети, оператора и уровень сигнала.
Допустимый уровень сигнала gsm-сети для диспетчеризации приборов учета
Недопустимый уровень сигнала gsm-сети для диспетчеризации приборов учета. Обрыв передачи данных.
Показатель уровня сигнала в сетях GSM – это RSSI (received signal strength indicator). Измеряется в дБм (dBm, децибел относительно 1 милливатта).
В мобильных телефонах на базе ОС Android, принята другая единица измерения сигнала — asu (отношение сигнал/шум в пилотном канале).
до -75 dBmуверенная или нормальная связь в зданиях
Данные об уровне сигнала в телефоне на базе Android. Значение asu
asu не менее 10телефон может передавать голос
asu не менее 6-7 телефон может передавать данные
Используйте мониторинг сигнала в программе ЛЭРС УЧЕТ, чтобы определить подходящее расположение модема для уверенного приема и передачи сигнала.
Опытным путем с помощью монитора выберете надежного поставщика сотовой связи на ваших объектах.
Мониторинг сигнала сотовой сети модема в программе лэрс учет
Видео обзор Lers Modem Tune
https://youtube.com/watch?v=SbSQNeY8TVo%3Ffeature%3Doembed
Полезные ссылки
AT команда служит для управления некоторыми функциями модема. Команды можно вводить специальными программами, это намного проще, чем встроенным в Windows XP hyperterminal. Для этого можно использовать программы: My Huawei Terminal, DC-Unlocker, Терминал и PuTTY. Перед использованием данных программ нужно закрыть все другие, которые могут использовать модем. Для модемов Huawei нужно подключаться на Com порт "3G PC UI Interface", для модемов ZTE MF на Com-порт "ZTE Proprietary USB Modem". Как пользоваться смотрим картинки, всё достаточно просто. Если команд несколько, сначала вводим одну и жмём Enter, потом следующую и опять нажимаем Enter.
My Huawei Terminal (Хуавей модем терминал)
MMD X Mini Mobile Data
Ввод NCK кода разблокировки если модем не запрашивает.
Send Unlock code
Смотрим картинку там всё подробно нарисовано.
Внимание: После ввода команды, во всех трёх программах должен быть ответ ОК. Это значит, что команда была принята.
Huawei data card unlocker v1.1
Список доступных at команды модема Huawei и ZTE MF смотрим здесь: AT команды для модемов Huawei и для ZTE MF
Документация на модемы
Модель Режимы сети краткое описание hardware design AT-команды
Получение информации о модеме
В контроллерах, начиная с 2019 года, некоторая информация о модеме заносится в память. Получить её можно с помощью чтения файлов в директории /proc/device-tree/wirenboard/gsm/.
В контроллерах версии 6.7 модем устанавливается модулем расширения.
После физического подключения модема его нужно добавить в конфигурацию контроллера:
Для удаления модуля выберите тип None.
После конфигурирования включите модем командой wb-gsm on и настройте подключение к оператору связи.
Например, чтобы узнать модель модема, нужно выполнить команду
Подробнее о файлах внутри директории можно узнать из таблицы:
/proc/device-tree/wirenboard/gsm/status статус модема в системе
Переключение активной sim-карты
По умолчанию активна Sim1 — в каждый момент времени только одна sim-карта может быть активной.
Переключить модем на другую sim-карту можно с помощью gpio процессора. Узнать его номер можно двумя способами:
По умолчанию, этот gpio уже экспортирован в sysfs, поэтому, для переключения активной sim-карты с 1 на 2, нужно выполнить команду (в примере, номер gpio для переключения sim-карт – 88):
Соответственно, для переключения обратно на sim1, нужно записать 0.
Подробнее о работе с gpio можно узнать из статьи Работа_с_GPIO.
Для того чтобы новая sim-карта стала активной, нужно выполнить следующие AT-команды (см. раздел о работе с AT-командами):
Работа с sms и ussd
Работать с sms и ussd проще всего при помощи программы Gammu (это форк утилиты gnokii, которую перестали развивать).
Полную документацию смотрите на сайте проекта, ниже дана краткая инструкция.
Все контроллеры WB6, начиная с 2018 года, поставляются с уже настроенной утилитой gammu. Если gammu не настроена, то можно выбрать один из 2-х способов настройки:
Настройка gammu вручную (gammu-config)
Примеры команд gammu
Перед использованием утилиты убедитесь, что соединение с интернетом по протоколу ppp завершено (см. раздел Интернет через PPP)
$ gammu networkinfo # посмотреть сеть и базовую станцию, к которой вы подключены $ gammu geteachsms # вывести все SMS $ gammu getussd # запросить баланс на МТС в транслите $ gammu sendsms TEXT +79154816102 -unicode -text # отправить на номер сообщение с текстом
SMS и USSD на русском
SMS и USSD на русском в gammu пока работают не всегда хорошо, поэтому могут пригодиться команды для переключения языка USSD и перекодирования входящих и исходящих SMS в транслит:
Для надежной отправки SMS на русском надо проверить локаль и установить LC_ALL=ru_RU.utf8
Отправка sms-уведомлений об изменении состояния какого-либо устройства реализована в ПО Wiren Board с помощью сервиса уведомлений. Также можно отправлять SMS из движка правил wb-rules, вызывая соответствующую функцию. Подробнее в статье « Модуль уведомлений».
Интернет через PPP
//www.youtube.com/embed/ZbJUwoifbzE?
Настройка интернета через PPP с помощью 2G-модема
Быстрый выход в интернет
Настройки быстрого подключения сбрасываются после перезагрузки контроллера. Если вам нужен постоянный доступ к интернету — настройте автоматический запуск подключения.
В стандартное ПО контроллера входят настройки подключения для операторов МТС, Мегафон и Билайн по протоколу ppp. Если вы пользуетесь одним из них, то для быстрого подключения к интернету нужно перезапустить модем и подключится с использованием одной из настроек:
Например, изменим порт для провайдера МТС:
Порты /dev/ttyUSB0,/dev/ttyUSB1,/dev/ttyUSB2 появляются автоматически после включения модема командой wb-gsm on.
Автоматический запуск подключения
Файл /etc/network/interfaces, автоматически запускающий подключение к МТС
Чтобы подключение запускалось автоматически:
Параметры протокола пакетной передачи данных и номера для соединения для каждого провайдера хранятся в директории /etc/chatscripts. В большинстве случаев ничего менять в этих файлах не придется.
Для ppp-интерфейсов существуют директории, исполняемые файлы из которых также запускаются на разных фазах установления соединения. Но, если, например, для ethernet-интерфейсов эти скрипты должны находиться в директориях /etc/network/if-down.d, if-post-down.d, if-pre-up.d, if-up.d, то соответствующие директории для ppp-интерфейсов находятся в /etc/ppp/ip-down.d, ip-up.d и т.п. Подробнее об их назначении и функционировании можно узнать в документе PPP HOWTO.
Резервирование канала связи
Особенности резервирования выхода в интернет описаны в статье Сетевые настройки контроллера.
Инициализация модуля SIM868
Посмотрим, как выполняется инициализация модуля SIM868 в библиотеке SIM800L. За инициализацию отвечает функция setup.
Отключение эхо-режима
Сразу после запуска эта команда отключает эхо-режим с помощью команды ATE0. При необходимости эхо-режим можно включить обратно командой ATE1.
На рис. 9 команды ATE0 и ATE1 показаны в работе.
Рис. 9. Демонстрация работы команд ATE0 и ATE1.
Если эхо-режим включен, в терминале показываются команды и ответы на них. При выключении эхо-режима отображается присылается только ответ на команду, но не сама команда. И, наконец, если включить эхо-режим, мы снова увидим в окне терминала команду и ответ.
Включение управления потоком данных
На следующем шаге функция setup включает управление потоком данных командой AT+IFC:
Этой команде в качестве первого параметра задается способ управления потоком при получении данных от оконечного оборудования, такого как компьютер или терминал DTE (Data Terminal Equipment):
Второй параметр задает точно таким же образом способ управления для оконечного оборудования, такого как модем DCE (Data Circuit-terminating Equipment):
Чтобы узнать, какой способ управления потоком установлен в модеме, используйте команду AT+IFC?.
Включение автоматического определителя номера
В модуле SIM868 имеется автоматический номер вызывающего абонента (АОН). Чтобы его включить, функция инициализации setup выдает такую команду:
После включения АОН при входящем вызове модуль возвращает строку, в которой добавлен входящий номер, например:
После номера абонента идет тип номера:
Подробнее об этом мы расскажем в статье, посвященной использованию модуля GSM/GPRS/GNSS Bluetooth HAT в качестве встроенного в ваше оборудование телефона.
Что касается передачи данных через GPRS, то на нее настройка АОН никак не влияет.
Настройка формата отправки SMS
Команда AT+CMGF=1 задает текстовый формат отправки SMS, который не пригоден для отправки SMS с символами кириллицы. Этот режим также не влияет на передачу данных через GPRS.
Для передачи сообщений SMS на русском языке нужно переключить модем в режим PDU командой AT+CMGF=0, о чем мы расскажем в отдельной статье.
Включение автоматической установки времени
Чтобы модуль SIM868 мог автоматически получать дату и время от сети, в которой он был зарегистрирован, функция setup библиотеки SIM800L выдает команду AT+CLTS=1.
Напомним, что команда AT+CCLK? возвращает текущую дату, время и часовой пояс.
Отключение режима сна
Следующее действие, которое выполняет setup, — это отключение автоматического перехода в режим сна модуля SIM868 командой AT+CSCLK=0.
Такое отключение повышает надежность и сокращает время реакции SIM868 на различные события.
Выбор символьной таблицы GSM
Для корректного взаимодействия с модулем SIM868 при отправке команд AT, текстовых сообщений или других данных важно установить правильную символьную таблицу. Эта таблица ограничивает допустимый набор символов. Допускаются цифры, буквы латинского алфавита, некоторые специальные символы и другие символы, соответствующие стандартам GSM.
Чтобы установить символьную таблицу GSM, используется следующая команда:
С помощью команды AT+CSCS? можно узнать, какая символьная таблица используется в данный момент.
Установка формата кодирования текстовых сообщений SMS
При инициализации функция setup библиотеки SIM800L устанавливает шестнадцатеричный формат при передаче SMS:
Подробнее о передаче SMS мы расскажем в отдельной статье.
Интерфейс программы
Главное окно состоит из следующих блоков интерфейса:
интерфейс утилиты настройка модемов лэрс
Установка и запуск терминала minicom
Прежде всего, установите программу терминала minicom в Repka OS следующей командой:
# apt install minicom
После установки запустите терминал, подключив его к устройству /dev/ttyS0, которое подключено к модулю GSM/GPRS/GNSS Bluetooth HAT:
minicom -D /dev/ttyS0
После запуска в окне терминальной программы появится сообщение об успешном подключении (рис. 3).
Рис. 3. Сообщение об успешном подключении к модулю через UART0.
Введите здесь команду at и нажмите клавишу Enter (можно ввести и как AT). В окне терминала должен появиться ответ OK:
Если все так и получилось, значит все подключения выполнены верно, а питание модуля было включено. Кстати, при выключении питания модуля в окне терминальной программы вы увидите такое сообщение:
NORMAL POWER DOWN
Можно опять включить питание модуля и через некоторое время продолжить работу с AT-командами.
В нашей статье мы будем выводить на экран данные JSON. Чтобы вывод был компактнее, включите автоматическое добавление символа перевода каретки CR после символа перевода строки LF. Для этого щелкните комбинацию клавиш Ctrl+A и клавишу Z, а затем нажмите клавишу U.
Второй способ позволяет сохранить эту настройку навсегда. Запустите программу minicom -s с правами пользователя root, выберите Экран и клавиатура, затем нажмите T — Add carriage return. После этого сохраните настройки, выбрав строку Сохранить настройки как dfl.
Для завершения работы с minicom нажмите комбинацию клавиш Ctrl+A, а затем клавишу X. Выберите в меню Покинуть Minicom? строку Да.
Собираем стенд для работы
Для изучения AT-команд модуля GSM/GPRS/GNSS Bluetooth HAT соберем простой стенд, подключив этот модуль непосредственно к разъему GPIO микрокомпьютера Repka Pi как «шляпу» (рис. 1). Такой стенд уже был описан ранее в предыдущей статье.
Рис. 1. Подключение GSM/GPRS/GNSS Bluetooth HAT к Repka Pi через GPIO.
Не забудьте перед подключением установить перемычки желтого цвета на пины B, а также вставить SIM-карту мобильного оператора.
После подключения и загрузки Repka OS отключите вывод сообщений на UART0 с помощью программы repka-config. Для этого запустите repka-config, и, когда появится окно с текущей максимальной частотой процессора, щелкните в нем кнопку Ok. Далее в меню настраиваемых опций выберите Включить / отключить вывод сообщений на UART0. После этого отключите вывод сообщений (рис. 2).
Рис. 2. Отключение вывода сообщений на UART0.
При выходе из программы repka-config перезагрузите Repka OS. Когда Repka OS перезагрузится, включите питание модуля кнопкой PWRKEY, нажав ее примерно на одну секунду. После этого на плате модуля GSM/GPRS/GNSS Bluetooth HAT должны замигать светодиоды красного цвета.
Мы предполагаем, что вас есть доступ к консоли Repka OS, установленной на Repka Pi, через сеть или через оконный интерфейс Repka OS. В наших примерах мы будем использовать доступ к консоли через терминал SSH.
Низкоуровневая работа по uart
Любое взаимодействие с модемом так или иначе сводится к отправке AT-команд через последовательный порт модема. Все модемы подключаются к порту /dev/ttyGSM. 3G модемы, помимо этого, подключаются к портам /dev/ttyACMX (порты создаются usb-драйвером cdc_acm).
Подключение в linux
Примерный вывод команды:
.978383 usb -1.2: New USB device found, 1e0e, .985653 usb -1.2: New USB device strings: , , .993108 usb -1.2: Product: SIMCOM_PRODUCT .997728 usb -1.2: Manufacturer: SIMCOM_VENDOR .002644 usb -1.2: SerialNumber: .082093 cdc_acm -1.2:1.0: ttyACM0: USB ACM device .098228 cdc_acm -1.2:1.2: ttyACM1: USB ACM device .116769 cdc_acm -1.2:1.4: ttyACM2: USB ACM device .132688 cdc_acm -1.2:1.6: ttyACM3: USB ACM device .145157 cdc_acm -1.2:1.8: ttyACM4: USB ACM device .163705 cdc_acm -1.2:1.10: ttyACM5: USB ACM device .182338 cdc_acm -1.2:1.12: ttyACM6: USB ACM device
Соответственно, в данном случае 3G модем подключен к портам /dev/ttyACM0 – /dev/ttyACM6.
Auto-bauding Baud rate Скорость, бит/с. В настройках программы подключения установите 115200.После подключения — отправьте модему AAAAAAAT и он определит скорость автоматически.
8 Data bits Количество битов данных
1 Stop bits Количество стоповых битов
Off Hardware flow control Аппаратный контроль потока
Off Software flow control Программный контроль потока
Для работы в интерактивном режиме рекомендуем использовать утилиту minicom:
Модем готов к передаче AT-команд.
Чтобы закрыть minicom, нажмите на клавиатуре клавиши Ctrl+A, затем клавишу X и подтвердите выход клавишей Enter.
Настройка диспетчерского модема
Диспетчерский модем — это GSM-модем находящийся на компьютере (сервере) с установленной Службой опроса.
Служба опроса использует диспетчерский модем для опроса точек учета.
Проще говоря, диспетчерский модем обзванивает удаленные модемы в ручном или автоматическом режиме по расписанию.
При поступившем звонке удаленный модем «снимает трубку» и по каналу CSD передаёт информацию с прибора учета на диспетчерский модем.
GSM-модемы не хранят и не модифицируют информацию с прибора учета, а только выполняют коммуникационную функцию, т.е. передают данные в программу ЛЭРС УЧЕТ
Подключение диспетчерского модема аналогично настройкам удаленного (приборного) модема
В настройках необходимо выбрать протокол обмена через сеть GSM (зависит от рекомендаций сотового оператора вашей связи). Нажать — Настроить.
Настройка диспетчерского модема лэрс учет
Документация по AT-командам модуля
Самая полная и подробная документация по AT-командам SIM868, на базе которого сделан модуль GSM/GPRS/GNSS Bluetooth HAT, приведена на сайте SIMCom (рис. 4).
Рис. 4. Сайт компании SIMCom.
Зарегистрируйтесь здесь, щелкнув ссылку Login. После регистрации вам станет доступной загрузка многочисленных файлов PDF с описаниями SIM868 и SIM800 (рис. 5).
Рис. 5. Список документации на сайте SIMCom.
В наших статьях, посвященных использованию AT-команд для модуля SIM868 и SIM800 мы будем ссылаться на эти файлы. Например, в файле SIM800 Series_AT Command Manual_V1.12.pdf находится руководство SIM800 Series_ AT Command Manual с описанием команд, имеющих отношение к GPRS.
Настройка модемов подключенных к приборам учета
Стандартный GSM-модем перед подключением к прибору учёта и установкой на объект рекомендуется настроить под соответствующий тип прибора учета и характеристики GSM-сети.
Настройка диспетчерского и удаленного модемов требуется при организации опроса модемов по каналу CSD (голосовой канал передачи данных). При опросе модемов по GPRS настраивается только удаленный модем, т.к. диспетчерский не используется.
Подключение GSM-модема
Выберите COM-порт, через который выполнено подключение модема.
Выбор com-порта для подключения gsm модема
Если в выпадающем списке несколько портов или не одного, откройте настройки Windows Панель Управления ► Система ► Диспетчер устройств. Определите нужный com-порт, к которому подключен настраиваемый модем. Проверьте работоспособность порта (порт должен быть активирован и зарегистрирован в системе).
Определение подключенных com-портов в диспетчере устройств Windows
Выбрав com-порт, при необходимости, можете настроить его параметры (скорость порта, количество бит данных, контроль четности, количество стоповых бит). Параметры подключения модема включают настройки оборудования, определяющие порядок отправки и получения данных модемами.
Ручная настройка параметров com-порта для подключения модема
Биты данных
Параметр «Биты данных» обозначает число битов в слове. Большинство систем в настоящее время использует для представления знаков восемь битов (расширенный ASCII).
В редких случаях некоторые старые системы по-прежнему используют семь битов.
Четность
Параметр «Четность» определяет способ, который модем использует для обнаружения ошибок.
Возникающие в линии шумы могут добавлять или изменять биты данных, передаваемых по телефонной сети. Когда проверка четности включена, передающий модем добавляет к пакету данных бит четности таким образом, чтобы число единичных битов пакета стало четным или нечетным.
Принимающий модем подсчитывает число единичных битов в принятых данных и принимает или отклоняет пакет в зависимости от того, четной или нечетной является полученная сумма.
Доступно несколько вариантов настройки четности.
ЧетУстановка бита четности в 0 или 1 так, чтобы общее число единичных битов было четным
НечетУстановка бита четности в 0 или 1 так, чтобы общее число единичных битов было нечетным
НетБит четности не отправляется
По умолчанию устанавливается в значение «Не проверяется».
Стоповые бит
Стоповые биты обрамляют пакеты данных в асинхронной связи.
Они служат для уведомления принимающего модема о посылке байта данных. Современные асинхронные протоколы не используют больше одного стопового бита.
Оставьте активированной функцию — Автоматически определять параметры порта, чтобы утилита ЛЭРС УЧЕТ самостоятельно настроила параметры подключения.
Автоматическое определение параметров порта модема
Нажмите кнопку — Подключить , чтобы соединиться с модемом.
Настройка параметров модема
Выберете модель настраиваемого GSM-модема из выпадающего списка.
Выбор модели настраиваемого GSM-модема
Выберете модель прибора учета, к которому будет подключается настраиваемый модем.
Выбор модели прибора учета, к которому подключается настраиваемый модем
Далее задайте скорость порта прибора учета и количество звонков для ответа (количество «длинных гудков», после которого модем «снимет» трубку). Нажмите — Настроить.
Настройка параметров порта прибора учета. Прошивка AT-команд
При подключенном модеме доступен терминальный режим, в котором можно вручную набрать команду и отправить её модему. Ответ модема будет выведен в окно отображения протокола настройки.