FACU LTATEA DE AUTOMATICĂ, CALC ULATOARE și [630221]

I

UNIVERSITATEA DIN CRAIOVA

FACU LTATEA DE AUTOMATICĂ, CALC ULATOARE și

ELECTRONICĂ

DEPARTAMENTUL DE AUTOMATICĂ ȘI ELECTRONICĂ

PROIECT DE DIPLOMĂ

Ureche Gabriel-Terry

COORDON ATOR ȘTIINȚI FIC

Prof. univ. dr. i ng. Petre Emil

Iulie 2017

CRAIOVA

II

UNIVERSITATEA DIN CRAIOVA

FACU LTATEA DE AUTOMATICĂ, CALC ULATOARE ȘI
ELECTRONICĂ

DEPARTAMENTUL DE AUTOMATICĂ ȘI ELECTRONICĂ

Detectarea obiectelor cu ajutorul
radarului ultrasonic

Ureche Gabriel – Terry

COORDON ATOR ȘTIINȚI FIC

Prof. univ. dr. i ng. Emil Petre

Iulie 2017

CRAIOVA

III
III
III DECLARA ȚIE DE ORIGINALITATE

Subse mnatul Ureche Gabriel – Terry, student: [anonimizat], Calculatoare și Electronică a Universității din Craiova, certific prin
prezenta că am luat la cuno ștință de cele prezentate mai jos și că îmi asum, în acest context, originalitatea
proiectului meu de disertație :

• cu titlul Detectarea obiectelor cu ajut orul radarului ultrasonic ,

• coordonată de Prof. univ. dr. ing. Emil Petre,

• prezentată în sesiunea Iulie 2017.

La e laborarea proiectului de disertație , se consideră plagiat una dintre următoarele
acțiuni:

• reproducerea exactă a cuvintelor unui alt autor, dintr-o altă lucrare, în limba română sau prin

traducere dintr-o altă limbă, dacă se omit ghilimele și referința precisă,

• redarea cu alte cuvinte, reformularea prin cuvinte proprii sau rezumarea ideilor din alte lucrări,
dacă nu se indică sursa bibliografică,
• prezentarea unor date experimentale obținute sau a unor aplicații realizate de alți autori fără
menționarea corectă a acestor surse,
• însușirea totală sau parțială a unei lucrări în care regulile de mai sus sunt respectate, dar care are

alt autor.

Pentru evitarea acestor situații neplăcute se recomandă:

• plasarea între ghilimele a citatelor directe și indicarea referinței într-o listă corespunzătoare la
sfărșitul lucrării,
• indicarea în text a reformulării unei idei, opinii sau teorii și corespunzător în lista de referințe a

sursei originale de la care s-a făcut preluarea,

• precizarea sursei de la care s-au preluat date experimentale, descrieri tehnice, figuri, imagini,
statistici, tabele et caetera,
• precizarea referințelor poate fi omisă dacă se folosesc informații sau teorii arhicunoscute, a căror
paternitate este unanim cunoscută și acceptată.

Data, Semnătura candidat: [anonimizat],

IV

UNIVERSITATEA DIN CRAIOVA

Facu ltatea de Au tomatică, Calculatoare și Electronică

Departamentul de Automatică și Elect ronică Aprobat la data de

……… …………

Șef de departament,
Prof. dr. ing.
Emil PETRE

PROIECT UL DE DIPLOMĂ

Numele și prenumele student: [anonimizat]/-ei: Ureche Gabriel-Terry
Enunț ul temei: Detectarea obiectelor cu ajutorul radarului ultrasonic

Datele de pornire: Controlarea diverselor accesorii Arduino cu ajutorul
servărului de NodeJS

Conținutul proiectului:
– Noțiuni introductive și concepte

– Aspecte teoretice

– Descrierea dispozitivelor folosite pentru realizarea

proiectului

– Proiectarea, realizarea și implementarea montajului

– Testarea aplicației

– Bibliografie
Material grafic obligatoriu: Scheme bloc, C apturi
Consu ltații: Periodice (2 săptămâni)
Conduc ătorul științific

(titlul, nume și prenume, semnătura): Prof. univ. dr. ing. Emil Petre
Data eliberării temei: 25.11.2016
Termenul estimat de predare a

proiectului:
03.07.2017
Data predării proiectului de către student

și semnătura acestuia:
29.06.2017

V

UNIVERSITATEA DIN CRAIOVA Facu ltatea de
Automatică, Calculatoare și Electronică
Departamentul de Au tomatică și Electronică

REFERATUL CON DUCĂTORULUI ȘTIINȚ IFIC

Numele și prenumele candidatului/-ei: Ureche Gabriel – Terry
Spec ializarea: Sisteme Automate Incorporate
Titlul proiectului: Detectarea obiectelor cu ajutorul radarului ultrasonic

Loca ția în care s-a realizat practica de
docu mentare (se bifează una sau mai
multe din opțiunile din dreapta): În facultate □
În produc ție □
În cercetare □
Altă locație: [se detaliază]

În urma ana lizei lucrării candidatului au fost constatate următoarele:

Nivelul documentării Insuficient
□ Satisfăcător
□ Bine
□ Foarte bine

Tipul proiectului Cercetare
□ Proiectare
□ Realizare
practică □ Altul
[se detaliază]

Aparatul matematic utilizat Simplu
□ Mediu

Complex □ Absent

Utilitate Contract de
cercetare □ Cercetare
internă □ Utilare
□ Altul
[se detaliază]

Redactarea lucrării Insuficient
□ Satisfăcător
□ Bine
□ Foarte bine

Partea grafică, desene Insuficientă
□ Satisfăcătoare
□ Bună
□ Foarte bună

Realizarea
practică
Contribuția autorului Insuficientă
□ Satisfăcătoare
□ Mare
□ Foarte mare

Complexitatea
temei Simplă
□ Medie
□ Mare
□ Complexă

Analiza cerințelor Insuficient
□ Satisfăcător
□ Bine
□ Foarte bine

Arhitectura Simplă
□ Medie
□ Mare
□ Complexă

Întocmirea
specificațiilor
funcționale
Insuficientă

Satisfăcătoare

Bună

Foarte bună

Implementarea Insuficientă
□ Satisfăcătoare
□ Bună
□ Foarte bună

VI

Testarea Insuficientă
□ Satisfăcătoare
□ Bună
□ Foarte bună

Func ționarea Da
□ Parțială
□ Nu

Rezultate experimentale Expe riment propriu
□ Preluare din bibliografie

Bibliografie
Cărți
Reviste
Articole Referințe
web

Comentarii
și
observații

În conc luzie, se propune:

ADMITEREA PROIECTULUI
□ RESPINGEREA PROIECTULUI

Data, Semnătura conduc ătorului Științific

IX CUPR INS

CAPI TOLUL I: NOTIUNI INTRODUCTIVE ȘI CONCEPTE ………………………….. ………………………….. ……………… 1
1.1 Obiective ………………………….. ………………………….. ………………………….. ………………………….. …… 1
CAPI TOLUL II: ASPECTE TEORETICE ………………………….. ………………………….. ………………………….. .. 2
2.1 Definiții………………………….. ………………………….. ………………………….. ………………………….. …….. 2
2.1.1 Automatizarea birourilor ………………………….. ………………………….. ………………………….. ……….. 2
2.1.2 Automatizarea clădirilor ………………………….. ………………………….. ………………………….. ……… 2
2.1.3 Automatizarea casei ………………………….. ………………………….. ………………………….. ……………… 2
2.1.4 Automatizarea în industria serverelor web ………………………….. ………………………….. ……….. 3
2.2 Tehn ologii și limbaje de programare folosite. ………………………….. ………………………….. ……………… 3
2.2.1 Prezen tarea limbajului JavaScript ………………………….. ………………………….. …………………………. 4
2.2.2 Introducerea în limbajul HTML ………………………….. ………………………….. ………………………….. …. 8
2.2.3 Introducerea in foile de stil CSS ………………………….. ………………………….. ……………………….. 10
2.2.4 Prezentarea platformei NodeJS ………………………….. ………………………….. …………………………. 12
2.2.5 Introducerea în limbajul de dezvoltarea Arduino ………………………….. ………………………….. …. 14
2.2.4 Prezentare JSON ………………………….. ………………………….. ………………………….. ………………. 18
2.3 Introducerea în tehn ologia Wi-Fi ………………………….. ………………………….. ………………………….. . 18
2.3.1 Introducerea în Wi-Fi ………………………….. ………………………….. ………………………….. …………… 18
2.3.2 Secur itatea ………………………….. ………………………….. ………………………….. …………………………. 19
2.3.3 Tehn ici simple de control al accesului. ………………………….. ………………………….. ………………. 19
2.3.4 WEP ………………………….. ………………………….. ………………………….. ………………………….. …… 20
2.3.5 WPA și WPA 2 ………………………….. ………………………….. ………………………….. ………………….. 21
2.3.6 Implementari hardware ………………………….. ………………………….. ………………………….. ………… 22
2.3.7 Limitări ………………………….. ………………………….. ………………………….. ………………………….. …. 23
2.3.8 Rata de transfer………………………….. ………………………….. ………………………….. …………………… 24
2.3.9 Arie de acoperire ………………………….. ………………………….. ………………………….. ………………… 25
2.3.10 Canale ………………………….. ………………………….. ………………………….. ………………………….. ….. 25
2.4 Transmiterea datelor Wir eless ………………………….. ………………………….. ………………………….. …… 26
2.4.1 Initiere în comunicat ie ………………………….. ………………………….. ………………………….. ………….. 26
2.4.2 Datele ………………………….. ………………………….. ………………………….. ………………………….. …… 27

IX 2.4.3 Codificarea datelor………………………….. ………………………….. ………………………….. ……………….. 27
2.4.4 Transmiterea datelor ………………………….. ………………………….. ………………………….. …………….. 27
2.4.5 Canalul de propagare ………………………….. ………………………….. ………………………….. ……………. 27
2.4.6 Recepț ionarea datelor ………………………….. ………………………….. ………………………….. …………… 28
2.4.7 Decodificarea datelor ………………………….. ………………………….. ………………………….. ……………. 28
2.4.8 Interpre tarea datelor ………………………….. ………………………….. ………………………….. ……………… 28
2.5 Principalele protocoale folosite pentru realizarea radarului ………………………….. ……………………….. 28
2.5.1 Ce este un protocol ? ………………………….. ………………………….. ………………………….. ……………….. 28
2.5.2 Introducerea în protocolul HTTP ………………………….. ………………………….. ……………………….. 31
2.5.2.1 Prezentare ………………………….. ………………………….. ………………………….. …………………….. 31
2.5.2.2 Modul de funcționare ………………………….. ………………………….. ………………………….. ……… 31
CAPI TOLUL III : DES CRIEREA DISPOZITIVELOR FOLOSITE PENTRU RADARUL
ULTRASONIC ………………………….. ………………………….. ………………………….. ………………………….. ………. 32
3.1 Prezentarea componentelor folosite în realizare radarului ultrasonic ………………………….. …………… 32
3.1.1 Ser vo motorul ………………………….. ………………………….. ………………………….. ……………………… 32
3.1.2 Senzorul ultrasonic HC -SR04 ………………………….. ………………………….. ………………………….. .. 34
3.2 Mediul de lucru ………………………….. ………………………….. ………………………….. ………………………….. 36
3.2.1 Ce este o aplicație web? ………………………….. ………………………….. ………………………….. ……….. 36
3.2.2 Cunoașterea mediului de dezvoltare ………………………….. ………………………….. ……………………. 37
3.2.3 Pregătirea mediului de dezvolta re: ………………………….. ………………………….. ………………………. 38
CAPI TOLUL IV: PROEICTAREA, REALIZAREA, ȘI IMPLEMENTAREA RADARULUI ULTRASONIC …………………. 41
4.1 Prezentarea dezvoltări platformei arduino ………………………….. ………………………….. ………………….. 41
4.1.1 Implementarea codului pentru microcontroler ………………………….. ………………………….. ………. 42
4.2 Prezen tarea struc turii aplicației web ………………………….. ………………………….. ………………………….. 45
4.3 Prezentarea implementării părții de client al aplicației web ………………………….. ………………………. 49
4.4 Prezentarea implementării părții de servăr al aplicației web ………………………….. ……………………… 53
4.4.1 Ce este un servăr? ………………………….. ………………………….. ………………………….. ………………… 53
4.4.2 Prezentarea și descrierea servărului folosit. ………………………….. ………………………….. ………….. 54
CAPI TOLUL V: TESTAREA APLICAȚIEI ………………………….. ………………………….. ………………………… 57
5.1 Amplasarea senzorului pentru detectarea obiectelor ………………………….. ………………………….. …….. 57
5.2 Exemple de utilizare ………………………….. ………………………….. ………………………….. …………………… 60

