NB-IoT. Non-IP Data Delivery або просто NIDD. Тестування з комерційним сервісом МТС

Доброго дня та гарного настрою!

Це невеликий тьюторіал з налаштування 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

Виглядати все це господарство має приблизно таке:

NB-IoT. Non-IP Data Delivery або просто NIDD. Тестування з комерційним сервісом МТС

Якщо чогось у М2М-менеджері не вистачає — сміливо надсилайте запит вашому менеджеру до МТС з докладним описом ваших побажань.

Якщо потрібні пункти центру керування NB-IoT на місці, можна починати їх заповнювати. Причому пункт «NIDD Акаунти» — в останню чергу: йому знадобляться дані із сусідніх розділів.

  1. NIDD APN: придумуємо та заповнюємо ім'я нашого APN та «ID програми».
  2. NIDD Безпека: тут вказуємо IP-адресу нашого сервера додатків, який спілкуватиметься із пристроями NB-IoT через сервіс (сервер) МТС.
  3. NIDD Акаунти: просто заповнюємо всі поля та натискаємо «Зберегти».

Як тільки всі пункти заповнені, можна починати розбиратися із запитами, які має формувати наш сервер. Ідемо до «API M2M» і читаємо «Посібник розробника NIDD». Щоб пристрій міг зареєструватися в мережі NB-IoT, потрібно створити конфігурацію SCS AS:

NB-IoT. Non-IP Data Delivery або просто NIDD. Тестування з комерційним сервісом МТС

У посібнику є опис окремих параметрів запиту, я тільки наведу кілька невеликих коментарів:

  1. посилання для передачі запитів: m2m-manager.mts.ru/scef/v1/3gpp-nidd/v1/{scsAsId}/configurations, де scsAsId - це "ID програми" з пункту меню "NIDD APN";
  2. базовий метод авторизації з логіном та паролем — використовуйте логін та пароль, які ви придумали при заповненні пункту меню «NIDD Акаунти»;
  3. notificationDestination — адреса сервера. З нього ви надсилатимете non-ip-повідомлення на пристрої, і на нього сервер МТС надсилатиме повідомлення про відправлення та отримання повідомлень non-ip.

Коли конфігурацію SCS AS створено, а пристрій успішно зареєструвався в режимі NIDD в NB-IoT-мережі оператора, можна спробувати обмінятися першими повідомленнями non-ip між сервером та пристроєм.

Для передачі повідомлення від сервера на пристрій вивчаємо розділ «2.2 Надсилання повідомлення» посібника:

NB-IoT. Non-IP Data Delivery або просто NIDD. Тестування з комерційним сервісом МТС

{configurationId} у посиланні запиту - значення типу "hex-абракадабра", отримане на етапі створення конфігурації. Має вигляд: b00e2485ed27c0011f0a0200.

дані — вміст повідомлення у кодуванні 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-запиті).

PS Для імітації передачі даних із сервера зручно використовувати програму Листоноша. Для отримання повідомлень можна використовувати будь-який скрипт, що імітує сервер HTTP.

Сподіваюся, комусь знадобиться.
Спасибо.

Джерело: habr.com

Додати коментар або відгук