2 | Hogyan fejlesszen ki tárgyak internete eszközét a RIOT-OS használatával, és csatlakoztassa azt a Thingsboardhoz az MQTT-SN segítségével

Ebben az oktatóanyagban felépítjük az első részben kidolgozott felhőalapú összetevők tetejét: Hogyan állítsunk be IoT rendszert a ThingsBoard segítségével. Ha még nem olvasta el, nagyon ajánlom, hogy tegye meg.

Most a Python segítségével kifejlesztett virtuális környezeti állomásokat kicseréljük a RIOT-OS és az MQTT-SN protokollal épített újakkal. Az RIOT-OS natív emulátorát használja az állomások futtatásához és az MQTT-SN-n keresztüli értékek generálásához, amelyeknek az MQTT-n keresztül kell a felhőbe érkezniük. Ezután megteszi az első lépéseket az IOT-LAB ökoszisztéma felé, hogy a RIOT-OS alkalmazást valódi eszközökön végrehajthassa.

IoT felhőalapú rendszer, amely a Thingsboard, MQTT, RIOT-OS és IoT-LAB használatával működik

Mindenekelőtt ki kell húznia a frissítést a GitHub tárolóból. Ha még nem tette meg, nagyon ajánlom, hogy ellenőrizze a korábbi bemutatóimat és videómat.

git pull git almodul frissítés --init - rekurzív

Felvettem 2 új fontos mappát:

  • brókerek: tartalmazza a bróker és az átjáró összes konfigurációját. Ezen felül 2 almodul található a mosquitto.rsmb és a paho MQTT-SN átlátszó átjáró forráskódjának közvetlen letöltéséhez.
  • device / riot: tartalmazza az IoT eszköz RIOT forrásmappáját és egy kis szkriptet, a set_network.sh fájlt, hogy könnyen konfigurálhassák a hálózati interfészeket natív telepítéskor.

RIOT-OS

A RIOT egy valós idejű, többszálú operációs rendszer, amely számos olyan eszközt támogat, amely jellemzően az IoT-n található. A következő tervezési elveken alapul:

  • energiahatékonyság és valós idejű képességek;
  • kicsi memória lábnyom és modularitás;
  • egységes API-hozzáférés: független az alapul szolgáló hardvertől (POSIX).

Áttekintés érdekében javasoljuk, hogy ellenőrizze a hivatalos RIOT hivatkozásokat: Kezdeti lépések, GitHub lerakat, dokumentáció. Kövesse az Első lépések útmutatót, és vegye figyelembe a RIOT alapmappáját.

Thingsboard

Az IoT eszközök már nem kapcsolódnak közvetlenül a Thingsboard MQTT-hez, ezért meg kell változtatnunk az alapértelmezett témát. Most a telemetriát közzétesszük:

Téma: v1 / átjáró / telemetria

Ezenkívül a hasznos teher eltér a korábbitól:

{"A készülék": [{"ts": 1483228800000, "értékek": {"hőmérséklet": 42, "páratartalom": 80}}], "B eszköz": [{"ts": 1483228800000, "értékek" : {"hőmérséklet": 42, "páratartalom": 80}}]}

Ellenőrizze ezt a linket a Thingsboard MQTT Gateway API teljes referenciájáért.

Ezért új eszközt adunk hozzá a Thingsboard-hoz, hogy mindenképpen jelölje be a Gateway jelölőnégyzetet

A Thingsboard átjáró konfigurációja

Ezt követően másolja a Tutorial Gateway HOZZÁFÉRÉSI TOKEN-ját, és illessze be a / conf / bridge_gateway_ [prod | dev] .conf brókerekbe a remote_username sorba; Ezen felül, ha konfigurálta a Thingsboard felhőn, akkor a címet a PUBLIC IP-vel is megváltoztathatja.

Nem kell semmi mást beállítanunk a Thingsboardon, mindent elhagyunk, mint az első oktatóprogramban volt.

RIOT Firmware

A RIOT firmware az emcute_mqttsn hivatalos példán alapul. Az alábbiak szerint hozzáadtam egy modult a Makefile-hez:

DRIVER? = Lps331ap # közvetlen érzékelõk használatához USEMODULE + = $ (DRIVER) USEMODULE + = saul_default #sensors API
egyéni parancsok a lázadáshoz

További részletek a GitHub tárházban. Fontos beállítani a #define SENSOR 0 értéket, ha natív alaplapon fordít, és 1, ha valódi iotlab-m3 eszközökön fut. Ne felejtse el manuálisan letiltani az lps331ap modult a Makefile-n.

Megjegyzés: Az cmd_pub_data függvényben a riot API thread_create felhasználásával külön elválasztott szálat hoztam létre az adatok folyamatos közzététele érdekében.

MQTT-SN

