Добрый день и хорошего настроения!
Это небольшой тьюториал по настройке NIDD (Non-IP Data Delivery) в облачном сервисе МТС с говорящим названием «М2М-менеджер». Суть NIDD — в энергоэффективном обмене небольшими пакетами данных по сети NB-IoT между устройствами и сервером. Если раньше GSM-устройства общались с сервером, обмениваясь пакетами TCP/UDP, то для устройств NB-IoT стал доступен дополнительный способ связи — NIDD. При этом сервер взаимодействует с сетью оператора, используя унифицированные POST/GET-запросы. Пишу для себя (чтобы не забыть) и всех, кому это окажется полезным.
Про NB-IoT можно почитать:
NB-IoT, Narrow Band Internet of Things. Общая информация, особенности технологии
NB-IoT, Narrow Band Internet of Things. Режимы энергосбережения и команды управления
Теория NIDD от МТС
Документация на модуль NB-IoT, который использовался в процессе тестирования:
Neoway N21.
Сервис МТС для управления устройствами М2М.
Чтобы пощупать NIDD, нам потребуется:
В качестве устройства я использовал плату N21 DEMO, а пароль и логин для доступа к М2М-менеджеру мне любезно предоставили сотрудники МТС. За это, а также за разнообразную помощь и многочисленные консультации большое им спасибо.
Итак, заходим в М2М-менеджер и проверяем, что:
Выглядеть всё это хозяйство должно примерно так:
Если чего-то в М2М-менеджере не хватает — смело отправляйте запрос вашему менеджеру в МТС с подробным описанием ваших пожеланий.
Если нужные пункты Центра управления NB-IoT на месте, можно начинать их заполнять. Причем пункт «NIDD Аккаунты» — в последнюю очередь: для него понадобятся данные из соседних разделов.
Как только все пункты заполнены, можно начинать разбираться с запросами, которые должен формировать наш сервер. Идём в «API M2M» и читаем «Руководство разработчика NIDD». Чтобы устройство могло зарегистрироваться в сети NB-IoT (в режиме NIDD!), нужно создать SCS AS конфигурацию:
В руководстве есть описание отдельных параметров запроса, я только приведу пару небольших комментариев:
Когда конфигурация SCS AS создана, а устройство успешно зарегистрировалось в режиме NIDD в NB-IoT-сети оператора, можно попробовать обменяться первыми сообщениями non-ip между сервером и устройством.
Для передачи сообщения от сервера на устройство изучаем раздел «2.2 Отправка сообщения» руководства:
{configurationId} в ссылке запроса — значение типа «hex-абракадабра», полученное на этапе создания конфигурации. Имеет вид: b00e2485ed27c0011f0a0200.
data — содержимое сообщения в кодировке Base64.
Конечно, для обмена данными с сервером наше устройство должно не только уметь работать в сети NB-IoT, но и поддерживать режим NIDD (non-ip). В случае отладочной платы N21 DEMO или иного устройства на базе NB-IoT-модуля N21 последовательность действий для передачи non-ip-сообщений описана ниже.
Активируем конфигурацию с APN, который мы придумали при заполнении пункта «NIDD APN» М2М-менеджера (здесь — EFOnidd):
и просим устройство перерегистрироваться в сети:
после этого подаем команду
и передаем сообщение «test»:
При получении non-ip-сообщения на UART модуля N21 выдается незапрашиваемое сообщение вида:
где
1 — CID, pdp context
10 — количество байт данных после запятой
На сервер сообщение поступает в кодировке Base64 (в POST-запросе).
P. S. Для имитации передачи данных с сервера удобно использовать программу Postman. Для приема сообщений можно использовать любой скрипт, имитирующий HTTP-сервер.
Надеюсь, кому-нибудь пригодится.
Спасибо.
Это небольшой тьюториал по настройке NIDD (Non-IP Data Delivery) в облачном сервисе МТС с говорящим названием «М2М-менеджер». Суть NIDD — в энергоэффективном обмене небольшими пакетами данных по сети NB-IoT между устройствами и сервером. Если раньше GSM-устройства общались с сервером, обмениваясь пакетами TCP/UDP, то для устройств NB-IoT стал доступен дополнительный способ связи — NIDD. При этом сервер взаимодействует с сетью оператора, используя унифицированные POST/GET-запросы. Пишу для себя (чтобы не забыть) и всех, кому это окажется полезным.
Про NB-IoT можно почитать:
NB-IoT, Narrow Band Internet of Things. Общая информация, особенности технологии
NB-IoT, Narrow Band Internet of Things. Режимы энергосбережения и команды управления
Теория NIDD от МТС
Документация на модуль NB-IoT, который использовался в процессе тестирования:
Neoway N21.
Сервис МТС для управления устройствами М2М.
Чтобы пощупать NIDD, нам потребуется:
- SIM-карта NB-IoT МТС
- устройство NB-IoT с поддержкой NIDD
- пароль и логин от М2М-менеджера МТС
В качестве устройства я использовал плату N21 DEMO, а пароль и логин для доступа к М2М-менеджеру мне любезно предоставили сотрудники МТС. За это, а также за разнообразную помощь и многочисленные консультации большое им спасибо.
Итак, заходим в М2М-менеджер и проверяем, что:
- в пункте меню «SIM-менеджер» есть «Центр управления NB-IoT»;
- в «Центре управления NB-IoT» появилась наша карточка NB-IoT, а также разделы:
NIDD APN
NIDD Аккаунты
NIDD Безопасность - в самом низу есть пункт меню «API M2M» с «Руководством разработчика NIDD»
Выглядеть всё это хозяйство должно примерно так:
Если чего-то в М2М-менеджере не хватает — смело отправляйте запрос вашему менеджеру в МТС с подробным описанием ваших пожеланий.
Если нужные пункты Центра управления NB-IoT на месте, можно начинать их заполнять. Причем пункт «NIDD Аккаунты» — в последнюю очередь: для него понадобятся данные из соседних разделов.
- NIDD APN: придумываем и заполняем имя нашего APN и «ID приложения».
- NIDD Безопасность: здесь указываем IP-адрес нашего сервера приложений, который будет общаться с устройствами NB-IoT через сервис (сервер) МТС.
- NIDD Аккаунты: просто заполняем все поля и нажимаем «Сохранить».
Как только все пункты заполнены, можно начинать разбираться с запросами, которые должен формировать наш сервер. Идём в «API M2M» и читаем «Руководство разработчика NIDD». Чтобы устройство могло зарегистрироваться в сети NB-IoT (в режиме NIDD!), нужно создать SCS AS конфигурацию:
В руководстве есть описание отдельных параметров запроса, я только приведу пару небольших комментариев:
- ссылка для передачи запросов: m2m-manager.mts.ru/scef/v1/3gpp-nidd/v1/{scsAsId}/configurations, где scsAsId — это «ID приложения» из пункта меню «NIDD APN»;
- базовый метод авторизации с логином и паролем — используйте логин и пароль, придуманные вами при заполнении пункта меню «NIDD Аккаунты»;
- notificationDestination — адрес вашего сервера. С него вы будете посылать non-ip-сообщения на устройства, и на него сервер МТС будет посылать уведомления об отправке и получении сообщений non-ip.
Когда конфигурация SCS AS создана, а устройство успешно зарегистрировалось в режиме NIDD в NB-IoT-сети оператора, можно попробовать обменяться первыми сообщениями non-ip между сервером и устройством.
Для передачи сообщения от сервера на устройство изучаем раздел «2.2 Отправка сообщения» руководства:
{configurationId} в ссылке запроса — значение типа «hex-абракадабра», полученное на этапе создания конфигурации. Имеет вид: b00e2485ed27c0011f0a0200.
data — содержимое сообщения в кодировке Base64.
Настройка устройства NB-IoT для работы в NIDD
Конечно, для обмена данными с сервером наше устройство должно не только уметь работать в сети NB-IoT, но и поддерживать режим NIDD (non-ip). В случае отладочной платы N21 DEMO или иного устройства на базе NB-IoT-модуля N21 последовательность действий для передачи non-ip-сообщений описана ниже.
Активируем конфигурацию с APN, который мы придумали при заполнении пункта «NIDD APN» М2М-менеджера (здесь — EFOnidd):
AT+CFGDFTPDN=5,"EFOnidd"
и просим устройство перерегистрироваться в сети:
AT+CFUN=0
AT+CFUN=1
после этого подаем команду
AT+CGACT=1,1
и передаем сообщение «test»:
AT+NIPDATA=1, "test"
При получении non-ip-сообщения на UART модуля N21 выдается незапрашиваемое сообщение вида:
+NIPDATA:1,10,3132333435 // принято non-ip-сообщение '12345'
где
1 — CID, pdp context
10 — количество байт данных после запятой
На сервер сообщение поступает в кодировке Base64 (в POST-запросе).
P. S. Для имитации передачи данных с сервера удобно использовать программу Postman. Для приема сообщений можно использовать любой скрипт, имитирующий HTTP-сервер.
Надеюсь, кому-нибудь пригодится.
Спасибо.