RFID-s beléptetőrendszer hálózat

Cikkemben a tanulmányaim során fejlesztett RFID-s beléptetőrendszereket mutatom be, azok elkészítésének sorrendjében. Több verzió jelenleg is üzemel a Schönherz kollégium területén! Igyekszek kitérni azon fő megfontolásokra, melyek megadták ezen projektek alapját.

A címben említett rendszer látványterve az alábbi képen látható, de ne ugorjunk egyből ennyire előre! 🙂

Egy projekt elkezdésekor úgy vélem nem árt tisztázni azon személyes motivációt, mely annak elkészítéséhez vezetett. Jómagam a BME-s tanulmányaim során több RFID alapú beléptető rendszert fejlesztettem, ezen projektekből készítettem el mind a BSc-s önlabomat,  szakdolgozatomat, mind az MSc diplomamunkámat. A cikkben bemutatásra kerül az MSc diplomám tárgyát képző egység, emellett szeretnék röviden szót ejteni az ezt megelőző hardverekről is. Úgy vélem a rendszerek fejlődésének áttekintése tanulságos lehet az olvasó számára.

A kezdetek V0.0

Gólya koromban csatlakoztam az MMMK körhöz, mely egyik fő profilja egy kiválóan felszerelt próbaterem üzemeltetése volt. A folyamatosan próbáló zenekarok óráról órára váltották egymást és ezen zenekarok beengedőinek a terem kulcsát minden alakalommal a portán, az üzemeltetéstől kellett kikérnie. Ez megnehezítette, meghosszabbította a zenekarok fogadásának menetét.

A probléma tehát adott volt, így Albu Bence barátommal ennek megoldásán gondolkoztunk. Ekkor még csupán némi villamosmérnöki érdeklődéssel és elfogadható forrasztási ismeretekkel rendelkeztem. Egy kártyaolvasó egység működésének pontos megértésére esélyem sem volt. Programozási ismereteim ekkor még nem voltak. Bence szerencsére elboldogult a C nyelvvel és időközben megszerezte a rendszer felprogramozásához szükséges ismereteket. Első próbálkozásunk alapját egy Raspberry PI 1 alapú rendszer adta, melynek SPI buszára egy MFRC522 -es kártyaolvasó modult kapcsoltunk. A modul specifikációja szerint képes volt olvasni kollégiumunk kártyáit, azonban a piacon kapható legolcsóbb, hobbi kártyaolvasók kategóriájába sorolható eszközként tartják számon. Ekkor még nem láttuk a határait. A kártyák validálását UID alapján végeztük, később kiderült, hogy ez (annak ellenére, hogy a kollégiumi dedikállt olvasósók is ez alakján validálnak) egy nagyon könnyen kijátszható azonosítási mód. Természetesen a biztonsági rés kizárólag a Mifare 1k kártyák esetén áll fent. A rendszer alapját egy HESTORE-ból kapható DC/DC konverter modul és egy 1A terhelhetőségű relé adta. A fejlesztés során felmerült a lináris áteresztő tápegység használatának ötlete is, de akkor még nem értettük, hogy mi is a baj a kiszámolt 3W disszipáció elfűtésével! 😀

A fenti modulokat felhasználva elkészítettük első NYÁK lapunkat, mely képes volt ellátni az elvárt feladatot. A teszt sikeresnek bizonyult, a kártyaolvasó egy alkalommal sikeresen kinyitotta próbatermünk ajtaját, ezt követően a kártyaolvasó azonnal leállt. Ezen hibát a zárszerkezet induktivitásával sorba kapcsolt védődióda hiánya okozta. A relé kioldásakor a tekercsben ellenáram indukálódott, mely leállította a kártyaolvasónk antennáját.

Az első próbálkozásunk az alábbi ábrán látható. A kültéri egységünkben már ekkor LED-sort helyeztünk el, de az csupán esztétikai elemként szolgált. A rendszer felügyeletét egy saját honlapon keresztül végeztük.

BSC önlab

A terem nyitása ugyan már megoldott volt, azonban a kör idő közben beszerzett egy öreg szekrényt, melyben többek között tárolásra került egy hűtő (benne maláta ízű KAKAÓS! üdítőitalokkal) és a kör értékesebb tárgyai melyekben az avatatlan próbáló könnyen kárt tehetett volna. Ezen szerkény nyitását újfent egy kulcs segítségével végezhettük el. Ezen kényelmetlenség gyors orvoslásért kiáltott. A projektet a regisztrációs hét folyamán dobtuk össze. Az elvárásunk ekkor a lokális kártyaregisztrációra korlátozódott. Révén, hogy hálózati kommunikációs réteg kiépítésére nem volt szükségünk, így a rendszer alapját egy Arduino nano adta. A RC522-es kártyaolvasót ennek SPI-képes lábaira illesztettük. A visszajelző RGB LED-ek és a zárak vezérléséről BC817-es tranzisztorok gondoskodnak. A kártyaolvasót kívülről láthatatlan módon, belülről süllyesztettük a szekrény ajtajának hátoldalába. Az eredmény beszéljen önmagáért.

 

A hardver- és szoftverrétegek pontos felépítését az alábbi dokumentumban tekinthetitek meg.

BSC szakdolgozat V1.3

Motivációnk alapját az képezte, hogy szerettünk volna valami maradandót alkotni a kollégisták számára. Úgy véltük a próbatermünk fejlesztéseit ki lehetne terjeszteni a házban található klubszobákra is. Ebbe a projektbe mérhetetlen munkát öltem fejlesztőtársaimmal, azonban végső kimenetelét mélypontnak tekintem.  A jelenlegi rendszer csupán árnyéka az elképzelésinknek és több esetben megnehezíti a klubszobák használatát. Ennek ellenére úgy vélem nem árt tanulni a projekt hibáiból és lehetőséget látok rá, hogy ezen cikkben röviden megismertessem veletek ez eredeti célkitűzéseinket és azon munkát melyet mostanra nyomtalanul eltűnt a rendszerek “lelkéből”. Az elkészített hardver egységeken ugyanis nem a mi szoftverünk dolgozik. Az eredeti funkcionalitás 80%-át elvesztette, a maradékot értékelhetetlenül látja el.

Célkitűzések

  • több ajtózár független vezérlése
  • több kártyaolvasó együttes kezelése
  • Rádiós kommunikáció az egységek között (ezzel megspórolva a jelenlegi hálózati felügyelethez szükséges raspberry PI egységek használatát az alegységekben)
  • bővíthető, személyre szabható perifériavezérlés
  • Biztonságosabb validáció (UID használatának elkerülése)
  • kompatibilitás az első emeleti körfolyosó adottságaival és a különböző szinteken található klubszobákal szemben (rádiós és vezetékes kommunikáció együttes támogatása)
  • a kártyaolvasó modulok egyszerű cserélhetősége modernebb alternatívára, azok elavulása esetén!
  • intelligens zárvezérlés (amennyiben egy felhasználónak adott esetben mind két klubszobához volt belépési joga, azon zárszerkezet nyitását végeztük el mely irányába a már beolvasott RFID kártyáját eltávolította az olvasóról) /erre is szolgálnának a TCRT5000 típusú szenzorok a kártyaolvasó modulok mellett/

A funkcionalitást mind próbatermünkhöz , mind a ház igényihez igazítottunk. Elképzelésünk egy könnyen átprogramozható vezérlő egység volt, mely egységes interfésszel rendelkezik és egyszerűen személyre szabható a az aktuális igényekhez illesztve. Természetesen helyet adtunk olyan újításoknak is, melyektől úgy véltük rendszerünk egyedi és könnyebben kezelhető lesz.

 

 

 

 

A HW alapját a fent felsorolt szempontok alapján egy intelligens I/O vezérlő shield adta. A programozható perifériavezérlést ez látta el. Az egyszerűség kedvéért egy Atmega 328P alapú egység fejlesztése mellett döntöttem, mely a megfelelő bootloder felégetése után UART buszon egyszerűen átprogramozható. A hálózati kommunikációról ezúttal is egy Raspberry PI gondoskodott, azonban ebben az implementációban különleges szerepet kapott. A MFRC522-es kártyaolvasók SPI busza közvetlenül a PI SPI buszára lett huzalozva. Az ajtók felügyeletét (nyitásérzékelés, redundáns nyitás) a PI látta el. A shield szintén kapcsolatban állt ezen I/O kivezetésekkel.  Természetesen az AVR SPI busza is kivezetésre került, PI tehát a megfelelő programozás esetén kiváltható maradt a rendszerből.

A shieldet tehát univerzális perifériavezérlőnek szántuk, ezt figyelembe véve speciális funkciók nem kerültek kialakításra rajtuk. Kimeneteit általános, védett BUSZ rendszerek és kis és nagy áramú I/O lábak adják. A speciális funkciókat (még a kártyaolvasó  kültéri egység esetén is) külön áramköri egységen implementáltuk. A sheld kódjainkkal egy független egységként üzemelt és intelligensen vezérelte a felhasználói felületeket.

Központi és lokális felügyelet

A kártyaazonosítók tárolása egy beléptető rendszer hálózat esetén igen kritikus. A projekt specifikálásakor úgy véltük egyszerű és működőképes megoldást jelenthet egy az egységenként lokális felügyeleti rendszer megvalósítása, melynek szintenkénti felügyeletéről egy egy felelős személy különállóan gondoskodik. Ezen elgondolás alapul véve vállaltunk egy határidőt mely alatt úgy véltük a projekt elkészíthető…

A megrendelők azonban ennél komplexebb rendszer elkészítésére köteleztek minket. A végső szoftvermodellünkben az alegységek (Raspberry PI) egy lokális adatbázissal rendelkeztek és egy ún. kisszervert futtattak. Ezen kisszerverek csatlakoztak egy a központi felügyeletet ellátó ún. nagyszerverre, mely a tárolta a rendszer működéséhez szükséges adatbázist. Az alegységek közötti információáramlás ezen a módon jelentősen átalakult. Ezen szoftver megalkotása Czémán Barnabás és Albu Bence barátaim nevéhez fűződött. A közös munkát ezúton is köszönöm nekik!

Nehézségek, a projekt megvalósulását hátráltató tényezők

  • A projekt megvalósítása során több akadályba ütköztünk. A klubszobák ajtajai nem voltak olyan állapotban ami megfelelő lett volna a zárszerkezetek beépítésére. A zárszerkezetek beépítését egy külső vállalkozó végezte, akinek a felmérése és árajánlata nem bizonyult relevánsnak.
  • A projekt pénzügyeinek kezelése teljes mértékeben a mi felelősségünk lett, azonban igen szűk keretből kellett gazdálkodnunk. A határidők betartását ellehetetlenítették a spórolások. Nem rendelhettük meg a projekthet szükséges NYÁK lapokat egy hónapnál rövidebb határidővel, az áramkörök beültetését szintén magunknak kellett végeznünk.
  • Tapasztalatlanságunk egy nehezen reprodukálható HW elkészítéséhez vezetett. A sorozatgyártás mérhetetlen időt vett el a projekt fejlesztésétől.
  • Az olcsó kártyaolvasó modulok megbízhatatlannak bizonyultak azok működését szoftveresen próbáltuk elfogadhatóvá tenni.
  • Magánemberként keztük el a projektet, nem rendelkeztünk szakkollégiumi háttérrel. Megvalósulása személyes motivációnknak köszönhető. A ház vezetése nem volt képes megérteni a problémáinkat és segíteni az előrehaladást. Nagyon hamar egy ellenséges környezetben találtuk magunkat, melyben nem tudtunk kiállni a munkánk mellett. A projektet a HW elemek részleges elkészülte után egy másik csapat vette át tőlünk, akiknek a munkájában főként személyes ismertség miatt jobban megbízott kollégiumunk vezetősége. Sajnos a projektet nem tartották sajátjuknak, mely a jelenlegi állapothoz vezetett. Véleményem szerint a karbantartás hiánya rövidesen az eszközök végleges tönkrementét vonja maga után.

Személyes jó tanácsok, utószó

