Internet-of-Things informatikus-mérnöki szemmel GAMF, 2013 március 20.
Internet-of-Things: Bevezető Internet hozzáférés: Fix: 2012Q3 USA háztartások 90%-a rendelkezik szélessávú hozzáféréssel Mobil: 2011 óta a világ lakosságának 90%-a 2G fedettségű, illetve 45%-a 3G fedettségű területen él. Iparági becslések alapján ez utóbbi 2017-re 85%-ra emelkedik.
Internet-of-Things: Jövőkép
Internet-of-Things: Bevezető A csatlakoztatott eszközök számát 2020-ra 50 milliárdra becslik A létrehozható kollektív tudás felbecsülhetetlen Az egyes szakterületekhez kapcsolódó informatikai tudás, illetve szolgáltatások iránti igény megsokszorozódik
Internet-of-Things: Áttekintés
Internet-of-Things Tehát az Internet-of-Things az Interneten keresztül központi rendszerrel kommunikáló szenzor/aktuátor végpontok, illetve a központi rendszerhez integrált alkalmazások, a szenzorok és aktuátorok által, illetve azokról gyűjtött valamint a központi és kiegészítő rendszer(ek) által feldolgozott, generált és eltárolt adatok, az egyes végpontok vagy végponthalmazok irányítását definiáló szabályok, logikák, mindezek elérését valamint az adatátvitelt biztosító elemek, felületek és protokollok összessége.
Internet-of-Things Hozzávalók
Internet-of-Things: Hozzávalók Olcsó mikrokontrollerek 8-32bites rendszerek, alacsony áramfogyasztású, 3.3-5V rendszerek: Atmel, Microchip, ARM,... Olcsó prototípusozó rendszerek Arduino (Atmel/AVR, PIC: ChipKit MAX32), Raspberry Pi, Microchip Developer kit Megfizethető szenzorok és aktuátorok Digitális és analóg szenzorok, aktuátorok
Internet-of-Things: Hozzávalók Internet hozzáférés Olcsó vezetéknélküli technológiák Internet-hozzáféréshez Wi-Fi 2G, 3G, (4G) Helyi vezetéknélküli szenzor/aktuátorhálózat kiépítéséhez Bluetooth, Z-wave, ZigBee, MiWi RFID
Internet-of-Things: Hozzávalók Internet - web 2.0/3.0 Alkalmas hosting infrastruktúra Alkalmas szoftver-környezet Dedikált hardver vagy VPS/Cloud Megfelelő hálózati elemek és uplink Apache, Tomcat, Enterprise JavaBeans, Ruby-OnRails, PHP,... Adatbázis-környezet Oracle, MySQL, Postgres,
Internet-of-Things Főbb tervezendő, fejlesztendő elemek: Specifikáció: mit is szeretnénk? Folyamatok, protokollok Végpontok: hardver+szoftver Központi rendszer(ek): szoftver Felhasználói felületek
Internet-of-Things Folyamatok, protokollok
Internet-of-Things Folyamatok, protokollok Eszközmenedzsment felület (WWW GUI) BOOT REGISZTRÁCIÓ LOOP CORE NEM Reg.üzenet Konfiguráció Utasítások Periodikus bejelentkezés (+log), Valósidejű adattovábbítás Platform: eszköznyilvántartás, konfiguráció, adatfeldolgozás, továbbítás API hívások Konfigurált? IGEN LOOP OPs Adattovábbítás, értesítések
IoT: Folyamatok, protokollok Végpontok folyamatai Boot, konfiguráció üzemi működés előkészítése Üzemi működés (loop, vagy RTOS esetén a task-ok folyamatai) szenzorok lekérdezése szabályzási program végrehajtása aktuátorok kezelése adatnaplózás kommunikáció a központtal...
IoT: Folyamatok, protokollok A központi rendszer folyamatai, feladatai regisztráció, provizionálás nyilvántartás végpontok üzemi működés folyamatainak támogatása (adatnaplózás, utasítások küldése, nyugtázása, stb.) felhasználók, végpontok nyilvántartása, felhasználókhoz történő rendelése, halmazképzés adattovábbítás külső rendszereknek számított adatok generálása visszacsatolás a végpont irányításába más végpontok irányítása megjelenítés, távoli kezelőfelület, adatfeldolgozás, adatbányászat alkalmazási terület szerint
Internet-of-Things Végpontok, végpontok fejlesztése
Internet-of-Things Rendszerek fejlesztése: Áttekintés WWW Végpont Felhasználói felület Központ Regisztráció, konfiguráció Szenzorok, aktuátorok (+vn) Szabályzási kör vh. Adatnaplózás Vezetéknélküli komm. Vezetéknélküli szenzorok/aktuátorok Szenzorok, aktuátorok Vezetéknélküli komm. Egyéb, külső rendszerek
Internet-of-Things: Végpontok Fő feladatok Szenzorok lekérdezése, aktuátorok vezérlése Kommunikáció a központtal Feladatkritikus szabályzás, sziget-elvű működés támogatása Üzemhibák automatikus hibafelismerése és javítása Helyi adatnaplózás Moduláris, bővíthető és skálázható felépítés Kezelőfelület Vezetéknélküli szenzor/aktuátor alhálózat kezelése
Internet-of-Things: Végpontok Főbb alkotóelemek Mikrokontroller + szükséges hardver a végpont vezérlése, szabályzási kör, perifériák kezelése, kommunikáció a szenzorokkal/aktuátorokkal és a központtal Perifériák, vezetéknélküli hálózat vezérlője Szenzorok Aktuátorok Kiegészítő elektronika
IoT: Végpontok fejlesztése Mikrokontroller alapú végpontok gyorsan: Arduino 8-32 bites mikrokontrollerek széles skálája Open Source hardver: nyílt kapcsolási rajz, szabadon felhasználható bármilyen célra Számos szenzor, aktuátor illesztése megoldott, információval és kóddal támogatott Open Source szoftver: nyílt forráskódú (jogállásfüggően felhasználható) programok, kódrészletek számos feladat támogatására (pl. RTC, SD, Ethernet...) olcsó :)
IoT: Végpontok fejlesztése Egyéb lehetőségek: PIC/Microchip PIC32-n van Arduino kompatibilis implementáció Microchip Developer Kit Raspberry Pi ARM 700MHz letölthető linux disztribúciók GPIO pinek az elektronikákhoz
IoT: Végpontok fejlesztése Arduino alapokon Kellékek az induláshoz: Arduino (vagy mikrokontroller és szükséges komponensek) próbapanel, alkatrészek (szenzorok, aktuátorok, ellenállások, ledek, diódák, kábelek, stb.) multiméter forrasztó-felszerelés, egyéb elektrotechnikai szerszámok és műszerek
IoT: Végpontok fejlesztése Arduino alapokon Az Arduino programozása C/C++ AVR GCC toolchain backend Arduino IDE frontend Eclipse IDE frontend Arduino boardok támogatása az Arduino library-kban (a mikrokontroller-specifikus direktívák, stb.) AVR plugin a mikrokontroller specifikus támogatáshoz, Arduino board támogatáshoz... Arduino library-k, AVR C library-k Architektúra Egyszálú (setup + loop) vs. multitasking (FreeRTOS)
IoT: Végpontok fejlesztése Arduino alapokon demo
Internet-of-Things Központi kiszolgálók, fejlesztésük
Internet-of-Things Rendszerek fejlesztése: Áttekintés WWW Végpont Központ Felhasználói felület Végpontkezelés Regisztráció Egyéb, külső rendszerek Konfiguráció Adatgyűjtés, feldolgozás Adatnaplózás Irányítás Integrációs felület Irányítás Megjelenítés...
IoT: Központi kiszolgálók Miért van rájuk szükség? erőforrás-gazdálkodás, feladatmegosztás üzenetforgalmazás, komplex irányítás adattárolás, adatbányászat, analízis rendszerüzemeltetés, karbantartás, végpontok menedzsmentje egységesített szolgáltatások platform-szolgáltatások
IoT: Központi kiszolgálók Főbb jellemzői Interneten elérhetőek Dedikált hardveren vagy virtuális szervereken, felhőben Implementálnak valamilyen protokollt, amely segítségével kommunikálnak a kompatibilis végpontokkal Egyedileg azonosítják a végpontokat, azokat valamilyen rendszerbe szervezik Felületet biztosítanak ember és gép, illetve gép és gép között
IoT: Központi kiszolgálók Központi kiszolgálók jellemző feladatai nyilvántartás, adattárolás üzenetforgalmazás, folyamatirányítás végpontok menedzsmentje adatbányászat, analízis felhasználói felületek platform-szolgáltatások
IoT: Központi kiszolgálók nyilvántartás, adattárolás felhasználók nyilvántartása végpontok nyilvántartása eszközök/végpontok tulajdonosai, szerepek és jogosultságok egyéb felhasználóknak szenzorok, aktuátorok mérési / irányítási adatok feldolgozása, tárolása számított értékek generálása konfigurációs beállítások nyilvántartása egyéb adatok tárolása
IoT: Központi kiszolgálók folyamatirányítás, üzenetforgalmazás mérési / irányítási adatok feldolgozása irányítási visszacsatolás a végpontnak a feldolgozott adatok alapján adatok vagy irányítási utasítások közvetítése más végpontok részére adattovábbítás / üzenetkézbesítés külső rendszereknek felhasználók értesítése/riasztása
IoT: Központi kiszolgálók végpontok menedzsmentje eszközök online azonosítása konfigurációs beállítások küldése / fogadása mérési / irányítási adatok fogadása irányítási utasítások küldése
IoT: Központi kiszolgálók felhasználói felület felhasználási területre optimalizált megjelenítés, kezelőfelület hozzáférés az eszközökhöz beállítások, üzemi paraméterek hozzáférés a naplózott mérési adatokhoz lehetőség az eszközök távoli vezérlésére, illetve a szabályzási kör módosítására
IoT: Központi kiszolgálók platform-szolgáltatások integrációs felület külső alkalmazások számára végpontok csoportosítása adat-aggregáció távoli irányítási felület biztosítása adatbányászat, analízis a naplózott mérési, irányítási adatok visszakeresése, feldolgozása, jellemzően valamilyen tudományos szakterület vonatkozó diszciplínái és képletei alapján
IoT: Központi kiszolgálók fejlesztése kommunikáció szabványos TCP/IP, illetve HTTP (és HTTPS) alapokon szükséges az eszköz feladataira szabott kommunikációs protokoll definíciója és implementációja vezetéknélküli szenzor és aktuátor hálózatok tervezése esetén szabványos rádiós protokollok használhatók a kommunikáció alapjaként
IoT: Központi kiszolgálók fejlesztése Biztonság Személyes adatok, kihatás a személyes környzetre így gyakoriak lehetnek a biztonságkritikus alkalmazások Kommunikáció biztonsága, illetéktelen behatolás, illetéktelen használat... Tárolt adatok, központi rendszerek biztonsága Fizikai védekezés Kódolás, azonosítás
IoT: Központi kiszolgálók fejlesztése Ajánlások Architektúrák, logikák Service Oriented Architecture és Event Driven Architecture Fuzzy logic Protokollok TCP/IP, HTTP, HTTPS SOAP vs. REST XML, JSON,... eszközök / szoftverplatformok HTML5+CSS, JavaScript Java, Ruby-on-Rails, PHP MySQL, Postgres, Oracle környezet Linux (+...) + Apache (+ ) + adatbázis (+...) Open-source szoftverek, stabil, bizonyított, nagy felhasználói és fejlesztői tábor jól skálázhatóak, fürtözhetőek (cluster), professzionális felhasználásra is elterjedtek
Internet-of-Things Rendszerek fejlesztése: Áttekintés WWW Végpont Felhasználói felület Központ Regisztráció, konfiguráció Felhasználói felület Szenzorok, aktuátorok (+vn) Végpontkezelés Szabályzási kör vh. Regisztráció Egyéb, külső rendszerek Adatnaplózás Konfiguráció Adatgyűjtés, feldolgozás Vezetéknélküli komm. Adatnaplózás Irányítás Vezetéknélküli szenzorok/aktuátorok Szenzorok, aktuátorok Vezetéknélküli komm. Integrációs felület Irányítás Megjelenítés...
Internet-of-Things Rendszerek fejlesztése platform alapokon Lássuk, mit spórolhatunk :)
IoT: Az APDuino koncepciórendszer End-to-End IoT alkalmazás-platform Hardver: Arduino Mega 2560 + WizNet W5100 EtherShield + támogatott szenzorok, aktuátorok Szoftver: feltöltésre kész általános szenzor/aktuátorkezelő bináris, mely tartalmazza a következő alapfunkciókat: SD-kezelés: teljes konfiguráció beolvasása SD-ről Hálózati kommunikáció: regisztráció szerveren, távoli menedzsment (beállítások, utasítások), adatnaplózás sziget-rendszerű működés (ha már van konfiguráció) Központi rendszer: eszköznyilvántartás, online konfiguráció (kapcsolás, sziget szabályzási program), eszközkezelés, távoli menedzsment, mérési / irányítási adatok naplózása, továbbítása külső rendszereknek, HTTP API külső rendszerek számára, visszacsatolás a végpontokhoz
Internet-of-Things Az APDuino koncepciórendszer Mit jelent ez a gyakorlatban? Hardver: Az elérhető áron kapható alaplap és shield, illetve szenzorok és aktuátorok tárházának köszönhetően számos valós feladat automatizálásához adott az elektronikai háttér Szoftver: Az alapfunkciókat és fő vázat megvalósító szoftver segítségével a végpontok fejlesztési ideje jelentősen lerövidíthető, illetve a beágyazott rendszer szoftverfejlesztése akár szükségtelen is. Központi rendszer: A meglevő központi rendszerhez integrálva a központi rendszer fejlesztési ideje jelentősen csökkenthető.
Internet-of-Things Az APDuino koncepciórendszer Eszközmenedzsment felület (WWW GUI) BOOT REGISZTRÁCIÓ LOOP CORE NEM Reg.üzenet Konfiguráció Utasítások Periodikus bejelentkezés (+log), Valósidejű adattovábbítás Platform: eszköznyilvántartás, konfiguráció, adatfeldolgozás, továbbítás API hívások Konfigurált? IGEN LOOP OPs Adattovábbítás, értesítések
Internet-of-Things Az APDuino koncepciórendszer
Internet-of-Things Az APDuino koncepciórendszer bootabot.com 10 perc Mikro-oldal: Ruby-on-Rails+sqlite Elektronika Kapcsolási és szabályzási konfiguráció 10 perc Raspberry Pi + webkamera + szoftver konfiguráció Szerver konfiguráció apduino.org 30 perc akva-/hidropóniás termőkabin mikrorendszer; szekrény, víztározó közeg, termőközeg, világítás, fűtés/hűtés/szellőztetés elektronika, műszerdoboz, csatlakozók, forrasztások, kábelezés Kapcsolási és szabályzási konfiguráció 30 perc
Internet-of-Things Az APDuino koncepciórendszer demo
Internet-of-Things informatikus mérnöki szemmel Köszönöm a figyelmet! Schreiber György gy.schreiber@botorbs.com
Internet-of-Things informatikus mérnöki szemmel Függelék Források, hivatkozások, linkek
Internet-of-Things informatikus mérnöki szemmel http://en.wikipedia.org/wiki/internet_of_things Eszközök számának alakulása a Cisco szerint: CISCO, IBSG http://www.cisco.com/web/about/ac79/docs/innov/iot_ibsg_041 1FINAL.pdf 2013 öt legjelentősebb technológiai trendje a Forbes magazin (prof. David Alan Grier írása szerint) http://www.forbes.com/sites/ericsavitz/2012/12/07/technologies-of -the-future-5-trends-to-watch-for-2013/
Internet-of-Things informatikus mérnöki szemmel REST Representational State Transfer http://en.wikipedia.org/wiki/representational_state_transfer SOAP Simple Object Access Protocol http://en.wikipedia.org/wiki/soap Representational State Transfer - http://en.wikipedia.org/wiki/representational_state_transfer Event Driven Architecture - http://en.wikipedia.org/wiki/event-driven_architecture Service Oriented Architecture - http://en.wikipedia.org/wiki/service-oriented_architecture Complex Event Processing - http://en.wikipedia.org/wiki/complex_event_processing Fuzzy Logic - http://en.wikipedia.org/wiki/fuzzy_logic
Internet-of-Things informatikus mérnöki szemmel Arduino : http://arduino.cc Arduino Library-k: http://playground.arduino.cc/main/librarylist Arduino Mega 2560 : http://www.arduino.cc/en/main/arduinoboardmega2560 Arduino EtherShield: http://www.arduino.cc/en/main/arduinoethernetshield APDuino Project: http://apduino.com, http://apduino.org Raspberry Pi http://raspberrypi.org