IX CONCLUZII ………………………….. ………………………….. ………………………….. ………………………….. …………. 62
BIBLIOGRAF IE ………………………….. ………………………….. ………………………….. ………………………….. ……. 63

1 CAPI TOLUL I: NOTIUNI INTRODUCTIVE ȘI CONCEPTE

Imagințivă cat de util ar fi să puteți să opriți sau să porniți aerul condiționat sau centrala termică
cu zece minunte înainte ca să ajungeți acasă. Dar să aveți un sistem de securitate care poate detecta
scurgerile de apă, incendiile sau anu mite mișcări în interiorul locuinței atunci când du mneavoastră nu
sunteți acasă. Acestea sunt lucruri care deja au fost implementate și tind sa fie folosite pe o scară din ce
în ce mai largă devenind ceva obișnuit în domeniul dezvoltării de software și al automatizării .
Automatizarea reprezintă folosirea sistemelor de control și tehnologiilor de informare pentru a
controla echipamente, procese și mașini industriale pentru a ușura viața oa menilor.În scopul
industrializării, automatizarea este un pas înainte.Mecanizarea are nevoie de operatori umani pentru a
asista mașinile în timp ce automatizarea reduce acest numar datorită senzorilor.
Nu cu mult timp în urma transmiterea datelor captate de senzorii dispozitivelor către un servăr
web, pentru ca acestea sa a jungă la utilizatori în timp real era o utopie. Astazi această ramură este în
plină dezvoltare. Un rol important în dezvoltarea acestei ramuri l -a avut implicarea celor mai importante
firme din domeniu precum ar fi Apple, Microsoft sau Google. Acestea au i nvestit milioane de dolari în
cercetare si dezvoltare pentru a se ajunge la nivelul de cunoștiințe de astăzi.

1.1 Obiective

Această lucrare își propune să ofere o incursiune în domeniul dezvoltării aplicațiilor pentru partea
web.În capitolele ce urmează sunt prezentate platformele JavaScript , NodeJS și Arduino dar și ce
presupu ne folosirea lor în dezvoltarea aplicatiilor.
Cu toate ca trăim în secolul vitezei și tehnologia a atins un nivel aproape de apogeu, timpul a devenit
una din principalele probleme pentru noi . Astfel principalele obiective urmărite în această lucrare fac
referire cunoașterea și implementarea anumitor dispozitive de care ne lovim zilnic dar nu avem idee
cum funcționează sau cum acestea pot fi implementate acasă .

2 CAPI TOLUL II: ASPECTE TEORETICE

2.1 Definiții

2.1.1 Automatizarea birourilor

Automatizarea birourilor face referință la diferitele mașinării computerizate și la softul folosit
de ac estea pentru a creea, colecta, manipula sau stoca datele necesare pentru a își îndeplini obiectivul.

2.1.2 Automatizarea clădirilor

Automatizarea clădirilor descrie funcționalitatea oferită de controlul electronic asupra unei
clădiri.Controlul este unul co mputerizat alcătuit din rețele inteligente, construite pentru a monitoriza și
controla sistemele electrice ale clădirii.
2.1.3 Automatizarea casei

Casa Inteligentă, este situată la intersecția dezvoltării rapide a tehnologiilor cum ar fi: Internetul,
comunicațiile mobile, regenerarea energiei care s-a schimbat considerabil pe parcursul ultimilor ani.
Evoluțiile se referă la toate aspectele importante ale unei case inteligente:

– Utilizarea interfețelor mobile pentru controlarea casei.

– Motivația pentru a investi în tehnologii de automatizare și control.

– Capacitățiile infrastructurii unei case.

– Dispozitivele controlate de la distanță.

În anii trecuți, casa automată se concentra pe instalarea de prize inteligente sau întrerupatoare
de lumină.Tehnologiile dezvoltate în anii trecuți, care în perspectiva zilelelor noastre sunt considerate
încete, nesecurizate, au fost inima controlului casei.

O casă inteligentă este capabilă să sune în caz de urgență la poliție sau pompieri dacă a detectat

3 activități neobișnuite.Acest lucru se realizează cu ajutorul datelor colectate de la diverșii senzori, pe
lângă prevenirea unor dezastre, aceasta mai poate realiza funcții necesare pentru îmbună tățirea vieții
casnice cum ar fi: adjustarea luminii, pornirea muzicii / televizorului în momentul în care proprietarii
intră în casă sau o părăsesc, controlarea draperiilor sau a climei casei.Un sistem au tomatizat poate
integra toate dispozitivele electrice din interiorul unei locuințe astfel încât să poată comunica între
ele.Acest sistem poa te fi conec tat la o rețea de internet iar utilizatorul poate deține controlul asupra
locuinței chiar și în momentul când acesta nu se află acasă.
2.1.4 Automatizarea în industria serverelor web

În ultimii ani automatizarea în industria de găzduire a evoluat foarte mult, iar datacenterele
software -based reprezin tă viitorul acestui domeniu de activitate. Ultimul trend în industria de hosting
este reprezentat de automatizarea datacenterelor software -based. Acest lucru înseamnă că sarcinile
actuale pot să fie realizate într -un timp destul de scurt și cu un efort min im din partea specialiștilor,
ceea ce înainte acest lucru presupunea multe ore de lucru și multă muncă.
Începu tul controlului dispozitivelor de la distantă a prins rădăcini la începutul anilor 80'.Ca de

exemplu Nikola Tesla a patentat o idee de control la distanță a mașinilor și navelor maritime în anul

1980.

Evoluția rapidă în comunicațiile mobile a introdus un salt tehnologic important în automatizarea
casei.Rețelele wireless (fără fir) cum ar fi (3G, 4G, WI-FI) și dispozitivele inteligente, cu interfață pentru
comunicare wireless(Bluetooth, ZigBee, WI-FI, Z-Wave), sunt omniprezente, și îi permit userului să
preia controlul casei.În locul schimbătoarelor de cu rent pentru pornit/oprit au apărut noi funcții, pentru
detectarea mișcării, lichidului dar și a intensității luminii.Ca și rezultat, în locul funcțiilor rudimentare,
casa inteligentă de astăzi, poate avea un impact major asupra confortului, securității și conservării
energiei în casele rezidențiale și în clădirile industriale.
2.2 Tehn ologii și limbaje de programare folosite.

Un limbaj de programare este un set bine definit de expresii și reguli (sau tehnici) valide de
formulare a instrucțiunilor pen tru un computer. Un limbaj de programare are definite un set de reguli
sintactice și semantice. El dă posibilitatea programatorului să specifice în mod exact și amănun țit
acțiunile pe care trebuie să le execute calculatorul, în ce ordine și cu ce date. Specificarea constă practic
în întocmirea/scrierea programelor necesare ("programare") [14].
Limbajul mașină este limbajul nativ al unui computer, care diferă, de la producător la
producător, acesta reprezintă un set de instrucțiuni primitive cu care calculatorul vine
predefinite.Aceste instrucțiuni sunt prezente sub formă de cod binary
Limbajul de asamblare este un proces mai complex care necesită timp iar programele

4 scrie în ace st limbaj sunt foarte greu de modificat și de citit.Acesta a fost creat ca o alternativa
la limbajul masină.Fo losește cuvinte descriptive scurte știute ca mnemonice, pentru a reprezenta
fiecare instrucțiune a limbajului mașină.
Computerul nu poate executa direct instrucțiunile în limbaj de asamblare.Un alt program
numit assambler este folosit pentru a translata limbajul de asamblare în codul mașină așs cum
este reprezentat
în figura de mai jos.

Fig 2.2a Conversia din limbajul de asamblare în cod ul mașină [1]

Limbajul de nivel înalt a apărut în anii 1950, acesta este independent de platforma pe
care este scris ceea ce înseamnă că poate fi rulat pe diferite masini.Este asemănător limbii
engleze fiind ușor de scris și de înteles.Instrucțiunile limbajului de nivel înalt sunt numite
declarații [1].

2.2.1 Prezen tarea limbajului JavaScript

Pe parcursul realizării proiectului de licență se face referire la mai multe limbaje de
programare , cu ajutorul căruia s-a realizat aplicatia.
JavaScript este un limbaj de programare orientat obiect bazat pe conceptul prototipurilor. Limbajul este
binecunoscut pentru folosirea în construirea site -urilor web, dar de asemenea este folosit pentru a ccesul la
obiecte încastrate (embedded objects) în alte aplicații. La începuturi a fost dezvoltat de către Brendan
Eich de la Netscape Communications Corporation sub numele de Mocha, apoi LiveScript, și denumit în
final JavaScript.
În ciuda numelui și a un or oarecare similarități în sintaxă, între JavaScript și limbajul Java nu
există nici o legătură. Ca și Java, JavaScript are o sintaxă ca și C -ului, dar are mai multe în comun cu
limbajul de autoprogramare Self decât cu Java.
Până la începuturile lui 2005, ultima versiune existentă a fost JavaScript 1.5, care corespunde cu Ediția a
3-a ECMA -262, ECMAScript, în alți termeni, o ediție standardizată de JavaScript. [16]

5 Versiunile Mozilla începând cu 1.8 Beta 1 de asemenea au avut suport pentru E4X, care este o
extensie a limbajului care are de -a face cu XML, definit în standardul ECMA -357. Versiunea curentă de
Mozilla, 1.8.1 (pe care sunt construite Firefox și Thunderbird versiunile 2.0) suportă JavaScript versiunea
1.7.
Schimbarea numelui din LiveScript în Jav aScript s -a făcut cam în același timp când Netscape
incorpora suport pentru tehnologia Java în browserul web Netscape Navigator.
Microsoft a implementat limbajul JavaScript sub numele de JScript, cu o serie de modificări și extensii
față de implementarea N etscape. Pe platforma Windows, JScript este unul din limbajele executabile de
către Windows Script, și deci poate fi folosit pentru scriptarea aplicațiilor ce suportă Windows Script, de
ex. Internet Explorer, sau chiar sistemul de operare Windows.Asociația ECMA a standardizat limbajul
JavaScript/JScript sub numele ECMAScript (standardul ECMA -262). [16]
Cea mai des întâlnită utilizare a JavaScript este în scriptarea paginilor web. Programatorii web
pot îngloba în paginile HTML script -uri pentru diverse activi tăți cum ar fi verificarea datelor introduse de
utilizatori, sau crearea de meniuri și alte efecte animate.
Browserele rețin în memorie o reprezentare a unei pagini web sub forma unui arbore de obiecte, și pun la
dispoziție aceste obiecte script -urilor Jav aScript, care le pot citi și manipula. Arborele de obiecte poartă
numele de Document Object Model sau DOM.
Există un standard W3C pentru DOM -ul pe care trebuie să îl pună la dispoziție un browser, ceea
ce oferă premiza scrierii de script -uri portabile, ca re să funcționeze pe toate browserele. În practică însă,
standardul W3C pentru DOM este incomplet implementat. Deși tendința browserelor este de a se alinia
standardului W3C, unele din acestea încă prezintă incompatibilități majore, cum este cazul Internet
Explorer.
Limbajele compilate implică parcurgerea fazei de compilare, care traduce codul în biți și byți ce
pot fi citiți de computer. Limbajele scriptice nu necesită compilare. Ele se bazează pe medii runtime
speciale și pe programe de interpretare care execută codul fără compilare, prin diverse metode.
După cum am menționat mai sus, ca limbaj scriptic, JavaScript se bazează pe un mediu gazdă cu
un interpret de JS. Cel mai des utilizat este browserul. Alte medii includ Adobe Acrobat, Adobe
Photoshop, m edii server -side, baze de date și computere integrate. În anul 2009, o nouă versiune a fost
lansată, ECMAScript 5, cu imbunătătiri semnificative ale limbajului, dar cu câteva funcții importante
lipsă. ECMAScript 6 (ES6) a introdus în sfârșit caracteristic i pe care dezvoltatorii le așteptau de mulți
ani. De fapt, denumirea oficială este ECMAScript 2015, dar se pare că în cadrul comunității, ES6 este
încă versiunea pe care cei mai mulți o recunosc. [6]

