Az elmúlt hetekben, hónapokban a Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Karán végzős gyakornokunk diplomamunkájának részeként elkészült a Fibocom MA510 NB-IoT/LTE-M és 2G GSM modemjének C++ könyvtára, az objektumorientált érzékelő és adatbeküldő szoftver, és megszületett a legújabb adatmegjelenítő eszközünk, az android mobilapplikáció is. Az otthoni okoseszközök, mint például a rádiós klíma, árnyékoló roló és világítótestek bluetoothon keresztüli vezérlésére pedig kidolgoztunk egy szimulátor alkalmazást. Cikkünkben ezt a komplex okosotthon koncepciót részletezzük.
Az E-IoT platform segítségével kialakított okosotthon mintaalkalmazás
Korábbi írásainkban (l. Jövő Gyára) részletesen tárgyaltuk az E-IoT platform hardverelemeit, melyek jellemzően valamilyen népszerű mikrovezérlő köré épült saját fejlesztésű miniszámítógépek IoT-funkciókkal kiegészítve. Ezek a 3in1 megoldások egy készülékben egyesítik az IoT-végpontok számára nélkülözhetetlen szenzor, és az ezek adatgyűjtését irányító vezérlő, és az adatok továbbítására szolgáló vezetékmentes (LPWA) kommunikáció funkciókat. Amennyiben a lakásban lévő általános célú okoseszközök (klíma, árnyékoló roló, világítás) vezérlését kell elvégezni, akkor wifi- vagy Bluetooth-kapcsolatot is integrálni kell a központi vezérlőnkbe.
Így a most megvalósított koncepcionális okosotthonrendszer is kapott egy Bluetooth 2.0 modult. Ez egy okostelefonon futó BT Terminál program segítségével képes megjeleníteni a szenzorok által mért adatokon alapuló döntésekhez tartozó parancsokat, ezzel emulálva egy valós okosotthonrendszer lokális vezérlőhálózatát. A rendszer kihasználja az E-IoT szolgáltatásait, a mért szenzoradatokat felhőalapú adatbázisba juttatja a GSM hálózat segítségével (UDP), a mobil eszközökön valós idejű adatmegjelenítésre alkalmas, és az MCU lokális vezetékmentes kapcsolaton keresztül parancsokat is képes adni az okoseszközöknek.
A megvalósított mintarendszer a következő funkciókkal rendelkezik:
1. ábra | Az okosotthon mintaalkalmazás vezérlési struktúrája
A rendszer felépítése
Az alkalmazott központi hardver szinte bármelyik E-IoT eszköz, a RISC-V alapú E-IoT board, vagy egy az Arduinohoz vagy Raspberry Pi-hez fejlesztett E-IoT pajzs is lehet. Közös elvárás, hogy szenzorokra van szükség, ahhoz pedig, hogy az általuk mért jellemzőket felhőalapú adatbázisba juttassuk, valamilyen kommunikációs eszközzel kell kiegészítenünk őket. Ahhoz, hogy az SBC IoT csomópontként működhessen, eddig is sok lehetősége volt a fejlesztőknek, hiszen a kereskedelmi forgalomban kapható miniszámítógépeken hozzáférhető I/O portok sokasága lehetővé teszi, hogy akár analóg, akár digitális (I2C) szenzorokat illesszenek a készülékhez, az UART porton keresztül pedig a GSM modem képes az adatok felhőbe juttatására, azonban az E-IoT készülékek minden szükséges funkcióval egyszerre rendelkeznek.
Bármelyik E-IoT pajzson megtalálható a légnyomásszintet, a környezeti hőmérsékletet és a differenciális légnyomás alapján kalkulált magasságot érzékelő szenzor, és a látható tartományban, az emberi szem spektrális érzékenységét közelítően modellező ALS szenzor is. Az MCU lap szabad portjai továbbra is használhatóak külső perifériák illesztésére, így egy második UART porton keresztül csatlakoztatható valamilyen BT eszköz, például az általunk használt HC-05 BT2.0 modul.
A pajzson található egy, az MCU UART portával összekapcsolt LPWA modem is, mely a soros porton az MCU felől érkező AT parancsok segítségével a celluláris hálózatot használva juttatja el az adatokat az Endrich felhőalapú adatbázisába vagy egyéb publikus felhőszolgáltatókhoz. Az elérhető szolgáltatások közül alacsony energiafogyasztás mellett igénybe vehetjük az NB-IoT vagy az LTE-M LPWA technológiákat, azonban ezek hiányában sem kell lemondanunk az adatküldésről, mert a modem képes a 2G/GPRS hálózaton is kommunikálni.
2. ábra | Az E-IoT okosotthonrendszer felépítése
Az adatok felhőbe juttatása és megjelenítése
Az alkalmazott E-IoT eszközhöz fejlesztett C++ könyvtár lehetővé teszi az egyes érzékelők adatainak kiolvasását és kiértékelését is. A mért adatok alapján azonnal lehetőség van a BT2.0 modulon keresztül parancsok kiadására a helyi BT-eszközök felé. Az MA510 GSM modemhez fejlesztett kommunikációs könyvtár minden a modemmel és a GSM-hálózattal kapcsolatos szükséges funkciót támogat, így – a teljesség igénye nélkül felsorolva – egyszerűen lekérdezhető a Modem és a SIM-kártya azonosítója, az Endrich felhőszerver DNS-adatai, képes a szerver és a modem között UDP-csatorna létesítésére, a küldendő JSON távirat felépítésére, kódolására és feladására, elküldésére is. Az E-IoT felhőalapú adatbázisa az adatokat egységes formában kéri ahhoz, hogy a Visualization Gateway és az applikációs megjelenítést támogató API-k számára egységes adatstruktúra álljon rendelkezésre.
Az így felépítendő JSON telegram a következő szerkezetű:
A létrehozott JSON távirat kódolásáról és annak feladásáról a C++ könyvtárfüggvények gondoskodnak, maguk a modemműveletek az MCU és a Modem UART adatkapcsolatán keresztül AT parancsok segítségével valósulnak meg. Az E-Cloud felhőadatbázisába kerülő adatok hozzáféréséről az E-IoT rendszer többféleképpen gondoskodik. A felhasználóknak lehetősége van – felhasználói bejelentkezés után – a webes ügyfélportálon keresztül letölteni, az E-Visualization Gateway Webes műszerfal segítségével megjeleníteni, vagy a rendelkezésre álló API-k segítségével saját applikációba integrálni. Ez utóbbi módszert használta gyakornok kollégánk is a frissen kifejlesztett android okostelefonos applikáció megvalósításához. Az API meghívásakor a lekért eszköz adatai szintén JSON szerkezetben állnak rendelkezésre, melyek feldolgozásával grafikus megjelenítésre van lehetőség.
3. ábra | Az okosotthon mintarendszer távoli szerverrel (E-IoT Clouddal) való kommunikációja
Lokális okoseszköz-vezérlés emulációja Bluetoothon keresztül
Az E-IoT SBC hőmérséklet és látható fény intenzitás szenzorai által érzékelt adatok alapján az MCU egyszerű döntéseket képes hozni az 1. ábrán vázolt rendszerben. Ahhoz, hogy ezen egyszerű döntések alapján az otthoni okoseszközöket vezérelni tudjuk, valamilyen támogatott vezetékmentes lokális rádiós kapcsolat létesítésére van szükség, ilyen lehet a wifi vagy a bluetooth technológia integrálása. Mintarendszerünkben egy Bluetooth 2.0 modult használunk egy szabad UART Tx és Rx lábainak csatlakoztatásával a HC-O5 Rx és Tx lábaihoz, ezek után már csak 5 V tápfeszültséget kell biztosítani a modul számára, és a soros porton való kommunikáció útján parancsokat küldhetünk. Mivel általános koncepcionális megoldásban gondolkodunk, valós eszközök helyett egy mobiltelefont és egy azon futó Bluetooth terminált használtunk a parancsok megjelenítésére, valamint az ott begépelt manuális adatok fogadására az E-IoT eszközön. A HC-05 modul és a mobiltelefon párosítása után a BT terminál emulátor elindítása után már használható is a rendszer.
4. ábra | Az okosotthon mintarendszer helyi bluetoothalapú kommunikációja
| Illusztrációk: Endrich