NB-IoT. Dostarczanie danych innych niż IP lub po prostu NIDD. Testowanie z usługą komercyjną MTS

Dzień dobry i dobry nastrój!

To jest mały samouczek na temat konfigurowania NIDD (Non-IP Data Delivery) w usłudze chmurowej MTS o oczywistej nazwie „M2M Manager”. Istotą NIDD jest energooszczędna wymiana małych pakietów danych przez sieć NB-IoT pomiędzy urządzeniami a serwerem. Jeśli wcześniejsze urządzenia GSM komunikowały się z serwerem poprzez wymianę pakietów TCP/UDP, to dla urządzeń NB-IoT udostępniona została dodatkowa metoda komunikacji – NIDD. W tym przypadku serwer wchodzi w interakcję z siecią operatora za pomocą ujednoliconych żądań POST/GET. Piszę dla siebie (aby nie zapomnieć) i dla wszystkich, którym się to przyda.

Możesz przeczytać o NB-IoT:

NB-IoT, wąskopasmowy Internet rzeczy. Informacje ogólne, cechy technologii
NB-IoT, wąskopasmowy Internet rzeczy. Tryby oszczędzania energii i polecenia sterujące

Teoria NIDD z MTS

Dokumentacja modułu NB-IoT, który został użyty w procesie testowania:
Neoway N21.

Usługa MTS do zarządzania urządzeniami M2M.

Aby poczuć NIDD, potrzebujemy:

  • Karta SIM NB-IoT MTS
  • Urządzenie NB-IoT z obsługą NIDD
  • hasło i login z M2M-manager MTS

Jako urządzenia użyłem tablicy DEMO N21, a hasło i login dostępu do menedżera M2M zostały mi uprzejmie przekazane przez pracowników MTS. Za to, jak również za różnorodną pomoc i liczne konsultacje, bardzo im dziękuję.

Przejdź więc do menedżera M2M i sprawdź, czy:

  • w pozycji menu „SIM Manager” znajduje się „NB-IoT Control Center”;
  • w Centrum Sterowania NB-IoT pojawiła się nasza karta NB-IoT, a także sekcje:
    NIDDAPN
    Konta NIDD
    Bezpieczeństwo NIDD
  • na samym dole znajduje się pozycja menu "API M2M" z "NIDD Developer's Guide"

Cała gospodarka powinna wyglądać mniej więcej tak:

NB-IoT. Dostarczanie danych innych niż IP lub po prostu NIDD. Testowanie z usługą komercyjną MTS

Jeśli czegoś brakuje w menedżerze M2M, możesz wysłać prośbę do swojego menedżera w MTS ze szczegółowym opisem swoich życzeń.

Jeśli niezbędne elementy Centrum sterowania NB-IoT są na swoim miejscu, możesz przystąpić do ich wypełniania. Co więcej, pozycja „Konta NIDD” jest ostatnią rzeczą: będzie potrzebowała danych z sąsiednich sekcji.

  1. NIDDAPN: wymyślamy i wpisujemy nazwę naszego APN oraz „Identyfikator aplikacji”.
  2. Bezpieczeństwo NIDD: tutaj podajemy adres IP naszego serwera aplikacji, który będzie komunikował się z urządzeniami NB-IoT poprzez usługę MTS (serwer).
  3. Konta NIDD: Wystarczy wypełnić wszystkie pola i kliknąć „Zapisz”.

Gdy tylko wszystkie punkty zostaną wypełnione, możesz zacząć zajmować się żądaniami, które powinien utworzyć nasz serwer. Wchodzimy w „API M2M” i czytamy „NIDD Developer's Guide”. Aby urządzenie mogło zarejestrować się w sieci NB-IoT należy utworzyć konfigurację SCS AS:

NB-IoT. Dostarczanie danych innych niż IP lub po prostu NIDD. Testowanie z usługą komercyjną MTS

W instrukcji jest opis poszczególnych parametrów zapytania, podam tylko kilka drobnych uwag:

  1. link do wysyłania zapytań: m2m-manager.mts.ru/scef/v1/3gpp-nidd/v1/{scsAsId}/configurations, gdzie scsAsId to „Identyfikator aplikacji” z pozycji menu „NIDD APN”;
  2. podstawowa metoda autoryzacji z loginem i hasłem - użyj loginu i hasła, które utworzyłeś podczas wypełniania pozycji menu „Konta NIDD”;
  3. NotificationDestination to adres twojego serwera. Z niego będziesz wysyłać wiadomości inne niż ip do urządzeń, a serwer MTS będzie wysyłał do niego powiadomienia o wysyłaniu i odbieraniu wiadomości innych niż ip.

Po utworzeniu konfiguracji SCS AS i pomyślnym zarejestrowaniu urządzenia w trybie NIDD w sieci NB-IoT operatora, można podjąć próbę wymiany pierwszych komunikatów non-ip między serwerem a urządzeniem.

Aby wysłać wiadomość z serwera do urządzenia, zapoznaj się z rozdziałem „2.2 Wysyłanie wiadomości” w instrukcji:

NB-IoT. Dostarczanie danych innych niż IP lub po prostu NIDD. Testowanie z usługą komercyjną MTS

{identyfikator konfiguracji} w linku żądania wartość typu „hex-abracadabra” uzyskana na etapie tworzenia konfiguracji. Wygląda jak: b00e2485ed27c0011f0a0200.

dane — treść wiadomości w kodowaniu Base64.

Konfigurowanie urządzenia NB-IoT do pracy w NIDD

Oczywiście, aby wymieniać dane z serwerem, nasze urządzenie musi nie tylko móc pracować w sieci NB-IoT, ale także obsługiwać tryb NIDD (non-ip). W przypadku płytki rozwojowej N21 DEMO lub innego urządzenia opartego na Moduł NB-IoT N21 sekwencja działań dla wysyłania wiadomości innych niż ip jest opisana poniżej.

Aktywujemy konfigurację z APN, który wymyśliliśmy podczas wypełniania pozycji „NIDD APN” menedżera M2M (tutaj - EFOnidd):

AT+CFGDFTPDN=5,"EFonidd"

i poproś urządzenie o ponowną rejestrację w sieci:

AT+CFUN=0

AT+CFUN=1

następnie wydaj polecenie

AT+CGACT=1,1

i wyślij wiadomość "test":

AT+NIPDATA=1, "test"

Po odebraniu komunikatu non-ip na UART modułu N21 generowany jest niezamówiony komunikat o postaci:

+NIPDATA:1,10,3132333435 // odebrano wiadomość inną niż IP „12345”
gdzie
1 - CID, kontekst pdp
10 - liczba bajtów danych po przecinku

Wiadomość dociera do serwera w kodowaniu Base64 (w żądaniu POST).

PS Aby symulować przesyłanie danych z serwera, wygodnie jest korzystać z programu Listonosz. Do odbierania wiadomości możesz użyć dowolnego skryptu imitującego serwer HTTP.

Mam nadzieję, że komuś się to przyda.
Dziękuję.

Źródło: www.habr.com

Dodaj komentarz