Как запрограммировать gsm модем
Как задавать настройки модуля и объединять ввод одновременно нескольких АТ-команд?
Команды, которые могут быть поданы модулю SIMCom, подразделяются на три типа:
- базовые (вида AT<x><y> либо AT&<x><y>);
- с параметром (имеют синтаксис ATS<x>=<y>);
- расширенные(AT+<x>, AT+<x>?, AT+<x>=?, AT+<x>=<…>).
При первичном включении устройства с использованием GSM-модема SIMCom необходимо задать его основные настройки: скорость работы UART, параметры отображения echo (от англ. echo — эхо), режим энергосбережения и т. п. Список команд может быть достаточно внушительным, поэтому возникает желание сэкономить время, не подавая команды поотдельности и не дожидаясь ответа модуля на каждую из них.
В одной строке можно подать сразу несколько команд. При этом нужно придерживаться правил:
- Строка должна начинаться с AT, между командами префикс AT не вводится.
- Базовые команды и команды с параметром далее вводятся подряд без разделителя.
- Расширенные команды вводятся с разделителем ‘;’.
- Максимальный размер буфера под строку и управляющий символ <CR> ограничен 556 символами.
Рассмотрим достаточно простой пример. Допустим, нам нужно подать на модуль при его настройке следующие команды:
- ATE0 // выключить отображение эхо.
- AT&D0 // отключить реакцию на смену уровня входа DTR.
- ATS0=2 // включить автоматический ответ на входящий вызов через два звонка.
- AT+IPR=115200 // установить фиксированную скорость UART.
- AT+CMGF=1 // задать текстовый формат работы с SMS.
- AT&W // сохранить соответствующие настройки.
Вместо этих семи команд, применив допустимый для модулей формат, можно подать строку:
Данный синтаксис допустим при использовании и других команд, однако некоторые из них вследствие объективных причин могут выполняться в течение довольно продолжительного времени, поэтому необходимо дожидаться завершения их выполнения. Например, если подать модулю команду
то он ответит ошибкой, так как до старта попытки выполнить команду CIPSTART он не успеет получить IP-адрес от оператора сотовой сети.
Как обеспечить корректную работу программы модема при всевозможных сценариях?
Рис. 1. Pin out diagram модуля SIM900
У модулей SIMCom серии 900 для этого предназначен дополнительный DEBUG UART-порт (рис. 1), а у модулей серии 800 — USB-порт (рис. 2).
Рис. 2. Pin out diagram модуля SIM800
Кроме того, через отладочные порты можно производить обновление внутреннего ПО модуля.
Упрощенный алгоритм данного действия выглядит следующим образом:
Рис. 3. Возможные состояния в режиме single connection
Вообще, при работе с TCP(UDP)/IP правильным решением может быть организация FSM (finite state machine) на управляющем устройстве по состояниям, возвращаемым модулем на запросы состояния AT+CGATT? и AT+CIPSTATUS?, как показано на рис. 3 и 4 для режимов single connection и multi connection соответственно.
Рис. 4. Возможные состояния в режиме multi connection
Что такое SAPBR и чем отличается работа с IP-приложениями при его использовании?
Пример записи текстового файла на FTP-сервер:
Все ли команды и настройки модемов перечислены в документах типа «AT-command manual»?
Чтобы упростить изложение алгоритмов работы модулей в рамках той или иной функциональности, компания SIMCom выпускает специальную документацию (Application Notes) с примерами двустороннего обмена командами между модулем сотовой связи и MCU.
Например, для модулей SIMCom серии 900 существует линейка стандартных прошивок и ENHANCE-прошивок (с расширенной функциональностью). Команды и настройки, доступные только в прошивках с расширенной функциональностью, вынесены в отдельную документацию. Список дополнительных ENHANCE-функций, который может варьироваться в зависимости от конкретной версии ПО, приведен ниже:
Как получить данные о текущей версии ПО модуля?
Текущую ревизию программного обеспечения GSM/GPRS-модуля можно получить по ответу на команды AT+GMR, AT+CGMR и AT+GSV.
Ответ включает в себя:
- 1137 — идентификатор семейства модулей; в данном случае модуль относится к серии 900.
- B02 — номер текущей прошивки в данной ветке прошивок.
- SIM900R64 — аппаратную модификацию модуля; это модуль SIM900R с 64-Мбит flash-памятью.
- ST — производителя flash-памяти, использованной в данном модуле.
- ENHANCE — прошивку с поддержкой расширенной функциональности.
- EAT — прошивку с поддержкой технологии Embedded AT.
Как получить и поддерживать данные о текущем времени с помощью GSM/GPRS-модуля?
Существует несколько способов получить данные о времени:
- Обновление времени RTC при регистрации в сети можно включить командой AT+CLTS=1.
Затем значение текущей даты и времени можно запросить у модуля командой AT+CCLK.
- Чтобы получить время по протоколу NTP, можно воспользоваться командами:
AT+CNTP // запрашиваем время с сервера. Если в команде AT+CNTP добавить четвертый параметр =2, то при запросе также будут обновлены данные часов реального времени.
Чтобы поддерживать работу часов реального времени, нужно поддерживать питание RTC-домена, когда с модуля будет снято основное питание. Для этого можно обеспечить подачу питания на вход VRTC от конденсатора достаточной емкости либо от батареи/аккумулятора.
Выводы
Таким образом, применительно к модулям компании SIMCom Wireless Solutions может быть в значительной степени оптимизирован исполняемый управляющий программный код, что обеспечит более быстрое включение и настройку модулей. В целом это приводит к тому, что программный код функционирует более корректно и эффективно.
Кроме того, правильное понимание алгоритмов функционирования модулей SIMCom и, следовательно, корректная организация последовательности подаваемых на модуль команд при его взаимодействии с внешними устройствами позволяют избежать характерных ошибок, возникающих при разработке устройств.
Давно обещанный «интернет вещей» не так далек, как может показаться. Правда, футуристические статьи, рисующие напичканную датчиками технику, редко касаются одного важного вопроса: каким образом информация с этих датчиков достигает сервера? Если они находятся в доме — это одно дело. А если датчики установлены, скажем, на грузовом автомобиле или вообще в чистом поле? Ответ есть: зачастую информацию с датчиков собирает специальный контроллер, который затем передает ее на сервер по СМС. Тут, впрочем, возникает другой вопрос: как построить сервер, способный взаимодействовать с такими устройствами?
СМС и набор команд Hayes
Современная мобильная связь только кажется вещью в себе. Если смотреть на нее с верной точки зрения, быстро выясняется, что у навороченных смартфонов немало общего со старенькими «Курьерами» и «Спортстерами». И те и другие поддерживают так называемый набор команд Hayes.
Ветераны индустрии помнят замысловатые инициализационные строки, которые приходилось скармливать модему перед подключением к BBS или узлу Фидо. Каждая такая строка — это примитивная программа, составленная из команд Hayes для настройки модема.
Модем Hayes Smartmodem, для которого в 1981 году была разработана система команд Hayes, развивал скорость до 300 Бод
Модемы, для которых была разработана первая версия набора команд Hayes, не отличались богатыми возможностями. Кроме настроечных команд, имелись команды, которые позволяли набирать телефонные номера, устанавливать соединение, а затем вешать трубку.
За прошедшие с тех пор тридцать пять лет многое поменялось. Расширенный набор команд, который используется сегодня, фактически можно рассматривать как своеобразный программный интерфейс (API), при помощи которого можно управлять мобильным телефоном.
Каким образом это сделать? Сначала необходимо подключить GSM-устройство к компьютеру. Для автоматического обмена СМС удобнее взять не смартфон, а сотовый модем: он не нуждается во взломе, дешевле стоит и не требует проводов. Подойдет обычный 3G-модем, купленный в ближайшем салоне связи за тысячу рублей.
Перед использованием модема или смартфона на компьютер должны быть установлены необходимые драйверы. А вот софт для выхода в интернет, который часто прилагается к модемам, для нашей задачи не только не потребуется, но даже вреден. Если он захватит доступ к устройству, мы не сможем до него достучаться. Вместо этого нам потребуется UNIX-совместимая ОС и минимальное умение работы с командной строкой.
Первым делом наш путь лежит в каталог /dev/. Где-то в его недрах прячется файл подключенного устройства. Говорящее имя поможет идентифицировать его если не напрямую, то методом исключения. 4G-модем «Мегафон M100-4», использованный автором для опытов, обнаружился на пути /dev/tty.HUAWEIMobile-Pcui. Попробуем связаться с ним при помощи утилиты screen.
Теперь можно узнать, что же мы нашли. Для получения информации об устройстве служит команда ATI. Ответ следует немедленно:
Большинство устройств принимают команды в одном из двух режимов. По умолчанию, как правило, включен режим PDU (Protocol Data Unit), который требует указывать аргументы в цифровой форме. Чтобы не разучивать еще один шифр, лучше перейти в текстовый режим. Для этого служит команда AT+CMGF=1 (нулевое значение вернет устройство в режим PDU).
Поддерживает ли наше устройство этот способ? Это можно проверить при помощи команды AT+CSCS=?
Ответ модема содержит список поддерживаемых режимов кодирования. Режим GSM здесь соответствует чистому семибитному ASCII. IRA нам тоже не поможет — это так называемый International Reference Alphabet, малоизвестная международная разновидность ASCII. А вот UCS2, один из ранних вариантов UTF-16, — это именно то, что нужно. Стоит заметить, что иногда подходящий вариант, подразумевающий замену символов Unicode шестнадцатеричными цифрами, называется HEX, — все зависит от модели и производителя.
Теперь следует активировать нужный режим:
В некоторых случаях для работы с кириллицей может понадобиться настройка DCS — схемы кодирования данных. Для этого служит команда AT+CSMP. Значение четвертого аргумента должно быть равно восьми:
Теперь можно отправлять:
Gammu и Gammu SMS Daemon
До сих пор мы общались с модемом в интерактивном режиме при помощи терминала. На практике это взаимодействие должно быть полностью автоматизировано. Это не проблема: открыть файл /dev/tty.HUAWEIMobile-Pcui программно ничуть не труднее, чем любой другой. Трудность может состоять в другом. Если планируется поддерживать более одной модели модема, придется разбираться в особенностях и капризах каждой.
Непосредственное управление при помощи команд Hayes — это хороший вариант, когда модем один, его модель известна, тонкости никого не волнуют, а все взаимодействие можно описать парой-тройкой строк кода. Когда запросы выше, стоит обратить внимание на одно из готовых средств для работы с телефонами и модемами.
В этом случае может подойти набор утилит командной строки Gammu — развитие известного в прошлом проекта Gnokii, избавленного от, увы, устаревшей ориентации на продукцию Nokia. Список поддерживаемых Gammu телефонов и GSM-модемов не ограничивается устройствами одного производителя. В нем, впрочем, все же имеются пробелы, поэтому вопросами совместимости лучше озаботиться заранее.
Gammu позволяет извлекать списки принятых и инициированных звонков, открывать телефонные соединения и управлять ими, просматривать телефонные книги, изучать информацию о телефоне и сотовой сети и многое другое, вплоть до работы со встроенным FM-приемником. Разумеется, прием и отправка СМС и MMС тоже входит в список умений этой программы.
Для установки Gammu под OS X следует воспользоваться командой brew install gammu (требуется пакетный менеджер brew). Под Linux поможет apt-get install gammu gammu-smsd или ее эквивалент для другого пакетного менеджера. Пользователям Windows придется отыскать и скачать инсталлятор на сайте проекта.
Работа с Gammu начинается с настройки. Проще всего это сделать при помощи утилиты, которая запускается командой gammu-config. Она поинтересуется «портом» (в нашем случае сюда попадает уже знакомый путь /dev/tty.HUAWEIMobile-Pcui), типом и скоростью соединения, моделью (если ничего подходящего нет, стоит выбрать at — в этот тип входит любое устройство, поддерживающее набор команд Hayes) и запросит несколько менее интересных деталей. Введенная информация будет сохранена в настроечном файле
/.gammurc, который при необходимости можно отредактировать в любом текстовом редакторе.
Настройка Gammu
Здесь тоже возможны проблемы с кодировками, но их решение проще и прямолинейнее. Чтобы русский язык не вызывал у Gammu паники, в системе должна быть верно настроена локаль и язык. Для этого в OS X и Linux стоит добавить в инициализационный файл (например,
/.bash_profile) следующие строки:
Нередко вместо выполнения команды Gammu жалуется на проблемы. Ошибка «Error opening device. Unknown, busy or no permissions» может свидетельствовать о том, что соединение с модемом захватила какая-то другая программа. Возможен и другой вариант: GSM-модемы, как оказалось, не отличаются крепкими нервами и под градом команд склонны виснуть. Чтобы привести их в чувство, устройство приходится вытаскивать из порта USB и затем втыкать снова.
Интернет-шлюзы СМС
Вызов утилиты выполняется через пункт меню Сервис ► Настройка модемов или из меню Windows (кнопка Пуск).
Ознакомитесь со списком устройств, настраиваемых GSM/GPRS модемов и приборов учета, на которые может быть настроен модем.
Вызов программы для настройки GSM модемов в меню ЛЭРС УЧЕТ
Каталог инженерного оборудования
Руководства по монтажу и эксплуатации, полезные утилиты, актуальные цены и статьи о приборах учета, автоматике, устройствах передачи данных и др.
Интерфейс программы
Главное окно состоит из следующих блоков интерфейса:
- Подключение модема
- Выбор модема и его тип для настройки
- Протокол настройки
- Командная строка
- Информация о модеме
- Диаграмма с уровнем сигнала базовой станции, к которой подключился модем
- Диаграмма сравнения уровней сигнала со всех базовых станций
-
26.11.2021 17.11.2021 13.10.2021 06.09.2021 01.08.2021
Настройка модемов подключенных к приборам учета
Стандартный GSM-модем перед подключением к прибору учёта и установкой на объект рекомендуется настроить под соответствующий тип прибора учета и характеристики GSM-сети.
Настройка диспетчерского и удаленного модемов требуется при организации опроса модемов по каналу CSD (голосовой канал передачи данных). При опросе модемов по GPRS настраивается только удаленный модем, т.к. диспетчерский не используется.
Подключение GSM-модема
Выберите COM-порт, через который выполнено подключение модема.
Выбор com-порта для подключения gsm модема
Определение подключенных com-портов в диспетчере устройств Windows
Выбрав com-порт, при необходимости, можете настроить его параметры (скорость порта, количество бит данных, контроль четности, количество стоповых бит). Параметры подключения модема включают настройки оборудования, определяющие порядок отправки и получения данных модемами.
Ручная настройка параметров com-порта для подключения модема
Биты данных
Параметр «Биты данных» обозначает число битов в слове. Большинство систем в настоящее время использует для представления знаков восемь битов (расширенный ASCII).
В редких случаях некоторые старые системы по-прежнему используют семь битов.
Четность
Параметр «Четность» определяет способ, который модем использует для обнаружения ошибок.
Возникающие в линии шумы могут добавлять или изменять биты данных, передаваемых по телефонной сети. Когда проверка четности включена, передающий модем добавляет к пакету данных бит четности таким образом, чтобы число единичных битов пакета стало четным или нечетным.
Принимающий модем подсчитывает число единичных битов в принятых данных и принимает или отклоняет пакет в зависимости от того, четной или нечетной является полученная сумма.
Доступно несколько вариантов настройки четности.
Значение | Описание |
---|---|
Чет | Установка бита четности в 0 или 1 так, чтобы общее число единичных битов было четным |
Нечет | Установка бита четности в 0 или 1 так, чтобы общее число единичных битов было нечетным |
Нет | Бит четности не отправляется |
По умолчанию устанавливается в значение «Не проверяется».
Стоповые бит
Стоповые биты обрамляют пакеты данных в асинхронной связи.
Они служат для уведомления принимающего модема о посылке байта данных. Современные асинхронные протоколы не используют больше одного стопового бита.
Автоматическое определение параметров порта модема
Настройка параметров модема
Выберете модель настраиваемого GSM-модема из выпадающего списка.
Выбор модели настраиваемого GSM-модема
Выберете модель прибора учета, к которому будет подключается настраиваемый модем.
Выбор модели прибора учета, к которому подключается настраиваемый модем
Настройка параметров порта прибора учета. Прошивка AT-команд
Настройка диспетчерского модема
Служба опроса использует диспетчерский модем для опроса точек учета.
Проще говоря, диспетчерский модем обзванивает удаленные модемы в ручном или автоматическом режиме по расписанию.
GSM-модемы не хранят и не модифицируют информацию с прибора учета, а только выполняют коммуникационную функцию, т.е. передают данные в программу ЛЭРС УЧЕТ
Подключение диспетчерского модема аналогично настройкам удаленного (приборного) модема
Настройка диспетчерского модема лэрс учет
Мониторинг сигнала GSM-сети
Утилита лэрс настройка модемов определит наличие sim-карты в модеме, регистрацию в сети, оператора и уровень сигнала.
Допустимый уровень сигнала gsm-сети для диспетчеризации приборов учета Недопустимый уровень сигнала gsm-сети для диспетчеризации приборов учета. Обрыв передачи данных.
Показатель уровня сигнала в сетях GSM – это RSSI (received signal strength indicator). Измеряется в дБм (dBm, децибел относительно 1 милливатта).
В мобильных телефонах на базе ОС Android, принята другая единица измерения сигнала — asu (отношение сигнал/шум в пилотном канале).
до -75 dBm | уверенная или нормальная связь в зданиях |
-85 … -75 dBm | уверенная связь на улице и в транспорте |
-95…-85 dBm | средний уровень сигнала (пограничная зона) |
-105…-95 dBm | низкий уровень сигнала (прием не гарантирован) |
-110…-105 dBm | мин. уровень сигнала (связь на грани обрыва) |
Данные об уровне сигнала в телефоне на базе Android, можно посмотреть если зайти в Настройки > О телефоне > Общая информация > Статус SIM карты.
Данные об уровне сигнала в телефоне на базе Android. Значение asu
asu не менее 10 | телефон может передавать голос |
asu не менее 6-7 | телефон может передавать данные |
Используйте мониторинг сигнала в программе ЛЭРС УЧЕТ, чтобы определить подходящее расположение модема для уверенного приема и передачи сигнала.
Опытным путем с помощью монитора выберете надежного поставщика сотовой связи на ваших объектах.
Видео обзор Lers Modem Tune
Учет электроэнергии для предприятий
Комплексные решения для малого и среднего бизнеса
Передача почасовых отчетов в энергокомпании
Сдача отчетности в форматах 80020 по регламентам энергокомпаний
Снижение стоимости электроэнергии до 35%
Перевод на выгодную ценовую категорию "Под ключ"
Контроль качества электроэнергии
Фиксация отклонений напряжения и подготовка претензий к энергокомпаниям
Оперативный контроль электропотребления объектов в любое время на своем мобильном устройстве
Электросчётчики с модемами
Комплекты оборудования для быстрого внедрения АСКУЭ
Решения на базе Ваших счётчиков
АСКУЭ с модемом или без него
Настройка GPRS модема TELEOFIS WRX
Подключение к модему
1. Вставляем в слот Sim1 – СИМ-карту основного оператора(прим. Мегафон). В Sim2 – СИМ-карту дополнительного оператора.(прим. Tele2)
2. Подключаем клеммный соединитель I/O. В клеммный разъем подключаем, от внешнего источника 12В, вход V - положительный вход внешнего питания и вход PG – Земля.
3. Подключаем модем по интерфейсу USB к ПК. Наблюдаем за индикацией подключени.
NET | RX | TX | |
Подключен USB провод или питание | - | Попеременное частое мигание индикаторов | |
Питание подано, поиск сети, инициализация | Очень частые мигания | - | - |
4. При первом подключении компьютер обнаружит новое устройство, для которого будет установлен USB-драйвер.
5. После инсталляции драйвера в системе появится новый виртуальный COM порт: «TELEOFIS GPRS Terminal». Узнать номер порта и проверить правильность установки драйвера модема можно в диспетчере устройств (Система → Диспетчер устройств) в разделе COM и LPT порты.
6. После установки драйвера - запустите программу настройки терминала WRX Configuration Tool.exe .
7. В начале работы необходимо выбрать тип подключения программы настройки к терминалу.
Локальное подключение через USB разъём:
Локальное подключение осуществляется при непосредственном подключении терминала к компьютеру через разъём mini-USB либо через основной последовательный порт (RS-232/485/422).
Чтобы подключить терминал локально через USB-порт:
1) Откройте меню Настройка подключения (кнопка с изображением «шестерёнок»).
- В правой части открывшегося окна выберите тип подключения Локальное.
- В левой части окна нажмите на тип подключения Локальное для настройки параметров подключения. При подключении по USB используйте настройки по умолчанию: пароль для доступа — 0000, имя COM-порта — Авто (автоматический поиск COM-порта подключенного терминала), тип подключения — USB. В качестве имени порта допускается указать конкретный COM-порт.
ПРИМЕЧАНИЕ!
!Пароль доступа к настройкам локального подключения по умолчанию — 0000. Пароль можно изменить на панели управления в меню Сервис (кнопка «гаечный ключ»). Длина пароля для доступа к настройкам не может превышать 32 символа (только цифры и латинские буквы; пароль чувствителен к регистру букв)!
3) После успешного подключения нажмите кнопку Прочитать параметры. (копка «стрелка вниз») чтобы считать сведения о подключенном терминале. Под панелью управления появится информация об устройстве: модель терминала, IMEI, оператор, уровень сигнала и т.д.
Настройка модема
Опускаемся вниз во вкладку Дополнительно. Допустимое время тишины в канале: 1027
4. Нажимаем кнопку «Записать»(Кнопка «Стрелочка вверх»). Смотрим Консоль.
5. Смотрим Индикацию.
NET | RX | TX | |
Получена регистрация в сети GPRS | 3 сек. горит/ 0.5 сек. гаснет | - | - |
Настройка АСКУЭ
1. Заходим в Настройки АСКУЭ необходимого ПУ.
Параметры соединения: Тип соединения: GPRS модем с протоколом TELEOFIS
IMEI: Вбиваем IMEI указанный в конфигураторе Teleofis.
Настройка модема SMS командами
В начале каждой SMS команды должен быть указан пароль администратора. По умолчанию это - 0000
Формат SMS сообщешия - PSW;CMD1=P1,P2;CMD2;CMD3=P1,P2
Где:
PSW - пароль администратора
CMD1 - символьное имя первой команды
= - разделитель имени команды и её параметров
P1 - первый параметр команды
, - разделитель параметров команды
P2 - второй параметр команды
CMD2 - символьное имя второй команды — в данном случае команда без параметров
CMD3 - символьное имя третьей команды
1. На основной номер телефона СИМ, вставленной в модем отправляем поочередно несколько команд.
1) Настройка оператора связи:
0000;SIM1APN=internet;SIM1LOGIN=gdata;SIM1PAS=gdata.
Где: 0000 - пароль администратора; SIM1APN - Точка входа в GPRS; SIM1LOGIN - Логин для выхода в GPRS; SIM1PAS - Пароль для выхода в GPRS
2) Настройка модема на сервер яЭнергетик:
Где: 0000 - пароль администратора; MODE - Выбор режима работы терминала(0 - клиент; 1 - сервер); CLIENT - Адрес и порт сервера через двоеточие в режиме клиент; AUTH1 - Выбор протокола авторизации на серверах 1-5 в режиме клиент(0 - без авторизации, 1 - Аналитика, 2 - Пирамида, 3 - TELEOFIS).
Ссылка на остальные команды, принимаемые GPRS модемами TELEOFIS: Удаленная настройка терминала WRX по SMS
Читайте также: