Sunteți pe pagina 1din 55

FACULTATEA DE INGINERIE ELECTRICĂ ȘI ȘTIINȚA CALCULATOARELOR

SPECIALIZAREA: CALCULATOARE

LUCRARE DE LICENȚĂ

Studiul protocolului MQTT


și implementarea sa într-un sistem IoT

Coordonator științific, Absolvent,


Prof.univ.dr.ing. Alin Dan Potorac Oleinic Ion

SUCEAVA
2023
Cuprins

1. Introducere.................................................................................................................................5
1.1 Contextul lucrării.................................................................................................................5
1.2 Motivația alegerii temei.......................................................................................................6
1.3 Stadiul actual al lucrării......................................................................................................7
1.4 Obiectivele lucrării.............................................................................................................10
1.5 Structura lucrării...............................................................................................................11
2. Sistemul IoT..............................................................................................................................12
2.1 Definirea Internetului lucrurilor......................................................................................12
2.2 Fundamentele IoT..............................................................................................................13
2.2.1 Conectivitatea în IoT...................................................................................................13
2.2.2 Modulele WiFi.............................................................................................................14
2.3 Comunicarea în IoT...........................................................................................................18
2.3.1 HTTP............................................................................................................................19
2.3.2 CoAP.............................................................................................................................21
2.3.3 WebSocket....................................................................................................................22
2.3.4 MQTT...........................................................................................................................23
2.4 Aplicații IoT........................................................................................................................24
2.5 Impactul și avantajele IoT.................................................................................................26
3. Protocolul MQTT....................................................................................................................27
3.1 Istoria și evoluția protocolului MQTT.............................................................................27
3.2 Caracteristicile și funcționalitățile protocolului MQTT.................................................29
3.3 Funcționarea protocolului MQTT....................................................................................30
3.3.1 Conectarea la un broker MQTT................................................................................31
3.3.3 Publicarea mesajelor...................................................................................................33
3.4 Avantajele și dezavantajele utilizării protocolului MQTT............................................34
4. Integrarea protocolului MQTT într-un sistem IoT..............................................................35
4.1 Descrierea generală și definirea obiectivelor sistemului IoT.........................................35
4.2 Implementarea și configurarea protocolului MQTT într-un sistem IoT......................37
4.2.1 Configurarea brokerului MQTT...............................................................................37
4.2.3 Firmware-urile Tasmota și Open Beken...................................................................42

2
4.3 Utilizarea protocolului MQTT în sistemul IoT...............................................................43
4.3.1 Conexiunea aplicației Web cu device-urilor smart prin protocolul MQTT..........43
4.3.2 Interacțiunea utilizatorului cu aplicația Web...........................................................45
5. Securitatea protocolului MQTT într-un sistem IoT.............................................................49
5.1 Riscuri și vulnerabilități de securitate într-un sistem IoT.............................................49
5.2 Soluții de securitate pentru protocolul MQTT................................................................50
5.3 Testarea și evaluarea securității protocolului MQTT într-un sistem IoT....................51
6. Concluzii și direcții viitoare....................................................................................................52
6.1 Sumarul rezultatelor și concluziilor.................................................................................52
6.2 Implicațiile și contribuțiile lucrării..................................................................................53
6.3 Direcții pentru cercetări viitoare......................................................................................54
Bibliografie...................................................................................................................................55

3
Tabel de figuri

FIGURĂ 1. INTERACȚIUNEA ÎNTRE IOT ȘI ALTE TEHNOLOGII......................................................................................5


FIGURĂ 2. MQTT ÎN STIVA PROTOCOLULUI TCP/IP [14]............................................................................................5
FIGURĂ 3. INTERNETUL LUCRURILOR [2]..................................................................................................................12
FIGURĂ 4. MODUL WIFI ESP-12F [3].........................................................................................................................16
FIGURĂ 5. MODUL WIFI CB3S [4]..............................................................................................................................17
FIGURĂ 6. PROTOCOLUL HTTP [8].............................................................................................................................19
FIGURĂ 7. PROTOCOLUL COAP [7]............................................................................................................................21
FIGURĂ 8. PROTOCOLUL WEBSOCKET [6].................................................................................................................22
FIGURĂ 9. PROTOCOLUL MQTT [9]...........................................................................................................................24
FIGURĂ 10. PACHET DE DATE MQTT [15]..................................................................................................................28
FIGURĂ 11. PUBLICATORI ȘI ABONAȚI CA CLIENȚI CONECTAȚI LA UN BROKER MQTT [14]....................................30
FIGURĂ 12. CONECTAREA UNUI CLIENT LA BROKERUL MQTT [14]..........................................................................31
FIGURĂ 13. ABONAREA UNUI CLIENT MQTT LA UN TOPIC [14]...............................................................................32
FIGURĂ 14. PUBLICAREA UNUI MESAJ MQTT [14]...................................................................................................33
FIGURĂ 15. TRANSPLANT DE MODUL WIFI (CB3S → ESP 12F)..................................................................................35
FIGURĂ 16. INTERFAȚA WEB APLICAȚIEI SMART HOME..........................................................................................36
FIGURĂ 17. EXEMPLU DE SCENE...............................................................................................................................37
FIGURĂ 18. FEREASTRĂ INSTALARE ECLIPSE MOSQUITTO.......................................................................................38
FIGURĂ 19. RESTARTAREA BROKERULUI MOSQUITTO DIN WINDOWS SERVICES...................................................39
FIGURĂ 20. MODULUL WIFI CB3S CU PINII DE CONECTARE SERIALĂ.......................................................................39
FIGURĂ 21. PROGRAMATOR UART CH340G.............................................................................................................39
FIGURĂ 22. CONECTAREA PINILOR MODULULUI WIFI CU PROGRAMATORUL UART..............................................40
FIGURĂ 23. BK7231 UART FLASHER..........................................................................................................................40
FIGURĂ 24. CONFIGURAREA MODULUI WIFI............................................................................................................41
FIGURĂ 25. PAGINA DE START ȘI PAGINA DE CONFIGURARE AL FIRMWARE-ULUI OPENBEKEN............................41
FIGURĂ 26. INTERFAȚA TASMOTA ȘI LINIA DE COMANDĂ......................................................................................42
FIGURĂ 27. INTERFAȚA OPEN BEKEN ȘI LINIA DE COMANDĂ..................................................................................42
FIGURĂ 28. CONEXIUNEA DISPOZITIVELOR SMART CU APLICAȚIA WEB.................................................................43
FIGURĂ 29. ANALIZA COMPARATIVĂ A PROTOCOALELOR DE SECURITATE ÎN IOT [18]..........................................49

4
1. Introducere

1.1 Contextul lucrării


Lucrarea dată are la bază studiul a două mari tehnologii ale secolului nostru, și anume
IoT (Internet of Things) și protocolul MQTT (Message Queuing Telemetry Transport). Aceste
noțiuni vor fi descrise detaliat în capitolul 2 și respectiv 3, unde vom analiza amănunțit scopul
acestor tehnologii și modul în care ele au influențat pozitiv viața noastră. Scopul acestei lucrări
este de a analiza importanța, impactul tehnologiei IoT, precum și modul în care un sistem IoT
poate fi implementat cu ajutorul protocolului de comunicație MQTT.
Internetul obiectelor (IoT) este un mediu bazat pe internet, format din dispozitive și
aplicații conectate. IoT creează un mediu în care dispozitivele fizice și senzori sunt combinate în
noduri de informații pentru a oferi servicii inovatoare și inteligente pentru oameni, pentru a le
face viața mai ușoară și mai eficientă.
Principalul obiectiv al dispozitivelor IoT este de a genera date, care sunt convertite în
informații utile prin procesul de analiză a datelor, și care
oferă, de asemenea, resurse utile pentru utilizatorii finali.
Gestionarea resurselor IoT reprezintă o provocare cheie
pentru a asigura calitatea experienței utilizatorului final.
Multe dispozitive și tehnologii inteligente IoT, cum ar fi
senzorii, dispozitive de acționare, RFID, UMTS, GSM,
ZigBee, WiFi etc. sunt utilizate pentru a dezvolta rețele IoT.
Figură 1. Interacțiunea între IoT și
Protocolul MQTT este unul din câteva protocoale ce se utilizează în sistemele IoT, însă
alte tehnologii
are câteva avantaje ce îl
diferențiază față de restul. MQTT utilizează tehnica de
publicare/abonare ce îl face foarte flexibil, eficient și rapid. MQTT
este un protocol ce stă deasupra protocolului TCP/IP, ceea ce
înseamnă că comunicarea are loc cu pachete de date IP, fapt ce
asigură o garantare a transmiterii cu succes a pachetelor de date prin
retransmitere în caz de pierdere. Însă, pe de altă parte, pentru
Figură 2. MQTT în stiva
aceasta este nevoie de o rețea locală ethernet sau de o conexiune protocolului TCP/IP [14]
stabilă la internet, adică de un router, ce va facilita transmiterea
pachetelor de date către destinatar.
Scopul cercetării mele actuale este de a analiza în detaliu protocolul MQTT și de a arăta
potențialul său de implementare în sistemele IoT. În plus, sunt luate în considerare aspectele de
securitate a datelor în astfel de sisteme și sunt propuse soluții pentru a asigura un nivel ridicat de
securitate.
Prin urmare, acest efort este relevant pentru situația actuală de dezvoltare rapidă a
tehnologiilor IoT și nevoia tot mai mare de a asigura securitatea și confidențialitatea datelor în

5
astfel de sisteme. Aceasta oferă o perspectivă importantă asupra modului în care protocolul
MQTT poate fi utilizat în sistemele IoT și contribuie la dezvoltarea de soluții inovatoare și sigure
pentru sistemele IoT.
Lucrarea este structurată pentru a oferi o abordare coerentă și bine organizată a
subiectului. Al doilea capitol, exact după introducere, prezintă conceptul și arhitectura IoT,
precum și impactul acestuia în lumea de astăzi, după care, în capitolul 3 vom examina protocolul
MQTT și arhitectura acestuia. Capitolul 4 descrie implementarea protocolului MQTT în
sistemele IoT și oferă exemple de aplicații specifice. În capitolul următor vom analiza
problemele legate de securitatea datelor în sistemele IoT și vom propune soluții de protecție. În
final, prezentăm concluzia și direcția viitoare a cercetării și dezvoltării soluțiilor IoT bazate pe
protocolul MQTT.
În ultimul timp, IoT a devenit un concept extrem de important în domeniul tehnologiei și
este utilizat în diverse domenii precum medicină, agricultură și automobile. Un sistem IoT este o
colecție de dispozitive interconectate care colectează și transmit date către alte dispozitive sau
servere centrale. Aceste dispozitive pot comunica între ele și pot gestiona schimburile de date în
mod autonom, fără a fi nevoie de intervenția umană.
Securitatea datelor este o preocupare majoră în sistemele IoT, astfel încât protocolul
MQTT oferă o soluție pentru protejarea informațiilor. Aceste soluții includ autentificare, criptare
și autorizare, făcându-le ideale pentru implementarea în astfel de sisteme.
Acest document își propune să ofere o analiză detaliată a protocolului MQTT și a
implementării acestuia în sistemele IoT. În plus, ar trebui să identifice și să propună soluții
pentru securizarea datelor în sistemele IoT și să efectueze o evaluare a performanței protocolului
MQTT în comparație cu alte protocoale utilizate în sistemele IoT.

1.2 Motivația alegerii temei


Alegerea temei se bazează pe dezvoltarea unui sistem IoT care să ofere utilizatorilor
controlul complet asupra dispozitivelor conectate la rețea și, în același timp, să protejeze datele
utilizatorilor. Aplicația Tuya este o soluție populară în industria IoT, dar aceasta implică stocarea
datelor utilizatorilor în cloud-ul Tuya, ceea ce poate ridica probleme de confidențialitate și
securitate.
Protocolul MQTT oferă o alternativă viabilă la aplicația Tuya,
deoarece permite transferul de date fără a fi necesară stocarea acestora în
cloud. În plus, MQTT poate fi utilizat într-un sistem IoT pentru a permite
comunicarea între dispozitive și pentru a facilita controlul acestora. Prin implementarea
protocolului MQTT într-un sistem IoT, utilizatorii pot avea controlul complet asupra
dispozitivelor lor conectate, fără a fi nevoie să se bazeze pe o aplicație terță pentru stocarea și
gestionarea datelor.

6
Un alt motiv important pentru a alege implementarea propriului sistem IoT în locul
utilizării aplicației Tuya este legat de performanțele aplicației. Tuya este o aplicație care
folosește tehnologia cloud, ceea ce poate duce la o latență mare în comunicare, în special atunci
când conexiunea la internet nu este foarte bună. În plus, există posibilitatea ca datele să fie
pierdute sau să apară probleme de securitate, având în vedere că acestea sunt stocate pe serverele
cloud ale companiei Tuya. Prin contrast, protocolul MQTT oferă o soluție de comunicare de
mare viteză și fiabilitate între dispozitivele IoT, fără a fi necesară stocarea datelor pe cloud.
Așadar, prin utilizarea protocolului MQTT se poate îmbunătăți semnificativ performanța și
securitatea sistemului IoT.
De asemenea, alegerea protocolului MQTT a fost provocată de popularitatea, eficiența,
securitatea care o deține, având o importanță majoră în implementarea și dezvoltarea sistemelor
IoT. Acest protocol este unul des întâlnit și preferat de către dezvoltatorii sistemelor IoT,
deoarece este unul eficient energetic, rapid, și stă relativ bine pe partea de securitate.
Această lucrare se va concentra pe studiul protocolului MQTT și pe modul în care poate
fi implementat într-un sistem IoT pentru a oferi utilizatorilor controlul asupra dispozitivelor
conectate și pentru a proteja datele acestora. De asemenea, lucrarea va explora aspectele legate
de securitatea protocolului MQTT și modul în care acestea pot fi abordate într-un sistem IoT.

1.3 Stadiul actual al lucrării


Stadiul actual al lucrării este centrat pe analiza alternativelor la aplicația Tuya pentru
gestionarea unui sistem IoT. În acest sens, au fost analizate mai multe opțiuni, precum Node-
RED, Home Assistant și Domoticz.

Node-RED este o platformă open-source dezvoltată de IBM și bazată pe Node.js, utilizată


pentru programarea aplicațiilor IoT. Node-RED este o platformă de tip low-code utilizată în
dezvoltarea de aplicații IoT și alte aplicații bazate pe evenimente. A fost dezvoltată de IBM și a
fost lansată în 2013. Aceasta oferă o interfață vizuală pentru crearea de fluxuri de date care pot fi
utilizate pentru conectarea dispozitivelor IoT, a senzorilor și a altor sisteme și aplicații. Fluxurile
de date sunt create prin conectarea de noduri care reprezintă diferite funcții, de la citirea datelor
de la senzori la stocarea acestora în baze de date sau trimiterea lor prin diverse protocoale.
Avantaje:
1. Este gratuit, cu o comunitate activă de dezvoltatori și utilizatori.
2. Interfață vizuală simplă și intuitivă.
3. Suport pentru o varietate largă de protocoale de comunicație.
Dezavantaje:

7
1. Necesitatea cunoașterii limbajului JavaScript pentru dezvoltarea extensivă.
2. Nivelul de complexitate a interfeței poate fi descurajant pentru unii utilizatori.
3. Nu este o platformă foarte scalabilă, ceea ce înseamnă că poate fi limitată în ceea ce
privește capacitatea de a gestiona un număr mare de dispozitive sau fluxuri de date.
În concluzie, Node-RED este o platformă puternică și flexibilă pentru crearea de
aplicații IoT, dar poate avea limite în ceea ce privește scalabilitatea și suportul de
dezvoltare.

