Добры дзень і добрага настрою!
Гэта невялікі цьютарыял па наладзе 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.
gegevens - Змест паведамлення ў кадоўцы 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