6 Mai jos vom prezența câteva caracteristici introdus ă în ECMAScript 6:
Funcțiile Arrow (săgeată) sunt o nouă modalitate mai scurtă de a scrie funcții anonime. Dacă ești un
programator care preferă programarea funcțională, cu siguranță îți vor plăcea. Iată un exemplu scurt:

Module

O adăugi re mult așteptată la JavaScript a fost abilitatea de a crea și încărca module. Cu complexitatea în
creștere a aplicațiilor web, era evident că această caracteristică trebuia să existe , de aceea, comunitatea
JavaScript și -a asumat sarcina de a crea câteva s oluții pentru aceasta. Cele mai populare sunt standardul
CommonJS, utilizat de Node JS și Browserify, și Asynchronous Module Definition (AMD), utilizat de
RequireJS.
Soluția ES6 pentru module încorporează caracteristici de la ambele sisteme de module popu lare,
dar adaugă și mai multă funcționalitate utilă.
O schimbare importantă care a fost făcută la modulele ES6 este că ele au o structură statică,
adică importurile vor fi analizate static în timpul compilării. Aceasta are un avantaj major, deoarece
instrumentele de linting vor putea analiza mult mai bine codul nostru.
Sintaxa modulelor ES6 ne oferă multiple moduri de a exporta valori: exporturi denumite (putem
avea mai multe într -un modul) și exporturi default (numai unul pe fișier). Partea frumoasă este că putem
avea ambele în același modul. Exporturile denumite arată așa:
// versiunea es6
[1, 2, 3].map((item, index) => {
return item * 2;
});
// versiunea es5
[1, 2, 3].map(function(item, index) {
return item * 2;
});

7

Una din cele mai importante dacă nu chiar ceea mai importantă caracteristică introdusă este reprezentată
de “Promisiuni”.

Promises sunt obiecte care se pot afla într -una din următoarele trei etape:
• în așteptare: așteptând ca operația să se finalizeze. Aceasta este etapa inițială atunci când creăm
un obiect Promise.
• îndeplinite: operația s -a finalizat cu succes.
• respinse: operația a eșuat.

Tot in acelasi timp s -a mai introdus si notiunea de clase:
Există destul de mulți dezvoltatori care se opun introducerii claselor, deoarece javascript are deja o
moștenire bazata pe prototip care poate de asemenea să ofere o moștenire clasică.
Clasele în ES6 sunt în mare parte synta ctic sugar, deoarece același tip de funcționalitate ar fi putut fi
creată utilizând ES5, dar introducerea lor va permite viitoarelor ediții ale ECMAScript să le adauge mai
multă funcționalitate. Există deja câteva intenții de a extinde clasele în ES7 prin adăugarea variabilelor
private și a altor caracteristici. // exemplu_modul.js
const helloWorld = () => {
console.log('Hello world');
}
const MY_CONSTANT = 10;
let example= 'test';
export {
helloWorld,
MY_CONSTANT,
example
};

8

2.2.2 Introducerea în limbajul HTML

HTML sau Hypertext Markup Language înspre deosebire de JavaScript este un limbaj de
marcare, acesta este folosit pentru crearea pagînilor web pent ru afișarea lor în browser -ul
calculatorului sau telefonului mobil. Aceste are că scot mai degrabă prezentarea informațiilor,
paragrafelor, fonturilor sau a tabelelor decât descrierea semanticii documentului .
HTML este o formă de marcare orientată către pr ezentarea documentelor text pe o
singură pagină, utilizând un software de redare specializat, numit agent utilizator HTML, cel mai
bun exemplu de astfel de software fiind browserul web. HTML furnizează mijloacele prin care
conținutul unui document poate fi adnotat cu diverse tipuri de metadate și indicații de redare.
Indicațiile de redare pot varia de la decorațiuni minore ale textului, cum ar fi specificarea faptului
că un anumit cuvânt trebuie subliniat sau că o imagine trebuie introdusă, pană la scriptur i
sofisticate, hărti de imagini și formulare. Metadatele pot include informații despre titlul și autorul
documentului, informații structurale despre cum este impărtit documentul în diferite segmente,
paragrafe, liste, titluri etc. și informații cruciale ca re permit că documentul să poată fi legat de
alte documente pentru a formă astfel hiperlink -uri (sau web -ul). HTML este un format text
proiectat pentru a putea fi citit și editat de oameni utilizând un editor de text simplu. Totuși
scrierea și modificarea pagînilor în acest fel solicită cunoștințe solide de HTML și este
consumatoare de timp. Editoarele grafice (de tip WYSIWYG) cum ar fi Macromedia
Dreamweaver, Adobe GoLive sau Microsoft FrontPage permit că paginile web să fie tratate
asemănător cu documete le Word, dar cu observația că aceste programe generează un cod HTML
care este de multe ori de proastă calitate. [2]
HTML se poate genera direct utilizând tehnologii de codare din partea serverului cum ar
fi PHP, JSP sau ASP. Multe aplicații c a sistemele de gestionare a conținutului, wiki -uri și class Masina {
constructor(marca, culoare) {
this.marca = marca;
this.culoare = culoare;
}
obtineCuloare() {
return thi s.culoare;
}
}

9 forumuri web generează pagini HTML. [2]
HTML este de asemenea utilizat în e -mail. Majoritatea aplicațiilor de e -mail folosesc un
editor HTML încorporat pentru compunerea e -mail-urilor și un motor de prezentare a e-mail-
urilor de acest tip. Folosirea e -mail-urilor HTML este un subiect controversat și multe liste de
mail le blochează intenționat. [2]
Fișierele HTML sunt de obicei împărțite, din motive de organizare, în două secțiuni:
antetul (sau headerul) care con ține informația introductivă de formatare a paginii și corpul.
Utilizați marcajele pereche <head></head> și <body></body> pentru a delimita fiecare secțiune.
Exemplu de pagina Html:

<html>
<head>
<title> Stiluri pentru blocuri de text </title>
</head>
<body>
<b>Text scris cu caractere ingrosate. </b>
<br> <big> Text cu caractere marite cu o unitate <big> mai mare <big> si mai
mare <big> si mai mare. </big></big></big>
</big><br>
<small> Textul este scris cu caractere micsorate cu o unitate <small> mai
mic. </small></small><br>
<i>Text scris cu caractere italice. </i>
<br> In aceasta linie <sup> sus</sup> este s uperscript iar <sub> jos</sub> este
subscirpt. <br>
<strike> Aceasta linie este in intregime sectionata de o linie
orizontala. </strike> <br>
In aceasta linie urmatorul cuvant este <u>subliniat </u>, iar
cuvantul <s>strike </s> sectoinat.
</body>
</html>

10 2.2.3 Introducerea in foile de stil CSS

CSS sau Cascading S tyle Sheets este un limbaj denumit “limbaj de stil”(style language) care
defineste " layout -ul" pentru documentele HTML. CSS acopera culori, font -uri, margini (borders), linii,
inaltime, latime, imagini de fundal, pozitii avansate si multe alte optiuni. [2]
Un mare avantaj prezentat de CSS este acela c ă este suportat de toate browserele actuale. In
perioada de inceput a web -ului, HTML era folosit numai pentru structura textului. Textul se putea
marca cu taguri precum <hl> si <p> pentru a marca titlul sau un paragraf. [2]
Odata cu cresterea popularitatii web-ului designeri au inceput sa caute diferite posibilitati de a
adauga layout documentelor online. Pentru a raspunde acestor cerinte, producatorii de browsere (in acea
vreme Microsoft si Netscape) au inventat noi taguri HTML precum <font> care difera fa ta de tagurile
originale HTML prin faptul ca definesc layoutul si nu structura.
Acest lucru a dus si la o situatie unde tagurile originale de structura ca <table> sa fie folosite
necorespunzator pe pagini de layout (to layout pages). Multe taguri noi de la yout brecum <blink> erau
recunoscute numai de unele browsere. O formula comuna ce aparea pe siteuri era "Aveti nevoie de
browserul X pentru a vedea aceasta pagina".[2]
CSS a fost inventat pentru a remedia aceast situatie, furnizandu -le designerilor facilit ati
sofisticate pentru editarea layoutului, suportate de toate browserele

Exempl e:

Setarea culorii de fundal a unei pagini :

Folosind HTML

Folosind CSS

<body bgcolor="#FF0000">