Home Assistant este o altă soluție open-source pentru managementul dispozitivelor IoT,
care se bazează pe un model de integrare a dispozitivelor prin intermediul unui server central.
Home Assistant este o platformă pentru automatizarea locuințelor inteligente. Este creată în
limbajul de programare Python și permite controlul a diverse dispozitive conectate în rețea, cum
ar fi sistemele de iluminare, termostate, camere de supraveghere, senzori de temperatură și
umiditate și multe altele.
Avantaje:
1. Open-source.
2. Home Assistant este foarte flexibil și poate fi instalat pe diverse dispozitive hardware,
precum Raspberry Pi, NUC-uri, calculatoare personale, servere dedicate și altele.
3. Are o comunitate puternică și activă, care adaugă în mod constant noi integrări și
componente pentru diverse dispozitive.
Dezavantaje:
1. Inițial, învățarea cum să configurezi și să folosești Home Assistant poate fi dificilă
pentru utilizatorii care nu au experiență în programare.
2. Unele dispozitive pot avea probleme de compatibilitate cu Home Assistant, ceea ce
poate duce la dificultăți în utilizarea lor.
3. Consum ridicat de resurse pentru rularea pe un Raspberry Pi, ceea ce poate duce la o
experiență lentă.

În general, Home Assistant este o soluție puternică pentru automatizarea locuințelor


inteligente și oferă o mulțime de opțiuni pentru personalizarea și controlul diverselor dispozitive
din rețea.

8
Domoticz este o platformă open source pentru automatizarea casei inteligente, care poate
fi instalată pe diferite dispozitive, inclusiv pe calculatoare, Raspberry Pi și alte sisteme similare ,
și se concentrează pe integrarea dispozitivelor prin intermediul unui server central.
Platforma are o interfață web simplă și intuitivă care permite utilizatorilor să controleze și
să monitorizeze dispozitivele din casa lor inteligentă.
Printre caracteristicile principale ale Domoticz se numără suportul pentru o gamă largă de
dispozitive inteligente, cum ar fi camerele IP, senzorii de mișcare, senzorii de temperatură,
prizele inteligente, termostatele și multe altele. De asemenea, platforma are un set puternic de
funcții de automatizare care permit utilizatorilor să creeze scenarii personalizate și să le execute
în funcție de diferite condiții.
Avantaje:
1. Open source, ceea ce înseamnă că utilizatorii pot personaliza și extinde
funcționalitatea platformei prin crearea de plugin-uri și script-uri personalizate.
2. Interfață simplă și ușor de utilizat.
3. Suport pentru o varietate largă de dispozitive inteligente și protocoale.
Dezavantaje:
1. Experiență minimă în programare pentru unele funcții și poate necesita un anumit
nivel de configurare.
2. Comunitate mai mică decât alte platforme similare, ceea ce poate duce la un număr
limitat de plugin-uri și suport pentru probleme.
3. Actualizări mai rare și mai puțin extinse decât alte platforme similare.
4. În comparație cu alte platforme, cum ar fi Home Assistant, interfața utilizatorului
poate fi considerată mai puțin sofisticată și mai greu de utilizat.
Toate aceste alternative la aplicația Tuya oferă avantajele unei soluții open-source, cum
ar fi gratuitatea, posibilitatea de personalizare și integrarea cu o gamă largă de dispozitive și
servicii. Utilizarea alternativelor aplicației Tuya cum ar fi Node-RED, Home Assistant sau
Domoticz pentru implementarea sistemelor IoT poate fi o opțiune viabilă și interesantă pentru
persoanele care au cunoștințe de programare. Aceste platforme sunt puternice și flexibile,
permițând utilizatorilor să configureze și să personalizeze sistemele lor IoT pentru a se potrivi
nevoilor lor specifice.
Cu toate acestea, un dezavantaj major al utilizării acestor platforme este necesitatea
cunoștințelor de programare pentru a putea utiliza și personaliza sistemul. Acest lucru poate fi o
barieră pentru mulți oameni care doresc să își construiască propriul sistem IoT.

9
În acest context, dezvoltarea unei aplicații pentru sistemul IoT care să fie ușor de utilizat
și care să nu necesite cunoștințe de programare ar putea reprezenta o soluție atrăgătoare și
accesibilă pentru o gamă mai largă de utilizatori. Această aplicație ar putea ajuta la popularizarea
și extinderea utilizării sistemelor IoT în viața de zi cu zi.

1.4 Obiectivele lucrării


Obiectivele principale ale lucrării sunt:
I. Prezentarea și descrierea unui sistem IoT, analizarea avantajelor și efectelor
asupra calității vieții.
Ca prim obiectiv, se va descrie amănunțit noțiunea de IoT (Internet of Things) și
cum aceasta ne-a facilitat și ne-a ușurat viața în ultimul deceniu, aducând un confort și
rezolvând multe probleme prin automatizare. Vom discuta despre impactul dezvoltării
acestei tehnologii , relativ nouă, asupra calității vieții umane, aducând posibilități noi de
integrare, automatizare, industrializare, etc.
II. Identificarea caracteristicilor și a arhitecturii protocolului MQTT și a
avantajelor sale în implementarea în sistemele IoT.
Se va face o analiză detaliată a protocolului MQTT și a arhitecturii sale. Se va
examina modul în care acest protocol funcționează, caracteristicile sale și avantajele pe
care le oferă în implementarea în sistemele IoT. Vor fi examinate, de asemenea, și
protocoale alternative utilizate în sistemele IoT, pentru a evidenția diferențele dintre ele și
pentru a arăta de ce protocolul MQTT este o alegere excelentă pentru implementarea în
astfel de sisteme.
III. Evaluarea performanței protocolului și compararea sa cu alte protocoale
utilizate în sistemele IoT.
Se va realiza o evaluare a performanței protocolului MQTT și se va compara cu
alte protocoale utilizate în astfel de sisteme. Se va examina modul în care protocolul
MQTT se comportă în comparație cu alte protocoale și se vor evidenția avantajele sale în
ceea ce privește performanța și eficiența.
IV. Implementarea protocolului MQTT într-un sistem IoT și demonstrarea
capacității sale de a gestiona volumul mare de date generate de dispozitivele IoT.
Realizarea acestui obiectiv se va face prin implementarea protocolului MQTT
într-un sistem IoT și prin demonstrarea capacității sale de a gestiona datele generate de
dispozitivele IoT. Se va examina modul în care protocolul MQTT poate fi implementat în
astfel de sisteme și se va analiza performanța sa în contextul volumului mare de date
generate de dispozitivele IoT.

10
V. Analizarea aspectelor legate de securitatea datelor în sistemele IoT și
propunerea de soluții pentru protejarea informațiilor.
Pentru acest obiectiv, se va examina modul în care datele sunt protejate în
sistemele IoT și vor fi identificate amenințările la adresa securității datelor. Se vor
explora soluțiile existente pentru protejarea datelor în sistemele IoT și se vor propune noi
soluții pentru a asigura securitatea și confidențialitatea informațiilor.
VI. Prezentarea concluziilor și a direcțiilor viitoare pentru cercetare și dezvoltare de
soluții IoT bazate pe protocolul MQTT.
Obiectivul final al lucrării este de a prezenta concluziile obținute din cercetarea
efectuată și de a sugera direcțiile viitoare pentru cercetarea și dezvoltarea de soluții IoT
bazate pe protocolul MQTT. Se vor evidenția avantajele și dezavantajele protocolului
MQTT și se vor propune noi direcții de cercetare pentru a îmbunătăți performanța și
securitatea sistemelor IoT.

1.5 Structura lucrării


În cadrul lucrării, subiectul ales este abordat din perspectiva a patru secțiuni principale:
I. Sistemul IoT
În această secțiune se va explora conceptul și definirea unui sistem IoT, precum și
componentele sistemelor IoT. De asemenea, vor fi prezentate diverse exemple de aplicații
și utilizări ale sistemelor IoT.
II. Protocolul MQTT
În această secțiune se va oferi o prezentare generală a protocolului MQTT, urmată
de o discuție detaliată a istoriei și evoluției sale, a caracteristicilor și funcționalităților,
precum și a avantajelor și dezavantajelor utilizării sale.
III. Integrarea protocolului MQTT într-un sistem IoT
Această secțiune va explora modalitățile de integrare a protocolului MQTT într-
un sistem IoT, incluzând discuții despre arhitecturile și modelele de implementare,
configurarea protocolului și exemple practice de utilizare într-un studiu de caz.
IV. Securitatea protocolului MQTT într-un sistem IoT
În ultima secțiune se va pune accentul pe securitatea protocolului MQTT în cadrul
unui sistem IoT, cu discuții despre riscuri și vulnerabilități, soluții de securitate și testarea și
evaluarea securității.

11
2. Sistemul IoT

2.1 Definirea Internetului lucrurilor


Termenul „Internetul lucrurilor” a fost inventat pentru prima dată de Kevin Ashton, cu
referire contextuală la gestionarea lanțului de conexiuni în anul 1999. Termenul a fost redefinit
ulterior de diverși cercetători pentru a include aplicații precum transportul, mineritul, asistența
medicală și utilitățile etc. Perioada de timp care marchează apariția IoT este declarată a fi în
2008-2009. În această perioadă, populația umană a început să fie eclipsată de dispozitivele
asociate rețelei. Odată cu trecerea timpului, numărul „lucrurilor” conectate, care includea oameni
și gadgeturi, a înregistrat o creștere exponențială. Acest lucru a dus la necesitatea de a crea
„Internetul lucrurilor”. IoT poate fi definit ca fiind utilizarea internetului pentru a crea o legătură
între diverse servicii și lucruri, inclusiv oameni.
IoT poate fi tratat ca o extindere a serviciilor de internet contemporane pentru a cuprinde
fiecare obiect existent. Aceste obiecte pot fi lucruri vii sau non-vii, care pot apela la un serviciu
sau să ofere un serviciu. Această conectivitate globală a fost posibilă prin încorporarea de
senzori, actuatori, microcontrolere etc. în obiecte, ceea ce facilitează internetul să devină mai
persistent. Miniaturizarea și progresele înregistrate în domeniul electronicii și al computerelor a
făcut ca materializarea IoT să fie vizibilă în multe domenii în ultimii ani.
IoT = Senzori + Rețea + Date + Servicii
Conform datelor unui articol [1], în anul 2015 erau înregistrate între 10 și 20 de miliarde
de dispozitive inteligente conectate la Internet. Acest ecosistem de obiecte conectate formează
baza Internetului lucrurilor. Numărul de obiecte conectate în 2015 a fost mic în comparație cu
numărul de obiecte care vor fi conectate în anii următori. Potrivit unui raport publicat de firma de
cercetare IHS Markit, până în 2025, se preconizează că aproximativ 75 de miliarde de dispozitive
IoT vor fi conectate la internet în întreaga lume. Aceasta include o gamă largă de dispozitive,
cum ar fi smartphone-uri, tablete, dispozitive de monitorizare a sănătății, dispozitive pentru casă
inteligentă și sisteme de securitate. Figura 1 prezintă câteva obiecte care pot fi conectate prin
Internetul lucrurilor.

Figură 3. Internetul lucrurilor [2]

12
Există și conceptul de (IIoT -Industrial IoT), ce aduce o pondere semnificativă în lumea
industrializată de astăzi, cu capacitatea de a controla de la distanță resursele întreprinderii și de a
le gestiona în mod automatizat. Sistemele IoT pot furniza informații privind disponibilitatea
echipamentelor, starea tehnică a acestora, utilizarea, defecțiunile tehnologice, eșecurile
tehnologice, programele de întreținere etc. Internetul industrial al lucrurilor oferă informații în
timp real despre toate echipamentele dintr-o întreprindere, calculează rata de utilizare a acestora
în câteva secunde.
Internetul industrial al lucrurilor permite să se obțină rapid informații în timp real despre
toate echipamentele dintr-o întreprindere, să se calculeze rata de utilizare a acestora în câteva
secunde și, cu ajutorul analizei predictive și al rețelelor neuronale, să se prevadă programul de
întreținere preventivă și de încărcare.
Aplicarea IoT în industrie creează noi Internetul obiectelor creează noi oportunități
pentru dezvoltarea producției și rezolvă o serie de sarcini importante: creșterea productivității
echipamentelor; reducerea costurilor cu materialele și energia; îmbunătățirea calității,
optimizarea și îmbunătățirea condițiilor de lucru pentru angajații companiei; creșterea
profitabilității producției și a competitivității pe piața globală.

2.2 Fundamentele IoT

2.2.1 Conectivitatea în IoT


Conectivitatea în Internetul lucrurilor (IoT) reprezintă fundamentul care permite
dispozitivelor să fie conectate și să comunice între ele într-o rețea inteligentă. Este un aspect
central al IoT, deoarece permite transferul datelor și schimbul de informații între dispozitive și cu
alte sisteme sau platforme.
Conectivitatea în IoT se referă la capacitatea dispozitivelor de a se conecta la rețele locale
și la internet, astfel încât să poată schimba date și informații. Aceasta implică utilizarea
diferitelor tehnologii și protocoale de comunicație pentru a permite interacțiunea între dispozitive
și transmiterea datelor în mod eficient. Există mai multe tehnologii de conectivitate utilizate în
IoT, care pot varia în funcție de nevoile și cerințele aplicațiilor specifice. Printre cele mai
frecvent utilizate tehnologii de conectivitate se numără WiFi, Bluetooth, Zigbee, Z-Wave,
LoRaWAN, NB-IoT, 4G/5G și Ethernet.
Cele mai frecvent utilizate tehnologii de conectivitate:
 WIFI
Este o tehnologie wireless larg utilizată care permite dispozitivelor să se conecteze la
rețelele locale și la internet. WiFi oferă o conexiune puternică și viteze ridicate de transfer de
date, ceea ce îl face potrivit pentru aplicații IoT care necesită o conexiune rapidă și
stabilitate. [11]

13
 Bluetooth
Este o tehnologie wireless cu consum redus de energie, utilizată în special pentru
conectarea dispozitivelor de proximitate, cum ar fi smartphone-uri, tablete, ceasuri
inteligente și dispozitive periferice. Bluetooth este ideal pentru scenarii IoT care implică
interacțiunea între dispozitive apropiate. [11]
 Zigbee
Este un protocol de comunicare wireless specializat în IoT, care permite interconectarea
dispozitivelor de la distanțe mai mari și cu consum redus de energie. Zigbee este frecvent
utilizat în aplicații de automatizare a clădirilor, fiind un standard deschis și interoperabil.
ZigBee este bazat pe un gateway, similar cu un mini server la care sunt conectate toate
dispozitivele inteligente, unde ele pot comunica între ele, chiar și în lipsa conexiunii la
internet, un lucru foarte important ce aduce o stabilitate și o securitate ridicată. [11]
 Z-Wave
Similar cu Zigbee, Z-Wave este un protocol de comunicare wireless optimizat pentru IoT.
Este frecvent utilizat în aplicații de automatizare a caselor inteligente, în special pentru
dispozitivele care necesită o conexiune sigură și fiabilă. [11]
 4G/5G
Acestea sunt tehnologii de conectivitate celulară de mare viteză, utilizate pe scară largă în
rețelele de telecomunicații. Ele pot fi utilizate pentru conectarea dispozitivelor IoT care
necesită o transmitere rapidă și eficientă a datelor, precum vehiculele conectate sau aplicațiile
industriale avansate. [11]
 LoRaWAN
Este o tehnologie de conectivitate de lungă durată, cu consum redus de energie, utilizată
în rețelele IoT de tip Low-Power Wide-Area Network (LPWAN). LoRaWAN permite
transmiterea datelor pe distanțe lungi, fiind ideal pentru aplicații IoT care necesită o acoperire
extinsă, cum ar fi monitorizarea mediului și agricultura. [11]
 Ethernet
