NB-IoT első tapasztalatok Hollandiából

Meglehetősen véletlenül adódott, hogy az egyik első publikusan elérhető NB-IoT hálózatot kipróbálhattam. Amsterdamban voltam épp és elmentem egy IoT meetupra. A meetup témája az NB-IoT hálózattal való ismerkedés volt. Rövid háttérismertető után a rendelkezésre álló hardver bemutatása, AT parancsainak áttekintése, a szerver oldal még rövidebb érintése következett, majd át is tértünk a gyakorlatra. Minden 2–3 ember kapott egy-egy

kombót. Az arduino-ra csak egy UART passthru program volt rátöltve, tehát amit az USB-n összekötött serial konzolba írtunk, azt egy az egyben mint ha az NB-IoT shieldnek küldtem volna.

Nem akarták nekünk kicsit sem magasra tenni a lécet, ezért a szükséges AT parancsokak előre letárolták és a Quectel QCOM V1.0 programjába töltötték, ahol serial konzolba másolgatás helyett csak egyenként gombokat kellett nyomogatni és a program elküldte a soros AT parancsokat.

A teljesség igénye nélkül néhány AT parancs

Az AT+CSQ parancsra a signal quality százalékos értékét adná vissza. Ez az épület sajátságai miatt nekem egy ideig 99,99 volt, amire mondták, hogy az a nullát jelzi, tehát nem kapcsolódott még a hálózatra.

Aztán egy idő után a AT+CGATT? már +CGATT:1-el válaszolt, tehát a packet service rendelkezésre állt és a signal quality is 5–6 százalékos értéket mutatott, amire azt mondták, hogy már működnie kell és az előadónak működött is, sikerült a AT+NMGS=6,000000000101 paranccsal 6 bájtot átküldeni, amit úgy konstatáltunk, hogy a AT+NQMGS parancs PENDING=0,SEND=1,ERROR=0-val válaszolt. Az előadónak sikerült, nekünk viszont nem, sőt senki másnak sem, így a gyakorlat nem haladhatott tovább a szerver oldali felkészülés felé, hanem lázas tanakodás kezdődött, hogy mi lehet az ok, illetve mit lehetne gyorsan tenni. Az volt a teória, hogy a firmware verzió nem illik a T-Mobile hálózat jelenlegi konfigurációjához, mert azt nemrég kapcsolták élesbe, és a firmware a tesztidőszakhoz lett illesztve. Megpróbáltak gyorsan firmware-t frissíteni, de valamiért az sem sikerült, így a gyakorlati rész lassan, különösebb áttörés nélkül ellaposodott és szabad beszélgetésekké alakult. A mi kis körünk az NB-IoT-t nem említette többször aznap este.

Mivel én azonban nemsokára haza megyek, és a T-Mobile NB-IoT hálózata egyelőre otthon nem elérhető (gondolom más sem, de ez a konfiguráció rengeteg paraméterével nyilván szigorúan szolgáltató és szolgáltatás függő) így valószínűleg több motivációm volt, hogy a kíváncsiság tovább vigyen, mint a többieknek. Ma újra bekapcsoltam az eszközt, és először is jóval erősebb jelerősséget tapasztaltam, mint a bemutató alatt, nyilván az ezúttali optimálisabb pozícióm miatt. Újrajátszottam az AT parancsokat és ezúttal firmware frissítés nélkül is minden gördülékenyen ment, simán tudtam adatcsomagokat küldeni. Pozitív jel volt az is, hogy a szerver oldali konzol elkezdte számolni a fogadott csomagokat.

Igaz szombat van, de írtam a meetup T-Mobil-os kollégájának, hogy szeretnék tovább haladni és a szerver oldalon látni a fogadott csomagokat. Gyakorlatilag azonnal válaszolt és elküldte a linket, ahol az összes doksit és segédletet megtalálom. Ezek alapján sikerült is Postman-ben az API hívásokat összeraknom. Néhány jellemző

  • Kliens oldali key és cert szükséges, ezt a Postman native appja tudja kezelni, a Chrome appban nem találtam ilyen lehetőséget
  • A fejlesztők készítettek egy Postman Collection-t és Environmentet, hogy az API hívásokat mind formailag mind paraméterek tekintetében könnyedén lehessen kezelni
  • Az API jelenleg a következő hívásokat tudja

Mivel a konzolban már korábban létrehoztuk az application-t illeve regisztráltuk az eszközt, ezért ezekre nem volt szükség. A login utáni script automatikusan beállította az access tokent és refresh tokent a környezeti változókban, ezeket a többi hívás automatikusan helyettesítette be.

Érdekesség, hogy a “get devices active status” visszaadja az utoljára küldött adatcsomagot, a “get device data history” pedig visszaadja az eddig küldött összeset (hogy meddig megy vissza, nem tudom, illetve, hogy hogyan kell limitálni, azzal nem foglalkoztam).

Itt nagyjából körbe is értem, a “rawData” az elküldött hex stringeket base64-gyel kódolva adja vissza, tehát ezt az egyszerű visszaalakítást még el kell végezni.

Maximum 50 byte-os csomagot próbáltam küldeni, az semmilyen korlátba nem ütközött, később megpróbálok majd nagyobb csomagokat is.

Azt egyelőre nem fogom, hogy lefelé irányuló kommunikációra van-e, illetve ha igen, akkor hogyan, lehetőség, de most a néhány órás tapasztalatnál tartok, ennyi talán elég is most.

Ezek alapján az NB-IoT életképes is lehet, mert a 4G mobilhálózattal megegyező lefedettséget nyújt, olcsó (< 5 Eur) modulokat ígér, bár ez az ár még bőven nem létezik, energiagazdálkodásban pedig megint csak nagyon kedvezőeket ígér. Rövidesen le fogom mérni a fogyasztást, de talán ez az az aspektus, amiben legjobban hinni merek.

IoT everywhere

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store