Az egységek üzemeltetése ugyan már nincs a kezünkben és állapotuk napról napra romlik, azonban egy pillanatig se gondoljátok, hogy a leállások okait az általunk tervezett hardver komponensekben kell keresnetek. A probléma kiderítésére annó hosszú hónapokat szántunk, szerencsére megtaláltuk a probléma forrását. Talán még emlékeztek, amikor ezen cikk elején megemlítettem, hogy az egyik első rendszerünk főpróbája egy kártya leolvasása után félbeszakadt, ugyanis a kártyaolvasó modul nem olvasott be több kártyát. A probléma forrása azonos a jelenlegivel. Ugyan az áramkör kifejezetten EMC érzékeny, és a kártyaolvasó SPI perifériája rendelkezik a szükséges áramköri védelmekkel, a kártyaolvasó nem bizonyult EMC szempontból megfelelőnek. Egy szatikus kisülés a klubszobák ajtajára elegendő a kártyaolvasó leállítására. Az MFRC522-es modul antennája a méréseink szerint ilyenkor leállítja a sugárzást és a IC hardvere hibaállapotba ugrik. A hiba ugyan fellép, azonban  az SPI busz felől nem detektálható. Ezen működés során sajnos nem állítódik be semmilyen hibabit vagy regiszter, a modul látszólag nem lát kártyát noha a SPI pingekre rendben válaszol. Ezen eszköz cseréje a rendszer felépítéséből adódóan lehetséges lett volna, azonban a költségvetés nem tette lehetővé leváltásukat. Hasznos tanulság volt számunkra, hogy ugyan ez a lehető legolcsóbb és legelterjedtebb kártyaolvasó a maga 1700Ft-os árával, a  másik elérhető vetélytárs a 6800Ft-os SL031 is az RC522-es olvasó chippet használta. A méréseink a modulon azonban igazolták az EMC érzékenységet.

A kép bal oldalán látható az MFRC522, jobb oldalán az SL031-es kártyolvasó.

A hiba kezelése ugyanakkor közel sem volt lehetetlen. Tanulhattunk az üzemeltetési kártyaolvasók szoftverfrissítéséből! 😀 Biztos tapasztaltátok, hogy a forgóvillán lévő LED gyakran villog, továbbá a kártyátokat több esetben nem olvassa elsőre az olvasó. Ennek oka szintén a felhasznált hardverkomponensekben keresendő. Azon villákban SL031-es olvasók találhatóak, melyek gyakorta “megsüketülnek”. Az üzemeltető cég okosan az olvasók folyamatos szekvenciális újraindítása és újrainitcializálása mellett döntött. Gondolhatnánk, hogy ez a megoldás csupán a probléma elfedése, azonban kizárólag szoftveres módosítást igényel. Jelen estben az SPI újraintcializálása megközelítőleg 1ms-os időrést venne igénybe a Raspberry PI processzoridejéből. Amennyiben ez a szekvencia fél másodpercenként megtörténne, a modulok leállásából a felhasználók kizárólag egy minimális késleltetést tapasztalnának. A projekt átvétele előtt a  megoldást két hétig módunkban állt tesztelni, az eredmények kielégítőnek bizonyultak. Sajnos a funkció integrálását nem vették át utódaink. A  hibákat egyszerűbb volt a régi, konkurens csapat hiányosságaiként beállítani.

A projekt minden aspektusát megélve tanácsolom, hogy mielőtt egy ház szintű projektbe kezdtek kérjétek ki tapasztalt, öreg barátaitok véleményét. Amennyiben ezt a munkát egy szakkollégiumi kör tevékenységével összeegyeztethetően, annak tagjaként végzitek társaitok véleményükkel és segítségükkel sokat sokat tehetnek ötletetek megvalósításáért.

Mind szakmai tartalma, mind annak elősegítése érdekében, hogy a projektet magatok ítélhessétek meg csatolom akkor készült szakdolgozatomat.

MSC diplomamunka v2.0

Az (1.3-as) projektet hosszú csend követte. A megélt viszonytagságok megtizedelték alkotói kedvünk, a fejlesztő csapat hamar feloszlott. Ezt követően a tanulmányaimra koncentráltam. Újabb szakmai kihívást a RobonAUT versenyben találtam (erről olvashattatok előző cikkünkben). A két beléptetős projekt közötti szünet számomra szakmai fejlődéssel telt. MSC-s tanulmányim alatt időt szakítottam az ALTIUM megismerésére, mely nagy előrelépést hozott a nyáktervezést illetően. A program többek között alkalmas a benne megtervezett áramkör 3D-s megjelenítésére és modellként való exportálására. A Fusion 360 szoftver megismerése és a CNC-s megmunkálás folyamatos elsajátítása egyre könnyebb lehetőségeket nyitott meg előttem egy eszköz megtervezését illetően. A RobonAUT felkészülés során megismerkedtem többek között az STM32-es mikrokontrollerekkel, melyet alacsony ára és kiemelkedő tudása, mind az ismert AVR mind a PIC mikrokontrollerek felé emel. A verseny során nagy tapasztalatot szereztem vezérlőszoftverek fejlesztésében is.

