Tartalom

MSc diplomamunka


A teljes dokumentáció megtalálható itt.

Feladatkiírás

Az iparban évtizedek óta kiforrott technológia a beágyazott rendszerek használata. Beágyazott eszközök találhatók az autókban, gyárakban, nyersanyagfeldolgozó telepekben és háztartásokban. Ezen rendszerek feladata szenzoradatok olvasása, ezek alapján döntéshozás és beavatkozás, azaz a befogadó rendszer vezérlése. Az Internet of Things fogalom 2010 környékén terjedt el világszerte, mely lehetővé tette a beágyazott rendszerek szélesebb körű elterjedését, megjelentek a Raspberry Pi és az Arduino sorozat elemei.

Az iparban használt szoftverek nagy része C/C++ programozási nyelven íródott, annak hatékonyságát kiaknázva, viszont az Internet of Things által meghódított közönség nem feltétlenül rendelkezik célirányos tudással ezen a területen. Ezt áthidalva lehetőség van több, különböző magasszintű programozási nyelvet használni, mint pl. a Python és a JavaScript.

Az iparban használt szoftverek tervezése során hangsúlyt fektetnek a készülő eszköz energiahatékonyságára, hiszen a vezérlési folyamatot megszakítás nélkül kell ellátni a hét minden napján. Felmerül a kérdés, hogy az iparban elterjedt technológiák mellett Python és JavaScript nyelven írt programok milyen energiahatékonysági mutatókkal rendelkeznek.

A szakdolgozat célja egy energiamérő modul elkészítése, mely képes mérni az eszközök energiafogyasztását és menteni azt későbbi feldolgozásra. Az energiamérő egységnek tudnia kell kommunikálni a mérendő eszközzel, lehetővé téve szoftverfejlesztési konstrukciókat célzó mérések végzését. Használati eseteket állít fel, melyeket a fent említett nyelvek segítségével megvalósít és lemér, ily módon a különböző nyelveken írt programok összehasonlíthatók, az összehasonlítást a hallgató elvégzi. Ezen felül megvizsgálja a különböző futtatókörnyezetek hatását az energiafogyasztásra (Python 3, IoT.js (JerryScript)).

Téma megnevezése

IoT eszközök energiafogyasztásának vizsgálatát támogató eszköz tervezése, megvalósítása és validálása. Az eszköz segítségével különböző programozási nyelveken írt alkalmazások fogyasztásának összehasonlítása.

A feladat megfogalmazása

Fogyasztásmérő eszköz megtervezése és kivitelezése. A szükséges eszközök beszerzése, megfelelő illesztése. A meghajtóprogramok implementálása, a mérési eredmények könnyű elérhetőségének biztosítása. Az elkészült eszköz segítségével egy népszerű IoT projekt modellezése és megvalósítása C++, JavaScript és Python nyelveken, a egvalósítások összehasonlítása energiafogyasztás szempontjából.

Megoldási mód

A mérések végrehajtását szolgáló Unix háttérszolgáltatás Python nyelven került megvalósításra, az eredmények egy lokális webszerveren elérhetők. A mérések programozottan indíthatók, ez ellenőrzésre került a felhasználói eset megvalósítása közben mindhárom programozási nyelven. A felhasználói eset mellett három Unix teljesítményteszt is vizsgálva lett: Sysbench, Polybench és Iperf3. A nyers mérési adatokat feldolgozó szkriptek is Python nyelven kerültek megvalósításra.

Alkalmazott eszközök, módszerek

A mérő egység alapja egy Raspberry Pi 3B+ számítógép és egy INA219 árammérő szenzor. A mért eszköz egy Raspberry Pi 3B volt SenseHat bővítőpanellel kiegészítve, a dolgozatban szereplő eredmények az eszközök méréséből származnak. Az alkalmazások a nyílt forráskódú Visual Studio Code integrált fejlesztői környezetben, a kapcsolási rajzok a Fritzingben készültek. Az eredmények elérhetőségét a ProfFTP alkalmazás biztosítja.

Elért eredmények

A fogyasztásmérő eszközt és a felhasználói eset modellezését megvalósítottam. Mind a saját alkalmazások, mind a teljesítménytesztek méréseit és az eredmények összehasonlítását elvégeztem. Megvizsgáltam a GCC fordító optimalizációs kapcsolóinak hatását a fogyasztásra.