Доброго дня та гарного настрою!
Це невеликий тьюторіал з налаштування NIDD (Non-IP Data Delivery) в хмарному сервісі МТС з назвою «М2М-менеджер». Суть NIDD — в енергоефективному обміні невеликими пакетами даних мережі NB-IoT між пристроями і сервером. Якщо раніше GSM-пристрої спілкувалися із сервером, обмінюючись пакетами TCP/UDP, то пристроїв NB-IoT став доступний додатковий спосіб зв'язку — NIDD. У цьому сервер взаємодіє з мережею оператора, використовуючи уніфіковані POST/GET-запросы. Пишу для себе (щоб не забути) та всіх, кому це виявиться корисним.
Про NB-IoT можна почитати:
Документація на модуль NB-IoT, який використовувався у процесі тестування:
Щоб помацати 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, потрібно створити конфігурацію 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.
дані — вміст повідомлення у кодуванні Base64.
Налаштування пристрою NB-IoT для роботи в NIDD
Звичайно, для обміну даними із сервером наш пристрій має не тільки вміти працювати в мережі NB-IoT, але й підтримувати режим NIDD (non-ip). У разі налагоджувальної плати N21 DEMO або іншого пристрою на базі
Активуємо конфігурацію з 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 Для імітації передачі даних із сервера зручно використовувати програму
Сподіваюся, комусь знадобиться.
Спасибо.
Джерело: habr.com