Összességében azon kevés emberek közé sorolom magamat, akik nagy örömüket lelték a BSc képzésük alatt megszerzett tudásban, azonban úgy érzik szakmailag az MSc alatt tudtak kiteljesedni. Természetesen ez nagyon specializáció és egyénfüggő, de mindenkit bátorítok az MSc képzés elvégzésére!

Eme rövid bevezető után… Itt az ideje a címben említett projektről is szót ejteni! 🙂

A motiváció mely ezen projekt elkészítéséhez vezetett ezúttal már többrétű volt. Egyrészről szerettem volna a régi projekt hibáit kijavítva a rendszert egy újabb szintre emelni, másodsorban nagy szerepet játszott az egység eladható, biztonságkritikus kialakítása.

 

 

Kártyaolvasó periféria kialakítása

A fejlesztés során az első szempont egy megbízható kártyaolvasó IC kiválasztása volt. Nagyon fontosnak tartottam, hogy ezúttal semmilyen boltban kapható modult ne használjak fel az építés során (ezzel természetesen elkerülhettem azok tervezési hiányosságait). A kártyaolvasó modul ezáltal kompakt kivitelben, a saját  tervezésű nyákantennával és integrált vezérlő egységgel együtt, egy NYÁK  lapon került kialakításra.

A választásom az ST által forgalmazott 95HF szériára esett. Ezen kártyolvasó IC tudása nem kártyatípusokra, hanem szabványokra korlátozódik. Specifikációja szerint a kívánt 13,56MHz-es olvasási frekvencia tartományban paraméterezhetően minden ismert szabványt támogat. Későbbiekben tehát könnyen leválthatóak a kollégiumunk adottságát képző MIFARE EV1-es kártyák. Amennyiben az alábbi tény még mindig nem győzné meg az olvasót, a gyártó mintaprojekteken keresztül teljes szoftveres támogatást nyújt eszközéhez, továbbá hardvertervezési segédletekkel segíti az RFID antenna megtervezését. Ezen segédanyagok összefoglalóan bemutatják a technológiát és hatalmas figyelmet fordítanak rá, hogy minden ismert hibára felhívják a  tervezőmérnök figyelmét.  Az ST további szoftveres tool-jai segítségével lehetőségünk nyílik a segédletek által méretezett antennánk szimulálására, mely elkerülhetetlen annak pontos illesztéséhez.

Implementációmban egy 5×5 cm-es egység kialakítása mellett döntöttem, melynek külsején található meg a tag-ek vezérlésére szolgáló nyákantenna, belsejében pedig a modul vezérléséhez szükséges áramköri elemek. Az antennaszimuláció az alábbi ábrán látható.

 

 

Az eszközzel szemben támasztott követelmények

  • több kártyaolvasó szabványt támogató kártyaolvasó interfész
  • nagy bemeneti feszültség tartományban működő tápegység
  • energiatakarékos módban is üzemelő vezérlő mikrokontroller
  • szabványos buszrendszer támogatása
  • zárnyitási és nyitásérzékelési lehetőség kevésbé biztonságkritikus helyekre
  •  hang- és fényvisszajelzés
  • tápfeszültség mérésére alkalmas periféria
  • egyszerű, kompakt kivitel, kártyaolvasó és vezérlő elektronika egy nyáklapon kialakítva
  •  az egyszerű felhelyezést lehetővé tevő kábelcsatlakoztatási lehetőségek

A követelmények kielégítésére központi vezérlőegységnek egy kis teljesítményigényű STM32L053C6 típusú mikrokontrollert választottam. Két UART busza lehetővé tette egy-egy RS486-os BUSZ meghajtó csatlakoztatását melyen keresztül akár nagy távolságban is kapcsolatot tarthatott a többi kártyaolvasó alegységgel. USB interfésze egyszerű csatlakozási lehetőséget kínált egy hálózati réteggel rendelkező vezérlő egységhez. A CR95HF kártyaolvasó modullal SPI porton keresztül tarthatta a kapcsolatot. a fennmaradó I/O lábak segítségével egyszerűen vezérelhetővé váltak a felhasználói interfész elemei. Az elkészült kártyaolvasó egység perifériái és csatlakozási pontjai az alábbi ábrán láthatóak.

Ugyan nem biztonságkritikus esetben az ajtók nyitása egy kültéri egységre bízható, a legtöbb esetben ez nem megengedhető lehetőség. Ezt figyelembe véve primitív alegységek kialakítása mellett döntöttem, melyek az ajtókeretben (védett helyen) végezhették el a zárszerkezetek nyitását.