Este o tehnologie de conectivitate cu fir, care utilizează cabluri pentru a permite
transmiterea datelor între dispozitive. Ethernet este frecvent utilizat în aplicații IoT
industriale, unde stabilitatea și lățimea de bandă mare sunt esențiale. [11]

2.2.2 Modulele WiFi


Modulele WiFi reprezintă componente esențiale în dezvoltarea dispozitivelor IoT care
necesită conectivitate la rețelele locale și la internet. Aceste module permit dispozitivelor să se
conecteze și să comunice wireless, facilitând transferul datelor și interacțiunea cu alte dispozitive
și sisteme.

14
Există două familii de cipuri WiFi populare utilizate în dezvoltarea sistemelor IoT:
 Familia de cipuri ESP (ESP8266, ESP8285, ESP32)
 Familia de cipuri Beken (Beken 7231N și Beken 7231T)
Aceste familii de cipuri oferă o gamă variată de opțiuni pentru conectivitatea WiFi în
dispozitivele inteligente și sunt compatibile cu diferite firmware-uri, inclusiv Tasmota și Open
Beken.
 Familia ESP
Familia de cipuri WiFi ESP, care include cipurile ESP8266, ESP8285, ESP32 și altele, este
dezvoltată de către compania Espressif Systems. Aceste cipuri sunt cunoscute pentru
performanța lor ridicată, flexibilitatea și prețul accesibil. cipurile ESP sunt capabile să ofere
conectivitate WiFi și să funcționeze ca microcontrolere, oferind astfel o soluție completă pentru
dezvoltarea sistemelor IoT. Vom studia un cip WiFi anume, cel mai popular fiind ESP8266.
 ESP8266
ESP8266 este un cip microcontroler cu conectivitate WiFi integrată, care a devenit
extrem de popular în domeniul Internet of Things (IoT) datorită performanței ridicate,
dimensiunilor compacte și costului redus.
ESP8266 dispune de un procesor puternic de tipul RISC cu frecvență de 80 MHz, o
cantitate generoasă de memorie flash pentru stocarea programelor și a datelor, precum și un set
de pini GPIO (General Purpose Input/Output) pentru a conecta și controla diverse periferice. [11]
Există mai multe exemple de module bazate pe ESP8266 disponibile pe piață, fiecare
oferind caracteristici și specificații diferite. Iată câteva exemple populare de module ESP8266:
 NodeMCU
 ESP-01
 Wemos D1 Mini
 ESP-12F, ESP-12E, ESP-12S
Module Wifi bazate pe cipul ESP8266 fabricate de către compania Tuya [4]:
 TYWE1S
 TYWE2S
 TYWE3S
 TYWE5P

15
 TYWE2L

Un exemplu de modul WiFi larg utilizat în dezvoltarea dispozitivelor IoT este ESP-12F.
ESP-12F este un modul WiFi bazat pe cipul ESP8266, care oferă o soluție integrată pentru
conectarea dispozitivelor la rețelele WiFi. Acest modul oferă suport pentru standardele WiFi
802.11 b/g/n și include funcționalități precum criptarea WEP/WPA/WPA2, modurile de operare
staționar și punct de acces, precum și un set bogat de comenzi și API-uri pentru programare.

Figură 4. Modul WIFI ESP-12F [3]

ESP8266 este un cip WiFi puternic și versatil, folosit în mod frecvent în dezvoltarea
dispozitivelor IoT. Acest cip este bazat pe microcontroler-ul ESP8266, care integrează
funcționalități de conectivitate WiFi, un procesor puternic și un set extins de pini de
intrare/ieșire.
Unul dintre aspectele remarcabile ale cipului ESP8266 este faptul că este compatibil cu
diverse firmware-uri, cum ar fi Tasmota. Tasmota este un firmware open-source dezvoltat
special pentru dispozitivele IoT bazate pe modulele ESP. Acest firmware oferă o interfață de
control avansată și permite personalizarea funcționalităților dispozitivelor IoT. Utilizatorii pot
folosi Tasmota pentru a crea propriul sistem IoT și pentru a controla dispozitivele conectate prin
intermediul unei interfețe web sau prin alte protocoale de comunicație.
Cipul ESP8266 cu firmware-ul Tasmota reprezintă o soluție puternică și flexibilă pentru
dezvoltarea dispozitivelor IoT. Prin utilizarea acestui modul, dezvoltatorii pot beneficia de
conectivitate WiFi, control avansat, integrare cu platforme IoT și posibilitatea de configurare și
personalizare a dispozitivelor în funcție de nevoile specifice ale aplicației. Despre firmware-ul
Tasmota și despre analogul său, Open Beken, vom discuta detaliat în capitolul 4, unde se va face
o analiză amănunțită despre nevoia utilizării lor într-un astfel de sistem IoT.
 Familia Beken
Familia de cipuri Beken este o altă opțiune populară pentru conectivitatea WiFi în
dispozitivele IoT. Aceste cipuri sunt dezvoltate de către Beken Corporation și oferă performanță

16
și eficiență într-un pachet compact. Cipurile Beken sunt compatibile cu firmware-ul Open
Beken, care este un firmware open-source special conceput pentru aceste cipuri. Open Beken, la
fel ca Tasmota, oferă dezvoltatorilor un mediu de dezvoltare deschis și flexibil pentru crearea
aplicațiilor IoT utilizând modulele Beken. În continuare, vom studia cipul Beken 7231N, cel mai
popular cip Beken, integrat într-un modul WiFi, cum ar fi CB3S, produs de Tuya.
 Beken 7231N
Acest cip oferă o soluție de conectivitate WiFi cu consum redus de energie, fiind potrivit
pentru dispozitivele IoT care necesită o autonomie mai mare a bateriei. Beken 7231N oferă
suport pentru standardele WiFi 802.11 b/g/n și include funcționalități precum moduri de
economisire a energiei, criptare WEP/WPA/WPA2 și interfață de control simplă.
Iată câteva exemple populare de module, bazate pe cipul Beken 7231N, produse de Tuya [4]:
 CB2S
 CB3S
 WB3S
 BM03B
Modulul CB3S este un exemplu de modul WiFi bazat pe cipul Beken 7231N, care se remarcă
prin compatibilitatea sa cu platforma Open Beken. Acesta este bazat pe cipul Beken 7231N și
integrat cu platforma Open Beken oferă o soluție flexibilă și accesibilă pentru dezvoltarea
aplicațiilor IoT.

Figură 5. Modul WiFi CB3S [4]

Modulul CB3S reprezintă o soluție convenabilă și eficientă pentru adăugarea


conectivității WiFi în dispozitivele IoT. Cu funcționalități avansate și o integrare simplă, acest
modul poate fi utilizat într-o varietate de aplicații, inclusiv automatizarea locuințelor,
monitorizarea mediului, controlul dispozitivelor inteligente și multe altele.

17
Modulele WiFi, cum ar fi ESP-12F și CB3S, bazate pe cipurile ESP8266 și respectiv
Beken 7231N sunt apreciate în dezvoltarea dispozitivelor IoT datorită capacităților lor de
conectivitate wireless și a setului de funcționalități încorporate. Aceste module oferă posibilități
extinse de programare și configurare, permițând dezvoltatorilor să implementeze diverse aplicații
IoT cu ușurință. Ele facilitează integrarea dispozitivelor în rețelele existente și le permit să
comunice cu alte dispozitive sau să acceseze servicii și platforme cloud.
Utilizarea cipurilor ESP8266 și Beken 7231N în dezvoltarea sistemelor IoT oferă mai
multe avantaje, printre care:
 Conectivitate WiFi: Ambele module oferă conectivitate WiFi integrată, permițând
dispozitivelor IoT să se conecteze la rețele fără fir și să comunice cu alte dispozitive și
servicii prin intermediul internetului. Aceasta deschide oportunități pentru controlul și
monitorizarea dispozitivelor de la distanță și integrarea lor într-o rețea mai mare.
 Dimensiuni compacte: Modulele ESP8266 și Beken 7231N sunt proiectate pentru a fi
compacte și ușor de integrat în diverse aplicații IoT. Aceasta le face potrivite pentru
proiectarea de dispozitive mici și de dimensiuni reduse, precum senzori, întrerupătoare
inteligente, sisteme de monitorizare etc.
 Putere de procesare și memorie: Ambele module oferă putere de procesare și capacitate
de stocare suficiente pentru a rula aplicații IoT complexe. Aceasta permite implementarea
funcționalităților avansate, cum ar fi prelucrarea datelor locale, algoritmi de decizie,
interacțiunea cu utilizatorul și multe altele.
 Suport pentru firmware-uri open-source: ESP8266 și Beken 7231N sunt cipuri
populare în comunitatea dezvoltatorilor IoT, ceea ce a dus la dezvoltarea unei game largi
de firmware-uri open-source compatibile cu acestea. Firmware-urile precum Tasmota și
Open Beken oferă o funcționalitate extinsă și flexibilitate pentru dezvoltarea aplicațiilor
IoT, facilitând programarea, configurarea și integrarea dispozitivelor în ecosistemul IoT.
 Costuri accesibile: Modulele ESP8266 și Beken 7231N sunt cunoscute pentru costurile
lor accesibile. Aceasta face ca dezvoltarea de soluții IoT să fie mai accesibilă și mai
viabilă pentru o gamă mai largă de utilizatori și proiecte.
Utilizarea modulelor WiFi, bazate pe cipurile din familia ESP și cele din familia Beken,
în dispozitivele IoT aduce avantaje semnificative, cum ar fi conectivitatea fără fir,
interoperabilitatea cu infrastructura WiFi existentă, capacitatea de a comunica și de a transfera
date în mod eficient. Cu toate acestea, este important să se țină cont și de aspectele de securitate,
configurare corectă și gestionare a rețelei WiFi pentru a asigura o conexiune sigură și stabilă
între dispozitivele IoT și infrastructura de rețea. Modulele ESP8266 și Beken 7231N aduc o serie
de avantaje semnificative în dezvoltarea sistemelor IoT, cum ar fi: dimensiuni compacte, putere
de procesare și memorie, suport pentru firmware-uri open-source și costuri accesibile. Aceste
module oferă o platformă solidă pentru crearea aplicațiilor IoT personalizate și extinderea
funcționalităților dispozitivelor conectate la rețea.

18
2.3 Comunicarea în IoT
Protocoalele de comunicare sunt elementele fundamentale care permit dispozitivelor IoT
să transmită și să primească date într-un mod eficient și sigur. Acestea joacă un rol crucial în
asigurarea interoperabilității și conectivității în cadrul rețelelor IoT.
În acest subcapitol, ne vom concentra pe câteva protocoale de comunicare esențiale
folosite în domeniul IoT. Vom explora caracteristicile, funcționalitățile și avantajele fiecărui
protocol, precum și domeniile în care sunt utilizate cel mai frecvent. Discuția noastră se va
concentra pe următoarele protocoale populare:
 HTTP (Hypertext Transfer Protocol): Vom analiza HTTP, un protocol de comunicare
comun în mediul web și tot mai utilizat în aplicațiile IoT. Vom discuta despre modul în
care HTTP este adaptat și utilizat în contextul IoT, precum și avantajele și dezavantajele
sale în ceea ce privește eficiența și securitatea comunicațiilor IoT. [10]
 CoAP (Constrained Application Protocol): Vom examina CoAP, un protocol de aplicație
conceput pentru dispozitive cu resurse limitate, cum ar fi senzori și actuatori. Vom
aborda caracteristicile sale de eficiență energetică și scalabilitate, precum și capacitatea
de a comunica folosind modelul solicitare/răspuns similar HTTP. [10]
 WebSocket: Un protocol care permite comunicarea bidirecțională în timp real între
dispozitivele IoT și servere. Vom discuta despre modul în care WebSocket depășește
limitările protocoalelor tradiționale bazate pe HTTP și oferă o conexiune persistentă și
eficientă pentru aplicațiile IoT. [10]
 MQTT (Message Queuing Telemetry Transport): Vom explora MQTT, un protocol de
transport de mesaje conceput inițial pentru aplicațiile de tip telemetrie și monitorizare în
timp real. Vom discuta despre arhitectura bazată pe publicare/abonare și modul în care
MQTT asigură transmiterea eficientă și fiabilă a mesajelor între dispozitivele IoT și
platformele de gestionare a datelor. [10]
În continuare, vom descrie în detaliu câteva din protocoalele utilizate des în industria IoT,
fiecare cu avantajele și dezavantajele sale, făcând o comparație și motivând alegerea celui mai
bun și eficient protocol.

2.3.1 HTTP
HTTP (Hypertext Transfer Protocol) este un protocol de comunicare larg utilizat în
Internet și a devenit din ce în ce mai relevant în domeniul Internetului lucrurilor (IoT). Acest
protocol, conceput inițial pentru transmiterea de pagini web și conținut hipertextual, este acum
adaptat și utilizat pentru comunicația între dispozitivele IoT și platformele lor de gestionare a
datelor.

19

Figură 6. Protocolul HTTP [8]


Utilizarea HTTP în IoT oferă câteva avantaje semnificative. Unul dintre acestea este
familiaritatea. Datorită largii sale adoptări în mediul web, mulți dezvoltatori sunt deja
familiarizați cu HTTP și au competențe în implementarea și utilizarea sa. Acest lucru face ca
integrarea dispozitivelor IoT în infrastructura web existentă să fie mai ușoară și mai convenabilă.
Un alt avantaj al utilizării HTTP în IoT este suportul extensibil și flexibilitatea sa.
Protocolul HTTP este construit în jurul conceptului de metode HTTP, cum ar fi GET, POST,
PUT și DELETE, care permit manipularea resurselor de pe server. Aceasta oferă un set bogat de
funcționalități și posibilități de interacțiune între dispozitivele IoT și platformele lor de
gestionare a datelor. De exemplu, prin intermediul cererilor HTTP POST, dispozitivele IoT pot
trimite date către server, în timp ce prin cererile HTTP GET pot obține informații sau actualizări
de la server.
De asemenea, HTTP vine cu suport pentru securitate prin intermediul HTTPS (HTTP
Secure), care utilizează criptare pentru a proteja confidențialitatea datelor transmise între
dispozitivele IoT și servere. Aceasta este o caracteristică critică într-un mediu IoT, unde datele
sensibile sunt adesea colectate și transmise.
Cu toate acestea, utilizarea HTTP în IoT vine și cu unele dezavantaje. Unul dintre acestea
este consumul de energie mai mare față de alte protocoale. HTTP este un protocol de tip client-
server, ceea ce înseamnă că implică o comunicare între un client și un server. Dispozitivele IoT
care funcționează ca clienți fac cereri către servere pentru a obține date sau pentru a trimite
informații. Atunci când vine vorba de obținerea datelor unui senzor prin intermediul HTTP, este
necesară o interogare constantă către serverul care deține aceste date. Dispozitivul IoT care
dorește să acceseze valorile senzorului va efectua o cerere HTTP către server și va aștepta un
răspuns de la acesta. Această abordare de interogare constantă poate fi necesară în anumite
scenarii, mai ales când informațiile de la senzor trebuie actualizate în timp real sau într-un
interval de timp foarte scurt.
Prin efectuarea de cereri periodice sau frecvente către server, dispozitivul IoT poate
obține datele actualizate ale senzorului și le poate utiliza pentru a lua decizii sau pentru a executa
acțiuni în funcție de acestea. Această interogare constantă poate duce la consum mai mare de
energie și la o utilizare mai intensă a resurselor dispozitivului IoT. De aceea, în anumite aplicații
IoT, în special în cazul dispozitivelor cu resurse limitate, cum ar fi senzorii alimentați de baterii,
poate fi preferabil să se utilizeze protocoale sau tehnici care optimizează consumul de energie,
cum ar fi MQTT sau CoAP.
De asemenea, HTTP poate avea o latență mai mare în comparație cu alte protocoale
optimizate pentru comunicația în timp real, cum ar fi WebSocket. Acest lucru poate fi o
problemă în aplicațiile IoT care necesită transmiterea rapidă a datelor sau răspunsuri în timp real.
În concluzie, utilizarea HTTP în IoT oferă avantaje în ceea ce privește familiaritatea,
flexibilitatea și suportul pentru securitate. Însă, fiind un protocol de tip client-server, necesită
interogări constante către server pentru a obține datele unui senzor în aplicațiile IoT. De aceea,
trebuie să se ia în considerare și dezavantajele, cum ar fi consumul mai mare de energie și
posibila latență în aplicațiile care necesită comunicare în timp real.

