APLICAŢIE EXPERIMENTALĂ DE TIP PLATFORMĂ IOT SOFTWARE
Ştefan Alexandru PREDA, Mihnea Horia VREJOIU
Institutul Naţional de Cercetare-Dezvoltare în Informatică – ICI Bucureşti,
B-dul Mareşal Averescu Nr. 8-10, Bucureşti, 011455, România
stefan.preda5@gmail.com
mihnea@ici.ro
Rezumat: Sintagma „Internetul obiectelor/lucrurilor” (Internet of Things – IoT) a devenit (aproape) una comună astăzi. Numărul şi diversitatea obiectelor fizice (dispozitive) conectate la Internet şi având încorporată tehnologia necesară pentru a sesiza şi comunica starea lor internă şi pentru a interacţiona cu aceasta şi cu mediul extern au crescut vertiginos. În ultimii ani, necesităţile de colectare şi stocare a volumelor uriaşe de date furnizate de acestea în infrastructuri dedicate, centralizate/localizate sau distribuite (de tip cloud), precum şi de valorificare a datelor respective prin tehnici de analiză avansată (analytics) utilizând servicii specializate, au condus la dezvoltarea a numeroase soluţii de interconectare a acestor obiecte inteligente în sisteme cu scale, obiective şi caracteristici diverse. Lucrarea de faţă prezintă o încercare de dezvoltare şi implementare practică experimentală a unei astfel de platforme IoT software proprii, iniţial cu un set relativ redus de funcţionalităţi specifice, ca bază pentru potenţiale dezvoltări, implementări şi extinderi viitoare. Sunt descrise arhitectura, componentele, funcţionalităţile şi legăturile funcţionale implicate, precum şi câteva specificaţii de implementare şi utilizare pentru cele mai importante dintre acestea.
Cuvinte cheie: Platformă IoT, Cloud, Obiecte/dispozitive inteligente, Senzori, Microcontroler, Protocol de comunicaţie, API de tip REST.
Introducere: Sintagma „Internetul obiectelor/lucrurilor” (Internet of Things – IoT) denumeşte reţeaua de obiecte fizice (dispozitive) „inteligente” conectate la Internet şi capabile, prin tehnologia încorporată, de a sesiza evoluţia stării lor interne în interacțiunea cu mediul extern şi de a comunica date despre aceasta. IoT tinde să devină una din paradigmele definitorii ale lumii în care trăim şi lucrăm azi, determinând evoluţii atât de ordin cantitativ, cât şi calitativ, în cunoaşterea umană şi interacţiunea noastră cu mediul [4].
Numărul diverselor obiecte inteligente interconectate este într-o continuă creştere exponenţială; la fel şi varietatea acestora: de la telefoane, tablete, televizoare şi alte obiecte electrodomestice inteligente, la dispozitive de monitorizare şi transmitere a parametrilor de sănătate şi mobilitate a oamenilor sau animalelor, de calitate a apei sau aerului, a parametrilor unor echipamente industriale complexe (şi de control al acestora), a produselor transportate în containere pentru livrare ş.a.m.d. [10].
Sistemele IoT dezvoltate în ultimii ani au ţinut cont de această expansiune a numărului şi diversităţii acestor obiecte, urmărind, pe de o parte, standardizarea soluţiilor de comunicaţie şi interacţiune cu ele şi, pe de altă parte, valorificarea datelor furnizate de acestea, prin achiziţia, transmiterea şi stocarea acestui volum uriaş de date în flux continuu (Big Data) în infrastructuri dedicate, centralizate/localizate sau distribuite (de tip cloud) şi aplicarea unor metode de analiză avansată (analytics) a acestora, utilizând servicii specializate, pentru a identifica, extrage, sintetiza şi utiliza informaţia relevantă conţinută în ele.
Principalele funcţionalităţi oferite de sistemele IoT pot fi grupate în 5 categorii [1]: culegerea şi pregătirea datelor; conectivitate, protocoale de comunicaţii; servicii de monitorizare, control şi descoperire dispozitive; autentificare, autorizare, controlul integrităţii şi securitatea datelor; analiza şi procesarea datelor, asigurarea interfeței utilizator pentru acces la funcţiunile sistemului.
Din punct de vedere al tehnologiilor implicate în dezvoltarea soluțiilor IoT, pot fi enumerate: reţele de senzori wireless, cloud computing, Big Data analytics, protocoale de comunicaţie, dispozitive cu microprocesor încorporat.
Platformele IoT reprezintă soluţii de implementare şi dezvoltare a funcționalităților şi tehnologiilor menţionate mai sus, unitar şi standardizat la nivel de platformă, ca suport pentru valorificarea performantă a acestora, permiţând utilizatorilor să se poată concentra pe conectarea echipamentelor, pe selectarea resurselor şi opţiunilor de care au nevoie (accesul la infrastructura de stocare şi regăsire date, selectarea serviciilor de procesare, vizualizare şi analiză a datelor) şi pe utilizarea efectivă a rezultatelor furnizate de platformă.
Lucrarea de faţă prezintă o încercare de dezvoltare şi implementare experimentală a unei astfel de platforme IoT software proprii, iniţial cu un set relativ redus de funcţionalităţi de bază specifice, ca bază pentru potenţiale dezvoltări, implementări şi extinderi ulterioare. Sunt prezentate arhitectura, componentele, funcţionalităţile şi legăturile funcţionale implicate, precum şi câteva specificaţii de implementare şi modul de utilizare pentru cele mai importante dintre acestea.
În continuare, lucrarea este structurată după cum urmează: în Secţiunea 2 este prezentată sintetic situaţia actuală, cu câteva dintre cele mai reprezentative platforme IoT şi principalele caracteristici specifice acestora; Secţiunea 3 este dedicată descrierii arhitecturii, componentelor, funcţionalităţilor şi legăturilor funcţionale implicate în platforma software IoT experimentală propusă; Secţiunea 4 prezintă câteva specificaţii de implementare pentru cele mai importante dintre acestea, precum şi câteva instrucţiuni de utilizare; în Secţiunea 5, finală a lucrării, sunt formulate câteva concluzii.
Vizualizează articolul complet
ACEST ARTICOL POATE FI CITAT CA:
Ştefan Alexandru PREDA, Mihnea Horia VREJOIU, Aplicaţie Experimentală de Tip Platformă Iot Software, Revista Română de Informatică şi Automatică, ISSN 1220-1758, vol. 28(1), pp. 5-24, 2018.
Concluzii: În lucrarea de faţă este prezentată o încercare de dezvoltare şi implementare funcţională proprie a unei platforme IoT software, iniţial cu un set relativ redus de funcţionalităţi de bază specifice, ca bază pentru potenţiale dezvoltări, implementări şi extinderi ulterioare.
Astfel, au fost prezentate arhitectura, componentele, funcţionalităţile şi legăturile funcţionale implicate în platforma IoT software experimentală proprie propusă, dezvoltată şi testată localizat, precum şi specificaţiile de dezvoltare şi implementare pentru cele mai importante dintre acestea şi câteva instrucţiuni de utilizare.
Platforma IoT experimentală a fost proiectată cu scopul colectării datelor furnizate de diferite dispozitive inteligente într-o bază de date comună, pentru ca acestea să poată fi accesate şi prelucrate de la distanţă. Totodată, platforma poate permite utilizatorilor şi controlul de la distanţă al dispozitivelor înregistrate şi conectate la platforma Internet of Things.
A fost prezentată arhitectura bazei de date şi tabelele definite şi conţinute de aceasta, precum şi legăturile între aceste tabele. În baza de date a platformei, datele se stochează automat în mod privat pentru fiecare utilizator, diferenţiat în funcţie de dispozitivul deţinut de acesta de la care au fost primite datele respective. Utilizatorul are posibilitatea de a le monitoriza, consulta, vizualiza şi/sau de a le analiza, utilizând scripturile furnizate de platforma IoT, pentru a putea observa/descoperi apariţia unor valori neobişnuite sau a unor valori similare în datele primite şi stocate în cursul timpului.
A fost descrisă interfaţa Web a platformei IoT şi modul de lucru cu aceasta. Prin intermediul acesteia, un utilizator se poate înregistra/autentifica, poate adăuga (înregistra) microcontrolere şi/sau senzori sau poate consulta şi/sau vizualiza datele stocate pe platformă, provenind de la dispozitivele proprii, înregistrate de el anterior.
A fost prezentat, de asemenea, succint, microcontrolerul Arduino Yún utilizat în experimente şi modalităţile de comunicaţie între acesta şi senzori/actuatori şi, respectiv, între acesta şi platforma IoT, cu exemplificarea codului sursă al unui program (sketch) Arduino, scris în limbaj (similar cu limbajul) C, pentru citirea datelor de la un senzor de temperatură şi transmiterea acestora către serverul gazdă al bazei de date MySQL (şi al platformei IoT), prin apelul la un script PhP localizat pe aceasta.
Platforma a fost dezvoltată utilizând scripturi PhP, HTML şi Javascript şi foloseşte o bază de date MySQL ce conţine datele de autentificare ale utilizatorilor, cât şi dispozitivele inteligente pe care aceştia le-au înscris în platformă pentru a primi şi stoca datele de la ele. Legătura între platforma IoT şi dispozitivele inteligente se face printr-un script PhP ce este apelat de către dispozitivele inteligente atunci când acestea transmit date către platformă.
Au fost prezentate principalele scripturi PhP create şi utilizate, precum şi modul de lucru cu platforma.
Menţiuni
Prezenta lucrare are la bază parte din activităţile şi rezultatele fazei a II-a a proiectului PN 1609-0401 [11], derulat la ICI Bucureşti (2016-2017), în cadrul Programului naţional nucleu „COGNOTIC”, finanţat de Ministerul Cercetării şi Inovării.
BIBLIOGRAFIE
- BAHGA, A. & MADISETTI, V. (2014). Internet of Things: A Hands-On Approach.Published by Bahga & Madisetti, ISBN: 978-099605515.
- BOTTA. A., DE DONATO, W., PERSICO, V. & PESCAPÉ, A. (2016). Integration of Cloud computing and Internet of Things: A survey, Future Generation Computer Systems, 56, 684-700. Elsevier ScienceDirect.
- DAYARATHNA, M. (2016). Comparing 11 IoT Development Platforms, IoT Zone. <https://dzone.com/articles/IoT-software-platform-comparison>.
- LEHONG, H. & ALFONSO, V. (2014). Hype Cycle for the Internet of Things. Gartner Group.
- MERCER, C. (2016). Internet of things platforms: Azure, AWS, IBM Watson and more – Which is the best IoT platform for your business?, Computerworld.
<http://www.computerworlduk.com/galleries/data/-of-best-internet-of-thingsplatforms-3635185/>. - MINERAUD, J., MAZHELIS, O., SU, X. & TARKOMA, S. (2016). A gap analysis of Internet-of-Things platforms, Computer Communications. Elsevier ScienceDirect, DOI:10.1016.
- NEAGU, G., Florian, V., PREDA, Ş. & STANCIU, A. (2016). Sensing as a service approach in health monitoring. In IEEE Proc. of 15th RoEduNet Conference: Networking in Education and Research, Bucharest, Romania, Sept. 7-9 (pp.
225-229). eISSN: 2247-5443, DOI: 10.1109/RoEduNet.2016.7753240. <http://
ieeexplore.ieee.org/abstract/document/7753240/>. - NEAGU, G., PREDA, Ş., STANCIU, A. & FLORIAN, V. (2017). A Cloud-IoT based sensing service for health monitoring. In IEEE Proc. of the 6th IEEE International Conference on E-Health and Bioengineering – EHB 2017, Sinaia, Romania, June 22-24 (pp. 53-56). ISBN: 978-1-5386-0358-1, DOI: 10.1109/EHB.2017.7995359. <http://ieeexplore.ieee.org/abstract/document/7995359/>.
- NEAGU, G., VREJOIU, M. H., PREDA, Ş. A. & STANCIU, A. (2017). Platforme IoT – Situaţia actuală şi tendinţe de evoluţie, Revista Română de Informatică şi
Automatică, 27(3), 5-18. ISSN: 1220-1758, e-ISSN: 1841-4303. <https://rria.ici.ro/art-01-vol-27-nr-3-2017/>. - PERERA, C., ZASLAVSKY, A., CHRISTEN, P. & GEORGAKOPOULOS, D. (2014). Sensing as a service model for smart cities supported by Internet of Things, Trans. Emerg. Telecommun. Technol., 25(1), 81-93.
- PREDA, Ş. A., NEAGU, G., VREJOIU, M. H. & STANCIU, A. (2017). Evaluare şi experimentare pentru platforme „Internet of Things”, Raport de cercetare etapa 2: Dezvoltare şi experimentare platformă de referinţă „Internet of Things”, proiect PN 1609-0401, ICI Bucureşti.
- SINGH, S. (2016). Top 10 IoT Platforms, Internet of Things wiki. <http://internetofthingswiki.com/top-10-IoT-platforms/634/>.
- ***: Site-ul Web Arduino Yún <https://store.arduino.cc/arduino-yun>.
- ***: Site-ul Web Raspberry Pi <https://www.raspberrypi.org/>.
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.