Buszrendszer támogatása, adatbázisok

Ugyan az egységek önálló egységként és USB-s kártyaolvasóként is tudnak üzemelni, magasabb szintű funkcionalitást kizárólag központi felügyelet segítségével tudnak ellátni. A rendszerem specifikációja szerint 56 db eszköz képes egy buszra csatlakozni, ahol a BUSZ maximális hossza  elérheti a 1,5km-t. Az eszközök közötti kommunikációt a MASTER állapotba állított kártyaolvasó vezérli MODBUS protokoll segítségével, majd a releváns információkat azonnal továbbítja hálózati réteget ellátó egység felé (jelen implementációban USB interfésszel rendelkező Raspberry PI). Minden egység lokális adatbázissal (gyorsítótárral) rendelkezik, így tehermentesítve a felügyeleti buszrendszer adatforgalmát. Ezen adatbázisok segítségével garantálható az ideiglenes szigetüzemű működés is. Az STM32 mikrokontrollerek nagy előnye, hogy FLASH és EEPROM memóriájuk egyszerűen zárolható, így a forráskódunk, mind a tárolt azonosítók maximális védelmet élveznek a hardvert feltörni vágyók ellen!

A buszrendszer felépítése az alábbi ábrán látható.

Tervezési nehézségek

Mivel az RFID olvasó és  a vezérlő elektronika (beleértve a kapcsolóüzemű tápegységet) egy NYÁK lemezen helyezkedett el, így gondoskodnom kellett róla, hogy a komponenseim ne zavaják az olvasás folyamatát. Az eszközök működési frekvenciáit olyan tartományba kellet terveznem, melyek nem harmonikusak a 13,56MHz-es olvasási frekvenciával. A kapcsolóüzemű tápegység zaját árnyékolt tekerccsel és pontosan megtervezett nyákkialakítással igyekeztem elnyelni.

Ilyen kis méretben nagy nehézséget okozott, hogy az adat és vezérlőlábak több esetben közvetlenül egymás mellett haladtak, egymásba indukálták jeleiket. A kontroller belső fel- és lehúzó ellenállásainak pontos beállítása nélkül használhatatlannak bizonyultak az áramköri komponensek. Ezek hardveres integrálására nem volt szükség, továbbá helyhiány miatt nagy nehézséget okozott volna.

Mivel az áramköri komponensek a NYÁK és ezzel az antenna közepén kerültek kialakításra, gondoskodnom kellett róla, hogy az antenna ezen áramköri részt egy egységes kapacitív terhelésként lássa, ne tudjon feszültséget indukálni a rétegek közé. Ekkor az antenna félrehangolható, az olvasási távolság kis mértékű csökkentése árán működőképes marad (noha az ajánlott kialakítás szerint nem kerülhetne semmilyen komponens a NYÁK antenna belső részére, hiszen az erővonalak áthaladása éppen azon a területen a legsűrűbb ). Természetesen ez alapján van lehetőségünk kisebb fémfelületek mögötti olvasó kialakítására, azonban az hasonlóan az antenna félrehangolását igényli.

A PCB design az alábbi képen látható.

Az első példány felszerelése

A design elkészítése során fontosnak tartottam a könnyű, gyors felszerelhetőséget és karbantarthatóságot. Sajnos ezt az előző rendszer tervezése során nem sikerült rendesen megterveznünk. Egy doboz CNC megmunkálása jelenleg 10 percnyi gépidőt vesz igénybe, ez a v1.3-mas doboz esetén elérte a 1h-t. A modul teljes integrálása nem tartott tovább 20 percnél számomra.

 

 

 

 

 

 

 

 

 

A rendszer első üzemben lévő példányát az MMMK próbatermének ajtaján tekinthetitek meg.

Ugyan az elkészült hardver a saját munkám eredménye, a központi felügyeleti szoftvert ezúttal is Albu Bence barátom írta. Tanácsai nagyban segítettek ezen rendszer végleges infrastrukturális megoldásainak kialakításában is. Külön köszönettel tartozom, Kiss Ádámnak, aki nélkül nem tudtam volna elvégezni az első nyákantennám illesztését! Mindenkori segítségüket ezúton is nagyra értékelem és köszönöm!