20
2.3.2 CoAP
CoAP (Constrained Application Protocol) este un protocol de comunicare proiectat
special pentru dispozitivele IoT cu resurse limitate, cum ar fi senzorii alimentați de baterii sau
dispozitivele cu putere redusă. CoAP este conceput să ofere o alternativă eficientă și scalabilă la
protocoalele de comunicație tradiționale, cum ar fi HTTP, adaptându-se la restricțiile de
memorie, procesor și lățime de bandă.

Figură 7. Protocolul CoAP [7]

Unul dintre principalele avantaje ale utilizării CoAP în IoT este eficiența energetică.
Protocolul CoAP este optimizat pentru a minimiza consumul de energie al dispozitivelor IoT. El
utilizează un model simplu de cerere-răspuns, în care dispozitivul client trimite o cerere CoAP
către un server și primește un răspuns în schimb. Acest model reduce cantitatea de date necesare
pentru comunicare și permite dispozitivelor să intre rapid în modul de repaus, economisind astfel
energie valoroasă.
Un alt avantaj important al utilizării CoAP în IoT este scalabilitatea. Protocolul CoAP
este conceput pentru a se adapta la mediile cu resurse limitate și la rețelele cu conectivitate
instabilă. El poate funcționa pe dispozitive cu memorie redusă și oferă mecanisme eficiente de
gestionare a resurselor și de recuperare a erorilor în rețelele cu pierdere de pachete sau latente
mari.
CoAP este, de asemenea, caracterizat de o arhitectură bazată pe resurse, ceea ce înseamnă
că dispozitivele IoT expun resurse specifice (cum ar fi senzori sau acțiuni) ca resurse web pe care
alte dispozitive le pot accesa prin intermediul cererilor CoAP. Acest model simplu și consistent
facilitează integrarea și interoperabilitatea dispozitivelor IoT.
Cu toate acestea protocolul CoAP vine cu câteva dezavantaje, cum ar fi faptul că CoAP
este un protocol specializat care nu este larg răspândit în comparație cu HTTP, ceea ce poate
duce la dificultăți în interoperabilitatea între diverse dispozitive și platforme. Este posibil să fie
necesare eforturi suplimentare pentru a asigura compatibilitatea între dispozitivele care utilizează
CoAP și cele care utilizează alte protocoale.
De asemenea CoAP nu oferă în mod nativ mecanisme puternice de securitate, cum ar fi
criptarea și autentificarea. Aceste funcționalități pot fi adăugate prin intermediul extensiilor de

21
securitate CoAP, cum ar fi DTLS (Datagram Transport Layer Security), dar implementarea lor
corectă și securizarea comunicării poate fi o provocare și necesită expertiză suplimentară.
Pe lânga acestea, CoAP are o limită de dimensiune a pachetelor mai mică decât HTTP,
ceea ce poate restricționa transferul de date mai mari sau complexe între dispozitivele IoT. Acest
lucru poate necesita segmentarea datelor și gestionarea mai atentă a fragmentelor de date în
aplicații care necesită transferul de date extins.
În concluzie, CoAP este un protocol de comunicație optimizat pentru dispozitivele IoT cu
resurse limitate. Prin eficiența energetică, scalabilitatea și arhitectura bazată pe resurse, CoAP
devine o opțiune atractivă pentru aplicațiile IoT care necesită comunicare eficientă în mediile cu
resurse restrânse. Utilizarea protocolului CoAP poate contribui la optimizarea consumului de
energie și la îmbunătățirea performanței dispozitivelor IoT în rețelele de comunicație. În ciuda
dezavantajelor, protocolul CoAP rămâne o opțiune atractivă pentru aplicațiile IoT care necesită
comunicare eficientă în mediile cu resurse limitate. Cu o planificare adecvată și o implementare
corespunzătoare, aceste dezavantaje pot fi gestionate și pot fi obținute beneficii semnificative în
ceea ce privește eficiența energetică și performanța comunicațiilor în domeniul IoT.

2.3.3 WebSocket
WebSocket este un protocol de comunicare bidirecțională și full-duplex utilizat în
aplicațiile IoT. Oferă o serie de avantaje semnificative în comparație cu alte protocoale de
comunicare. WebSocket permite o comunicare bidirecțională între dispozitivele IoT și serverele
lor, facilitând schimbul rapid și eficient de informații. Protocolul reduce traficul de date și
latenta, deoarece conexiunea persistentă elimină nevoia de a trimite cereri HTTP repetitive
pentru a obține date actualizate.

Figură 8. Protocolul WebSocket [6]


Unul dintre avantajele majore ale utilizării WebSocket în IoT este eficiența în traficul de
date. Datorită conexiunii persistente, se minimizează overhead-ul asociat cu trimiterea repetată a

22
cererilor HTTP și se realizează o transmitere continuă și fluidă a datelor. Acest lucru contribuie
la o comunicare rapidă și fără întreruperi între dispozitivele IoT și servere.
Un alt avantaj important al WebSocket este consumul redus de energie. Conexiunea
persistentă permite dispozitivelor IoT să rămână într-o stare de așteptare sau de repaus între
schimburile de date, economisind astfel energie și prelungind durata de viață a bateriei
dispozitivelor.
WebSocket oferă, de asemenea, flexibilitate și scalabilitate în implementarea aplicațiilor
IoT. Este independent de platformă și poate fi utilizat pe o varietate de dispozitive și servere.
Acest aspect permite dezvoltatorilor să creeze aplicații IoT adaptate nevoilor specifice și să
gestioneze o gamă largă de dispozitive și servere conectate.
Cu toate acestea, utilizarea WebSocket în IoT vine și cu anumite dezavantaje.
Implementarea protocolului WebSocket poate fi complexă, necesitând cunoștințe avansate de
programare și o înțelegere profundă a conceptelor asociate. Configurarea corectă a conexiunilor
WebSocket poate necesita timp și expertiză tehnică.
De asemenea, utilizarea WebSocket implică cerințe suplimentare de resurse, cum ar fi
lățimea de bandă și capacitatea de procesare. O implementare extinsă cu un număr mare de
dispozitive IoT poate necesita o infrastructură server puternică și dimensionată corect pentru a
gestiona volumul mare de conexiuni WebSocket.
În plus, nu toate dispozitivele IoT pot suporta direct protocolul WebSocket, în special
cele mai vechi sau cele cu resurse limitate. Astfel, adaptarea sau actualizarea acestor dispozitive
pentru a permite comunicarea prin WebSocket poate fi necesară.
În concluzie, utilizarea protocolului WebSocket în aplicațiile IoT aduce numeroase
avantaje, cum ar fi comunicarea bidirecțională, eficiența în traficul de date, consumul redus de
energie și scalabilitatea.

2.3.4 MQTT
MQTT (Message Queuing Telemetry Transport) este un protocol de comunicare ușor și
eficient, utilizat în special în aplicațiile IoT. Acesta este proiectat pentru a facilita transmiterea
mesajelor între dispozitivele IoT și serverele lor, cu un consum redus de energie și o lățime de
bandă optimizată.
Protocolul MQTT utilizează un model publish-subscribe, în care dispozitivele IoT pot
publica mesaje pe anumite topic-uri, iar alte dispozitive pot abona pentru a primi aceste mesaje
pe aceleași topic-uri. Astfel, permite comunicarea asincronă și distribuită între dispozitive, fără a
fi necesară o conexiune persistentă.

23
Unul dintre avantajele majore ale MQTT este eficiența în transmiterea datelor. Protocolul
utilizează un format compact pentru mesaje, ceea ce reduce consumul de lățime de bandă și
resursele necesare. Acest lucru este deosebit de util în cazul dispozitivelor IoT cu resurse
limitate, cum ar fi senzori sau dispozitive cu baterii.

Figură 9. Protocolul MQTT [9]

MQTT oferă, de asemenea, o calitate de serviciu flexibilă pentru transmiterea mesajelor.


Protocolul suportă diferite niveluri de calitate, cum ar fi „cel mult o dată”, „cel puțin o dată” și
„exact o dată”, ceea ce permite dezvoltatorilor să aleagă nivelul adecvat de garanție pentru
transmiterea mesajelor în funcție de nevoile aplicației.
Pe lângă acestea, MQTT are o arhitectură simplă și modulară, permițând integrarea
ușoară cu diverse platforme și sisteme. Acesta este compatibil cu o gamă largă de dispozitive și
oferă suport pentru securitate și autentificare.
În concluzie, MQTT este un protocol de comunicare eficient și ușor, care facilitează
transmiterea mesajelor între dispozitivele IoT și serverele lor. Protocolul oferă eficiență în
transmiterea datelor, calitate de serviciu flexibilă și o arhitectură modulară. Detaliile despre
funcționarea și implementarea protocolului MQTT vor fi descrise în detaliu în capitolul 3, cu
denumirea „Protocolul MQTT”.

2.4 Aplicații IoT


Rețeaua IoT ascunde un mare potențial, ceea ce face posibilă dezvoltarea a numeroase
aplicații. Multe aplicații pot fi dezvoltate și implementate pe baza IoT. Așa cum spune proverbul
“Roma nu a fost construită într-o zi”, în mod similar, progresele necesită timp. Este un proces
pas cu pas, în care planurile de dezvoltare pot fi realizate cu ușurință, dar implementarea acestora
necesită timp. În această secțiune au fost evidențiate numeroase aplicații ale IoT. Unele aplicații
comune și semnificative ale IoT sunt discutate pe scurt mai jos:
 Industria aerospațială și aeronautică: Produsele și elementele contrafăcute pot fi
identificate cu ușurință cu ajutorul IoT. Acest lucru poate îmbunătăți siguranța și
securitatea produselor, precum și a serviciilor. De exemplu, industria aviației este

24
sensibilă la problema pieselor neaprobate ale aeronavelor, cunoscute în mod obișnuit sub
numele de piese suspecte neaprobate (Suspected Unapproved Parts - SUP).
 Industria automobilelor: O mulțime de modernizări pot fi observate în industria auto.
deoarece, în general, toate mijloacele de transport sunt echipate cu senzori, actuatoare etc.
Senzorii și actuatoarele instalate sunt cunoscute pentru puterea de procesare crescută.
Lucrurile inteligente sunt utilizate pentru a construi și implementa aplicații în automobile.
Aplicațiile pot monitoriza și raporta diverși parametri ai automobilelor, cum ar fi
proximitatea altor vehicule, presiunea din pneuri etc. Tehnologia RFID este utilizată
pentru a raționalizarea producției de autovehicule, îmbunătățirea logisticii, creșterea
calității serviciilor de controlul calității și îmbunătățirea serviciilor pentru clienți. Datele
în timp real din procesul de fabricație și în operațiunile de întreținere sunt furnizate de
tehnologia RFID.
 Industria telecomunicațiilor: Alianța dintre tehnologii diferite poate fi posibilă cu
ajutorul IoT. Aceasta va funcționa ca bază pentru crearea de noi servicii. Un scenariu
ilustrativ pentru alianța de mai sus este utilizarea reciprocă a tehnologiilor GSM,
Bluetooth, Near Field Communication (NFC), Wireless Local Area Network (WLAN),
Global Positioning System (GPS), a rețelelor cu mai multe salturi și a rețelelor de senzori
cu ajutorul tehnologiei SIM (Subscriber Identity Module).
 Automatizarea casei: În zilele noastre, oamenii se bazează mai mult pe tehnologie
pentru a aborda preocupările legate de stilul de viață pe care îl duc și de securitatea
locuințelor lor. Progresele în tehnologia senzorilor, a actuatorilor și a rețelelor de senzori
fără fir sunt principalii piloni care stau la baza popularității conversiei locuințelor în case
inteligente. În casele inteligente, sunt furnizate servicii inteligente și automatizate pentru
utilizatorului prin implementarea de senzori în diferite locații. Senzorii inteligenți nu
automatizează doar sarcinile de zi cu zi ale unei persoane, dar ajută și la conservarea
energiei prin oprirea gadgeturilor electronice, cum ar fi ventilatoarele, luminile etc. atunci
când nu sunt în uz. Conservarea energiei în casele inteligente este posibilă prin utilizarea
de senzori și prin conceptul de conștientizare a contextului. Diferite date precum
(temperatura, lumina, lumina, umiditatea, evenimentul de incendiu, gazul etc.) sunt
colectate de senzorii eterogeni și transmise agregatorului de context.
 Agricultura și creșterea animalelor: O tehnologie precum IoT poate fi utilizată pentru a
reglementa urmărirea animalelor utilizate în agricultură. Acest lucru poate ajuta la
detectarea animalelor în timp real, în special în timpul erupției unui sindrom infecțios. În
multe țări, fermierii și ciobanii primesc subvenții în funcție de baza numărului de
animale, cum ar fi bovine, ovine etc. Oamenii pot face fraude cu guvernul, inducându-i în
eroare cu privire la numărul de animale. Detectarea acestor înșelăciuni este o sarcină
dificilă. Prin urmare, IoT poate fi utilizat pentru a reduce frauda, deoarece poate oferi
metode adecvate de identificare. Multe alte aplicații, cum ar fi efectuarea de sondaje,
controlul și prevenirea bolilor, pot fi realizate cu ușurință prin utilizarea diverselor
caracteristici ale IoT.
 Industria medicală și de sănătate: Există multe aplicații în sectorul sănătății care pot fi
încadrate prin utilizarea funcțiilor IoT. Monitorizarea parametrilor medicali și urmărirea
administrării medicamentelor se poate face cu ușurință prin utilizând telefoane mobile cu

25
capacități de senzori RFID. Unele dintre avantajele pe care pot fi obținute prin utilizarea
funcției menționate sunt:
(a) monitorizarea bolilor poate fi facilitată.
(b) se poate face un diagnostic ad-hoc.
(c) se poate acorda ajutor medical instantaneu furnizat în caz de accidente.
Dosarele de sănătate pot fi salvate și securizate prin utilizarea dispozitivelor implantabile
și fără fir. Aceste dosare de sănătate pot fi utilizate pentru a salva viața pacientului și se
poate oferi un tratament special persoanelor aflate în situații de urgență, în special celor
care suferă de boli de inimă, cancer, diabet, accident vascular cerebral, deficiențe
cognitive, Alzheimer etc.

2.5 Impactul și avantajele IoT