Az MQTT-SN egy közzétételi / előfizetési üzenetküldési protokoll vezeték nélküli szenzorhálózatokhoz (WSN), azzal a céllal, hogy az MQTT protokollt kiterjessze az érzékelő és a működtető megoldások TCP / IP infrastruktúrájának elérhetetlenségére.

MQTT-SN építészet

Egy nagyon alapvető MQTT-SN átjáró az rsmb, amely modulként elérhető a tárolómban, és alapértelmezés szerint telepítve van az IoT-LAB iotlab-a8 eszközére.

A konfigurációmban úgy döntöttem, hogy a paho MQTT-SN átlátszó átjárót használok, amely MQTT-SN brókerként és MQTT-SN átlátszó átjáróként is működik.

Ezért az alábbiak szerint módosítottam az alapértelmezett gateway.conf fájlt:

BrokerName = localhost BrokerPortNo = 1884
GatewayUDP6Bind = fec0: affe :: 1/64 GatewayUDP6Port = 1885

Most telepítse, és másolja át az egyéni konfigurációmat (feltételezve, hogy letöltötte az almodult)

CD-brókerek / MQTTSN-átjáró ./custom_install.sh mv gateway.conf gateway.conf.bkp cp ../conf/MQTTSN-Gateway.conf gateway.conf

Ez a konfiguráció méretezhető, és „ezen felül” nem kellett írni egy sor sort. A következő szakaszban a szúnyogokat hídként futtathatja, amely összeköti a paho mqtt-sn átjárót a távoli MQTT brókerrel a Thingsboardon.

szúnyog -c brókerek / conf / bridge_gateway_prod.conf

Nyisson meg egy másik terminált, és futtassa a paho átlátszó átjárót:

cd brókerek / MQTTSN-Gateway ./MQTT-SNGateway

Ezt követően végül lefordíthatja a RIOT firmware-t (ellenőrizze a RIOTBASE-t a Makefile-en), majd futtassa.

cd eszköz / zavargás / szenzorok_mqttsn ./start_network.sh PORT = tap0 teljes tisztaságú

Most lesz egy ilyen forgatókönyv:

RIOT natív, MQTTSN átlátszó híd és szúnyog

Kölcsönhatásba léphet a RIOT héjjal, hogy csatlakozzon az MQTT-SN brókerhez és továbbítsa az adatokat.

ifconfig 5 add fec0: affe :: 99 con fec0: affe :: 1 1885 set_device "Device Piano" pub v1 / gateway / telemetry "{'Device Piano': [{'' ': 1585744760000,' értékek ': {' páratartalom ': 42}}]} "1 pub_telemetry
  • set_device : egy egyéni parancs, amelyet az eszköz nevének dinamikus beállításához írtam
  • kocsma egy alapértelmezett parancs, amely elérhető az emcute_mqttsn fájlban
  • pub_telemetry: egy egyéni parancs, amelyet írtam a véletlenszerű adatok közvetlen átadására (natív alkalmazások esetén)
  • pub_data: egy egyéni parancs az adatok folyamatos továbbküldésére egy másik szál felhasználásával. (Jelenleg nem használja, csak a többszálú programozás csücske)
RIOT végrehajtásTöbb eszköz műszerfalKészülék műszerfal

Tárgyak internete-LAB

Az IoT-LAB nagyon nagyléptékű infrastruktúrát kínál kis vezeték nélküli érzékelõ eszközök és heterogén kommunikációs objektumok tesztelésére.

Nézze meg a videómat, hogy megnézze, hogyan lehet helyileg futtatni, és hogyan lehet valós érzékelői adatokat lekérni az IoT-LAB-n

  1. Regisztráljon az IoT-Labba.
  2. Konfigurálja az SSH hozzáférést (link).
  3. Kövesse ezt az útmutatót

A RIOT-firmware távoli telepítéséhez hozzáférést kell biztosítani a távoli számítógéphez, majd futtatnia kell:

ssh @ saclay.iot-lab.info #mv az src mappájának forrásához /opt/riot.source Táblázat = iotlab-m3 minden iotlab-kísérletet küldjön -n riot_m3 -d 60 -l 1, archi = m3: at86rf231 + site = saclay iotlab-kísérlet get -i -r iotlab-node - frissítés .elf-l saclay, m3, nc 20000

Nézze meg a lerakatomban az iot-lab részletesebb útmutatóját. A következő oktatóanyagban részletesebben foglalkozom az iot-lab hálózat konfigurációjával. Ezért ugyanazt a konfigurációt megismételjük valódi iotlab eszközökön.

Ez a Római Sapienza Egyetem Számítástechnika MSc Mérnöki Tanfolyamának tárgya.

  • GitHub lerakat: link
  • LinkedIn: link
  • YouTube: link