body {background -color: #FF0000;}

11 Modelul fundamental CSS

Fig 2.2.3 a Modelul fundamental CSS

12 2.2.4 Prezentarea platformei NodeJS

Figura 2.2.4 a Simbol NodeJS

Node.js este o platformă open -source, cross -platform pentru a executa codul JavaScript pe partea
de servăr. Node.js permite JavaScript folosirea “scriptingului” pe par tea de server pentru a produce un
conținut dinamic al paginii web înainte ca aceasta sa fie trimisă browserului. C onstruit pe motorul V8
al Chro me, se bazează pe un model event -driven și non -blocking I/O, folosind callback -uri. Este
construită pe runtime -ul JavaScript de la Chrome, favorizează modularitatea, iar aplicațiile sale single –
thread sunt scrise în JavaScript.
Pentru început, programarea web cu aceasta e complet diferită față de cum merg lucrurile în
combinația Ap ache (sau nginx, etc) + PHP ( Python, Ruby, etc), am realizat acest lucru dupa câteva ore
bune de lucru . Serverul node trebuie inițializat cu un fișier care conține toate instrucțiunile, față de
Apache, pe care doar îl pornești .
A fost creat de Ryan Dahl și de alți programatorii în 2009 p e când lucrau la compania Joyent. În
2011 a fost lansat NPM (Node Package Manager) cu scopul de a facilita instalarea modulelor JavaScript
create de către comunitatea Nodejs. Pe măsură ce comunitatea Nodejs a devenit tot mai numeroasă au
apărut diferite co nflicte legate de modul de gestionare al viitoarelor versiuni ale Nodejs.[9]
Utilizatorii doreau ca viitoarele versiuni să fie gestionate de către comunitatea Nodejs și nu de
vre-o anumită corporație. S -a dorit să se poată implementa în limbajul Nodejs (Ja vaScript server side)
noile caracteristici și noile API -uri într -un mod cât mai ușor și simplu de înțeles. În Februarie 2015 a
fost anunțat crearea unei fundati neutre Nodejs iar aceasta a prins viață patru luni mai târziu în luna
Iunie. Această fundație n eutră Nodejs are ca membri componenți mai multe companii mari. Companii
precum IBM, Microsoft, Paypal, Groupon și Joyent fac parte din această fundație neutră.
Nodejs este setat să ruleze asincron și va putea rulă sincron numai în situația în care script -urile
noastre vor dori asta. Nodejs funcționează asincron cu scopul de a oferi un timp de răspuns cât mai
rapid indiferent de câte evenimente sunt declanșate. Este foarte important să avem grijă că întreg

13 script -ul nostru să ruleze asincron și să nu rulăm o funcție sau o metodă în mod sincron decât în
situația în care nu avem alternativă, dar și în acest caz trebuie să știm exact ce facem .[9]
Exemplu: realizare unui server nodejs simplu cu ajutorul Express:

Reprezentarea ciclului de viață al NodeJS :

Figura 2.2.4.2 Ciclul de via ță al NodeJS const express = require('express')
const app = express()

app.get('/exempluRuta', function (req, res) {
res.send(“Succes!”)
})

app.listen(3000, function () {
console.log(“Acesta aplicatie asculta pe portul 3000”);
})

14 2.2.5 Introducerea în limbajul de dezvoltarea Arduino

Figura 2.2.3 M icrocontrol er Arduino Uno

Arduino e ste o platformă de dezvoltare open-source, ace asta se bazează atât pe partea de
software cât și pe ceea de hardware.Este construită în jurul unui procesor de semnal și este capabilă de
a prelua date din mediul înconjurător printr-o serie de senzori și de a efectua acțiuni asupra mediului cu
ajutorul servomotoarelor, luminilor și a altor dispozitive disponibile.Limbajul folosit este unu
asemănător cunoscutului limbaj de programare C++.Es te “case sensitive” ceea ce presupu ne
interpretarea diferită caracterul “a” față de caracterul “A” [8].
Această placă se conectează la computer cu ajutorul unui cablu usb, placa este alimentată dar în

același timp se poate efectua și transferul de date către computer și dinspre acesta către placă [8].

15 Se ba zează pe un microcontroler ATmega328, având disponibil paisprezece pini care pot fi
setați ca fiind de intrare sau de ieșire, folosind funcțiile pinMo de(), digitalWrite(),digitalRead(). Pinii
trei, cinci, șase, zece și unsprezece pot fi setați ca ieșire PWM.Pe lângă aceștia mai sunt disponibile șase
intrări analogice și un buton pen tru resetare generală [13].
Intrările analogice sunt reprezentate prin pinii A0, A1, A2, A3, A4, A5 fiecare în parte având o rezolutie
de 10 biți [13].
Pinii RX (0) și TX (0) sunt folosiți pentru a primi și transmite date serial TTL.

Această placă poate fi alimentată de la o sursă externă cu tensiunea cuprinsă în intervalul 6-20V [3].
Structura de bază a programului este alcătuită din două funcții principale, setup() și loop().Instrucțiunile
plasate în interiorul funcției setup() sunt executate o singură dată la momentul execuției programului în
timp ce instrucțiunile plasate în interiorul funcției loop() sunt executate în mod repetat [13].

void setup() {

//inițializarea variabilelor

}

void loop() {

//rularea repetată a instrucțiunilor

}

Prezentarea comenziilor de bază:

• pinMode(pin, mod)

Această comandă adesea este folosită în interiorul funcției setup(), setează modul de utilizare al
pinilor digitali, de intrare sau ieșire.Un pin este setat ca fiind de intrare atunci când cu ajutorul său se
trimit informații catre un dispozitiv cum ar fi un servo-motor sau un led.Pentru colectarea de informații
de la dispozitive un p in se setează pe modul de ieșire [3].

void setup() {

pinMode(4, OUTPUT) //setarea pinul 4 pe modul de ieșire

pinMode(5, INPUT) //setarea pinul 5 pe modul de intrare

}

16 • digitalWrite(pin, valoare)

Această instrucțiune este folosită pentru a seta tensiunea pe un anumit pin, 5V sau 0V.Comanda

are două moduri HIGH și LOW, modul HIGH reprezintă 5V iar modul LOW 0V.Este folosită pentru a

controla dispozitivele externe cum ar fi ledul sau servomotorul [3].

void setup() {

pinMode(4, HIGH) // setează 5V pe pinul 4
pinMode(5, LOW) // setează 0V pe pinul 5
}

• digitalRead(pin)

valori: Această instrucțiune este folosită pentru a citii valoarea unui pin digital.Poate returna două

HIGH sau LOW [3].

• analogWrite(pin, valoare)

Această instrucțiune este folosită pentru a seta tensiunea pe un pin analog folosind PWM.P oate
fi folosită pentru a seta intensitatea unui ecran sau viteza unui servomotor.Poate lua valori cuprinse în
intervalul 0 – 255 [3].

void setup() {

analogWrite(10, 4) // seteaz semnalul PWM-ului pe pinul 4

}

• analogRead(pin)

Această instrucțiune e ste folosită pentru a citii valoarea unui pin analog cu rezolutia de 10
biți.Rezultatul obținut este în intervalul 0 – 1023.Înspre deosebire de pinii digital, aceștia nu trebuie să
fie prima dată declarați ca pini de intrare sau de ieșire [3].

• delay

Instrucțiunea delay este folosită pentru a introduce o pauză în program pentru un numar

specificat de milisecund e.Numarul de milisecunde este cuprins între 0 și 4.294. 967.295 [3].

17 void setup() {

delay(1000) // asteaptă o secundă

}

Serial.begin

Instrucțiunea deschide portul serial și setează rata de transfer pentru transmisia datelor.Valoarea

standard pentru comunicarea cu co mputerul este de 9600 dar și alte valori sunt permise [3].

void setup() {

Serial.begin(9600) //deschide po rtul serial și setează rata de transfer la valoarea de 9600

}

• if
Este o instrucțiune de bază care permite programului să ia decizii în funcție de valoarea returnată
de con diție, adevărat sau fals.

void loop() {

if(condiție) {

// ramura de ade vărat

} else {

// ramura de fals

}

}

• for

Este o instrucțiune care permite exec uția repetată a unei instrucțiuni în funcție de valoarea

unui contor.

void loop() {

// for( inițializare contor ; setarea limitei contorului ; incrementarea contorului)

for(int i = 0 ; i < 10 ; i++)

}

18 2.2.4 Prezent are JSON

Acronimul JSON provenit din engleză pentru JavaScript Object Notation, este folosit pentru
interschimbarea de date între limbaje de p rogramare diferite.Este reprezentat ca și format text, ușor de
înțeles pentru oameni.Cel mai adesea este folosit pentru a reprezenta obiecte și structuri de date pentru
serializarea datelor în rețea [5].

Reprezentarea datelor în format JSON [5]:
• obiecte
{ “key1”: “value1”, “key2” : “value2”}
• vector
{ “first”, “second”, “third” }
• numere
{ 42 }
• Siruri
“This is a string”
• Tip bo olean
true / false
• null
null

2.3 Introducerea în tehn ologia Wi-Fi
2.3.1 Introducerea în Wi-Fi

Wi-Fi este un nume dat de dezvoltatori pentru tehnologiile create în baza unor standarde de
comunicație din familia IEEE802.11, fiind utilizate pentru realizarea unor rețele locale, în vederea
comunicației LAN – fara fir mai precis având denumirea de (wireless sau WL AN). Aceste
tehnologii au viteze echivalente cu rețelele care au fir, de tip Ethernet. Hardware-ul este furnizat de
toate sistemele de operare de pe calculatoarele personale (PC) existente, telefoane mobile sau rutere.
Acest standard (IEEE 802.11) definește câteva protocoa le de comunicație de tipul modelului
TCP/IP, mai precis la niveluri fizice de date de legatură ale modelului OSI [12].
Rezultă ca tot ce implementează tehnologia IEEE 802.11 trebuie sa accepte pachete de date
de la alte protocoale din rețea (IP) și sa le transmită, în același timp evitând co liziuni cu alte stații
care transmit sau doresc sa transmită.
Standardul IEEE a apărut în anii 1990, având o prima versiune în 1997. Principalele versiuni
folosite de implementatori sunt cele create între 1999 și 2001, 802.11a/b/g. O versiune mai nouă
dar mai puțin răspândită în echipamentele create de furnizori, este 802.1 1n, versiune la care se
lucrează din 2004.
802.11 se găseste ca fiind dintr-o familie de standarde de comunicație în rețele locale, creată
de IEEE. Din acesta mai fac parte și alte standarde, fiind folosite în alt fel de rețele, cum ar fi 802.3,

19 în Ethernet. Cum acesta era cel mai folosit standard în anii 1990, noul standard a trebuit să fie

compatibil cu acesta, din punct de vedere al transmiterii datelor [12].

IEEE și Wi-Fi Alliance recomandă pentru o mai bună securitate, utilizarea standardului de
securitate 802.11i și schema WPA2. Rețeaua 802. 11 și WEP sunt considerate nesigure, deoarece se
folosesc de un algoritm de criptare nesigur, RC4 [12].Limitarile acestui standard sunt din motivele
nefolosirii unui fir, aceasta face ca retelele IEEE 802.11 să fie mai lente decat cele cu fir, exemplu fiind
Ethernet, dar aceasta limitare provine și din folosirea unei benzi de frecventă împărtită în 12 canale care
se suprapun 2 câte 2, la o frecvență de 2.4G Hz [12].

Alte limitări privind consumul de energie, dar și reglementările date de puterea
electromagnetică emisă, restrâng ariile de acoperire la câteva sute de metri, dat fiind faptul că mobilitatea
în acest cadru este foarte restransă. Privind în ansamblu, în ziua de azi sunt aparute tehnologii wireless
bazate pe standardul 802.11, între mai multe puncte aflate la distanțe de sute de kilometri.
2.3.2 Secur itatea

Fată de Ethernet, acest mediu adu ce probleme în transmisia de date securizată. La cone xiunea
Ethernet accesul poate restricționat prin asigurarea zonelor prin care acesta trece, la undele radio acesta
este mult mai greu de restricționat.
Exista mecanisme de bruiaj, care generează un zgomot electromagnetic ce aco peră frecvențele
folosite de rețelele 802.1 1, dar acestea nu pot funcționa perfect, fără a afecta comunicațiile legitime sau
fără a lăsa breșe prin care se poa te obtine acces în rețea [12].
La nivel fizic securitatea este greu de asigurat, iar pentru a obtine un nivel acceptabil de
securitate, este obligatoriu să se realizeze criptarea datelor dar și controlul la nivele sup erioare de cel
fizic [12].
2.3.3 Tehn ici simple de control al accesului.

Acesul la aceste tipuri de rețele poate fi controlat și prin tehnici simple, avand un succes limitat,
dar eficient pentru indepărtarea unor intruziuni ocazionale.
Această tehnică presupune o configurare a punctului de acces în care transmiterea SSID-ului sa
fie blocată.
SSID-ul (Service Set IDentifier) este reprezentat de un șir de caractere transmis periodic de un
punct de acces, pentru a se face cunoscută prezența stațiilor ce vor să între în rețea. Oprirea ac estei
transmiteri, realizează o funcție de ascundere a rețelei în vederea eradicării pericolului de a fi atacată de
un potential hacker, permițând în acelasi timp celorlalte stații ce cunosc SSID-ul să se conecteze la rețea.
Aceasta nu este o soluție în vedera blocării unor atacatori riguroși, pentru ca între aceste cadre transmise
în rețea din puctul de acces în stațiile de conectare se pot oferii și informații necesare pentru accesarea
rețelei. [12]

20

Ca și în folosirea Ethernet-ului, dispozitivele care accesează rețeaua sunt identificate în mod
unic de o adresă existentă fizic, numită și adresa MAC. O alta tehnică simplă, dar în același mod
ineficiența, este aplicarea filtrelor pe adresele de tip MAC [12].
Printr-o altă tehnică de ascultare a traficului, un hacker poate obține adresa MAC a unei stații
de rețea, ca mai apoi să o poată falsifica și să obțină accesul, adău gânt a dresa MAC pentru a fi
recunoscut ca stație legitimă. Ca și în folosirea Ethernet-ului, dispozitivele care accesează rețeaua sunt
identificate în mod unic de o adresă existentă fizic, numită și adresă MA C. Un punct de acces în rețea
poate fi setat să nu poată permite accesul în rețea decât a stațiilor, care oferă o adresă MAC validă, dintr-
o listă de adrese MAC existente în acel punct de acces [12].
2.3.4 WEP

Fig 2.3.4 Pașii autentificării WEP

Pașii autentificării WEP [12]:

1. Stația (STA) trimite o cerere de autentificare.

2. Pun ctul de acces (AP) generează un non ce și îl trimite stației.

3. Stația criptează nonce-ul cu ch eia secretă comună și îl trimite înapoi punctului de acces.

4. Pun ctul de acces compară datele criptate primite cu cele așteptate și apoi trimite înapoi cadrul de

autentificare cu rezultatul.

O primă tehnica de criptare, la un nivel de legatură de date, este WEP (Wired Equi valent
Privacy), fiind realizată în vederea obținerii unei securitații a legaturii datelor echivalentă cu cele ale
rețelelor Ethernet. Această tehnica a fost spartă (au fost găsite vulnerabilitați) în anul 2001 fiind folosită

21 înca din anul 1997 și a fost declarată nesigură odata cu publicarea în anul 2005 a standardului IEEE

802.11 i, un standard de securitate [12].

În variantele pe 64 de biți (vector de initializare de 24 și cheie de 40 de biți) sau de 128 de biți
(vector de initializare de 24 și cheie de 104 biți) WEP folosea algoritmul RC4, con trolul integrității
datelor se realiza printr-o sumă de con trol CRC [12].
În modul cu cheie partajată (cel mai sigur), authentificarea stațiilor se făcea printr-un mecanism
numit ”challenge”, dupa ce o stație anunța ca se va autentifica, punctul de acces alegea un text și il
trimitea stației. Aceea stație cripta textul primit și îl trimitea înapoi aceluiași punct de acces. La randul
sau punctul de acces decripta mesajul și îl compara cu cel trimis în primă fază, permițand sau respingând
accesul. Dupa ce accesul era permis, transmisia se făcea criptat cu cheia rețelei comparând cu cel trimis
inițial, permițând sau respingând accesul în consecință. După permiterea accesului, transmisia cadrelor
se face criptat cu cheia rețelei [12].
2.3.5 WPA și WPA 2

Fig 2.3.5 Relațiile între WEP, W AP, WP A2

Ca un raspuns la distrugerea securitații WEP, Wi-Fi Alliance a creat în anul 2003 WPA (Wi-Fi
Protected Acces), în care s-a urmarit rezolvarea problemelor rețelei WEP. În noua rețea WPA, s-a
păstrat algoritmul de criptare RC4, dar s-a adău gat și o altă tehnică de schimbare a cheii de criptare în
cursul unei sesiuni, numită TKIP (Temporary Key Integrity Protocol). S-a înlocuit și suma de control
CRC-32 din WEP cu un algoritm nu mit Michael, deoarece recalcularea sumei de control nu necesită
cunoa sterea cheii de criptare [12].
În 2004 s-a elaborat pe baza specificației WPA și standardul IEEE 802.1 1i, standard ce aduce o
noua politică de criptare cunoscută ca WPA2. În WPA2, un nou algoritm mai puternic AES îi ia locul
algoritmului de criptare RC4, iar suma de control este calculată cu CCMP, un cod mult mai sigur decât
CRC și decât algoritmul Michael [12].
WPA și WPA2 funcționează în două moduri distincte. Cel mai simplu dintre (WPA) ele, este
folosit în general la rețele casnice, personale ale unor firme mici și presupu ne configurarea stațiilor cu
ajutorul unei parole de acces iar din această parolă se calculează cheile de criptare cu ajutorul (Password-
Based Key Derivation Function) sau PBKDF. În cealaltă specificatie, WPA2 se autentifică cu stațiile de
lucru cu ajutorul unui server RAD IUS.

22

2.3.6 Implementari hardware

Fig 2.3.6a Interfață Wi-Fi PCI

Pentru realizarea unei rețele 801.11 este nevoie în general de o interfată de rețea ca în figura

2.3.6a. Acestea se fabrică într-o diversitate mai mare pentru a acoperi aria tuturor PC-urilor dar și a altor
dispozitive. 802.11 PCI și miniPCI (pentru laptop) dar și dispozitivelor PCMCIA sau USB. Multe dintre
laptop-uri au interfața de rețea integrată, la fel ca multe PDA-uri sau smartphone-uri. În urma folosiri
acestor dispozitive se va realiza o conexiune peer-to-peer pentru controlul accesului la mediu, având o
funcție de coordonare distribuită [12].

Fig 2.3.6b Ruter IEEE 802.11

Un ruter IEEE 802.11 cu trei antene pentru utilizatori casnici

Există de asemenea și puncte de acces wireless, dispozitive care fac conexiune între o rețea
cabaltă și una fara fir, controlând prin funcția de coordonare pun ctuală, ac cesul la mediu. M ai multe
punc te de acc es pot fi folosite pentru a acoperi o suprafață mai mare. În general pentru stabilirea unei
cone xiuni wireless între doua rețele cablate, se folosesc punți. Acesta este un lucru practic, în cazul în

23 care nu se poate îtinde un cablu între cele doua rețele din varii motive. Exemplu: două clădiri aflate în
părți diferite ale unei stații.
O mare parte din producătorii de echipamente comercializează dispozitivele care combină un
switch Ethernet cu un router iar uneori chiar și cu un modem ADSL într-un sistem ce conferă soluții
accesibile pentru administrarea și crearea unei rețele locale casnice. Acestea fiind furnizate împreuna cu
un firmware configurabil ce poate realiza firewalling, NAT sau poate functiona ca server DHC P și DNS.
2.3.7 Limitări

Rețelele Wi-Fi oferă rate de transfer mari pe distanțe mici, fiind una dintre cele mai rapide rețele
fără fir, dar și cea care oferă cea mai mică mobilitate—Bluetooth este și ea o tehnologie fără fir gândită
pentru acces pe distanțe și mai mici, de ordinul a câțiva metri, dar care oferă aceleași rate de transfer,
avantajul ei constând într-o mai mare econo mie de energie. IEEE a standardizat tehnologia WiMax
pentru a mări aria de a coperire, pentru rețele metropolitane wireless (IEEE 802.1 6). Deoarece
echipamentele pentru WiMax sunt însă costisitoare, Intel a dezvoltat o tehnologie de conexiune wireless
bazată pe standardele 802.11 cu dirijarea undelor, care poate asigura legătura între două puncte aflate la
distanțe de su te de kilometri. Un cost al acestor echipamente fiind mult mai mic decat al punctelor de
acces 802. 16 (WiMax) [12].

Fig 2.3.7 Pr ezentarea unei rețele cu routerâ

24

Dezvantajele și limitările ale tehnologiei wireless LAN sunt:

• Evoluția tehnologică – Tehno logia wireless LAN evoluează în mod continu. Tehnologia

wireless înca nu oferă viteză și fiabilitate retelelor cu fir.

• Interferențe – Tehnologia wireless este susceptibilă la interferențe electromagnetice cauzate
de majoritatea ec hipamentelor electronice. Echipamente precum: telefoane fără fir, cuptoare
cu microunde, televizoare sau alte echipamente wireless.
• Secur itatea datelor – Tehnologia wireless LAN are drept scop principal să asigure accesul la
date, nu s ecurizarea acestora. M ai mult, tehnologia wireless poate deveni o zonă de intrare
nesecurizată catre restul rețelei locale.
2.3.8 Rata de transfer

Fig 2.3.8 Ariile diferitelor tehno logii fără fir

Wi-Fi oferă rate de transfer mari pe distanțe mici (rețele locale). Pentru rețelele metropolitane
se folosește tehnologia WiMAX. GSM/ GPRS sunt rețele cu arie mare de aco perire, dar care oferă rate
mici de transfer ajungându-se la câțiva kilobiți pe secundă.
La început (anii 1997-1999) ratele de transfer ale standardului 802.11 au fost de ordinul megabiților pe
secundă, în aceași perioadă rețelele Ethernet, cablate (cu fir), ofereau rate de ordinul zecilor și sutelor
de megabiți pe secunda. În anul 2012 apar pe scară largă echipamente Ethernet Gigabit, aparând și
echipamente ce ajungeau să transfere date prin cablu la 10 Gigabiți pe secund a, în timp ce rețelele
802.11g a tingeau rate maxime de 56 Megabiți pe secundă, iar noul standard 801 .11n propune sa atingă

450 M egabiți/s [12].

Din punctul de vedere al ratei de transfer, din cauza caracteristicilor adesea ne prevăzute ale
mediului, cum ar fi zgomote electromagnetice provenite din diverse surse (alte dispozitive ce folosesc
aceeași bandă, exemplu: Bluetooth sau cuptoarele cu micround e) sau fenomene atmosferice (fenomene
electrice, electrostatice și ceață), rețelele Wi-Fi rămân în urma celor cablate. Rețelele 802.11 sunt cele

25

mai rapide rețele fără fir, singurele care se pot compara la nivelul ratei de transfer cu rețelele locale

cablate.
2.3.9 Arie de acoperire

O limitare importantă a rețelelor Wi-Fi este constituită de aria de acop erire. Aceasta depinde
mult de capabilitățile antenelor a altor dispozitive și de topografia particulară a zonei care urmarește a
fi acoperită. Plantele absorb radiațiile electromagnetice, a stfel instalarea unei rețele într-o zonă cu
vegetație (împadu rită, cum ar fi un pa rc, pădure) limitează aria de acoperire a ac esteia. Pereții de beton
reflectă foarte pu ternic undele radio, instalarea unei rețele într-o clădire adu ce astfel la limitarea
numărului de camere ce poate fi acoperit de un singur dispozitiv. În interiorul cladirilor rezidențiale, un
punct de acces cu o antenă de dimensiuni mici și cu un preț accesibil, poate acoperi o rază de aproximativ
32 m, iar în exterior, același punct de acces po ate ajunge și la 95 m. Aria de acoperire poate fi, mai
restrânsă în cazul folosirii unor benzii de 5 GHz în locul celeor de 2,4 GHz (mai zgomotoase, dar însă
să poată acoperi o arie mai mare). Tra nsmisia la cea mai mare distanță cu ajutorul unor dispozitive Wi-
Fi a fost realizată, folosind antene puternice și semnale direcționate, de Ermanno Pietrosemoli de
la Escuela Latinoamerica de Redes. Acesta a transferat 3 MB de date între vârfurile El Aguila și
Platillon din Venezuela, aflate la o distanță de 382 km.
2.3.10 Canale

Fig 2.3.10 Repartizarea canalelor în banda de 2,4 GHz

În Japonia, Wi-Fi folosește 14 canale ale benzii de 2,4 GHz, în Statele Unite 11 iar în Europa

13. În unele zonele în care acționea ză mai multe puncte de acces, acestea se pot interfera unele cu altele,
deoa rece benzile nu sunt complet separate. Doar trei canale (1, 6 și 11 în SUA, mai multe combinații în
Europa și Japonia) pot fi complet separate, în condițiile date în care toate punctele de acces dintr-o zonă
folosesc doar IEEE 802.1 1g, fără posibilitatea de a recurge la 802.11b în cazul unor condiții dificile.
În Uniunea Europeană, puterea radiată izotrop echivalentă maximă admisa este de 100 mW (20 dBm)
[12].

26 2.4 Transmiterea datelor Wir eless

Mod ulele de transmitere a datelor su nt proiectate în vederea creării unei legaturi wireless
pentru transferul de date. Întrucat acestea sunt dispozitive wireless, sunt influențate extern de diferiți
factor care nu se regasesc și în comunicațiile fir. Aceste influențe sunt capabile să întrerupă sau
corupă datele pasate de către transmițator, cauzând ca ieșirea de la receptor sa fie incorectă. Ac estă
proiectare trebuie să implementeze un protocol de toleranța-zgomot pentru a corecta aceste posibile
interferențe. Scopul acestui protocol este de a sincroniza comunicațiile între transmitere și
recepționare a datelor, să indentifice pachetele de date valide, să verifice daca pachetele de date sunt
corecte și sa corecteze orice dată greșita din pachet.
O greseală frecventă este că adresa digitala poate fi trimisă pentru a diferenția un transmitor

de altul, chiar și cand sunt mai multe transmiteri în același timp.

Frecvența radio este un domeniu analog, deci conținutul digital nu conteaza. Ca ana logie,
ne putem gandi la o cameră plină cu oameni. Dacă o persoană vorbeste, celelalte persoane îl pot
auzi. Daca toata lumea vorbește în acelasi timp, de vine mai dificil să poti asculta ce zice fiecare
persoană. Un protocol poate ajuta să reduca zgomotul într-un sistem de transmitere multiplă și să
ajute receptorul să aleaga datele valide dintr-un mediu zgomotos.
2.4.1 Initiere în comunicat ie

Un canal de comunicație este calea prin care datele traversează de la transmițator la
receptor, și este creat din toate componen etele necesare pentru generarea con ținutului de date,
codificare, transmitere (incluzând și calea prin care se propagă), recepționarea, decodificare,
interpretare. Figura 2.4.1 va arata un model generic de canal de comunicare [12].

Figura 2.4.1: Canalul de comunicare generic

27 2.4.2 Datele

Datele pot fi reprezentate de orice. De la o citire anologică a temperaturii, un fișier dintr-un hard
disk sau o tastă apasată pe tastatura. Datele corupte sunt foarte puțin probabil sa existe la acest nivel și
sunt ușor de găsit și rezolvat prin hardware-ul sau software-ul dispozitivului.
2.4.3 Codificarea datelor

Datele trimise sunt în general date neprelucrate sau neprotejate. Codificarea datelor asigură o

structură de securitate și o formă a corectării erorii care asigură integritatea datelor.
2.4.4 Transmiterea datelor

Aceasta etapa este realizata de catre transmitator. Factori externi cum ar fi : zgomotul sursei de
alimentare și modulatia improprie pot corupe aceste date.
2.4.5 Canalul de propagare

Canalul de propagare este un canal de unde radio care trece de la transmițător la receptor. La
acest nivel este cel mai probab il ca datele sa devină corupte. Aceste date corupte sunt de multe ori
rezultatul unor interferențe de la alte surse radio prezente în canalul de propagare. Interferențele se pot
manifesta în mai multe feluri. Interferențele de nivel mic produc zgomot la iesire, reducâ nd lungimea
căii de propagare.
Alt tip de interferențe poate fi cauzat de dispozitivele de înaltă putere cum ar fi salturi de
frecvență în spectru. Cum ace ste dispozitive se schimba rapid de la o frecventa la alta, uneori produc
scurte pierderi de informație [12].
Interferentele de nivel înalt sunt cauzate de împartirea aceleași frecvențe , de lătime de bandă

apropiată a dispozitivelor de putere mare.

Prop agarea multi-cale este și ea un factor de înteles. Mu lti-cale este un termen folosit pentru a
face referire la oprirea unui semnal, fapt ce se întamplă când un da unui semnal radio ajunge la receptor
în diferite faze. Acesta este un factor particular ce se întampla într-un mediu interior, unde obiectele pot
schimba prin reflexie aceste căi [12].
Toate aceste efecte pot cauza continu sau periodic corupere de date.Trebuie recunoscut ca multe
benzi sunt folosite într-un mediu răspândit și prezintă un potențial conflict cu su rsele nedorite de radio
frecvență. În propagările prin fir, calea este dată de fir în loc de spațiu liber și are tendința de a introduce
puține erori pentru coruperea datelor. Aceste diferențe fundamentale între transmiterea datelor fir și
wireless dicteaza nevoia unui protocol pentru transfer de date.

28 2.4.6 Recepț ionarea datelor

Majoritatea receptoarelor pot corupe datele trimise daca sursa datelor nu îndeplinește minimul
sau maximul ratei specificată de receptor. Metoda semnalului modulat are deasemenea un impact în
abilitatea receptorului de a prinde semnalul în prezența unor interferențe.
2.4.7 Decodificarea datelor

Datele recepționate vor fi decriptate și verificate pentru a nu avea erori. Daca exista erori,
corecția erorii va fi aplicată pen tru a repara greșelile detectate în datele transmise. Datele corupte sunt
foarte rar întalnite la acest nivel.
2.4.8 Interpre tarea datelor

Interpretarea datelor este uzual facută de catre un program software și implica folosirea acestor
informații în diferite scopuri. Datele corupte în acest stagiu vor fi aplicate întru rezolvarea lor catre un
software specializat.
2.5 Principalele protocoale folosite pentru realizarea radarului

Protocoalele folosite în realizarea radarului : HTTP si Buffer
Acestea au fost folosite pentru realizarea comunicatiei dintre serverul de NodeJS si modului Arduino.
2.5.1 Ce este un protocol ?

Un exemplu ar fi ca de fiecaredată cand doi oameni comunică, este întotdeauna probabil ca unul
dintre cei doi sa nu înteleaga mesajul celuilalt. În unele cazuri riscul este acceptabil, în alte cazuri, ca de
exemplu în ne gocieri, neintelegerea u nei idei poate avea repercusiuni severe.Cand ac uratețea
comunicării este vitală, se impun reguli stricte pentru ca ambele părți să poată întelege mesajele trimise
“vorbirea aceleiași limbi”. Aceste reguli fac referire la protocoale. Cum c omunicarea între un
transmitător și un receptor poate fi coruptă, un protocol este folosit pentru a face receptorul sa
“înteleaga” datele de la transmitător și astfel să determine daca datele primite sunt corecte sau daca sunt
s-au strecurat greseli.
Încaps ulare

Un protocol va împarti datele în bucăti mai mici pentru a fi mai usor de folosit. Va încapsula
datele cu informații speciale folosite de ca tre protocol pentru a pu ne datele cap la cap la sfarșitul
recepționării lor.Acest proces este numit încapsulare. La sfarsitul receptionarii protocolul scoate datele

29 adau gate în plus și va reasambla toate partile în datele trimise original.Acest p roces este numit
dezpach etare.

Robustețea

Un protocol este robust dacă poate corecta datele eronate. Robustețea este de ob icei realizată prin
încorporarea unor corecții de eroare (FEC) în fluxul de date.
Secur itatea

Un protocol este securizat daca poate preveni/ bloca cererile neautorizate de acess la informație. Cum
informația este transmisă prin o retea wireless, oricine cu un receptor poate vedea transmisia. Encriptarea
este folosită pentru a face infomația de nefolosite pentru cei ce nu au un c od de acces corect.
Unicitatea

Un protocol este numit un ic daca poate distinge transmisiunea corectă în vecinătatea câtorva
trasmitatoare. Aceasta este uzual facută prin adăugarea unor biți în fiecare pachet, și asteptând ca
receptorul sa spună ce
pach ete au venit de la trimitătorul stabilit.

Principalele protocoale wireless folosite ce trebuiesc afisate sunt:

LTE

Înainte ca noile smartphone-uri să adopte așa numită generatie a 4 a rețelei wireless “4G”, telefoanele
au utilizat o varietate de protocoale de comunicații vechi, numite : HSDPA, GPRS și EV-DO.
Dezvoltatorii de telefoane au investit în industrie o sumă uriașă de bani pentru a actualiza turnurile de
supo rt de rețea pentru a putea suporta rețeaua 4G, standardizât printr-un protocol de co municare numit
Evolutie pe terment lung (Long term evolution LTE) care a devenit un serviciu popu lar încă din anul
2010.

Tehnologia LTE a fost creată pentru a aduce înbunătățiri ratelor de transfer a datelor și rezolvării
problemelor dintre telefoanele vechi și protocoalele curente de funcționare. Acest protocol poa te ține
mai mult de 100Mb/s de date pentru lațimea de bandă a rețelei și un transfer normal de 10 Mb/s pentru
utilizatorii individuali. Datorita sumelor prea mari pe care aveau sa le platească pentru echipament plus
cateva schimbări de natura guvernamentală, dezvoltatorii nu au dezvoltat această rețea în multe locatii.
LTE nu este recomanda tă pentru utilizatori ce se pot conecta la rețeaua locală de internet, acest protocol
fiind creat pentru a acop eri distanțe mult mai mari între utilizatori.

Wi-Fi

Wi-Fi este asociat cu rețeaua wireless și a devenit principalul standard pentru rețeaua din interiorul
locuinței și rețelei hotspot publice.Wi-Fi a devenit popular începând cu anul 1990 ca și o retea hardware,
realiza o comunicare și un schimb de date între pc, imprimante și alte dispozitive.

30 Deși Wi-Fi-ul poate funcționa și pe distanțe lungi intr-un mediu controlat, protocolul este practic
limitat sa funcționeze în locatii rezidențiale, în interiorul locuințelor sau în ex terior dar pe o
distanță scurtă. Vitezele Wi-Fi-ului sunt mici față de alte protocoale wireless. Telefoanele mobile
au dezvoltat suport pen tru ambele protocoale Wi-Fi și LTE (plus alte protocoa le vechi) pentru a da
utilizatorului flexibilitate în alegerea rețelei pe care vor să o folosească.

Blueto
oth

Unul dintre cele mai vechi protocoale wireless încă folosit este bluetooth-ul. Acesta a fost creat în
anii

1990 din nevoia de sincronizare a datelor între telefoane și alte dispozitive. Spre deo sebire de Wi-
Fi și alte protocoale wireless, bluetooth-ul are un consum mai mic de energie . În schimb ,
cone xiunile bluetooth funcționează doar pe o distanță mică, până la 10 metri sau mai puțin, și au
rate de transfer mici, de obicei între 1-2 Mb /s. Wi-Fi a înlocuit tehnologia Blu etooth pe multe
dintre noile echipamente dar multe dintre telefoanele de a stăzi înca au suport pentru ambele
protocoale.

Protocoale 60 GHz – WirelessHD și
WiGig

Una dintre cele mai populare activități pe rețelele de calculatoare este streaming-ul video și sunt
câteva protocoale care rulează pe o frecvență de 60 Gigaherți, construite pentru a avea un suport
real pentru ace stă industrie și consumul mare de lațime de bandă de internet. Două dintre aceste
protocoale WirelessHD și WiGig au fost create în anii 2000 ambele folosind tehnologia de 60 GHz
pentru a avea suport pentru conexiunea wireless într-o lațime de bandă mare.WiGig oferă o lațime
de bandă între 1 și
7 Gb/s în timp ce WirelessHD supo rtă o lațime de bandă de 10 -28
Gb/s.

Deși streaming-ul poate fi făcut pe o rețea Wi-Fi, video-urile de cea mai buna calitate (1080p –
1440p)

necesită transferuri de date mari. Comparabile cu Wi-Fi , WirelessHD și WiGig (60 GHz versus 2.4
sau

5 GHz ) limitează aria de acope rire, astfel acestea au o arie de acoperire mai mică decât bluetooth
mai precis în interiorul unei singure camere (semnalele de 60Ghz nu pot penetra peretii).

31 2.5.2 Introducerea în protocolul HTTP
2.5.2.1 Prezentare

Hypertext Transfer Protocol (HTTP) este metoda cea mai des utilizată pentru accesarea
informațiilor în Internet care sunt păstrate pe servere World Wide Web (WWW). Protocolul HTTP
este un protocol de tip text, fiind protocolul "implicit" al WW W. Adică, dacă un URL nu conține
partea de protocol, aceasta se consideră ca fiind http. HTTP presupune că pe calculatorul destinație
rulează un p rogram ca re înțelege protocolul. Fișierul trimis la destinație poate fi un docu ment
HTML (abreviație de la HyperText Markup Language), un fișier grafic, de sunet, animație sau
video, de a semenea un p rogram execu tabil pe server-ul respectiv sau și un editor de text.
Clasificarea după modelul de referință OSI, protocolul HTTP este un protocol de nivel aplicație.
Realizarea și evoluția sa este coordonată de că tre World Wide Web Consortium (W3C).
2.5.2.2 Modul de funcționare

HTTP oferă o tehnică de comunicare prin care paginile web se pot transmite de la un
computer aflat la distanță spre propriul computer. Dacă se apelează un link sau o adresă de web
cum ar fi http://www .example.com, atunci se cere calculatorului host să afișeze o pagină web
(index .html sau altele).[17] În prima fază numele (adresa) www .example.com este convertit de
protocolul DNS într-o adresă IP.[17] Urmează transferul prin protocolul TCP pe portul standard 80
al serverului HTTP, ca răspuns la cererea HTTP-GET. Informații suplimentare ca de exemplu
indicații pentru browser, limba dorită, astfel se pot adăuga în header-ul (antetul) pachetului HTTP.
În urma cererii HTTP-GET urmează din partea serverului răspunsul cu datele cerute, ca de
exemplu : pagini în (X)HTML, cu fișiere atașate ca imagini, fișiere de stil (CSS), scripturi
(Javascript), dar pot fi și pagini generate dinamic (SSI, JSP, PHP și ASP.NET). Dacă dintr-un
anumit motiv informațiile nu pot fi transmise, atunci serverul trimite înapoi un mesaj de
eroare.[17] Modul exact de de sfășurare a acestei acțiuni (cerere și răspuns) este stabilit în
specificațiile HTTP.Deseori utilizatorul dorește să transmită informații speciale la website. Aici
HTTP pune la dispozitie două posibilități:
• Transferul datelor în combinație cu o cerere pentru o resursă (HTTP-metoda "GET")

• Transferul datelor în combinație cu o cerere specială (HTTP-metoda "POST")

32 CAPI TOLUL III : DES CRIEREA DISPOZITIVELOR
FOLOSITE PENTRU RADARUL ULTRASONIC

3.1 Prezentarea componentelor folosite în realizare radarului ultrasonic

Pentru realizarea radarului ultrasonic s -au folosit mai multe componente care sunt necesare pentru a
putea detecta obie ctele din jur.Mai jos vom prezenta componentele folosite.
3.1.1 Servo motorul

Fig 3.1.1a P rezentarea servo motorului.

Are un un ghi de rotire de aproximativ 180 grade, 90 în fiecare direcție.Acesta are trei fire:

• maro – se conectează la pinul de masă(GND ) al plăcii Arduino.

• roșu – se conectează la pinul de 5V al plăcii.

• galben – este recomandat de către producator conectarea sa la pinul 9 la plăcii.
Este folosit pentru a acționa radarul stanga -dreapta .
Sche ma de conectare a servo motorului la placa Arduino :

33

Fig 3.1.1b Sche ma servo motor

Spec ificațiile servo motorului:
Greutate: 9 g.
Dimensiune: 22.2 x 11.8 x 31 mm

Cuplul: 1.8 kgf * cm.

Viteza de operare: 0.1s / 60 grade.
Voltajul: 4.8 V (~5v).
Temperatura de lucru: 0 șC – 55 șC.

Fig 3.1.1c C iclul pwm al servo motorului.

34 3.1.2 Senzorul ultrasonic HC -SR04

Figura 3.1.2 a Prezentarea senzorului ultrasonic

Aceasta este princiapal component din radarul ultrasonic, poate măsura distanțe intre 2 cm și 400 cm cu o
precizie care poate ajunge la 3mm. Are inclus un transmitător ultrasonic, un receptor și un circuit de
comandă.

Modulul HC-SR04 are 4 pini:
alimentare +5V
initiere semnal (TRIGGER)
raspuns semnal (ECHO)
masa (GND)

Figura 3. 1.2 b Conectarea senzorului

35 Specificații:

Tensiune de alimentare: 5V;
Curent consumat: 15mA;
Distanță de funcționare: 2cm – 4m;
Unghiu de măsurare: 15o;
Eroare de doar 3mm;
Durată semnal input: 10us.
Dimensiuni: 45mm x 20mm x 15mm .

Figura 3. 1.2 c Reprezentarea modului de functionare al senzorului ultrasonic

36 3.2 Mediul de lucru
3.2.1 Ce este o aplicație web?

In prezent, trăim intr-o lume unde comunicarea joacă un rol din ce în ce mai important în viețile
noastre, iar nevoia de a fi în contact cu ceilalți este prezentă în toate activitățile noastre.În sprijinul
acestei nevoi vine tehnologia modernă iar cel mai de seamă reprezentant al acesteia este dispozitivul
mobil.
Aplicatia web este o aplicație software (program) c e permite utilizatorilor să afișeze text,
grafică, video, muzică și alte informații situate pe o pagină din World Wide Web , dar și să comunice cu
furnizorul de informații și chiar și ei între ei
Aplicația implementată în cadrul acestei lucrări este o aplicație NodeJS, de zvoltată cu ajutorul
mediului de dezvoltare Microsoft Visual Code .Acesta oferă suport pentru implementarea și rularea
aplicațiilor de tip web, cu ajutorul anumitor “plugin -uri” cum ar fi acela de depanare(“debugger”). Se
poate simula un medi u aproximativ cu cel de productie.

Fig 3.2.1a Internetul

37

3.2.2 Cunoașterea mediului de dezvoltare

Cunoa șterea mediului de dezvoltarea NodeJS
este o parte ideală pentru a putea întelege cum e ste
implemntată și rulată această aplicație.

Mediul de dezvoltare NodeJS este creat din mai
multe părți, care asamblate lucrează împreună pentru a
realiza o aplicație web.Mai jos sunt prezentate cele mai
reprezentative componen te ale acestei platforme:

• Visual Code IDE(Integrated Development
Enviroment) este locul unde se va scrie codul, acesta nu
este specific doar mediului de de zvoltare web.

• Node Debug (ADT)

Este un plugin care adaugă funcțiile specific
pentru depanarea codului î n Visual Code.

• NPM(Node Package Manager)
Cu ajutorul sau se instaleaza plugin -urile necesare.

Fig 3.2.2 a Mediul de dezvoltare

38 3.2.3 Preg ătirea mediului de dezvolta re:

Pentru crearea unui proiect în Visual Code spre deosebire de alte IDE -uri nu s e poate creeă un șablon
pentru proiect totul trebuie scris de la zero, inclusiv schema proiectului, dar pentru a ajunge acolo
trebuie respectați câțiva păși simpli dar esențiali în realizarea proiectului:

• Instalarea nvm (Node Version Manager)

Se ins taleaza relative simplu cu ajturoul executabilului pentru windows, iar pe alte sistem de o
cum ar fi linux sau mac se instaleaza cu ajutorul terminalului si aplicatiei CURL.

Fig 3.2.3 a Instalarea NVM

• Instalarea mediului de dezvoltare Microsoft V isual Code .
Aceste un un software gratuit oferit de compania Microsoft, se instalează destul de simplu cu ajutorul
pachetului descărcat după pagină oficială a furnizorului

Fig 3.2.3 b Instalarea Visual Code


39
Prezentarea interfe ți de lucru după instal area Visual Code:

• Fereastra Explo rer, care conține o vedere arborescentă a componen telor proiectului, inclusiv
fișierele sursă și resursele

Fig 3.2.3 c Prezentarea Visual Code

Visual Studio Code este un editor de cod sursă ușor, dar puternic, ca re rulează pe desktop și este
disponibil pentru Windows, MacOS și Linux. Dispune de suport încorporat pentru JavaScript,
TypeScript și Node.js și are un ecosistem bogat de extensii pentru alte limbi (cum ar fi C ++, C #,
Python, PHP, Go) și runtime (cum ar fi .NET și Unity)

40


• In mijlocul imaginii se află editorul, use se scrie codul.
Instalarea unui pachet cu ajturoul NPM(Node Package Manager)

Fig 3.2.3 d Instalarea unui pachet cu ajutorul NPM

Visual Studio include un set complet de ins trumente de dezvoltare pentru generarea de aplicații
ASP.NET, Servicii Web XML, aplicații desktop și aplicații mobile. Visual Basic, Visual C++, Visual
C# și Visual J# toate folosesc același mediu de dezvoltare integrat (IDE) care le permite partajarea
instrumentelor și facilitează crearea de soluții folosind mai multe limbaje de programare. Aceste
limbaje permit să beneficieze de caracteristicile .NET Framework care oferă acces la tehnologii cheie
care simplifica dezvoltarea de aplicații web ASP și XML Web Services cu Visual Web Develope

41 CAPI TOLUL IV: PROEICTAREA, REALIZAREA, ȘI IMPLEMENTAREA
RADARULUI ULTRASONIC

4.1 Prezentarea dezvoltări platformei arduino

Fig 4.1 a Prezentarea aplicației

A fost folosită placa de dezvolatre Arduino UNO R3 bazată pe microcontrolerul ATmega328,
prevăzută cu paisprezece pini digitali pentru intrare / iesșire, șase dintre aceștia pot fi folosiți ca și ieșire
PWM.
PWM este abrevierea de la “Pulse Width Mod ulation”, acesta este folosit într-o gamă largă de
aplicații.Acesta este un semnal periodic la care se poate modifica în mod controlat factorul de umplere
și poate genera mai multe semnale modulate.Mai jos este reprezentată schmea bloca a unui canal PWM:

42

Fig 4.1 b Prezentarea schemei bloc a unui canal PWM

Conex iunea între cele două platforme NodeJS și Arduino este realizată prin intermediul
protocolului de comunicare Serial .

4.1.1 Implementarea codului pent ru microcontroler

Pentru setarea microcontroler-ului s-au folosit următoarele librării:

• Servo.h

• Ultrasonic.h

Senzori și dispozitivele sunt controlate cu ajutorul următorilor pini:

• Pinul analog A0 pen tru senzorul de temperatură.

• Pinii digital 12,13 pentru leduri.

• Pinul digital 8 pentru conexiunea bluetooth.

• Pinul digital A3 și A2 pentru servomotoare.

• Pinul digital 10 pentru alarmă.

• Pinii digitali 0(RX) și 1(TX) pentru transmisia serial.

Pentru utilizarea servomotorului și a senzorului ultrasonic sunt utilizate celor doua librarii specifice,
prezentarea decla rării librariilor :

#include <Servo.h>
#include <Ultrasonic.h>

43
Pentru a putea utiliza cele doua libr ării se creează două obiecte de tipul librăriilor și se definesc pinii care
vor fii folosiți pentru utilizarea componentelor :

Comuni carea cu servarul NodeJS se realizeaza din Arud ino folosind comunicația serial pentru acest lucru
trebuie sa inițializăm coumincatia serial :

Servomotorul este actionat independent, pe acesta se afla amplasat senzorul ultrasonic cu ajutorul caruia se
detecteaza obiectele. Prezentarea codu lui unde se seteaza actionarea servomotorul:

if(angle < 0) {
angle = 180;
}

val = map(angle, 0, 180, 0, 179);

myservo.write(val);

angle -= 15;

delay(100); #define TRIGGER_PIN 12
#define ECHO_PIN 13

Servo myservo;
Ultrasonic ultrasonic(TRIGGER _PIN, ECHO_PIN);
void setup() {
// ini țializarea comunicației serial
Serial.begin(9600);
……
}

44
Pentru a putea afla distan ța la care un obiect se află trebuie sa acționam modulul de măsurare cu ultrasunete,
acesta va returna durata din momentul lansării semnalului până când acesta a ajuns înapoi, pentru acest lucru
exista o funcție în librari a dedicată modului ultrasonic, mai jos este prezentat modul în care se obtine
raspunsul , dupa care este convertit pentru a putea fii transmis serial :

După prelucrarea datelor acestea vor fi trimise serial catre partea de web sub forma de JSON, mai jos este
prezentată implementarea :

long microsec = ultrasonic.timing();
cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
Serial.print("{d:");
Serial.print(cmMsec);
Serial.print(",r:");
Serial.print(angle);
Serial.print("}");

45
4.2 Prezen tarea structurii aplicației web

Pentru o mai bun înțelegere a modului cum aplicația funcționează și modul în care datele sunt transmise sa
realiza o schemă a fluxlui de date.

În figura 4.2 a este prezentată schema pen tru fluxul de date:

Fig 4.2 a Prezentarea fluxului de date

46
Prezentarea structurii proiectului:

Fig 4.2 b Prezentarea structurii clasei ListaDispozitive

Dependin țele aplicației se afla declarate în fișierul package.json, există 3 librării externe :
– serial port
– sf
– socket.io

Fig 4.2 c Prezentarea dependințelor

47

Imaginațivă o lume unde luminile, sistemele de iluminare, de securitate sau chiar blenderul
poate fi controlat cu ajutorul JavaScript, aceea lume este aici, totu se poate realiza cu ajutorul acestei
librării SerialPort împreuna cu NodeJs, acesta este și motivul pentru care am ales sa folosesc această
librărie, cu ajutorul său se poate realiza conexiunea serială cu controler -ul Arduino.
Pentru a facilita comunicația realizată cu ajutorul librăriei SerialPort s -a folosit librăria
Socket.IO aceasta permite comunicații în timp real între serverul de NodeJs și clientul care va rul a în
browser -ul calculatorului.
Libraria Sf se folosește pentru o mai ușoară formatare a textului.

Aplicația web este formată din două părți :
– partea de client
– partea de serv ăr
Partea de client este folosită pentru a primii informațiile de la servăr si a le afișa pe ecran către user.
Partea de server este folosită pentru a primii informațiile de la controler -ul arduino, dupa decodificarea
acestor sunt trimise către partea de client.

Cele două părțti sunt structurate astfel:
– Partea de client se afl ă în fo lderul “public” având urmatoare structură :

Fig 4.2 d Prezentarea structurii clientului

48
Folderul public este alc ătuit din cele două sub -foldere :
– css
– js

In folderul css se afle fisierul style.css în care se regasesc stilurile folosite pe ntru un aspect mai
plăcut al interfeței grafice.
Folderu js este folosit pentru a putea ține organizate toate fisierele de javascript necesare, aici
este realizată întreaga logică pentru partea de client.

– Partea de servăr este distribuită astfel :

Fig 4.2 e Prezentarea structurii serv ărului

Parte de servăr este alcătuit din folder -ul node_modules unde se află pachetele prezentate mai sus
instalate cu ajutorul Node Package Manager, acest folder a fost prezentat in figura de mai sus având
arborescența în chisă deoarece este foarte mare.

49 4.3 Prezentarea implementării părții de client al aplicației web

Figura 4.3 a : Prezentarea părții de client

Partea de client a unei aplicații web are ca mediu de execuție, în majoritatea cazurilor, un
browser. Tehnologiile de programare a părții de front -end (client, în genere) sunt diverse și constant
avem parte de noi apariții care rezolvă probleme mai vechi sau mai noi sau care contribuie la
eficientizarea activității de programare web.
În figura 4.3 b este prezentată schema pen tru fluxul de date.

Figura 4.3 b : Fluxul de date.

50 Interfața grafică este realizată cu ajutorul celebrei librării Raphael. Această librarie folosește
segmente de tip SVG.
Conexiunea între client și Arduino fost realizată prin intermediul protocolului de
serial/wifi .Această conexiune s-a realizat cu ajutorul server -ului de NodeJS .Clientul va încerca sa se
conecteze pe ip -ul servărului, în cazul se față se folosește ip -ul local, localhost(127.0.0.1) și portul
3000. Conexiu nea se efectuează cu ajutoul unui socket.
Se inițializează conexiune:

Fig 4. 3 c: Ini țializarea conexiunii

Pentru a recep ționa datele trimise de servăr se va seta un “listener” , pe “callback -ul”
functiei se va citii valoarea primită de la s ervăr și se va plota mai departe pe intervfața grafică :

Fig 4. 3 d: Trimiterea datelor primite de la serv er către plotare

Pentru a putea începe plotarea radarului în browser trebuie declarate și inițiate variabilele,
acest lucru este necesar pentru a definii stilul, dimensiunea dar si acțiunile de rotație .De asemenea se
seteaz ă unghiul maxim și minim pentru radarul nostru .Radarul este format din 4 cercuri suprapuse aceste
sunt declarate astfel:

Fig 4. 3 e: Declararea c ercurilor

51 Principala funcție este “draw ”, având doi parametrii : distance, angle. Cu ajutorul acestei
funcții se va plota pe ecran radarul.

Fig 4. 3 f: Plotarea radarului

Pentru a stoca pozi țiile unde se află obiectele care vor fi plotate se foloseste un vec tor, inițial
se verifică daca cel de al doilea parametru, angle(unghiul), este egal cu unghiul inițial , daca valoare
primit ă este egală cu ceea minimă atunci se va reinițializa vectorul cu pozițiile și se vor sterge toate
obiectel e detectate deoarece raza de acțiune a radarului a ajuns in punctul inițială ceea ce înseamnă căci
se va efectua o nouă scanare.

Fig 4. 3 g : Reini țializarea pozițiilor daca s -a detectat că o nouă scanare va incepe

52 Pentru că este o aplicație interactivă aceasta trebuie animat ă pentru a realiza acest lucru s -a apelat la
anumite funcții speciale ale librariei Ralph. Funcția prinicpală folosită este “animte” aceasta primeste
ca parametrii un obiect unde sunt declarate raza si coordonatele acesteia, cel de al doilea parametru este
durata, iar ca parametru op țional se poate seta o funcție de callback. Mai jos vom prezenta cum sa
folosit această funcție.

Fig 4. 3 h: Animarea aplicației

53 4.4 Prezentarea implementării părții de servăr al aplicației web
4.4.1 Ce este un servăr ?

Fig 4.4 Partea de servăr

În tehnologia informației, un server este un program de aplicație care furnizează servicii altor aplicații
(numite aplicații client), aflate pe același calculator sau pe calculatoare diferite. De obicei, aplicaț ia
server așteaptă conexiuni din partea aplicațiilor client. Se mai numește server și calculatorul pe care
rulează una sau mai multe asemenea aplicații. Deseori soluția pentru mari aplicații cu mulți utilizatori se
bazează tocmai pe arhitectura client -server, care constă din cel puțin 2 aplicații.
Serverele ocupă un loc important în tehnologia informaticii, la fel ca și minicomputerele în
trecut, care însă au fost înlocuite. Un server este o aplicație pe computer, uneori chiar un computer
întreg, care ope rează continuu în rețeaua sa și așteaptă solicitări din partea altor calculatoare din rețea.
Serverele pot fi folosite simultan și pentru alte scopuri, dar când nevoile o cer, ele pot fi rezervate
exclusiv pentru funcția de server. De exemplu, un calculato r se poate folosi într -un birou simultan
pentru două scopuri, ca stație de lucru și ca server pentru celelalte calculatoare din birou. Cuvântul
server provine din cuvântul englez to serve – a servi: calculatorul server poate în principiu deservi
întreaga r ețea de calculatoare clienți, pentru a asigura accesul la toată paleta de forme de conectare și
servicii. Deseori unul și același computer poate juca ambele roluri, și de server, și de client, în același
timp. Numele de server este un alt termen pentru Hos t computer – computer gazdă, spre deosebire de
alte elemente "inteligente" din rețea cum ar fi routerele și switch -urile.
În zilele noastre serverele se aseamănă fizic cu celelalte calculatoare uzuale, deși configurația
hardware este deseori optimizată pe ntru funcționarea lor ca servere. Multe componente de hardware
sunt identice cu cele ce le găsim într -un calculator personal. Totuși serverele rulează sisteme de operare

54 și programe specializate care sunt foarte diferite față de cele folosite pe calculatoa re personale și stațiile
de lucru.

Serverele nu trebuiesc confundate cu calculatoarele de tip, care centralizează informații și procesează
activitățile firmelor mari. Un mainframe poate în principiu să funcționeze simultan și ca server, sau
chiar ca mai m ulte servere virtuale, pe lângă toate celelalte activități. Multe companii mari folosesc
ambele tipuri de calculatoare, anume și mainframe, și servere. Acestea din urmă sunt de obicei mici,
multe și descentralizate.
Serverele deservesc resurse hardware ca re sunt partajate și pot uneori fi comandate de către
calculatoarele -client, cum ar fi imprimante (atunci serverul se numește print server) sau sisteme de
fișiere (atunci el se numește file server). Această partajare permite un acces și o securitate mai bu nă, ea
poate reduce cheltuielile pentru dispozitivele periferice.
4.4.2 Prezentarea și descrierea servărului folosit.
Pentru această aplicație sa hotărât realizarea și folosirea unui servăr NodeJS. Acesta a fost
realizat pentru a ajuta comunicațiile dintr e platforma Arduino si partea de client.
În figura 4.4.2 a este prezentat fluxul de date :

Figura 4.4.2 a Fluxul de date

55 Ca și protocol se comunicare între Arduino și servăr s -a ales folosirea portului se rial. Mai jos este
prezentată implementarea si folosirea acestuia.

Figura 4.4.2 b Declararea portului serial
Pentru a putea folosii conexiunea serială sa folosit o librarie extern, în figura “4.4.2 a” este p rezentat ă
declararea unui obiect de tip SerialPort, cu ajutorul căruia se va realiza o conexiune stabilă cu Arduino
pentru transferul de date.
Odat ă declarat obiectul te tip “SerialPort”, acesta trebuie ini țializat pentru a seta portul pe care se va
conect a și trebuie setată rata la care informațiile se vor transmite pe canalul de comunicare. Acest lucru
este prezentat în fiugra „4.4.2 b ”.

Figura 4.4.2 c Inițializarea portului serial

Trebuie setată o functie de tip “listener” pe eventimentul op en(“deschis”) pentru a putea determina
momentul c ând conexiunea se va realiza cu succes, acest lucru este prezentat în figura “4.4.2.c” .

Figura 4.4.2 d Conexiune stabilă

Pentru a putea obține datele transmise de către platforma Arduino s -a setat o funcție de tip “listener”
care se va apela de fiecare dat ă cand noi date vor sosii, acestea vor fi trimise mai departe catre interfața
grafică. Implementarea acesteia este prezentată mai jos în figur “4.4.2 d”.

56

Figura 4.4.2 e Recepționarea datelor de la platforma Arduino

La fel se vor seta funcții pentru a informa daca s -a întampinat vreo problemă sau atunci când
conexiunea se va inchide. Acest lucru este realizat cu două funcții de tip “callbac k” prezentate in figura
“4.4.2. e”.

Figura 4.4.2 f Prezentarea errorilor și închiderea conexiunii

Protocolul folosit pentru creea servărului este acela de HTTP, deoarece este o aplicație demonstrativă
am considerat că nu este nevoie de folosirea u nui protocol securizat precum HTTPS.

57 CAPI TOLUL V: TESTAREA APLICAȚIEI

Pentru testarea aplicației prezentate în capitolul IV s-au amplasat mai multe obiecte in jurul
radarului pentru o dificultate mai ridicat ă în detectarea obiectelor din jur.
5.1 Amplasarea senzorului pentru detectarea obiectelor

Pentru a putea acoperii o arie cât mai răspândită, senzorul ultrasonic a fost amplasat pe un servo
motor. Acesta are raza de acțiune de 180 grade, daca senzorul nu ar fi fost amplasat pe un servo motor
acesta ar fi putut detecta mai puține obiecte aflate în jur datorită ariei mult mai mici de acțiune.

Prezentarea proiectului în faza incipientă:

Figura 5.1 a Faza incipient ă

58 Amplasarea senozrului ultrasonic pe servo motor :

Fig 5.1 b Prezentarea senzorului ultrasonic amplasat pe servo motor

59
Prezentarea întregului montaj dupa aplasarea servo motorului împreuna cu senzorul :

Fig 5.1 c Prezentarea montajului

Fig 5.1 d Prezentarea montajului

60 5.2 Exemple de utilizare

Pentru o testare s -au folosit două obiecte uzuale din locuintă, un pahar, respectiv un satelit al sistemului
audio.

Fig 5.2 a Detectarea obstacolelor

61 Prezentarea rezultatelor obținute la evaluarea obiectelor prezentate mai sus

Fig 5.2 b Prezentarea rezultatelor

62 CONCLUZII

În aceas tă lucrarea au fost prezentate câteva aspecte legate de implementarea applicațiilor pe
platforma web ce au direct scop controlul “radarului ultrasonic” și prezentarea rezultatelor în timp real .
Au fost prezentate platformele utilizate pentru implementarea aplicației, JavaScript, NodeJs ,
Arduino,
În aplicație am avut în vedere monitorizarea și prezentarea obiectelor detectate cu ajutorul
anumitor dispozitive și senzorilor. Pentru a permite miș carea senzorului ultrasonic , sa folosit un
servomotor care permit mișcarea senzorului la 90 grade. Pentru prezentarea rezultatelor obținute sa
folosit o librarie, Raphael, cu ajutorul careia am realizat o interfață grafică vectorială ce permite prezentare a
datelor în timp real.
În urma testării aplicației se constată că, cu ajutorul acestui radar se pot aduce îmbunătățiri
semnificative dar și siguranță vieții umane, acesta poate fi folosit pentru siguranța unei case sau pentru
mașinile 100% autonome.

63 BIBLIOGRAF IE

[1]. Y. Daniel Yang (2015). Java Programming Comprehensive, USA
[2]. J o h n W i l e , S o n s H T M L & C S S D e s i g n a n d B u i l d W e b s i t e s
[3]. Brian W. E vans (2007). Arduino programming notebook, USA.
[4]. Richard Harper (2003). Inside the Smart Home, UK.
[5]. Michael Droettboom (2015).Understanding JSON Schema.
[6]. https://www.todaysoftmag.ro/article/1724/ecmascript -6-de-ce-si-cum-sa-il-folosim -in-prezent
[7]. W. Du rfee (2011), Arduino Microcontroller Guide, University of Minnesotta, USA.
[8]. Sunfoun der (2012). Basic kit for Arduino
[9]. Dr.Axel Rauschmayer (2015) Exploring ES6
[10]. R e g B r a i t h w a i t e ( 2 0 1 3 ) , JavaScript Spessore, USA
[11]. R e g B r a i t h w a i t e ( 2 0 1 5 ) , J a v a S c r i p t A l l o n g e , t h e ‘ S i x ’
E d i t i o n , U S A
[12]. WIFI, https://ro.wikipedia.org/wiki/Wi-Fi
[13]. Arduino Uno, https://www .arduino.cc/en/Main/arduinoBoardUno
[14]. Limbaje de Programare,https://ro.wikipedia.org/wiki/Limbaj_de_programare
[15]. Radar, https://ro.wikipedia.org/wiki/RADAR
[16]. Eric Elliott, Programming JavaScript Applications
[17]. O’Reilly(2002). HTTP: The Definitive Guide
[18]. www.arduino.cc

Similar Posts