Impactul și avantajele sistemelor IoT sunt remarcabile într-o gamă largă de domenii și
aduc multiple beneficii atât pentru utilizatori, cât și pentru întreprinderi și societate în ansamblu.
Unul dintre principalele impacturi ale IoT este crearea unei lumi interconectate, în care
dispozitivele și obiectele comunică și colaborează între ele. Acest lucru permite schimbul de
informații în timp real și interacțiunea eficientă între sisteme și echipamente, ceea ce duce la o
eficiență sporită și o gestionare mai inteligentă a resurselor.
Un avantaj major al IoT este eficiența și automatizarea proceselor. Prin intermediul
senzorilor și dispozitivelor inteligente, se pot colecta și analiza date în timp real, iar sistemele pot
reacționa și lua decizii automate pentru a îmbunătăți eficiența operațională. De exemplu, în
domeniul industriei, IoT permite monitorizarea și controlul automat al liniilor de producție,
reducând erorile și optimizând fluxurile de lucru.
Un alt impact important al IoT este facilitarea monitorizării și gestionării la distanță. Prin
conectarea dispozitivelor și sistemelor la internet, se poate obține acces la informații și control
asupra acestora de la distanță. Aceasta înseamnă că dispozitivele pot fi monitorizate și gestionate
eficient, indiferent de locație. De exemplu, în domeniul sănătății, dispozitivele de monitorizare a
pacienților pot transmite date către medici, permițând monitorizarea și intervenția rapidă în cazul
unor probleme de sănătate.
IoT aduce beneficii semnificative și în îmbunătățirea calității vieții. Soluțiile inteligente
pentru locuințe, de exemplu, permit controlul automat al sistemelor de iluminat, încălzire,
siguranță și divertisment. Aceasta aduce confort și eficiență în viața de zi cu zi. De asemenea, în
domeniul sănătății, IoT oferă soluții inovatoare, cum ar fi dispozitivele de monitorizare a
sănătății conectate, care ajută la urmărirea parametrilor de sănătate și la detectarea precoce a
unor afecțiuni.
IoT stimulează inovația și creează noi oportunități de afaceri. Prin conectarea
dispozitivelor și colectarea datelor, se pot dezvolta noi servicii și modele de afaceri. De exemplu,
serviciile de abonament și modelul „ca serviciu” devin tot mai populare în domenii precum
iluminatul inteligent, automatizarea locuinței și gestionarea energiei.

26
Un alt aspect important al IoT este reducerea costurilor și a consumului de resurse. Prin
monitorizarea și controlul eficient al utilizării resurselor precum energie, apă, combustibil etc., se
poate reduce consumul inutil și se pot optimiza cheltuielile. De exemplu, sistemele de gestionare
a energiei în locuințe inteligente pot ajusta automat iluminatul și temperatura în funcție de
nevoile utilizatorilor, contribuind astfel la economisirea energiei și reducerea costurilor facturilor
de utilități.
Un alt avantaj al IoT este îmbunătățirea procesului decizional. Prin colectarea și analiza
datelor în timp real, se pot obține informații relevante și actualizate, care ajută la luarea deciziilor
mai bine fundamentate. De exemplu, în industrie, datele colectate de la senzorii dispozitivelor
IoT pot oferi informații despre starea echipamentelor și pot detecta defecțiunile înainte ca acestea
să ducă la întreruperi majore în producție.
În concluzie, IoT aduce impacturi și avantaje semnificative într-o varietate de domenii.
Eficiența și automatizarea proceselor, conectivitatea extinsă, monitorizarea și gestionarea la
distanță, îmbunătățirea calității vieții, inovația și noi oportunități de afaceri, reducerea costurilor
și a consumului de resurse, precum și îmbunătățirea procesului decizional sunt doar câteva dintre
beneficiile pe care le aduce IoT. Cu toate acestea, este important să se țină cont de aspecte de
securitate și confidențialitate în implementarea și utilizarea soluțiilor IoT, pentru a asigura
protecția datelor și a infrastructurii.

3. Protocolul MQTT

3.1 Istoria și evoluția protocolului MQTT


Protocolul MQTT (Message Queuing Telemetry Transport) are o istorie bogată și o
evoluție semnificativă în domeniul comunicațiilor mașină-la-mașină (M2M) și al Internetului
lucrurilor (IoT). A fost dezvoltat de către Dr. Andy Stanford-Clark de la IBM și Arlen Nipper de
la Arcom (acum Eurotech) în anii ‘90. Scopul principal al protocolului MQTT era de a oferi o
metodă eficientă și ușor de utilizat pentru transmiterea datelor între dispozitivele cu resurse
limitate, cum ar fi senzorii și dispozitivele IoT.
Istoria MQTT are legătură cu cerințele specifice ale industriei de petrol și gaze, care
dorea o soluție eficientă de monitorizare și control a sistemelor distribuite și de comunicație în
medii cu resurse limitate. Astfel, protocolul MQTT a fost conceput pentru a oferi o alternativă la
protocoalele existente, care erau prea greoaie sau consumau prea multă energie pentru
dispozitivele IoT.
De-a lungul anilor, MQTT a suferit mai multe actualizări și îmbunătățiri, în special cu
dezvoltarea standardului MQTT-SN (MQTT for Sensor Networks) care a adăugat suport pentru
rețelele de senzori. MQTT-SN a fost dezvoltat pentru a extinde capacitatea de comunicație a
protocolului MQTT în medii cu rețele și topologii specifice, cum ar fi rețelele fără fir și rețelele
de senzori de mare scală.

27
Figură 10. Pachet de date MQTT [15]
Protocolul MQTT a devenit un standard deschis și a câștigat popularitate în industria IoT
datorită mai multor caracteristici cheie. Printre acestea se numără:
 Eficiența energetică și utilizarea redusă a lățimii de bandă: MQTT utilizează un
model de publicare/abonare, în care dispozitivele publică mesaje pe anumite teme și se
pot abona pentru a primi mesajele de pe acele teme. Această abordare reduce semnificativ
traficul de rețea și consumul de energie, făcându-l potrivit pentru dispozitivele cu resurse
limitate.
 Fiabilitate și livrare garantată: MQTT asigură o livrare fiabilă a mesajelor prin
intermediul calității serviciului (QoS). Protocolul oferă opțiuni de QoS care permit să fie
gestionată fiabilitatea și prioritatea mesajelor, asigurându-se că acestea sunt livrate cu
succes și într-o ordine specifică.
 Scalabilitate și flexibilitate: MQTT este conceput pentru a fi scalabil și pentru a gestiona
un număr mare de dispozitive conectate. Este un protocol ușor și simplu, care poate fi
implementat pe o gamă largă de dispozitive și platforme.
 Suport pentru conexiuni instabile: MQTT are capacitatea de a gestiona conexiuni
nesigure sau instabile. Dacă o conexiune se întrerupe temporar, protocolul poate
reconecta automat dispozitivul și poate asigura livrarea mesajelor în mod corespunzător.
Astăzi, MQTT este utilizat în mod extins în industria IoT, fiind implementat în
numeroase soluții și platforme. Este un protocol flexibil și fiabil, care facilitează comunicarea
eficientă între dispozitivele IoT și serviciile cloud sau alte sisteme de gestionare. În capitolul
următor, vom explora mai detaliat caracteristicile și funcționalitățile protocolului MQTT, precum
și modul în care poate fi utilizat în soluțiile IoT.

28
3.2 Caracteristicile și funcționalitățile protocolului MQTT
MQTT are o serie de caracteristici care îl diferențiază și îl fac să se evidențieze în
contextul aplicațiilor IoT. Acesta utilizează un model de comunicare de tip publicare/abonare, în
care dispozitivele pot publica mesaje pe anumite teme și se pot abona pentru a primi mesajele de
pe acele teme. Acest model facilitează transmiterea datelor în mod eficient și flexibil între
dispozitive, fără a necesita o comunicare directă între expeditor și destinatar.
Un alt aspect important al MQTT-ului este configurabilitatea nivelului de calitate a
serviciului (QoS). QoS (Quality of Service) este un aspect important al protocolului MQTT și
joacă un rol crucial în asigurarea fiabilității și prioritizării mesajelor într-un sistem IoT. MQTT
oferă trei niveluri de QoS, fiecare având caracteristici și beneficii specifice.
i. QoS 0 (Cel mai puțin fiabil): Acest nivel de QoS asigură o livrare „cel mult o dată” a
mesajelor. Atunci când un client publică un mesaj cu QoS 0, acesta este transmis către
broker și apoi distribuit către toți clienții abonați pe acea temă. Brokerul nu păstrează
nicio informație despre starea mesajului, ceea ce înseamnă că nu se asigură o confirmare
de livrare sau mecanisme de retransmisie. Aceasta înseamnă că există riscul ca mesajele
să se piardă în cazul în care un client nu este disponibil sau conexiunea se întrerupe
temporar.
ii. QoS 1 (Fiabil): Acest nivel de QoS asigură o livrare „cel puțin o dată” a mesajelor.
Atunci când un client publică un mesaj cu QoS 1, acesta este transmis către broker și apoi
brokerul confirmă primirea mesajului către clientul expeditor. Dacă confirmarea nu poate
fi obținută într-un interval de timp prestabilit, mesajul este retransmis de către expeditor.
Aceasta asigură o livrare fiabilă a mesajelor, chiar și în cazul întreruperilor temporare ale
conexiunii sau indisponibilității clientului destinatar.
iii. QoS 2 (Cel mai fiabil): Acest nivel de QoS asigură o livrare „exact o dată” a mesajelor.
Atunci când un client publică un mesaj cu QoS 2, acesta este transmis către broker și apoi
brokerul confirmă primirea mesajului către clientul expeditor. După aceea, clientul
expeditor trimite un mesaj de confirmare către broker pentru a confirma primirea
mesajului. Dacă confirmarea nu poate fi obținută într-un interval de timp prestabilit,
mesajul este retransmis de către expeditor. Acest nivel de QoS oferă cea mai mare
fiabilitate, asigurând că mesajele sunt livrate exact o dată și că nu apar duplicări.
Retain Flag este un indicator asociat unui mesaj MQTT, care specifică dacă brokerul
trebuie să rețină ultimul mesaj publicat pe o anumită temă. Atunci când un client publică un
mesaj cu Retain Flag setat, brokerul va reține acel mesaj și îl va trimite tuturor clienților care se
abonează la acea temă imediat după abonarea lor. Aceasta înseamnă că clienții abonați primesc
ultimul mesaj publicat pe acea temă, chiar dacă nu erau conectați în momentul publicării
mesajului. Retain Flag este util pentru inițializarea și actualizarea stării dispozitivelor și poate fi
utilizat în scenarii precum afișarea ultimului mesaj sau recuperarea datelor inițiale.
Last Will and Testament (LWT) este o funcționalitate a protocolului MQTT care
permite unui client să transmită o mesaj de „veste de ultimă oră” către broker în cazul în care
conexiunea acestuia se întrerupe neașteptat. Clientul poate specifica un mesaj și o temă asociată
acestuia, iar atunci când conexiunea clientului se întrerupe brusc, brokerul va publica automat

29
mesajul de LWT pe tema specificată. Aceasta oferă o modalitate de a anunța celelalte dispozitive
sau clienți interesați despre deconectarea neașteptată a clientului. LWT este util pentru a
comunica starea dispozitivelor și pentru a iniția acțiuni sau notificări corespunzătoare în cazul
întreruperilor de conexiune.
Eficiența energetică și utilizarea redusă a lățimii de bandă sunt alte avantaje ale
protocolului MQTT. Protocolul este proiectat pentru a fi eficient din punct de vedere energetic și
pentru a utiliza în mod optim lățimea de bandă disponibilă. Dimensiunea redusă a pachetelor de
date și mecanismul de comprimare a headerelor contribuie la economisirea resurselor
dispozitivelor IoT, în special a celor cu resurse limitate.
MQTT permite menținerea conexiunilor persistente între client și broker, ceea ce
înseamnă că dispozitivele IoT pot rămâne conectate și pot transmite sau primi mesaje în orice
moment. De asemenea, protocolul oferă posibilitatea de a gestiona și monitoriza starea
conexiunii, inclusiv posibilitatea de a reconecta automat dispozitivele în cazul în care conexiunea
este întreruptă temporar. Toate aceste caracteristici și funcționalități fac din MQTT un protocol
puternic și potrivit pentru aplicațiile IoT. În subcapitolul următor, vom explora în detaliu
avantajele și dezavantajele utilizării protocolului MQTT în contextul sistemelor IoT, pentru a
putea înțelege mai bine potențialul și limitările sale.

3.3 Funcționarea protocolului MQTT


Protocolul MQTT este un protocol de comunicare lejer și eficient, care se bazează pe un
model publish/subscribe (publicare/abonare). Acest subcapitol va explora modul în care MQTT
funcționează și va detalia procesele de conectare, abonare și publicare a mesajelor.

Figură 11. Publicatori și abonați ca clienți conectați la un broker MQTT [14]

Modelul de publicare-abonare necesită un broker, cunoscut și sub numele de server. Toți


clienții stabilesc o conexiune cu brokerul. Clientul care trimite un mesaj prin intermediul
brokerului este cunoscut sub numele de publicator. Brokerul filtrează mesajele primite și le
distribuie către clienții care sunt interesați de tipul de mesaje primite.

30
Clienții care se înregistrează la broker ca fiind interesați de anumite tipuri de mesaje sunt
cunoscuți ca abonați. Prin urmare, atât publicatorii, cât și abonații stabilesc o conexiune cu
brokerul.
Un subiect (topic) este un canal logic și este denumit canal sau subiect. Brokerul va
trimite clienților numai mesajele publicate în subiectele la care sunt abonați. Datele unui mesaj
sunt cunoscute sub denumirea de sarcină(payload). Un mesaj include subiectul căruia îi aparține
și sarcina utilă.
Publicatorii și abonații sunt decuplați în spațiu, deoarece nu se cunosc între ei.
Publicatorii și abonații nu trebuie să funcționeze în același timp. Publicatorul poate publica un
mesaj, iar abonatul îl poate primi ulterior. În plus, operațiunea de publicare nu este sincronizată
cu operațiunea de primire. Un client solicită brokerului să publice un mesaj, iar restul clienților,
care s-au abonat la subiectul corespunzător, pot primi mesajul la momente diferite. Publicatorul
poate trimite mesaje ca o operație asincronă pentru a evita să fie blocat până când clienții
primesc mesajele. Cu toate acestea, este de asemenea posibil să se trimită un mesaj brokerului ca
o operațiune sincronă, cu ajutorul broker-ului și de a continua execuția numai după ce
operațiunea a avut succes. În cele mai multe cazuri, vom dori să profităm de operațiunile
asincrone.

3.3.1 Conectarea la un broker MQTT


Pentru a stabili o conexiune, clientul MQTT trebuie să trimită un pachet de control
CONNECT către serverul MQTT cu un payload care trebuie să includă toate informațiile
necesare pentru inițierea conexiunii și să se treacă cu succes la autentificare și autorizare.
Serverul MQTT va verifica pachetul CONNECT, va efectua autentificarea și autorizarea și va
trimite un răspuns către client cu un pachet CONNACK. În cazul în care clientul MQTT trimite
un pachet de control CONNECT invalid, serverul va trimite automat închide automat
conexiunea. Următoarea diagramă prezintă interacțiunea dintre un client MQTT și un server
MQTT pentru a stabili o conexiune.

Figură 12. Conectarea unui client la brokerul MQTT [14]

După stabilirea cu succes a unei conexiuni între un client MQTT și un server MQTT,
serverul va menține conexiunea deschisă până când clientul pierde conexiunea sau trimite un
pachetul de control DISCONNECT către server pentru a închide conexiunea. Pachetul de control

31
CONNECT trebuie să includă valori pentru următoarele câmpuri în payload și biți pentru un
octet special de semnalizare care este inclus în pachetul de control:

 ClientId: Identificatorul de client, cunoscut și sub numele de ID client, este un șir de


caractere care identifică fiecare client MQTT care se conectează la un server MQTT.
 CleanSession: Indicatorul sesiunii este o valoare booleană care specifică ce se întâmplă
după ce o sesiune client MQTT se deconectează de la serverul MQTT și apoi se
reconectează.

3.3.2 Abonarea la topic-uri


Clientul MQTT trimite un pachet SUBSCRIBE către serverul MQTT cu un identificator
de pachet (PacketId) în antet și una sau mai multe perechi de un filtru de subiect și nivelul de
calitate a serviciului(QoS) dorit în antetul payload-ului.
Serverul MQTT va procesa un pachet SUBSCRIBE valid și va răspunde cu un pachet
SUBACK care indică confirmarea abonării și confirmă primirea și procesarea pachetului
pachetul SUBSCRIBE. Pachetul SUBACK va include același identificator de pachet (PacketId)
din pachetul antet care a fost primit în pachetul SUBSCRIBE. Pachetul SUBACK va include un
cod de returnare pentru fiecare pereche de filtre de subiecte și nivelul QoS dorit, primite în
pachetul SUBSCRIBE. Pachetul numărul de coduri de returnare va corespunde numărului de
filtre de subiecte incluse în pachetul SUBSCRIBE. Primele trei coduri de returnare indică o
abonare reușită și fiecare valoare specifică QoS maximă care poate fi furnizată pe baza QoS
solicitată și posibilitățile serverului MQTT de a o acorda.

Figură 13. Abonarea unui client MQTT la un topic [14]

Dacă abonarea a avut succes, serverul MQTT va începe să trimită fiecare mesaj publicat
care se potrivește cu filtrele de subiecte specificate în abonament către clientul MQTT cu QoS
specificat în codul de returnare. Următoarea diagramă prezintă interacțiunea dintre un client
MQTT și un server MQTT pentru a abona la unul sau mai multe filtre de subiecte.

32
3.3.3 Publicarea mesajelor
Publicarea mesajelor în MQTT se realizează prin trimiterea acestora către broker, care va
propaga mesajul către toți clienții care sunt abonați la acel topic. Clientul care publică un mesaj
poate specifica topic-ul către care este adresat mesajul și conținutul propriu-zis al mesajului.
Clientul MQTT care a stabilit deja o conexiune trimite un pachet PUBLISH către MQTT cu un
antet care include următoarele câmpuri și indicatori:

 PacketId: Dacă nivelul QoS este egal cu 0, valoarea acestui câmp va fi 0 sau nu va
fi prezentă. În cazul în care nivelul QoS este egal cu 1 sau 2, identificatorul
pachetului va avea o valoare numerică pentru identifica pachetul și pentru a face
posibilă identificarea răspunsurilor legate de acest pachet.
 QoS: Specifică nivelul de QoS pentru mesaj.
 Retain: Dacă valoarea pentru acest indicator este setată la 1 sau true, serverul
MQTT va stoca mesajul cu nivelul de QoS specificat.
 TopicName: Un șir de caractere cu numele subiectului în care trebuie publicat
mesajul. Numele subiectelor au o structură ierarhică în care slash-urile (/) sunt
utilizate ca delimitatori. În exemplele noastre, valoarea pentru TopicName a fost
„sensor1 /altitude”.
Payload-ul conține mesajul efectiv pe care clientul MQTT dorește ca serverul MQTT să
îl publice. MQTT este agnostic pentru date și, prin urmare, putem trimite orice date binare și nu
avem restricții precum cele impuse de JSON sau XML. Bineînțeles, putem folosi acestea sau
altele pentru a organiza payload-urile dacă dorim. În exemplele noastre, am trimis un șir de
caractere care includea un număr care reprezenta valoarea altitudinii.

Figură 14. Publicarea unui mesaj MQTT [14]

Serverul MQTT va citi un pachet PUBLISH valid și va răspunde cu un pachet de


confirmare numai pentru QoS mai mare de 0. În cazul în care nivelul QoS este 0, serverul nu va
răspunde. Serverul MQTT va determina toți abonații al căror topic abonat se potrivește cu
numele topic-ului specificat mesajului, și va publica mesajul către acești clienți. Următoarea
diagramă prezintă interacțiunea dintre un client MQTT și un server MQTT pentru a publica un
mesaj cu un nivel QoS de 0.

33
3.4 Avantajele și dezavantajele utilizării protocolului MQTT
Protocolul MQTT este un protocol de comunicare extrem de popular și utilizat în
industria IoT. Acesta oferă numeroase avantaje, dar vine și cu unele dezavantaje specifice. În
continuare, vom explora detaliat aceste aspecte, evidențiind beneficiile și posibilele limitări ale
utilizării protocolului MQTT în contextul sistemelor IoT.
Avantajele utilizării protocolului MQTT sunt următoarele:
 Ușurința de utilizare: MQTT este un protocol simplu și ușor de implementat, ceea ce
facilitează integrarea sa într-un sistem IoT. Acesta oferă un set minimal de comenzi și
concepte, ceea ce face ca dezvoltarea aplicațiilor și interacțiunea cu brokerul MQTT să
fie accesibile chiar și pentru utilizatorii cu mai puține cunoștințe tehnice avansate.
 Eficiența și scalabilitatea: Protocolul MQTT este proiectat să fie eficient în ceea ce
privește utilizarea lățimii de bandă și resurselor de rețea. Modelul său de
publicare/abonare permite transmiterea eficientă a mesajelor către multiple dispozitive
fără a crea o presiune excesivă asupra rețelei.
 Fiabilitatea comunicării: MQTT oferă opțiuni flexibile de calitate a serviciului (QoS)
pentru a asigura o comunicare fiabilă între dispozitive. Nivelurile de QoS permit
gestionarea pierderii sau duplicării mesajelor, asigurând astfel livrarea corectă și fiabilă a
informațiilor în funcție de necesitățile aplicației.
 Consum redus de energie: Un alt avantaj important al protocolului MQTT este
consumul redus de energie. Acesta este conceput pentru a funcționa eficient și pentru a
minimiza consumul de energie al dispozitivelor IoT.
Dezavantajele utilizării protocolului MQTT includ următoarele aspecte:
 Dependenta de conexiunea la rețea: MQTT este bazat pe protocoale de rețea TCP/IP,
ceea ce înseamnă că dispozitivele IoT trebuie să fie conectate la o rețea locală sau
internet pentru a comunica prin intermediul acestui protocol. Astfel, în cazul în care
conexiunea la această rețea sau internet este instabilă sau indisponibilă, în anumite locații
sau circumstanțe, comunicarea între dispozitive poate fi afectată sau chiar imposibilă.
 Limitări în ceea ce privește tipurile de date: Protocolul MQTT este orientat către
transmiterea mesajelor simple și ușoare, iar structurile complexe de date pot necesita o
gestionare suplimentară. Acest lucru poate reprezenta o limitare în cazul aplicațiilor care
necesită transmiterea unor volume mari de date complexe sau informații structurate în
mod avansat.
 Necesitatea unui broker MQTT: Pentru a utiliza protocolul MQTT, este necesară
instalarea și configurarea unui broker MQTT. Acest broker acționează ca intermediar
între dispozitivele IoT și facilitează schimbul de mesaje. Această cerință suplimentară
poate adăuga complexitate și necesită administrarea și configurarea suplimentară a
infrastructurii MQTT.
În concluzie, utilizarea protocolului MQTT în sistemele IoT vine cu numeroase avantaje
care includ ușurința de utilizare, eficiența și scalabilitatea, fiabilitatea comunicării și consumul
redus de energie. Aceste caracteristici îl fac o alegere populară și potrivită pentru o gamă variată

34
de aplicații IoT. Cu toate acestea, există și dezavantaje asociate utilizării protocolului MQTT.
Acestea includ dependența de conexiune la internet sau măcar la o rețea locală, limitările în ceea
ce privește tipurile de date și necesitatea unui broker MQTT.

4. Integrarea protocolului MQTT într-un sistem IoT

4.1 Descrierea generală și definirea obiectivelor sistemului IoT


Sistemul implementat este o aplicație de tipul “smart home”, care are scopul de a înlocui
aplicația Tuya existentă și derivatele ei. Un aspect esențial, al acestei aplicații implementate, este
faptul că datele nu sunt stocate în cloud, ci pe un server local, ceea ce aduce multiple avantaje.
Astfel, datele sunt protejate și nu sunt expuse în mediul online, oferind un nivel sporit de
securitate. De asemenea, viteza de transmitere a datelor este crescută, iar latenta este redusă.
Dispozitivele implicate în sistem sunt dispozitive și senzori smart fabricați de compania
Tuya. Aceste dispozitive au fost modificate prin înlocuirea firmware-ului original cu unul open
source, cum ar fi Tasmota sau Open Beken, în funcție de modulul WiFi utilizat. Aceste
firmware-uri includ o comunicare prin protocoalele HTTP și MQTT, însă această lucrare
abordează mai mult protocolul MQTT, el fiind unul de interes în acest proiect.
Mai jos avem un exemplu de dispozitiv smart fabricat de Tuya, un senzor de
ușă/fereastră, căruia i sa înlocuit întreg modulul WiFi Beken cu unul bazat pe cipul ESP, în unele
cazuri acest lucru fiind preferabil, deoarece firmware-ul Tasmota este unul mai dezvoltat, cu mai
multe opțiuni, mai flexibil, el fiind de mai mult timp pe piața firmware-urilor open source, față
de Open Beken, care este relativ nou, și se află în curs de dezvoltare. Astfel, se exploatează
cipurile Beken cu firmware-ul Open Beken doar atunci când altă opțiune nu mai există, în rest se
preferă să se utilizeze Tasmota. De aceea, în cazurile în care există un modul WiFi Beken cu
potrivire pin-la-pin cu un modul WiFi bazat pe ESP, cum ar fi cazul CB3S (Beken) → ESP 12F
(ESP), atunci se încearcă efectuarea unui „transplant” de modul WiFi, ușurând munca ulterioară
de integrare în aplicație, dispozitivul având o flexibilitate ridicată, datorată utilizării firmware-
ului Tasmota.

Figură 15. Transplant de modul WiFi (CB3S → ESP 12F)

35
Dispozitivele inteligente sunt conectate la un broker MQTT, care poate fi instalat local pe
calculatorul unde se află și serverul, sau poate fi instalat pe un PC în internet, având un IP public
la care dispozitivele WiFi se vor conecta prin intermediul unui router WiFi cu acces la internet.
Brokerul MQTT mai poate fi instalat pe un Raspberry Pi, o metodă des utilizată în rețelele de
case inteligente create de amatori. Aceste arhitecturi permit gestionarea comunicării între
dispozitive și server. În cazul sistemului implementat, toate mesajele și comunicarea între
dispozitive, senzori și serverul MQTT, sunt gestionate de brokerul MQTT instalat pe un
calculator din rețeaua universității „Ștefan cel Mare” din Suceava. Acest broker asigură
distribuirea mesajelor în mod eficient și securizat între componentele sistemului IoT
implementat.
Controlul dispozitivelor este realizat prin intermediul unui server implementat în Node.js,
care, din punctul de vedere al brokerului, acesta funcționează și ca un client MQTT. Acest server
trimite mesaje MQTT către senzori și dispozitive, realizând astfel comenzi și solicitări specifice.
Senzorii pot procesa mesajele de interogare și pot răspunde cu date utile sau pot efectua acțiuni
specifice, cum ar fi controlul unor întrerupătoare smart.
Sistemul implementat include și o interfață web cu controale grafice, care permite
utilizatorului să controleze, adauge, șteargă și să actualizeze dispozitivele smart. Această
interfață web oferă o modalitate intuitivă și ușor de utilizat pentru gestionarea sistemului IoT.

Figură 16. Interfața Web aplicației Smart Home

Utilizatorul poate vizualiza starea dispozitivelor, să activeze sau să dezactiveze anumite


funcții sau să configureze setările acestora. De exemplu, prin intermediul interfeței web,
utilizatorul poate controla iluminatul în diverse camere, temperatura dintr-o încăpere, sistemul de
securitate sau orice alt dispozitiv conectat.

36
De asemenea, aplicația permite utilizatorului să creeze scene sau evenimente specifice.
Aceste evenimente pot fi declanșate în urma anumitor condiții sau la apariția unor evenimente
specifice. De exemplu, utilizatorul poate crea o scenă în care, la atingerea unui anumit timer sau
la detectarea unei anumite temperaturi exterioare, se activează automat anumite acțiuni, cum ar fi
aprinderea iluminatului și reglarea termostatului.

Figură 17. Exemplu de scene


Aceste scene oferă un nivel sporit de automatizare și personalizare a sistemului IoT
implementat. Utilizatorul poate programa și configura aceste scene în funcție de nevoile și
preferințele sale. Astfel, sistemul poate fi adaptat în mod flexibil la diverse situații și cerințe
specifice.
În concluzie, aplicația dezvoltată în cadrul sistemului IoT oferă utilizatorului nu doar
controlul dispozitivelor smart, ci și posibilitatea de a crea și gestiona evenimente și scene
personalizate. Această funcționalitate adaugă un nivel suplimentar de confort, flexibilitate și
personalizare, permițând utilizatorului să creeze un mediu smart care să se adapteze nevoilor și
preferințelor sale. Prin intermediul acestei arhitecturi și a protocolului MQTT, acest sistem IoT
permite controlul dispozitivelor și colectarea datelor într-un mod eficient, sigur și scalabil.

4.2 Implementarea și configurarea protocolului MQTT într-un


sistem IoT

4.2.1 Configurarea brokerului MQTT


Un broker MQTT poate fi instalat pe diferite platforme, cum ar fi Windows, Linux,
macOS, iar cu ultimele versiuni de Debian, acesta vine deja instalat. În acest scurt guide, se va
exemplifica instalarea unui broker MQTT de la Mosquitto și configurarea lui pe un Windows.
1) Se descarcă Mosquitto de pe https://mosquitto.org/download/ și se instalează. Dacă se
instalează cu caseta de selectare „Service” bifată, acesta va porni automat cu Windows și
va rula în fundal, ocupând implicit portul 1883. Calea de instalare implicită va fi: “C:\
Program Files\mosquitto” .

37
Figură 18. Fereastră instalare Eclipse Mosquitto

2) Se deschide folderul unde s-a instalat mosquitto, apoi într-un folder separat, se creează un
fișier de configurare, inițial de tip text (mosquitto.txt), după care i se va schimba extensia
(mosquitto.conf). În fișierul text vor fi scriși niște parametri cu care va starta brokerul. De
exemplu, acești parametrii pot fi:
per_listener_settings true
allow_anonymous false
port 1883
password_file “./password.txt”
Dacă allow_anonymous este false, atunci trebuie să se creeze un fișier de parole și să se
seteze calea către acest fișier. Fișierul dat trebuie să conțină pe prima linie username-ul și
parola, cu care se vor conecta clienții MQTT, astfel: username:password. După setarea
parametrilor, se salvează fișierul text, i se schimbă extensia în “.conf” și se copie în
folderul unde este instalat mosquitto, astfel suprascriind fișierul de configurare deja
existent.
3) Se restartează service-ul mosquitto din Windows Services, care poate fi accesat astfel: Se
apasă tastele Windows + R de pe tastatură pentru a deschide fereastra Run. Se tastează
services.msc și se apasă Enter pe tastatură sau se face clic pe butonul OK.

38
Figură 19. Restartarea brokerului mosquitto din Windows Services

4.2.2 Instalarea unui firmware open source pe un modul WiFi


Pentru a instala un firmware open source pe un modul WiFi, trebuie urmați acești pași:
1) Pregătirea echipamentului:
 Se asigură că modul WiFi este compatibil cu firmware-ul dorit. Pentru Tasmota,
modulul WiFi trebuie sa fie bazat pe un cip ESP, iar pentru firmware-ul
OpenBeken, modulul WiFi trebuie sa fie bazat pe un cip Beken.
 Este nevoie de un calculator și de un programator UART pentru a se putea
conecta la interfața de programare a modulului WiFi.

2)

Figură 20. Modulul WiFi CB3S Figură 21. Programator UART CH340G
cu pinii de conectare serială
Descărcarea firmware-ului:
 Se descarcă versiunea corespunzătoare a firmware-ului dorit (pentru modulul
WiFi utilizat. Acesta poate fi Open Beken:
https://github.com/openshwprojects/OpenBK7231T_App/releases/

39
3) Conectarea modulului WiFi cu programatorul UART:
 Este nevoie de cel puțin 4 fire care vor fi folosite pentru a conecta pinii Tx, Rx,
3.3V, Gnd cu pinii Rx, Tx, 3.3V, Gnd ai programatorului.
 Se conectează programatorul UART la computer utilizând un cablu USB.

Figură 22. Conectarea pinilor modulului WiFi cu programatorul UART

4) Instalarea firmware-ului:
 Se va descărca aplicația “BK7231 Easy UART Flasher” de la adresa:
https://github.com/openshwprojects/BK7231GUIFlashTool
 Se setează COM-portul, se va alege firmware-ul descărcat, și se va porni
instalarea.
 Pentru scrierea efectivă pe cipul WiFi, este mandatoriu ca acesta să intre în
regimul “Boot mode”.

Figură 23. BK7231 UART Flasher

Pentru cipurile Beken, intrarea în Boot mode va avea loc după restartarea
modulului WiFi, de aceea, se va deconecta și conecta înapoi (pe un interval foarte

40
scurt) pinul de alimentare 3.3V ce cuplează modulul WiFi cu programatorul
UART, fără a deconecta programatorul de la PC.
5) Accesarea interfeței de programare a modulului WiFi:
 Se va deschide un browser web și se va introduce adresa IP de configurare în bara
de adrese. Adresa IP de configurare este 192.168.4.1 . Aici se va seta SSID-ul și
parola router-ului la care va fi conectat modulul WiFi. După setare, modulul se va
restarta și i se va aloca o adresă IP, pe care o putem găsi în lista cu adrese alocate
de către router.

6)

Figură 24. Configurarea modului WiFi

Configurare și personalizare:
 Se va accesa interfața de programare a firmware-ului prin adresa sa IP alocată de
router, și se va configura opțiunile și setările specifice modulului WiFi și
dispozitivelor conectate. Aici se pot seta parametri precum numele WiFi, numele
device-ului, parolele, adresa MQTT, pinii de intrare/ieșire (în dependență de tipul
dispozitivului), etc.

Figură 25. Pagina de start și pagina de configurare al firmware-ului OpenBeken

41
4.2.3 Firmware-urile Tasmota și Open Beken
Firmware-urile open source joacă un rol crucial în implementarea sistemelor IoT,
deoarece oferă posibilitatea de a controla și personaliza dispozitivele smart într-un mod flexibil.
Aceste firmware-uri permit utilizatorilor să își modifice dispozitivele smart, să adauge
funcționalități suplimentare și să le integreze în diferite ecosisteme IoT.
Unul dintre cele mai populare firmware-uri open source utilizate în proiecte IoT este
Tasmota. Tasmota oferă o platformă solidă și versatilă pentru dispozitivele bazate pe ESP8266 și
ESP32. Această platformă permite controlul dispozitivelor prin intermediul protocolului MQTT,
oferind o interfață simplă și ușor de utilizat.

Figură 26. Interfața Tasmota și linia de comandă

Tasmota oferă o gamă largă de funcționalități, inclusiv controlul iluminatului, senzorilor,


întrerupătoarelor și multe altele. Prin intermediul acestui firmware, utilizatorii pot personaliza
comportamentul dispozitivelor, pot configura automatizări și pot integra dispozitivele în diferite
platforme și servicii IoT. În ceea ce privește Open Beken, este un firmware open source

Figură 27. Interfața Open Beken și linia de comandă


specializat pentru cipurile Beken, cum ar fi Beken 7231N sau Beken 7231T.

42
Acest firmware oferă suport pentru funcționalități WiFi și MQTT, permițând integrarea
dispozitivelor Beken într-un ecosistem IoT bazat pe MQTT.
Prin urmare, alegerea firmware-urilor open source precum Tasmota și Open Beken
reprezintă o decizie strategică pentru implementarea sistemului IoT. Utilizarea firmware-urilor
Tasmota și Open Beken permite personalizarea și controlul dispozitivelor smart într-un mod
convenabil și adaptat nevoilor.
Atât firmware-ul Tasmota, cât și firmware-ul Open Beken oferă funcționalități avansate
și permit personalizarea dispozitivelor IoT în funcție de cerințele specifice. Prin utilizarea
modulelor WiFi din familiile ESP și Beken, împreună cu firmware-urile Tasmota și Open Beken,
dezvoltatorii pot crea și implementa propriile soluții IoT, având control total asupra
funcționalității și a datelor dispozitivelor lor conectate. Anume aceste firmware-uri vor fi
utilizate în realizarea propriului sistem IoT, ele suportând comunicații prin diferite protocoale,
printre care HTTP și MQTT.

4.3 Utilizarea protocolului MQTT în sistemul IoT

4.3.1 Conexiunea aplicației Web cu device-urilor smart prin protocolul


MQTT
Conexiunea aplicației web implementată în React și Node.js cu dispozitivele smart prin
protocolul MQTT se bazează pe o arhitectură de tipul publish/subscribe.

Figură 28. Conexiunea dispozitivelor smart cu aplicația Web

43
Aplicația web servește ca interfață pentru utilizator, permițându-i să interacționeze cu
dispozitivele smart, să trimită comenzi și să primească actualizări în timp real.
Pentru a realiza conexiunea, se folosește o bibliotecă MQTT în Node.js, cum ar fi
„mqtt.js” sau „mqtt”. Această bibliotecă oferă funcționalități pentru a crea un client MQTT în
backend-ul aplicației, care va gestiona comunicarea cu brokerul MQTT. Mai jos avem secvența
de cod din NodeJs care creează un client MQTT:

Înainte de a stabili conexiunea cu brokerul MQTT, aplicația trebuie să definească setările


necesare, cum ar fi adresa IP și portul brokerului. Aceste informații pot fi configurate într-un
fișier de configurare sau pot fi transmise ca parametri în codul sursă al aplicației.
Utilizând metoda „client.on('connect')”, putem adăuga o serie de instrucțiuni ce se vor
executa la apariția evenimentului. Astfel, exact după conectarea reușită, vom inițializa toate
device-urile noastre, utilizând funcția “initDevice()” moștenită de la clasa părinte “Device”.

După ce conexiunea este stabilită, aplicația se abonează la diferite topic-uri MQTT


folosind metoda „subscribe()”. Un topic reprezintă un canal de comunicare prin care se transmit
mesaje. Aplicația se poate abona la topic-uri relevante pentru dispozitivele smart cu care dorește
să comunice. De exemplu, dacă există un dispozitiv de iluminat smart, aplicația se poate abona la
un topic specific pentru a primi actualizări despre starea și comenzi referitoare la acest
dispozitiv. Pentru o utilizare mai flexibilă, am definit o funcție care primește ca parametru
topicul de abonare:

44
Pentru a transmite comenzi către dispozitivele smart, aplicația utilizează metoda
„publish()” a clientului MQTT. Această metodă permite trimiterea unui mesaj la un anumit
topic, specificând conținutul mesajului. De exemplu, aplicația poate trimite o comandă de
aprindere a luminilor către un dispozitiv de iluminat smart prin publicarea unui mesaj la topicul
corespunzător. În cadrul aplicației mele, am realizat o metodă ce permite transmiterea unui mesaj
MQTT către broker, având ca parametri: clientul MQTT, topic-ul și payload-ul (adică datele în
utile).

Aplicația poate primi mesaje de la broker atunci când se întâmplă evenimente legate de
dispozitivele smart. Mesajele pot conține informații despre starea dispozitivelor sau pot
reprezenta comenzi de la utilizator. Aplicația poate procesa aceste mesaje și poate actualiza
interfața utilizatorului în consecință.
Pentru a recepționa mesaje de la dispozitivele smart, aplicația utilizează metoda
„client.on('message')” a clientului MQTT, metodă ce se va executa la apariția unui mesaj nou.
Astfel, putem procesa toate mesajele primite pe topic-urile la care suntem abonați, ele având în
topic numele MQTT unic al dispozitivului, identificând astfel proveniența acelui mesaj.

45
4.3.2 Interacțiunea utilizatorului cu aplicația Web
În cadrul aplicației web implementată în React, utilizatorul poate interacționa cu
dispozitivele smart prin intermediul unei interfețe grafice intuitive. Utilizatorul poate da comenzi
și interogări prin intermediul interfeței, iar aceste acțiuni sunt procesate în partea de frontend a
aplicației. Apoi, interacțiunea este transmisă la backend-ul aplicației, care folosește clientul
MQTT integrat pentru a trimite comenzi și a primi actualizări de la dispozitivele smart prin
brokerul MQTT.
Un exemplu concret poate fi situația în care utilizatorul dorește să pornească sau să
oprească o priză smart folosind un switch reprezentat pe pagina web. Atunci când utilizatorul
acționează switch-ul pentru a schimba starea prizei, se produce o interacțiune între frontend și
backend pentru a trimite comanda corespunzătoare prin brokerul MQTT.

La nivelul frontend-ului, când utilizatorul apasă switch-ul, se declanșează un eveniment


în interfața grafică implementată cu React. Această interacțiune declanșează o cerere către
backend-ul aplicației, prin intermediul unei conexiuni client-server.

La nivelul backend-ului, serverul Node.js primește cererea și utilizează clientul MQTT


integrat pentru a publica un mesaj către brokerul MQTT. Mesajul va conține informația că
utilizatorul a acționat switch-ul și dorește să schimbe starea prizei.

46
Brokerul MQTT primește mesajul și îl direcționează către dispozitivul smart
corespunzător, care este abonat la topicul asociat prizei respective. Dispozitivul va primi mesajul
și va executa comanda corespunzătoare, adică va porni sau va opri priza.

După ce dispozitivul a executat comanda, acesta poate trimite un mesaj de confirmare


prin intermediul brokerului MQTT. Mesajul de confirmare va fi redirecționat către clientul
MQTT din backend, iar backend-ul îl va trimite către frontend prin conexiunea WebSocket.

La nivelul frontend-ului, mesajul de confirmare este primit și utilizat pentru a actualiza


starea switch-ului în interfața grafică. Astfel, utilizatorul va vedea în timp real starea actualizată a

47
prizei smart pe pagina web.

Această interacțiune bidirecțională între frontend, backend și dispozitivele smart prin


protocolul MQTT și conexiunea WebSocket asigură o experiență fluidă și actualizări în timp real
pentru utilizatorul aplicației web. Utilizatorul poate interacționa cu dispozitivele smart și poate
observa starea actuală a acestora în timp ce execută comenzi prin intermediul interfeței grafice.

Este important de menționat că în situația în care nu există o conexiune activă între


aplicație și dispozitivul către care se dorește acțiunea, sau dacă nu există o conexiune stabilă cu
brokerul MQTT, schimbarea stării switch-ului nu va avea efect atât din punct de vedere logic, cât
și grafic. Într-un astfel de scenariu, când utilizatorul apasă switch-ul în interfața grafică, cererea
de schimbare a stării va fi trimisă către backend-ul aplicației, dar nu va putea fi livrată către
dispozitivul respectiv din cauza lipsei de conexiune. Astfel, starea switch-ului nu va fi actualizată
logic, iar dispozitivul nu va executa acțiunea dorită.
Pe partea de interfață grafică, în absența unei conexiuni stabile cu backend-ul sau
brokerul MQTT, switch-ul nu va avea posibilitatea de a se actualiza grafic în timp real. Astfel,
utilizatorul nu va vedea nicio schimbare vizuală a switch-ului, iar acesta va rămâne în starea
inițială. În cazul în care există o întârziere în conexiune, de exemplu, din cauza unei rețele
instabile sau a unei comunicări lente cu brokerul MQTT, actualizarea stării switch-ului în
interfața grafică va avea un anumit întârziere. Asta înseamnă că după ce utilizatorul a apăsat
switch-ul, acesta poate experimenta o întârziere până când starea grafică a switch-ului este
actualizată conform răspunsului primit de la brokerul MQTT sau dispozitivul smart.

48
5. Securitatea protocolului MQTT într-un sistem IoT

5.1 Riscuri și vulnerabilități de securitate într-un sistem IoT


Securitatea este un aspect critic într-un sistem IoT, deoarece numeroase dispozitive și
senzori conectați pot prezenta vulnerabilități care pot fi exploatate de către atacatori. Mai jos
avem o figură ce relatează nivelul de securitate pentru câteva protocoale utilizate în IoT.

Figură 29. Analiza comparativă a protocoalelor de securitate în IoT [18]

În acest subcapitol, vom explora riscurile și vulnerabilitățile de securitate care pot afecta un
sistem IoT și vom discuta despre măsurile de protecție care pot fi implementate pentru a
contracara aceste amenințări.
1) Riscul de acces neautorizat: Unul dintre cele mai mari riscuri într-un sistem IoT este
accesul neautorizat la dispozitivele și datele acestora. Atacatorii pot încerca să obțină
controlul asupra dispozitivelor sau să acceseze datele sensibile stocate în sistem. Pentru a
reduce acest risc, este important să se implementeze autentificare și autorizare riguroase,
utilizând mecanisme precum parole puternice, criptare a datelor și autentificare în doi
pași.
2) Atacurile de tip Denial-of-Service (DoS): Atacurile de tip DoS pot afecta disponibilitatea
sistemului IoT prin inundarea rețelei cu un număr mare de cereri sau pachete de date,
ceea ce poate duce la blocarea sau încetinirea funcționării dispozitivelor. Pentru a proteja
sistemul împotriva acestor atacuri, se pot implementa mecanisme de detecție și prevenire
a atacurilor DoS, precum și utilizarea unor politici de gestionare a traficului pentru a
prioritiza cererile legitime.

49
3) Vulnerabilități de securitate ale dispozitivelor: Unele dispozitive IoT pot prezenta
vulnerabilități de securitate din cauza designului slab, utilizării de firmware-uri
neactualizate sau utilizării unor protocoale de comunicare nesigure. Este important să se
efectueze o evaluare a securității dispozitivelor înainte de a le integra în sistem și să se
asigure actualizarea constantă a firmware-ului pentru a remedia eventualele
vulnerabilități.
4) Securitatea datelor: Datele colectate și transferate într-un sistem IoT pot conține
informații sensibile, cum ar fi date personale sau informații de identificare. Este esențial
să se implementeze măsuri de criptare a datelor pentru a le proteja în timpul transferului
și stocării. De asemenea, este important să se implementeze politici de gestionare a
datelor și să se ofere control utilizatorilor asupra modului în care sunt colectate, utilizate
și partajate aceste date.
5) Actualizări de securitate: Pe măsură ce evoluează tehnologia și apar noi amenințări, este
crucial să se ofere actualizări de securitate constante pentru dispozitivele și sistemele IoT.
Producătorii de dispozitive ar trebui să ofere actualizări de firmware și software pentru a
remedia vulnerabilitățile descoperite și să se asigure că utilizatorii primesc în mod regulat
aceste actualizări.
6) Securitatea rețelei: Rețelele utilizate într-un sistem IoT trebuie să fie protejate împotriva
accesului neautorizat. Se pot implementa măsuri precum utilizarea unor parole puternice
pentru rețelele WiFi, segmentarea rețelei pentru a izola dispozitivele IoT de alte
dispozitive din rețea și utilizarea unor soluții de securitate, cum ar fi firewalls și soluții de
detecție a intruziunilor.
Pentru a asigura securitatea într-un sistem IoT, este important ca toate părțile implicate de
la producătorii de dispozitive și dezvoltatorii de software la utilizatori să conștientizeze riscurile
și să implementeze măsuri adecvate de securitate. Astfel, se poate crea un mediu sigur și de
încredere pentru implementarea și utilizarea sistemelor IoT în diverse domenii.

5.2 Soluții de securitate pentru protocolul MQTT


Protocolul MQTT este utilizat frecvent în sistemele IoT pentru a facilita comunicarea
între dispozitive și aplicații. Însă, din cauza naturii sale distribuite și a faptului că funcționează pe
rețele nesigure, se impune implementarea unor măsuri de securitate pentru a proteja datele și
pentru a preveni accesul neautorizat la sistem. În acest subcapitol, vom explora soluțiile de
securitate disponibile pentru protocolul MQTT.
1) Autentificare și autorizare: Pentru a asigura că doar utilizatorii autorizați pot accesa și
comunica cu brokerul MQTT, este important să se implementeze mecanisme de
autentificare și autorizare. Aceasta poate fi realizată prin utilizarea unor mecanisme
precum utilizarea de parole puternice, certificate digitale și chei de autentificare. Prin
autentificare, se verifică identitatea utilizatorului sau a dispozitivului, în timp ce
autorizarea stabilește permisiunile și drepturile de acces ale utilizatorului în sistem.
2) Criptarea datelor: Protocolul MQTT transmite date în text clar, ceea ce poate reprezenta
un risc de securitate. Pentru a proteja confidențialitatea datelor în timpul transferului, se

50
recomandă criptarea acestora utilizând protocoale de securitate precum TLS (Transport
Layer Security) sau SSL (Secure Sockets Layer). Criptarea asigură că datele sunt ilegibile
pentru atacatori în timpul transmiterii.
3) Controlul accesului: O altă soluție importantă de securitate pentru protocolul MQTT este
controlul accesului la topic-urile și mesajele publicate și abonate. Brokerul MQTT poate
fi configurat pentru a permite sau a refuza accesul la anumite topic-uri sau mesaje bazat
pe politici de securitate definite. Aceasta asigură că doar utilizatorii autorizați pot accesa
și interacționa cu anumite resurse și informații.
4) Monitorizarea și înregistrarea activității: Implementarea unui sistem de monitorizare și
înregistrare a activității poate ajuta la detectarea și investigarea eventualelor activități
suspecte sau neautorizate. Prin înregistrarea evenimentelor și auditarea accesului, se
poate obține o vizibilitate mai mare asupra utilizării sistemului și se pot identifica
eventuale încercări de atac sau abuz.
5) Actualizarea constantă a software-ului: Este important ca brokerul MQTT și
dispozitivele conectate să fie actualizate constant cu cele mai recente versiuni de
firmware și software. Producătorii de dispozitive și dezvoltatorii de software ar trebui să
ofere actualizări de securitate și să remedieze orice vulnerabilități descoperite. Utilizatorii
ar trebui să fie responsabili și să se asigure că dispozitivele lor sunt actualizate în mod
regulat.
Implementarea acestor soluții de securitate pentru protocolul MQTT poate contribui
semnificativ la protejarea sistemului IoT și a datelor sensibile. Este important să se ia în
considerare aspectele de securitate încă de la etapa de proiectare și să se implementeze măsuri
adecvate pentru a preveni orice potențiale vulnerabilități și atacuri cibernetice.

5.3 Testarea și evaluarea securității protocolului MQTT într-un


sistem IoT
Testarea și evaluarea securității protocolului MQTT într-un sistem IoT sunt etape
esențiale pentru a verifica și a asigura că măsurile de securitate implementate sunt eficiente și că
sistemul este protejat împotriva vulnerabilităților și amenințărilor cibernetice. În acest subcapitol,
vom explora principalele aspecte și metode utilizate în testarea și evaluarea securității
protocolului MQTT.
1) Testarea de penetrare: Această metodă implică simularea unui atac cibernetic asupra
sistemului pentru a identifica eventualele vulnerabilități și puncte slabe. Testele de
penetrare pot fi realizate utilizând diverse tehnici, precum scanarea porturilor, analiza
traficului de rețea, încercări de autentificare neautorizate și exploatarea potențialelor
vulnerabilități. Scopul acestor teste este de a identifica și remedia în mod proactiv
eventualele vulnerabilități înainte ca acestea să fie exploatate de atacatori reali.
2) Evaluarea vulnerabilităților: În această etapă, se analizează în mod sistematic sistemul și
infrastructura de securitate pentru a identifica și evalua vulnerabilitățile potențiale. Acest
proces implică scanarea și testarea sistemului în căutarea unor vulnerabilități comune,

51
cum ar fi expunerea datelor confidențiale, utilizarea protocoalelor nesigure, configurări
incorecte sau erori de codare. Evaluarea vulnerabilităților oferă o imagine de ansamblu
asupra nivelului de securitate al sistemului și permite implementarea măsurilor de
remediere necesare.
3) Verificarea conformității cu standardele de securitate: Protocolul MQTT și sistemul IoT
în ansamblu trebuie să respecte anumite standarde de securitate pentru a se asigura că
sunt implementate cele mai bune practici de securitate. Aceste standarde pot include
protocoale criptografice, autentificare puternică, gestionarea cheilor, politici de securitate
și altele. Verificarea conformității cu aceste standarde asigură că sistemul este aliniat cu
cerințele de securitate și că sunt implementate măsuri adecvate pentru protejarea datelor.
4) Monitorizarea și auditarea continuă: Este esențial să se implementeze un sistem de
monitorizare și auditare continuă a sistemului IoT pentru a detecta și a preveni
eventualele încercări de atac și a asigura că măsurile de securitate sunt în funcțiune.
Monitorizarea activității de rețea, jurnalizarea evenimentelor și analiza log-urilor sunt
instrumente importante pentru identificarea activităților suspecte și pentru a reacționa
prompt la eventualele incidente de securitate.
5) Testarea rezistenței sistemului la atacuri: În această etapă, se efectuează teste de
rezistență și de performanță pentru a evalua modul în care sistemul se comportă sub
diferite scenarii de atac. Aceste teste pot implica încercări de suprasarcină, atacuri de tip
DDoS (denial of service), teste de rezistență la intruziune și altele.
Astfel, testarea și evaluarea securității protocolului MQTT într-un sistem IoT sunt esențiale
pentru a asigura protecția datelor și a infrastructurii împotriva atacurilor cibernetice.
Implementarea măsurilor de securitate adecvate, testarea regulată și monitorizarea continuă
contribuie la creșterea nivelului de securitate al sistemului și la reducerea riscurilor de securitate.

6. Concluzii și direcții viitoare

6.1 Sumarul rezultatelor și concluziilor


Acest subcapitol prezintă un sumar al rezultatelor și concluziilor obținute în cadrul
lucrării referitoare la implementarea protocolului MQTT într-un sistem IoT. Aceste rezultate și
concluzii reflectă evaluarea și analiza sistemului implementat și pot furniza o înțelegere mai
detaliată a performanței, securității și eficienței implementării MQTT în cadrul sistemului IoT.
Evaluarea performanței sistemului MQTT a constat în măsurarea latenței, transferului de
date și eficienței comunicației între dispozitivele smart și brokerul MQTT. Rezultatele au arătat
că protocolul MQTT este extrem de eficient în transmiterea mesajelor în timp real și în
gestionarea volumului mare de date generat de dispozitivele IoT.
Sa analizat și evaluat nivelul de securitate oferit de protocolul MQTT în ceea ce privește
autentificarea, criptarea și protejarea datelor. Sa implementat măsuri de securitate suplimentare,
cum ar fi utilizarea certificatelor digitale și a politicii de control al accesului, pentru a asigura

52
confidențialitatea și integritatea datelor transmise prin protocolul MQTT. Rezultatele au
demonstrat că implementarea corectă a măsurilor de securitate poate proteja sistemul împotriva
amenințărilor cibernetice.
Sa evaluat capacitatea sistemului de a gestiona un număr mare de dispozitive și mesaje
MQTT. Sa identificat punctele slabe și sa implementat măsuri de optimizare pentru a asigura o
comunicare eficientă și o scalabilitate adecvată. Rezultatele au arătat că sistemul este capabil să
gestioneze cu succes creșterea numărului de dispozitive IoT și volumul de date generate.
De asemenea, sa analizat interacțiunea utilizatorului cu aplicația web implementată, care
permite controlul și gestionarea dispozitivelor smart. Sa evaluat ușurința de utilizare,
accesibilitatea și satisfacția utilizatorului în ceea ce privește funcționalitățile și interfața
aplicației. Rezultatele au arătat că aplicația web oferă o experiență utilizator intuitivă și ușor de
utilizat.
Așadar, implementarea protocolului MQTT într-un sistem IoT a adus numeroase
beneficii, cum ar fi performanță, securitate, eficiență și scalabilitate. Rezultatele și concluziile
obținute au demonstrat că MQTT este o soluție robustă și potrivită pentru implementarea
sistemelor IoT. Cu toate acestea, este important să se acorde atenție aspectelor de securitate și să
se implementeze măsuri adecvate pentru a proteja sistemul împotriva amenințărilor cibernetice.
În continuare, se pot explora și dezvolta mai multe îmbunătățiri și optimizări pentru a spori
performanța și funcționalitatea sistemului IoT implementat.

6.2 Implicațiile și contribuțiile lucrării


Această lucrare aduce valoare prin abordarea și rezolvarea unor aspecte cheie în
implementarea și utilizarea protocolului MQTT într-un mediu IoT.
Principala implicație a lucrării constă în furnizarea unei soluții practice și eficiente pentru
implementarea protocolului MQTT într-un sistem IoT. Sa demonstrat că protocolul MQTT poate
fi utilizat cu succes pentru gestionarea și comunicarea dispozitivelor smart într-un mediu IoT,
asigurând transferul rapid și fiabil al datelor între dispozitive și brokerul MQTT.
O altă implicație importantă constă în aspectele de securitate abordate în lucrare. Sa
identificat și analizat vulnerabilitățile și riscurile de securitate asociate cu utilizarea protocolului
MQTT într-un mediu IoT și sa propus soluții adecvate pentru protejarea sistemului împotriva
amenințărilor cibernetice. Aceasta contribuie la creșterea securității și încrederii în
implementarea protocolului MQTT într-un sistem IoT.
De asemenea, lucrarea aduce o contribuție prin dezvoltarea și implementarea unei
aplicații web intuitive și ușor de utilizat pentru controlul și gestionarea dispozitivelor smart în
cadrul sistemului IoT. Interfața grafică a aplicației oferă utilizatorilor posibilitatea de a
interacționa cu dispozitivele și de a efectua diferite acțiuni, sporind astfel utilizarea și
funcționalitatea sistemului.

53
Implicațiile și contribuțiile lucrării se extind și în direcția cercetării viitoare în domeniul
IoT. Acest proiect oferă o bază solidă pentru continuarea cercetărilor privind îmbunătățirea
performanței, securității și extensibilității implementării protocolului MQTT într-un sistem IoT.
De asemenea, se pot explora și evalua alte aspecte, cum ar fi integrarea cu tehnologii emergente
sau optimizarea comunicației în rețele IoT de dimensiuni mari.
Cu toate acestea, lucrarea dată aduce contribuții semnificative în domeniul implementării
protocolului MQTT într-un sistem IoT. Implicațiile și rezultatele obținute pot fi folosite ca punct
de plecare pentru proiectarea și implementarea altor sisteme IoT bazate pe protocolul MQTT,
oferind o bază solidă pentru cercetare și inovare în acest domeniu în continuă dezvoltare.

6.3 Direcții pentru cercetări viitoare


Lucrarea dată a prezentat o implementare parțială a sistemului IoT și a aplicației web
asociate, însă există o serie de direcții pentru cercetări viitoare care pot contribui la dezvoltarea și
îmbunătățirea acestui proiect. În continuare, se va enumera câteva direcții de cercetare
considerate relevante:
1) Finalizarea și extinderea aplicației web: În prezent, aplicația web are două pagini
principale – “Devices” și „Scenes”. Este necesară finalizarea celorlalte pagini
planificate, cum ar fi „Home” (un dashboard cu dispozitive favorite și control rapid),
„Settings” (pentru setările generale și de conexiune între dispozitive) și „Sign”
(pentru autentificare și gestionarea contului utilizatorului). Aceste pagini adiționale
vor îmbunătăți experiența utilizatorului și funcționalitatea aplicației.
2) Dezvoltarea unei aplicații mobile Android: O direcție interesantă pentru cercetările
viitoare ar fi implementarea unei aplicații mobile Android care să ofere aceleași
funcționalități ca și aplicația web. Aceasta ar permite utilizatorului să se conecteze și
să interacționeze cu dispozitivele smart prin intermediul telefonului mobil, utilizând
același cont ca și în aplicația web.
3) Integrarea scenelor bazate pe locație: Un aspect interesant de cercetat și implementat
ar fi integrarea scenelor bazate pe locație. Aceasta implică utilizarea aplicației mobile
Android pentru a accesa și utiliza informațiile de locație ale utilizatorului. Astfel, se
pot crea și activa automat scene specifice când utilizatorul se află într-un anumit loc,
deschizând o gamă largă de posibilități și automatizări în sistemul IoT.
4) Encryptarea mesajelor MQTT: În scopul îmbunătățirii securității sistemului, o
direcție importantă pentru cercetare ar fi implementarea unei encryptări a mesajelor
MQTT. Aceasta ar proteja comunicarea între dispozitive și între backend și frontend,
asigurând confidențialitatea și integritatea datelor.
Aceste direcții de cercetare reprezintă oportunități pentru extinderea și îmbunătățirea
sistemului IoT și a aplicației web asociate. Prin explorarea acestor aspecte, se pot obține rezultate
inovatoare și se poate contribui la dezvoltarea domeniului IoT, aducând beneficii și soluții
practice pentru utilizatori.

54
Bibliografie

[1] “Internetul lucrurilor – O nouă paradigmă a conectării în Internet”, Revista Română de


Informatică și Automatică, vol. 27, nr. 1, 2017
[2] https://psiborg.in/how-iot-is-used-for-home-security-and-why-it-is-required/
[3] https://hobbycomponents.com/wired-wireless/1067-esp-12f-esp8266-serial-wifi-module
[4] https://developer.tuya.com/en/docs/iot/
[5] https://www.researchgate.net/figure/MQTT-Protocol-and-Architecture_fig6_336179532
[6] https://www.hcltech.com/blogs/unleashing-power-html5-websocket-internet-things-iot
[7] https://www.researchgate.net/figure/Illustration-of-the-CoAP-
architecture_fig16_330943753
[8] https://nishlashakya2.medium.com/rest-api-http-cd919cdeb1d7
[9] https://ocw.cs.pub.ro/courses/iothings/laboratoare/lab7
[10] https://www.techtarget.com/iotagenda/tip/Top-12-most-commonly-used-IoT-protocols-and-
standards
[11] https://en.wikipedia.org/wiki/Main_Page
[12] „Основы интернета вещей (Fundamentele IoT)”, Папуловская Н.В. , 2022
ISBN: 978-5-7996-3537-4
[13] „Internet of Things (IoT) Concepts and Applications”, Mansaf Alam, Kashish Ara Shakil,
2020, ISBN : 978-3030374709
[14] „MQTT Essentials - A Lightweight IoT Protocol”, Gastón C. Hillar, 2017,
ISBN : 9781787285149
[15] https://www.hwlibre.com/ro/MQTT/#Conceptos_importantes
[16] https://tasmota.github.io/
[17] https://github.com/openshwprojects
[18] “Comparative Analysis of Security Protocols in IoT” - Bhattacharya, M. Kharb, L. Chahal,
2021, ISBN : 978-3-030-88377-5

55

S-ar putea să vă placă și