Lucrare de Licență [629762]

Universitatea Politehnica din București
Facultatea de Automatică și Calculatoare
Departamentul de Automatică și Informatică Industrială

Lucrare de Licență
Sistem pentru evitarea pericolelor în mediile
industriale

w w w . a c s . p u b . r o
Coordonator :
Conferenț iar Dr. Ing.
Mihnea Moisescu

Student: [anonimizat]:
Automatică și
Informatică Industrială

Grupa: 343A3

1 Cuprins
I. Introducere ………………………….. ………………………….. ………………………….. …………………………. 2
Obiectivele și scopul lucrării de licență ………………………….. ………………………….. ……….. 2 I.I
Prezentarea domeniului ………………………….. ………………………….. ………………………….. …. 3 I.II
Prezentarea pe scurt a capitolelor ………………………….. ………………………….. ………………… 4 I.III
II. Descrierea problemei abordate și a rezolvării propuse ………………………….. …………………… 6
II.I Descrierea problemei abordate ………………………….. ………………………….. …………………….. 6
II.II Descrierea rezolvării propuse ………………………….. ………………………….. …………………… 13
II.III Com paratie între sistemele disponibile pe piață și sistemul propus ………………………… 16
III. Selectarea soluțiilor tehnice și proiectarea algoritmului d e implementare …………………… 18
III.I Analiză asupra tehnologiilor și echipamentelor disponibile ………………………….. ………. 18
III.II Descrierea tehnologiilor software utilizate ………………………….. ………………………….. … 22
III.III Descrierea echipamentelor hardware utilizate ………………………….. ………………………. 42
IV. 4.Proiectarea sistemului embedded ………………………….. ………………………….. ……………….. 48
IV.I Proiectarea sistemului ………………………….. ………………………….. ………………………….. …. 48
IV.II Testare funcționalități ………………………….. ………………………….. ………………………….. … 49
V. Implementarea aplicației software ………………………….. ………………………….. ………………… 49
V.I Arhitec tura aplicației ………………………….. ………………………….. ………………………….. …… 49
V.II Implementarea aplicației ………………………….. ………………………….. …………………………. 51
V.III Testarea aplicației ………………………….. ………………………….. ………………………….. …….. 51
VI. Studiu de caz ………………………….. ………………………….. ………………………….. …………………. 55
VII. Concluzii ………………………….. ………………………….. ………………………….. ………………………. 65
VIII. Bibliografie ………………………….. ………………………….. ………………………….. ………………… 66

2 I. Introducere
Obiectivele și scopul lucrării de licență I.I
Această lucrare este c onstituită dintr -o aplicație mobile și un sistem embedded, în care
aplicabilitatea acestuia se poate regăsi în:
• mediile industriale,
• agricultură,
• în uz individual
În mediile industriale există o serie de pericole ce pot afecta muncitorii pr ezenți în cadrul
companiei. Cele mai frecvente accidente în aceast mediu sunt întâlnite din cauza unor cantități
de gaze ce pot prejudicia atât personalul, cât și întreg mediul de lucru. Acești factori pot
conduce la explozii sau afecțiuni respiratorii a le muncitorilor.
Scopul acestei lucrări este de a oferi unei persoane un sistem de monitorizare a gazelor
periculoase ce pot conduce la afecțiuni respiratorii ale acestuia și de asemenea la monitorizare
mediului din jurul său pentru a detecta un pericol pe care acesta nu îl poate simți. Pentru mediile
industriale foarte greu accesibile și cu un grad ridicat de pericol sistemul este capabil să alerteze
un lider de echipă despre starea angajatului dintr -un mediu pentru a evita un accident ce ar fi pe
cale s ă se producă.
În mediile industriale se întâlnesc sisteme de monitorizare la nivel de companie sau
încăpere, dar majoritatea nu vin cu un sistem de protecție pentru fiecare angajator, ci doar cu
echipamentul necesar pentru protejarea lui de pericole exte rioare.
Un obiectiv al lurării de față este acela de a da o mai mare siguranță angajaților prin
emiterea semnalelor de alarmă în cazul detectării unui anumit pericol din jurul lor.
De asemenea ca obiectiv al lucrării este acela de creare a unui mediu de pl anificare în
companie unde angajații își pot vedea activitățile ulterioare, dar își pot vedea și un raport bazat
pe ultimele lor înregistrări din mediul de lucru. Liderul de echipă poate obține și verfica

3 înregistrările membrilor din echipă și poate lua m ăsuri pentru prevenirea și înlăturarea
accidentelor ce sunt pe cale să se producă (de exemplu:creșterea preponderentă a cantității de
CO2).
Un alt obiectiv al proiectului este de a oferi utilizatorului o experiență cât mai bună și o
interfață cât mai simpl ă pentru utilizarea functionalităților sistemului.
Prezentarea domeniului I.II
Industria reprezintă unul din cei mai importanți factori în ceea ce privește procesul de
producție al tutoror lucrurilor din jurul nostru ce au la bază un proces tehnologic. De ast fel prin
acest termen putem descrie industria ca fiind un mediu în care se execută o suită de procese
tehnologice ce au ca scop producția de materiale. Industria se clasifică în două mari categorii:
 industria ușoară
 industria grea
Industria ușoară se ocupă cu producerea mărfurilor, iar industria grea cu confecționarea
materialelor de producție și în unele cazuri și a echipamentelor folosite. Procesul implicat în
indus trie poartă numele de fabricare.
Industria se clasifică în mai multe modele și anume:
 industria metalurigică,
 industria de armament,
 industria textilă.
România prezintă o industrie foarte variată , ea înglobând toate tipuri le menționate mai
sus. Industria reprezintă un factor primordial în dezvoltarea economiei unei țări, d atorită acesteia
crește puterea economică a țării. Prin crearea de produse și distribuirea în ța ră și exportul
acestora , bugetul de dezvoltare crește mai mult și astfel apar o mulțime de factori de
modernizare.
Numărul de angajați prezenți în mediul industrial e ste foarte mare, chiar dacă în
majoritatea î nteprinderilor s -au adoptat mecanismele automate.

4 Industria petrolieră joacă un factor foarte important în cadrul fiecărei țări, doar în România
aceasta fiind estimată la sfârșitul anului 20 17 la 9 miliarde de euro, consumurile de combustibil
pe cap de locuitor fiind între 140 și 170 de litri. Consumul total pe an atingea circa 3 milioane de
tone de benzină și 4 milioane de tone de motorină.
În fiecare an în cadrul mediilor industriale s e emană o serie mare de gaze în urma
procesului de producție și de aceea se întâmplă o serie de foarte multe accidente, toate acesta
având loc în principal din cauza neglijenței și a nebăgări i în seamă a u nui anumit pericol ce poate
să le declanșeze.
În mediul industrial nu exis tă echipament pentru monitorizare mediului din jurul unui
utilizator , ci doar aparate de detectare pentru o încăpere de lucru. Se întâlnesc senzori de
incendiu sau senzori pentr u detectarea de gaze inflamabile.
Prezentarea pe scurt a capitolelor I.III
Această lu crare este structurată pe 7 capitole. Primul capitol este reprezentat de o
introducere în care se prezintă pe scurt conținutul lucrării, domeniul de aplicabilitate al
proiectului și o serie de funcționalități ce le poate aduce sistemul.
Capitolul II este împărțit în trei secțiuni ce își propun să descrie problema tratată dar și
rezolvarea propusă. Ultima secțiune din acest capitol este o analiză asupra sistemului propus și
alte dispozitive de pe piață.
În capitolul III sunt prezentate soluțiile tehnice ș i echipamentele potrivite pentru realizarea
sistemului dorit. Acest capitol cuprinde 3 secțiuni. În prima se prezintă tehnologiile și
echipamentele disponibile. Celelalte 2 secțiuni se axează pe echipamentele și tehnologiile
utilizate și au ca rol descrie rea acestora și mod ului de funcționare al acestora.
Capitolul IV are ca rol prezentarea modului de proiectare a sistemului embedded. Se
descriu arhitectura sistemului precum și pașii parcurși pentru proiectarea acestuia. Ultima
secțiune din capitol este m enită prezentării etapei de testare al acestuia. Putem preciza că aceasta
este realizarea unui procent de 50% din cadrul întregului sistem.

5 Implementarea aplicației software reprezintă realizarea a încă 50% din cadrul sistemului.
Această etapă este desc risă în capitolul 5. Rolul acestui capitol este de a descrie arhitectura
aplicației și de a descrie etapele implementării acesteia. Aplicația se va prezenta pe module,
aceasta fiind consituit ă din 2 module:
 Aplicație de tip server -side
 Aplicație mobile
La finalul parcurgerii etapelor de implementare are loc etapa de testare a aplicației.
În cadrul acestui capitol se află o secțiune specială denumită ”Testarea ansamblului
hardware software „ ce este menită să arate în procent de 100% funcționalitatea în tregului sistem
și a functionalitatiilor acestuia.
Capitolul VI reprezintă un studiu de caz în care se prezintă diverse funcționalități ale
sistemului.
Ultimul capitol este destinat bibliografiei și a resurselor folosite pentru documentare și
conceper ea acestui sistem.

6 II. Descrierea problemei abordate și a rezolvării propuse
II.I Descrierea problemei abordate
În mediul industrial și în toate mediile ce implică cantități mari de gaze și temperaturi ce
pot ajunge peste limita suportată de om se pot întâmpla o serie de accidente ce pot avea
consecințe grave. De aceea am ales să adaug un tip nou de sistem înglobând tehnologii software
cu tehnologii hardware. Am introdus un nou model de bussines prin care un lider de echipă este
alarmat pe telefonul lu i dacă un angajat din cadrul echipei lui este în pericol. Datorită faptului că
pot apărea probleme de conexiuni prin mediul Internet am adapotat încă două tipuri de alarme.
Unul din aceste tipuri este reprezentat de o alarmă de tip sms și încă o alarmă mul tiplă ce se
manifestă la utilizatorul în pericol. Această alarmă multiplă este declanșată de dispozitiv
continuu până la reglarea nivelelor de gaz, temperatură și calitatea aerului la nivele normale. Al
doilea tip de alarmă se manifestă pe telefonul mobil, acesta monitorizând în timp real nivele de
gaz, temperatură și calitatea aerului.
Aplicațiile mobile au o medie de folosire foarte mare și de aceea s -a ales ca aplicația de tip
client să fie de tip mobile. Pentru oferirea disponibilității pe cele mai folo site platforme și anume
Android și iOS am optat pentru o aplicație de tip hybrid. Se mai poate adăuga și funcționalitatea
pe dispozitivele de tip Windows Phone.
În cadrul dezvoltării software există o suită de modele de dezoltare printre care putem
enum era:
 Modelul cascadă
Acest model se remarcă prin faptul că dezvoltarea, evoluția și validarea sunt reprezentate
separat prin intermediul unor faze precum proiectarea software, implementare, testare, etc.

7

Figura 2.1.1 Modelul Cascada
Aceas tă metodă mai este intitulată și model secvențial. Observând modelul de mai sus și
tranzițiile asociate deducem că pentru trecerea dintr -o stare în altă poate fi nevoie de o decizie
managerială. Această metodă este aleasă când complexitatea proiectului est e una mică. Un
dezavantaj al acestei metode e că cerințele trebuiesc construite foarte atent până în etapa
implementării și greșelile nu sunt permise, deoarce cerințele nu mai pot fi modificate după
publicarea cerințelor finale.
 Dezvoltarea evolutivă
Această metodă se bazează pe un prototip inițial ce respectă o serie de cerințe minime. Acesta
este mai apoi arătat clientului ca mai apoi să se continue dezvoltarea acestuia pe baza noilor
cerințe apărute.

Figura 2.1.2 Dezvoltare evolutiva

8 Rolul proto tiplui este de a ajuta clientul în buna definire a cerințelor. Avantajul acestei
metode este întreținerea redusă, deoarece validările prototipului au loc în decursul dezvoltării.
Ca dezavantaj putem enumera faptul că pot apărea distoriuni între client și e chipa de dezvoltare
datorită unui timp mai îndelungat de dezvoltare.
În cadrul sistemului am folosit dezvoltarea evolutivă, deoarece am avut nevoie de o serie
de validări pe parcursul dezvoltării și cerințele au fost progresive. Am început prin definirea
cerințelor din etapa de analiză. Luând în calcul diverse tipuri de industrie precum industria
chimică, petrolieră, construcțiilor de mașini am concluzionat că în cadrul acestor medii de lucru
nu există un sistem ce poate monitoriza mediul de lucru al fiec ărui angajator. Deoarece în aceste
industrii se utilizează numeroase procedee de prelucrare și transformare a substanțelor chimice
gazoase, lichide și solide ce pot genera amestecuri explozive. În toate mediile de producție apare
pericolul de explozie.
În cadrul depozitelor de deșeuri și construcții se pot produce gaze inflamabile ce pot
proveni din tuneluri, găuri formate ce sunt slab aerisite. În agricultură se utilizează instalații de
recuperare a biogazului și în cadrul săpăturilor pot apărea amestecu ri explozive.
Ca exemplu de incident datorat unor scurgeri nedetectate de gaze putem enumera
explozia din anul 2014 din Kaohsiung, Taiwan. Trezeci și doi de oameni au fost uciși și trei sute
douzeci și unu au fost răniți datorită unor scurgeri de gaz pe scară largă de la niște conducte de
gaz ale unor fabrici petrochimice.
Cerința fundamentală a proiectului este o bună monitorizare a acestor accidente și
informarea în cel mai scurt timp a responsabililor.
O proastă monitorizare poate duce la pierdere a unor vieți omenești, dar și la pierderi
materiale de ordinul milioanelor de euro. În cadrul unui accident pe scară largă se adăuga și
gradul de poluare foarte ridicat și cantitățile de gaze poluante ce ajung în atmosferă.
Aplicația prezintă 2 moduri de funcționare pentru diverse tipuri de utilizatori. Utilizatorii
sunt de 3 tipuri:
 Lider de echipă în cadrul unei companii,

9
 Muncitor în cadrul unei companii,
 O persoană ce folosește sistemul pentru uz individual.
Din etapa de analiză putem observa din diagrama de mai jos modul de funcționare al
sistemului și fazele de execuție în cazul în care sistemul e ste folosit în cadrul unei companii:

Figura 2.1.3 Diagrama statemachine pentru folosire in companie
În cazul folosirii individuale diagrama se reduce la următoarea :

Figura 2.1.4 Diagrama statemachine pentru folosirea individuala

10
Mai jos pute m vizualiza diagrama de activități în funcț ie de tipul de utilizator.
Figura 2.1.5 Diagrama de activitati pentru aplicatia mobile
Mai sus s -au detaliat detal ile proiectării și cerințele aferente. În vederea proiectării
sistemului trebuie luate în calcul următoarele aspecte necesare și anume:
 server pentru crearea serviciilor aplicației și emiterea notificarilor,
 cloud pentru deploy server,
 senzorii pentru de tectarea nivelelor anumitor gaze,
 senzor pentru stabilirea conexiunii bluetooth cu telefonul,
 microcontroller pentru preluarea datelor de la senzori,
 aplicație hybrid.
Server -ul are mai multe roluri, principalele fiind de preluarea a datelor, salvarea aces tora,
oferirea unei serii de servicii precum drepturi, push notifications, serviciu de sms -uri.

11 Acesta oferă și serviciul de autentificare pentru utilizatori, având implementată o politică
de securitate foarte minuțioasă. Toate parolele utilizatorilor su nt criptate printr -un algoritm cu
cheie privată. Bază de date este o bază NoSql, iar la prima vedere aceasta nu pare una foarte
accesibilă. Accesul la baza de date este restricționat de asemenea printr -un username și o parolă.
Pentru a nu pune în pericol e xecuția servicilor pentru un număr mare de utilizatori server -ul
prelucrează fiecare serviciu pe câte un fir paralel, acestea fiind executate asincron. În cazul unui
număr mare de utilizatori aceasta este opțiunea optimă pentru realizarea tutoror operațiil or într –
un mod corect și fără erori de execuție. La fiecare eroare de execuție utilizatorul va primi în
aplicația mobile un mesaj de atenționare că operația selectată nu a putut fi executată cu succes.
Baza de date este de tip NoSql în care forma de organi zare a datelor este json -ul.
Formatul json este un format ușor de interschimbare a datelor având ca proprietate
primordială faptul că este ușor de citit. Un alt factor care îl face foarte des utilizat în cadrul
aplicațiilor software este acela că se tran smite foarte ușor în rețea prin intermediul protocoalelor
http și https acesta din urmă venind și cu o parte de securitate prin intermediul certificatelor ssl.
Transmiterea prin rețea a unui json poartă numele de serializare, acesta fiind un procedeu în ca re
json-ul transmis este convertit într -un șir de biți pentru o transmitere mai rapidă. Formatul json
reprezintă un subset al limbajului Javascript.[2][3]
Aplicația hybrid poate rula pe orice platformă mobile. Disponibilitatea și timpul de
implementare s unt factorii existențiali în luarea deciziei. Platformele vizate sunt Android și iOS.

12

Figura 2.1.6 Cod portabil interpretat [4]
Întotdeauna un client va prefera un produs ce constă în costuri reduse de dezvoltare,
dezvoltare rapidă și mentenanță ușoa ră. În proporție de 80% toate librăriile pentru aplicațiile
hybrid sunt gratuite, doar anumite companii își dezvoltă funcționalități proprii ce sunt mai apoi
scoase la vânzare contra unui anumit preț. Pentru programatori aplicațiile hybrid reprezintă un
factor extrem de căutat deoarece prin intermediul acestui tip de aplicații au o libertate mai mare
de a înțelege modul de funcționare al anumitor funcționalități și posibilitatea de a îmbina
tehnologia web cu tehnologia mobile. Datorită acestor factori apare o creștere profesională
foarte mare, în principiu datorită controlului complet asupra codului.
În comparație cu aplicațiile dezvoltate în cod nativ este adevărat că aplicațiile hybrid au
performanțe mai slabe deoarece odată cu apariția tehnologiilor noi este nevoie de anumiți
dezvoltatori care să dezvolte respectiva funcționalitate. Se poate utiliza codul nativ java în
interiorul plugin -urilor ce conferă funcționalitățile native.
Cele mai populare framework -uri pentru dezvoltarea aplicațiilor native sun t PhoneGap,
Cordova și React, acesta din urmă fiind dezvoltat de Facebook.
În cazul lucrării de față luând în calcul că aplicația nu va folosi numeroase funcționalități
ale telefonului s -a ales ca aceasta să fie hybrid pentru o cât mai bună optimizare. Având în
vedere că durata de viață a bateriilor smartphone -urilor nu rezistă în proporție mai mult de o zi

13 aplicația de tip hybrid a fost din nou de luat în calcul. Dorindu -se costuri de dezvoltare reduse
acest tip de aplicație s -a clasat din nou pe primul loc în luarea deciziei.
Luând în calcul numărul de accidente în mediile industrile datorită neglijenței muncitorilor
s-a dorit că se creeze o aplicație care să ducă la protecția sănătății lor . Infecțiile pulmonare sunt
un factor foarte greu de tratat ce pot duce la complicații severe.
Luând că exemplu interiorul unei rafinării petroliere în care se prestează muncă pentru
obținerea unor produse diverse prin prelucrarea țițeiului. Cantitățile de gaz care se degaja pot
duce la un num ăr foarte ridicat de p ericolole , cele mai însemnate fiind infecția pulmonară,
intoxicarea sau chiar un incendiu devastator. Sistemele de alarmă din mediul industrial au ca
rază de detecție interiorul unei unei încăperi de obicei largă și se declanșează în cazul unui
pericol afl at în această arie. Un angajat dintr -un mediu restrâns la care senzorii de alarmă nu pot
detecta un eventual pericol, este întotdeauna într -o zonă foarte mare de risc.
Sistemul trebuie să aibă capabilitatea să se adapteze atât în mediul industrial cât și în alt
mediu în care pot aprea diverse pericole datorită lipsei umidității aerului sau temperaturi foarte
mari ce pot duce la complicații foarte serioase în cazul sănătății unei persoane. Monoxidul de
carbon este un pericol foarte mare datorită fapt ului c ă după cum este intitulat și anume ”ucigaș
tăcut„ acesta se face foarte repede resimțit de către o persoană și poate duce de la respirație grea
până la pierderea cunostiintei. În foarte mare parte din cazuri când s -a ajuns la pierderea
cunoștinței un număr mic de persoane au reușit să fie savlate de medici. De aceea o avertizare
este absolut necesară pentru luarea de măsuri în vederea luării măsurilor de siguranță.
II.II Descrierea rezolvă rii propuse
După cum s -a enumerat în cadrul prezentării probleme i aplicația de tip client va fi de tip
hybrid datorită functionalitatiilor ce nu influențează senzorii telefonului într -un procent foarte
mare.
În cadrul sistemului embedded acesta va fi format dintr -un microcontroller ce va avea
atașat un număr de senzor i ce vor avea capacitatea de a măsură diverși parametrii. Sistemul
embedded va trimite la aplicația hybrid prin intermediul unei conexiuni bluetooth parametrii

14
măsurați din mediul în care utilizatorul se află. Dacă parametrii depășesc valorile normale se v a
emite un semnal de alarmă pe ambele dispozitive, acestea fiind sistemul embedded și telefonul
mobil. În cazul companiilor se va trimite alarmă și către responsabilul de echipă pentru
efectuarea de măsuri de intervenție pentru îndepărtarea pericolului și salvarea persoanei aflate în
pericol.
Schema de principiu a sistemului este de următoarea formă:

Conexiunea bluetooth este foarte populară în rândul utilizatorilor de dispozitive mobile,
dar și în cadrul laptopurilor și chiar și al imprimantelor. Acesta a avut parte de o dezvoltare
progresivă mai ales pe baza vitezei de transfer a fișierelor între dispozitive. Acesta a fost
organizat pe versiuni și de fiecare data s -a încărcat ca dispozitivele de generație nouă să fie
echipate cu ultima versiune apăru tă a tehnlologiei bluetooth.

15
În diagrama de mai jos se poate observă dezvoltarea tehnologiei de tip bluetooth,în
decursul anilor:

Figura 2.2.1 Ascensiunea bluetooth [5]
Trecerea de la versiunea 2 la versiunea 3 a avut un impact semnificativ. Un dezavantaj l -a
reprezentat faptul că durată de dezvoltare a fost îndelungată.
Senzorii conectaț i la microcontroller vor avea c a rol monitorizarea nivelului de:
 Metan
 CO(mooxid de carbon)
 Gaz
 CO2(dioxid de carbon)
 NH3(amoniac)
 Temperatură
 Umiditat ea aerului
 Calitate a aerului
Fiecare dintre acești parametri, în cantități peste limită constituie un pericol pentru o
perosana aflată în decursul parcurgerii unei activități.
Fiecare alarmă ce va fi emisă va fi stocată în cadrul unei baze de date ce va reține toate
datele utilizatorilor.

16
Se vor putea emite sfaturi în funcție de parametrii măsurați, pentru ca utilizatorii să poată
înțelege valorile înregistrate fără mari dificultăți. Aplicația trebuie să fie cu o interfață
prietenoasă și cât mai ușor de accesat în condiții mai puțin potrivnice.
În cadrul unei echipe se vor putea emite activități pentru membrii grupului pe o anumită
perioadă, aceste activității făcând parte dintr -o planificare întocmită de liderul de echipă pentru o
perioadă selectat ă.
Alimentarea sistemul se va face prin intermediul bateriilor. Acesta va emite un semnal de
alarmă când bateria va fi aproape de descărcare.
Prin intermediul aplicației mobile se vor emite alarme de tip push notification, sms,
vibrație, blitz pentru a lertarea utilizatorului din altă sursă dar și pentru informarea liderului de
echipă.
II.III Comparatie între sistemele disponibile pe piață și sistemul propus
Sistemele de pe piață vin dotate la rândul lor cu o serie de funcționalități în care se pun e
accent în principiu pe reglarea automată. În cadrul locațiilor unde se execută procese industriale
este preferat ca mașinile și instalațiile să lucreze automat. Acest lucru are ca scop protejarea
forței de muncă de activități ce ar putea duce la accident e datorită monotoniei sau oboselii
adunate. În mare parte dispozitivele de monitorizare de gas din uzine și fabrici nu lucrează la
nivel de persoană ci la nivel de încăpere de desfășurare a activității.
Exemple de dispozitive:

Figura 2.3.1 Detector de monoxid de
carbon si gaz metan [6]

17
Dispozitivul de mai sus prezintă o alimentare ce necesită 220V pentru funcționare.Acesta emite
o alarmă puternică la fiecare 15 minute în cazul detecției unor nivele de gaz și metan peste
limitele admisibile.Ca dezavantaj față de sistemul propus acesta nu poate fi transportat de o
persoană datorită alimentări și vine cu un număr mai mic de funcționalități.

Figura 2.3.2 Detector de gaz metan si monoxid de carbon [7]
Detectorul de gaz metan și monizid de carbon din fi gura 2.3.2 oferă o valvă de aluminiu
sau alamă ce poate avea racorduri între 3/8„ -8„.Acesta vine cu o îmbunătățire deoarece poate
fin alimentat atât la 230V cât și la 12V

Figura 2.3.3 Detector de gaz si monoxid de carbon cu alimentare pe baterii

18 III. Selectarea soluțiilor tehnice și proiectarea algoritmului de
implementare

III.I Analiză asupra tehnologiilor și echipamentelor disponibile
Acest proiect reprezentând un sistem a fost nevoie de crearea a 2 componente cu
specifice diferite:
 componenta software
 componenta hardware
Având în vedere că aplicația software rulează pe un device, se poate consideră că întreg
sistemul reprezintă un ansamblu hardware.
Începând mai întâi cu dispozitivul hardware am ales ca acesta să fie un sistem embedded
datorită faptului că aceste tipuri de sisteme se potrivesc foarte bine atuncti când cerințele sunt
bine stabilite încă din etapa de proiectare. Un alt motiv pentru alegerea acestui tip de sistem a
fost datorită portbabilitatii, costului redus și datorită că perturbațiile din jur, fie magnetice sau
electrice nu influențează transferul de date.
Microcontroller -ul Arduino Uno a fost opțiunea aleasă,deoarece acesta vine integrat cu un
mediu de dezvoltare integrat,ce include suport pentru diverse limbaje de programare precum
C++, C, Java. Poate fi programat cu orice limbaj de programare dacă avem un compilator ce
poate să transforme co dul sursă în cod binar. Acesta reprezintă un proiect open source și
costurile sunt reduse. Acesta se găsește sub mai multe forme. Varianta aleasă pentru proiect este
Arduino Genuino Uno.
Altă variantă disponbila a fost shield -urile Raspbery Pi. Acest sis tem este folosit de obicei
împreună cu un sistem de operare Linux. Acesta are abilitatea de a rula mai multe programe, în
timp ce Arduino poate să ruleze un singur program într -o buclă infinită. Spre deosebire de
Arduino , acesta este mai greu de utilizat. Este folosit când se dorește să facă multiple task -uri în

19
paralel,sau calcule extrem de complicate. Față de Arduino acesta prezintă o putere de procesare
mult mai mare și o memorie extinsă.

Figura 3.1.1 Arduino Genuino Uno

Figu ra 3.1.2 Sistem Embeded Raspbery pi
Arduino prezintă 3 zone de memorie:
 memoria flash,
 SRAM,
 EEPROM.
Memoria flash și EEPROM sunt ne -volatile, asta însemnând că informația este ținută în
memorie și după oprirea alimentării sistemului. SRAM este volatilă și este ștearsă automat la
oprirea alimentării.

20
Pentru conexiunea bluetooth am ales modulul HC -05. Acesta poate fi folosit fie ca master
fie ca slave și deține o memorie flash de 8Mbit. Este un modul de preț mic și poate funcț iona
atât la 3.3V cât și la 5V.

Figura 3.1.3 HC -05 Modul Bluetooth

Acest modul s -a adaptat foarte bine cerințelor de a realiza o conexiune bluetooth serială
pentru montitorizare în timp real a paramentrilor, acesta putând funcționa la un Baud Rate egal
cu 9600.
Având în ve dere că unul din scopurile proiectului a fost ca acesta să fie low cost și să
satisfacă monitorizarea în timp real a parametrilor și valori cât mai apropiate de cele reale cu o
marjă de eroare foarte mică,am ales senzori din clasa MQ pentru monitorizare ga zelor din mediul
ambiant. Aceștia prezintă un răspuns rapid, au o sensibilitate mare și o rază mare de acțiune,
fiind foarte ușor de conectat.

Figura 3.1.4 Senzori MQ [11]
Aplicația software este în totalitate scrisă în cod Javascript. Aceasta folosește o serie de
framework -uri cum ar fi AngularJS, IonicFramework, PhoneGap, Cordova. Folosind AngularJS

21 am putut să integrez în cadrul proiectul concepul MVC(Model -View -Controller). Prin
intermediul acestuia am reușit să structurez aplicația în funcție de funcți onalitate.
View -urile aplicației au fost realizate folosind HTML și CSS, un mare rol asupra lor având
platforma de ionic care vine cu cu o adaptare a designului aplicației pentru mobil. Aceasta ține
cont de toate aspectele unei aplicații mobile cum ar fi:
 să fie responsive,
 bară de stare,
 alerte,
 invocare tastatură.
Accesarea elementelor native s -a făcut prin intermediul ngCordova ce reprezintă un
wrapper scris în AngularJS ce poate invocă funcționalitățile native ale telefonului cum ar fi
GPS, Finge r Scan, Cameră, etc.
Pentru realizarea aplicației mobile o altă variantă ar fi fost ReactJS.Acesta este un
framework dezvoltat de Facebook pentru aplicațiile de tip hybrid. ReactJS față de Ionic nu se
poate adapta la toate platformele. Acesta nu funcțion ează după principiul ” Scri o dată…rulează
peste tot„ .
Pentru aplicația de server -side am ales să folosesc tot limbajul Javascript. Cea mai bună
variantă a reprezentat -o NodeJS. Acesta folo sește ca și tool pentru librări npm care este foarte
extins și ajută în dezvoltarea foarte rapidă a aplicațiilor. Pentru aplicațiile de acest tip există o
suită de medii de cloud în care se poate face publicarea aplicației. Cele mai cunoscute exemple
sunt reprezentate de Heroku și Openshift dezvoltat de Redhat, acest a din urmă fiind un server
bazat pe Linux ce permite conectarea și modificarea fișierelor de pe server. Conectarea se face
prin intermediul unei conexiuni de tip ssh.
Am dorit să realizez o conexiune cu o bază de date NoSql, și față de Java și C#, NodeJ s
prezintă un driver de conexiune la baza de date ce permite executarea mult mai rapidă a query –
urilor.

22
Datorită faptului că predominantă este tehnologia Javascript am ales să folosesc MongoDb
ca bază de date datorită faptului că formatul de lucru era re prezentat de Json.
MongoDb nu stochează datele în tabele. Acesta stochează datele sub formă de documente
cu format JSON. Este reprezentat prin scheme dinamice în care se reprezintă tipul câmpurilor,
indecși prezenți, etc. Limbajul de interogare este r eprezentat tot de query -uri și î mbină tehnica
de la SQL cu C++.
III.II Descrierea tehnologiilor software utilizate
Aplicația software este scrisă în limbajul Javascript, acest a având o serie numeroasă de
framework -uri. Acesta are o ser ie de proprietăți bine definite , printre care putem enumera
evenimenele, metodele de scriere ala documentelor html, crearea de servicii web, crearea de
cookie -uri în interiorul browserului.[12]
Scripturile javascript se termin ă cu extensia .js și se pot i nsera oriunde în corpul
documentului html. Este de preferat să se i nsereze în interiorul tagurilor <head></head>. Prin
inserarea în această zonă scripturile vor fi încărcate până c a pagină să se încarce și va putea oferi
o funcționalitate ulterioară destul de rapidă.
Exemplu:

Figura3.2.1 Inserare script in interiorul header -ului html

23
JavaScript oferă interactivitate în paginile web prin intermediul acestuia putând atribui
acțiuni la diverse elemente din pagină web cum ar fi butoane, texte, paragrafe, secțiuni.
Folosi nd Javascript browser -ul reține în memorie pagină web ca un arbore de obiecte, iar
prin intermediul scripturilor se poate citi sau scrie în document. Arborele se numește Document
Object model sau DOM. Pentru manipularea unui element din pagină trebuie să a vem o referință
la elementul respectiv. Se pot obține elementele prin următoarele metode:
 prin ident ificarea după id -ul elementului
Metodă folosită: document.getElementById()
 prin identificarea după numele elementului
Metodă folosită: document.getElem entByName()
 prin identificarea după tag -ul documentului
Metodă folosită: document.getElementsByTagName()

Figura 3.2.2 JavaScript Html DOM [13]
La fel ca și în celelalte limbaje de programare se pot trata excepțiile. Javascript prezintă
clasa Error ce poate fi folosită pentru crearea diferitelor tipuri de excepții. Pentru a înlocui

24
blocurile try -catch din Java acesta trebuie să folosească instrucțiuni de condiționare împreună cu
instrucțiunea throw.
Exemplu:

Figura 3.2.3 Mod de fol osire a exceptiilor in JavaScript

Acesta este unul din cele mai populare limbaje de programare având o rată de utilizare de
peste 90% în cadrul aplicațiilor de tip website.
Limbajul Javascript se bucură de asemenea de o documentație bogată dar și de pe rsoane
care vor să îl extindă la un alt nivel prin introducerea de noi framework -uri adaptate noilor
cerințe.
Exemple de framework -uri:
 AngularJS
 Jquery
 BackboneJS
 NodeJS
 ExpressJS
Acesta reprezintă un limbaj interpretat. Execuția Javascript este sta ns legată de un
interpretor existent în cadrul browser -ului.
Prin intermediul Javascript se pot crea atât aplicații de tip client -side cât și server -side.
Acesta permite crearea de servicii web prin intermediul Ajax. Acesta permite trimiterea de cereri
către server prin itermediul protocolului http.

25
Cum am enumerat mai sus, în momentul actual JavaScript s -a extins printr -o serie de
framework -uri ce implementează o suita de modele existențe în cadrul altor limbaje de
programare.
Unul din cele mai folosi te framework -uri în cadrul aplicațiilor web sau hybrid este
AngularJS. Acesta este dezvoltat de compania Google.
Scopul acestui framework a fost de a realiza conceptul de Model -View -Controller.

Figura 3.2.4 Model -View -Controller
Acesta reprez intă un model arhitectural în ingineria software. Acesta are împrumutate
principii din logica Java. Acesta are succes datorită izolării elementelor ce definesc business -ul
față de alte elemente ale aplicației, interfață cu utilizatorul fiind cea mai import antă de evitat.
Folosind acest principiu va rezulta o aplicație cu un aspect vizual foarte ușor de modificat.
Bussines -ul poate fi și el modificat la fel de ușor. Celelalte nivele nu sunt modificate la
modificarea unui alt nivel.
Angular vine definit cu un set foarte extins de componente pentru realizarea de diverse
funcționalități.

26 Modelul reprezintă baza de cunoștințe. Acesta poate fi reprezentat de un singur obiect sau
de către o structură de obiecte. Modelul este reprezentat de HTML. Motivul pentru c are a apărut
acest framework a fost pentru a aduce în paginile web funcționalitatea de data -binding.
Controller -ul poate accesa diferite camuri din interiorul view -ul prin intermediul
modelului. Asta înseamnă că pentru actualizarea unei pagini web nu mai este nevoie de o
reîmprospătare datorită faptului că modelul este actulizat la fiecare schimbare ce survine în
interiorul controller -ului. Controller -ul face legătura cu view -ul prin intermediu a două
elemente. Aceste sunt reprezentate de scope și rootSco pe. Prin adăugare de proprietăți în
interiorul controller -ului și atribuindu -le scope -lui oferim acces view -ului către proprietatea
adăugată.
Scope -ul reprezintă un obiect ce conține proprietăți și metode ce sunt accesibile și în
interiorul view -ului, da r și în interiorul controller -ului.
În cadrul unei aplicații ce conține AngularJs vom avea de fiecare dată un rootScope, din
nume înțelegându -se că reprezintă un scope rădăcină. Chiar asta și este. Prin intermediul lui
orice scope intitializat în cadrul unui controller poate fi mai apoi accesat în interiorul altui
controller. Acesta se creează prin intermediul directivei ng-app.
AngularJS permite crearea de aplicații de tip SinglePage Application. Există un singur
fișier de tip html în care se încărca v iew-urile dorite la anumite acțiuni ale utilizatorului precum:
 redirectarea la altă pagină
 schimbarea unei secțiuni
 afișarea unui mesaj de eroare
Prin intermediul acestui framework ne bucurăm de o serie de funcționalități precum:
• Servicii
Angu lar vine predefinit cu un serviciu întâlnit sub formă de $http pentru crearea de cereri
de tim XMLHttpRequest.

27
Acestea reprezintă obiecte de tip singleton și au proprietatea că sunt inițializate doar o
singură dată în aplicație
• Directive
Prin int ermediul directivelor un dezvoltator ce folosește AngularJS își poate crea propriile
lui componente ce pot fi mai apoi reutilizate. Poate avea loc parametrizarea lor în funcție de
diferite obiecte de tip scope. Se pot crea tag -uri speciale HTML și widget -uri speciale pentru
diverse secțiuni din aplicație. Angular vine predefinit cu o serie de directive precum: ngBind ,
ngModel , ngStorage .
• Dependency injection
Această component are rolul de a ajuta dezvoltatorul în a înțelege, crea și testa aplicațiile
foarte ușor. Componentele precum directivele, filtrele sau serviciile vor fi injectate prin
intermediul unei metode asemănătoare unui constructor. Pentru injectarea unei anumite
componente se folosește $inject .

Figura 3.2.7 Dependency inject ion

28
Ca exemplu putem da următoarea situaț ie: Dorim s ă inject ăm în interiorul u nui controller
variabila scope ș i directiva license.
Secțiunea de cod va fi de ur mătoarea form ă:

Figura 3.2.6 Injecarea de componente î n controller
În cazul validării de câm puri Angular vine cu 3 componente pentru preluarea erorilor de pe
un câmp. Acestea sunt:
 $dirty ->ne arată că valoarea câmpului s -a schimbat
 $invalid ->ne arată că ce s -a introdus este invalid
 $error ->eroare survenită în momentul introducerii
Aceste com ponente sunt utilizate în special în crearea forumularelor ce trebuie să conțină
validări pentru câmpuri de tip email, număr de telefon, data, etc.
Un alt concept interesant folosit în cadrul AngularJS este legat de provideri. Aceștia sunt
componente ce pot fi configurate în interiorul aplicației. Aceștia pot fi paramtrizati cu diverse
opțiuni.
Exemple:
 $routeProviderService → prin intermediul acestuia se setează configurația adreselor
prezente în cadrul aplicației. Permite asocierea unui controller cu un anumit view.
Expresiile AngularJS au mai multe forme și permit crearea lor prin intermediul
directivelor.

29
Exemple:
 3+4
 X+y
 User.token
 Days[index]
 <p title="{{ title }}" >{{ title }} </p>

Diagrama de mai jos va pune în vedere toate conceptele din interiorul acestui framework
și pe baza acesteia se va alcătui o serie de avantaje și dezavantaje ce intervin în folosirea acestui
framework.

Figura 3.2.7 Componente si concepte AngularJS [14]

30
În prezent exist ă 2 versiuni ale acestui framework, cea mai recent î fiind vers iunea 2.
Angular 2 vine cu un concept inedit, acesta folosind Typescript. TypeScript reprezintă un
superset al limbajului JavaScript. Cu acesta se poate construi un software mult mai robost, cu o
tratare mult mai bună a excepțiilor, având puterea de a induce aplicațiilor conceptul de Cross
Platform. Acest concept este valabil și în cadrul proiectului, aplicația fiind disponibilă pe mai
multe platforme.
Angular 2 randeaza mult mai rapid view -urile pe mobil, acesta fiind unul din motivele
pentru care s -a ales această tehnologie. Lucrează foarte bine cu EcmaScript și alte limbaje ce se
pot compila cu JavaScript. Ca dezevantaj se poate enumera faptul că este un framework nou și
nu se bucură momentan de un suport foarte mare din partea comunității online. Prin intermediul
compilatorului codul typescript va fi convertit în cod javascript. Se folosesc o mulțime de
componente, unele dintre ele fiind foarte asemănătoare cu cele prezente în cadrul limbajulu i
Java. Una din aceste componente este reprezentată de adnotări, acestea permițând definirea de
elemente din cadrul proiectului cum ar fi:
 Componente → @Component
 view -uri → @View Avantaje AngularJS Dezavantaje AngularJS
Avantaje AngularJS Dezavantaje AngularJS
Dependency injection(separarea bussines -ului de
partea tehnica a aplicaț iei) Aplicaț iile nu sunt securizate
Creare funcționalității complexe prin cod puț in Securitatea aplicației trebuie menț inută de pe server
Foarte uș or de testat Daca JavaScript este oprit în browser se va afiș a
doar pagina basic
Formare de componente reutilizabile Timp mediu de învățare ș i acomodare cu
conceptele

31 Refolosirea de componente în cadrul altei componente se face prin interm ediul import.
Exemplu : import { Something } from "angular2/core" ;

Pentru intalarea pachetelor în cadrul unei aplicaț ii ce prezint ă typescript se foloseș te
modulul npm.
Dependency injection menț ine instantele servici ilor ș i poate fi creat folosind un p rovider,
aceasta fiind calea spre crearea unui serviciu. Se pot î nregistra servici ile mai apoi folosind
injectori.[16]
Ionic framework reprezintă un proiect open -source pentru dezvoltarea aplicațiilor de tip
hybrid, oferind servicii și componente bazate p e tehnologii web. Este contruit după principiul
AngularJS și Apache Cordova. Acesta poate fi distribuit în magazinele de aplicații, putând oferii
și funcționalități native în cadrul aplicațiilor. Ionic vine cu o serie de componente foarte
puternice, dezvol tatorul putând crea u n proiect doar printr -o simplă comandă. Cu ajutorul acestui
framework se pot crea aplicații atât Android cât și iOS. Versiunea a doua de Ionic vine cu suport
pentru crearea aplicațiilor pentru sistemul de operare Windows 10.
Ca și per formanță, prin intermediul AngularJS Ionic dispune de un factor de accelerare
hardware.
Ionic reprezintă un modul npm și de aceea necesită NodeJS pentru instalare. Toate
componentele sunt hostate pe un repository de Github. Prin inter mediul acestei a orici ne e dornic
poate să ajute la buna dezvoltare a acestor componente. Ionic vine construit cu o platformă
online ce permite diverse servicii precum autentificare, push notification. La un număr mai mare
al acestor cereri acestea se plătesc. În cadrul aceste i platforme se pot adaugă cheile pentru
funcționalitățile oferite de provideri precum Google, Facebook, Apple pentru obținerea unor
diverse funcționalități native.
Exemplu: Pentru pornirea servicililor de push notification avem nevoie de o cheie venită de
la FirebaseCloudMessaging pentru înregistrarea id -ului device -ului în cadrul platformei
Android, și de certificatele provenite de la Apple pentru activarea serviciului pe platforma iOS.
Platforma oferă servicii de autentificare de tip OAuth2. Prin OAuth2 utlizatorii se pot
înregistra în aplicație prin intermediul conturilor existent e de la Google, Facebook, Twitter, etc.

32 Platformele pe care rulează aplicația sunt reprezentate de Android, iOS respectiv Windows
Phone.
Android reprezintă un sistem de oper are pentru dispozitive mobile, acesta fiind dezvoltat
și menținut de compania Google. Acest a este conceput pe baza unui nucleu de tip Linux de aici
rezultând că dezvoltatorii au acces pentru a putea dezvolta funcționalități noi. Aceste
funcționalități pot fîn dezvoltate prin intermediul limbajului Java.
Ultima versiune a Android este versiunea 7.0 Nougat lansată de Google în anul 2016.
Oferind un set mare de funcționalități și o interfață foarte spectaculoasă și bine adaptată device –
urilor Android a cresc ut progresiv în vânzări de la o cotă de 9.6% cu 36% în decursul anului
2011.[17]
Despre sistemul de fișiere putem spune că este foarte prietenos deoarece Android oferă
acces asupra fișierelor. Acest sistem dorește să lase utilizatorilor o libertate foarte mare în
personalizarea dispozitivului achiziționat. Dispozitivele bazate pe sistemul de operare Android
se bucură de o popularitate mai mare în rândul utilizatorilor, aceștia putând alege dintr -o
diversitate mai mare de dispozitive.
Pentru dezvoltarea de aplicații acesta vine împreună cu IDE -ul Androi d Studio, ce oferă
funcționalităț ile necesare pentru implementarea de funcționalități și algoritmi. Acesta oferă
suport pentru interfață aplicației, acesta putând genera din interfață cod. Un alt element
semni ficativ al sistemului Android îl reprezintă emulatorul ce permite testarea aplicațiilor într –
un mediu ce se aseamănă foarte mult cu un dispozitiv de tip mobile. Acesta nu dispune de toate
funcționalităț ile unui dispozitiv mobil, de aceea multe dintre funcț ionalităț ile native ale unei
aplicații trebuiesc testate pe un dispozitiv fizic.
Mediu de dezvolt are Android mai cuprinde o compo nentă foarte importantă. Aceasta este
reprezentată de emulator care permite rularea unei aplicații într -un mediu ce imită un d ispozitiv
mobil. Acesta poate fi configurat în mai multe feluri imitând diverse tipuri de performanțe.
Versiunile de Android sunt disponibile și pentru emulator și se pot face teste pentru
funcționalităț ile implementate. Emulatorul nu suportă toate element ele unui device mobile.
Funcționalități precum geolocatie ,notificări de tip push, sau amprent ă nu pot fi testate în cadrul
emulatorului și necesită un dispozitiv fizic.
Android este un sistem de operare mobil foarte popular în rândul utilizatorilor atât pe
partea de achiziție a dispozitivelor cât și pe partea de interfață ce o aduce utilizatorului.

33

Figura 3.2.8 Distribuț ii Android în funcț ie de versiune
Rivalul sistemului de operare Android este reprezentat de iOS. Acesta reprezintă ca ș i
Android un sis tem de operare mobil, ce este dezvoltat și menț inut de firma Apple.
iOS este ca ș i Android, tot un sistem de operare bazat pe kernel Unix, dar este mai special
deoarece nu este open -source. Apple doreș te să restricț ioneze accesul utilizatorului la kernel -ul
sistemul ui de operare pentru a nu pune în pericol modul de funcț ionare. Aceast ă companie se
bazeaz ă foarte mult pe funcț ionalitatea produselor, de aici reieșind ș i pop ularitatea de care dau
parte în râ ndul utilizatorilor. Politica de securitate impusă de Apple este foarte strict ă dorind s ă
păstreze confindenț ialitatea utilizatorilor. Comap ania își produce singur ă piesele pentru
dispozitivele create.
iOS poate rula pe mai multe tipuri de dizpozitive precum smartphone -uri, tablete, sau
media playere portabi le. Pornind de la versiunea 5.0 a iOS pentru update -ul software -ului este
necesar iTunes. Ultima versiune anunț ată de Apple este versiunea 11. Sistemul de operare este
disponibi l în 40 de limbi și prezintă un nucleu de tip hybrid sau XNU. Se remarcă printr -o suită
de platforme precum:
 ARMv8 -A → pentru dispozitive ce ruleaz ă iOS 7 sau mai mult
 ARMv7 -A → pentru dispozitive ce ruleaz ă până la versiunea 10
 ARM -V6 → pentru dispozitive ce ruleaz ă iOS p ână la versiunea 4.2.1

34
Versiunea 10.3 vine cu un nou sistem de fisiere intitulat APFS(Apple File System).
Salvarea fisierelor va avea loc pe unităț i solid state, prin intermediul acestora micșorâ ndu-se
efectiv timpul de citire sau salvare a unui fisier. Un alt element de îmbunătățire îl reprezintă
criptarea, Apple do rind să ofere integritate datelor.
Pentru dezvoltarea aplicaț iilor ce ruleaz ă pe acest sistem de operare se folosesc o suit ă de
componente, pașii pentru punerea in Apple Store a aplicaț iei fiind un proces de durata ce trece
printr -o suit ă de etape. Un elem ent extrem de important î l reprezint ă partea de securitate pe care
Apple o ofer ă dezvoltatorilor p rin intermediul certificatelor și profilelor de provis ionare.
Cu acestea se ș tiu dezvoltatorul aplicației ș i se verific ă la fiecare pas identitatea acestuia.
Un alt element important î n dezvoltare este reprezentat de programul xcode care reprezintă
mediul de dezvoltare împreună cu sistemul de operare. Acesta stocheaz ă profilele de sec uritate
și ofer ă funcționalități de debugging, de monitoriza re a resurselor di spozitivului î n timp real.
Profilele de securitate sunt de 3 tipuri:
 Dezvoltare → cu acest profil se dezvolt ă funcționalități fără posibilitate de punere în
producț ie
 Adhoc → se ase amănă foarte mult cu profilul de producț ie doar c ă nu se preteaz ă la
punere a în mediul online.Se foloseș te pentru testarea unor funcționalități ce depind de
certificate
 Producț ie
Acesta comunic ă foarte bine cu sistemul de operare. Prin intermediu xCode se poate pune
efectiv aplicația î n mediul online. Pașii pentru dezvoltarea și punerea în producție a unei
aplicații se pot observa și î n diagrama de mai jos:
Figura 3.2.8 Pasi distributie iOS [18]

35 Pașii pentru distribuția unei aplicații sunt aceeași pentru orice tip de aplicație fie ea hybrid
sau nativă. La publicarea aplicației Ap ple are niște teste foarte succinte în ceea ce o privește și
de aceea aplicația trebuie să urmeze o serie de standarde impuse. Ceea ce este mai interesant
este că există efectiv o parte umană care testează aplicația la fiecare pas.
În concluzie , aceste sisteme de operare sunt foarte bine organizate și menținute de
companii le ce doresc să ofere o experiență cât mai plăcută.
Cordova reprezintă un framework pentru dezvoltarea aplicațiilor mobile. Acest frameowrk
dă programatorilor posibilitatea de a crea aplicații mobile prin intermediul HTML, CSS și
JavaScript cu posibilitatea funcționării pe mai multe sisteme de operare mobile precum Android,
iOS sau Windows Phone. Cordova extinde funcționalităț ile HTML și Javascript pentru a le face
să lucreze efectiv c u dispozitivul. Prin dezvoltarea unei aplicații cu acest framework va rezulta o
aplicație de tip hybrid ce se va vedea ca o aplicație nativă doar că aceasta este rulată în interiorul
unui webview.
În trecut acest framework era cunoscut ca și Phonegap. Este open -source și pentru el se
pot găsi o mulțime de funcționalități gata implementate de oameni din toată lumea. Multe
persoane văd puterea de care poate să fea dovadă acest framework și potențialul de a oferi un
mediu cât mai bun în ceea ce privește apli cațiile hybrid.
Cordova este dezvoltat în mai multe limbaje de programare pentru a oferi suport pe mai
multe platforme. Aceste limbaje sunt:
 C#, C++;
 CSS, CSS3, HTML, HTML5 ;
 Java;
 JavaScript ;
 Objective C.
Cordova are dezvoltate platforme pentru fiecare sistem de operare mobil, iar la realizarea
aplicației dezvoltatorul importă platforma de care are nevoie pe mediul de lucru. Acest
framework face parte din pachetul npm și ca dependință vine cu nodejs. Acesta este necesar
pentru instalarea tutorol dependin țelor prezente în aplicație, cum ar fi platforme ce trebuiesc

36
instalate, plugin -uri sau librării. Acestea se memorează în fișiere de tip json precum
package.json, ios.json, android.json sau bower.json. Pentru instalarea pe device cordova
împachetează aplic ația într -un singur fișier. Acesta are extensie diferită în funcție de platformă.
Aceste fișiere se deosebesc în funcție de extensie și anume:
 iOS → .ipa(iphone Application Archive)
 Android → .apk(Android Application Package )
 Windows Phone → .xap(Silve rlight Application Package)
Ultima versiune stabilă în acest moment este versiunea 6.1.0.[19]
Modul în care lucrează acest framework este explicat și în imaginea de mai jos

Figura 3.2.9 Modul de funcț ionare al framework -ului Cordova

Node.js repr ezintă o platformă scris în Javascript ce este folosit ca limbaj pentru zonă de
server side. Acesta este populat cu diverse dependințe prin intermediul pachetelor din modul de
npm.
Node .js este contstruit pe bază Google Chrome JavaScript Engine versiune a 8. Acesta
folosește un model non -blocking I/O, de aici rezultând o eficiență mai mare, oferind mediul

37 perfect pentru aplicații în timp real ce rulează pe diferite dispozitive. Poate fi rulat pe mai multe
sisteme de operare precum OS X, Microsoft Windows și Linux. Acesta se folosește de 2
componente:
 mediu de execuție,
 librărie JavaScript.
Cele mai importante funcționalități cu care vine NodeJS sunt :
 Evenimente asincrone coduse:
Toate librăriile Node.js sunt asincrone și non -blocante. Un server creat cu Node.Jjs
niciodată nu așteaptă un api să retuneze date. Server -ul apelează următorul api și printr -o
notificare se întoarce la api -ul anterior când acesta este disponbil pentru oferirea datelor.
 Rapiditate în execuție
 Organizare tip single -thread de scalabilitate înaltă
Mecanismul de evenimente ajută sever -ul să răspundă cererilor într -un mod non -blocant.
Organizarea de tip single -thread ajută la procesarea unui număr mai mare de cereri
 Licență
Node.js este înregistrat sub licență MIT. Node.js se pretează ca server pentru aplicații de
tip Single Page Application, aplicații bazate pe JSON api, aplicații de tip Data Intense Real -time
Applications(DIRT).
Pentru comunicare în timp real se folosesc o serie de librării bazate pe web -socketuri ce fac
legătură automat între client și server. Cea mai cunoscută librărie pentru Node.js ce oferă o
astfel de funcționalitate este reprezentată de Socket.io. La baza Node.js au apărut de asemenea o
serie de framework -uri pentru îmbunătățirea și extinederea unor fu ncționalități. Cel mai
cunoscut framework de Node.js este reprezentat de Express.js, acesta fiind reprezentat sub
formă unui modul npm.Npm sau Node Package Manager oferă două functonalitati majore și
anume:

38
 repository online pentru pachete bazate pe Nojd e.js
 utilitar de tip command line pentru instalarea pachetelor Node.js,management -ul
dependințelor și managementul versiunilor.Pentru instalarea uni pachete se folosește
următoarea comandă:
npm install <package_name>
Conceptele Node.js sunt ilustrate în diagrama de mai jos:
Figura 3.2.10 Concepte Node.js [20]

Pentru Node.js evenimentele emise sunt cruciale. Datorită lor se propagă alte
funcționalități fără a ține în loc un anumit proces. Acestea se reprezintă prin clasă EventEmitter

39
și din aceasta se pot dezvolta două concepte și anume: Emmiter și Listener. Toate aceste acțiuni
se fac la nivel de aplicație.
Un modul foarte important în cadrul Node.js este reprezentat de modulul fs care are o
rapiditate foarte mare în citirea și scrierea fișierelor. A cesta se folosește pentru aplicații ce
conțin salavare sau citire de documente și operează la nivel de bit. Metodele din cadrul
modulului pot fi de tip asincron sau sincron.
MongoDb reprezintă o bază de date de tip NOSQL ale cărui documente sunt reprezen tate
sub formă de BSON.Toate driverele pentru acest tip de bază de date sunt create cu C++.
Colecțiile din cadrul bazei de date sunt definite prin intermediul unor scheme. Schemele sunt
definite pe server -ul ce face conexiunea și operațiile către baza de date. Documentele prezente în
baza de data mongo nu mai necesită join.
Știind că indexarea reprezintă o operație utilizată în cadrul bazelor de date pentru a mări
rapiditatea query -urilor MongoDb vine de asemenea cu un suport pentru indexare, indecși
prestabiliți fiind sub formă de UUID, MongoDB garantând unicitatea lor. MongoDB oferă o
flexibilitate mai mare în formarea câmpurilor în cadrul tabelelelor și o mapare mult mai ușoară.
Se folosește foarte mult în cadrul aplicațiilor ce folosesc JSON API.

Figura 3.2.11 Arbore structura MongoDB

40 Operațiile specifice în cadrul MongoDB sunt asemănătoare cu cele din SQL doar că
operează la nivel de BSON și au o structură diferită . Putem enumera urmă toarele exemple:

 $set → setarea unui câmp cu o valoare dată
Db.collection.update({_id:id},{$set:{camp:campnou});
 $inc → incrementarea unui câmp de tip numă r cu o valoare
Db.collection.update({_id:id},{$inc:{camp:valoare}})
 $push → adăugare valoare nouă unui câ mp specificat
Db.collection.update({_id:id},{$push: {camp:campnou});
 $addToSet → adăugare valoare în cadrul unui câ mp de tip Array
Db.collection.update({_id:id},{$addToSet:{camp:campnou});
 $pop → eliminare a unui câ mp din cadrul unui Array
Db.collection.update({_id:id},{$pop:{camp:1 }) → ș tergerea primului element din
Array-ul câ mp
Db.collection.update({_id:id},{$pop:{camp: -1 }) → ș tergerea u ltimului element din
Array -ul câ mp
 $pull → ș tergerea tuturor elementelor dintr -un array care sunt egale cu un câ mp dat
Db.collection.update({_id:id},{$pull:{camp:campnou });

MongoDb prezint ă 2 concepte pentru operaț ii de procesare batch, agregare și stocarea
fișierelor de dimensiuni mari. Acestea s unt reprezentate de Map Reduce ș i GridFS
Fata de MySql Mongo prezint ă o serie de modific ări din punct de vedere arhitectural e lementele
componente ale bazei de date lu ând alte denumiri.
Exemple:
 _id → cheia primară
 Document de tip BSON → râ nd
 Camp BSON → coloan ă
 Colecție → Tabelă

MongoDb ofer ă utilizatorilor un suport foarte mare prin multitudinea de tutoriale și
documentații di sponibile atâ t sub format electronic câ t și sub form ă de cărți.

41
MongoDb este disponibil pe platformele Microsoft Windows, Linux ș i OSX.

Ca ș i client pentru baza de date, MongoDB vine cu utilitarul RoboMongo ce poate fi
utilizat pentru interogarea bazei de date, stabilirea conexiunilor, si o vedere mult mai structurat ă
a valorilor c âmpurilor prezente î n baza de date.

Exemplu:

Figura 3.2.12 Interfata RoboMongo

MongoDB este bazat pe teoria Nexus.Acesta îmbină particularitățile bazelor de date
relaționale cu elementele de inovație ale tehnlogiilor NOSQL. MongoDB vine cu suport și
pentru operații la nivel geospatial prin intermediu indecșilor spațiali. Aceștia sunt reprezentați
prin tipul 2d.
Pentru deployment -ul bazei de date se folosesc diverse cloud -uri displonibile online cum ar
fi Mlab sau Openshift. Acesta din urmă prezintă caracteristici speciale, datorită faptului că
pentru fiecare mediu există câte un cartridge separat, cu versiuni compatibile. Costurile pentru
menținerea unei baze MongoDb sunt foar te mici, acestea depinzând de dimensiunea bazei de
date. Dimensiunea bazei de date poate fi foarte ușor setată, Mongo oferind acest stil arhitectural.

42
În diagrama de mai jos se exemplifica motoarele de stocare ale MongoDb.
Figura 3.3.13 Motoare de sto care MongoDB [22]

Din diagrama d e mai sus observă m că procesul de stocare se desfăș oară între 2 nivele.
Aceste nivele sunt repreze ntate de nivelul de securitate ș i nivelul de management. Nivelul de
securitate se ocup ă cu operați le de autentificare, cripta re și decriptare î n timp ce nivelul de
management se ocup ă de administrarea bazei de date, acesta conținâ nd opera ții la nivel de
utilizator ș i administratori.
MongoDB suport ă compresia nativ ă, prin aceast ă operație reducându -se spaț iul fizic cu
aproximativ 80%. Administratorii au libertatea de a in iția orice algoritm de compresie dorit, în
funcție de performanț ele ce se doresc a fi atinse.
III.III Descrierea echipamentelor hardware utilizate
Arduino Uno reprezint ă o placut ă ce ofer ă suport pentru divers e operaț ii cum ar fi :
 Comunicație serială,
 Comand ă PWM ,
 Comunicații analogice ș i digitale de tip I/O
Aceasta este bazata pe un microcontroller Atmel pe 8 biti. Acesta face parte din famiia
AVR ș i mai poart ă numele ș i de Atmega328P.

43
Placuta Arduino este fo rmată din mai multe module. Acestea sunt:
 Modul de alimentare
 Modul serial -USB
Pe placuț a sunt disponibile 2 serii de conectori, aceștia oferind suport pentru alimentare
extern ă la 5 ș i 3.3V, porturi digitale ș i analogice.
Modu lele se pot reprezenta prin u rmătoarea figură :

Figura 3.3.1 Organizare componente Arduino [23]
Microcontroller -ul Atmega328 prezintă o arhitectură de tip RISC ș i face parte din familia
Atmel AVR. Performanț ele atinse de acesta se ridică până la 1MIPS per MHz. Frecvenț a
maximă pe care o poate atinge este de 20MHz. și este organizat î n 32 de registre reprezentate pe
8 biti. Acestea se folosesc î n uz general. Acesta prezintă trei tipuri de memorie:
 Memorie flash ->32KB
 Memoria SRAM ->1KB
 Memorie EEPROM ->2KB

44

Figura 3.3. 2 Organizare pini ATmega328

Figura 3.3.3 Arhitectura Arduino[24]

45
HC-05 reprezintă un modul bluetooth fo arte uș or de utilizat pentru adoptarea în cadrul
unui proiect a funcționalităț ii de tip Bluetooth SPP. Acesta foloseș te sistemul CSR Bluecore 04 –
External ce prezint ă tehnologia CMOS cu frecvență de încărcare adaptabilă .
Ca specificaț ii tehnice se pot enumera:
 Sensibilitate de -80dBm
 Până la 4dBm RF putere de transmitere
 Interfa ță UART
 Anten ă integrat ă
 Conector de tip edge
 Tensiune de alimentare 3. 3V sau 5V

Figura 3.3.4 Descriere pini HC05[24]
Portul PIO8 este folosit pentru a controla LED -ul ce indic ă starea în care se afl ă
conexiunea cu dispozitivul.
Portul PIO9 este fo losit pentru a indica momentul î n care se face pereche cu un alt
dispoz itiv bluetooth.
Portul PIO11 este folosit pentru seta rea a doua moduri pentru HC -05 și anume:

46
 Modul de tip comand ă AT dac ă pinul este conectat la 3.3V
 Automatic binding dacă pinul este conectat la GND
Gama de senzori MQ este folosit ă pentru monitorizarea d iferitelor tipuri de gas din mediul
ambiant. Senzorii folosiț i sunt:
 MQ2
 MQ4
 MQ7
 SNS-MQ135
MQ2 este un senzor de fum ș i gaze inflamabile. Acest a poat detecta gas cu concentrații
între 300 ș i 10000ppm. Acest senzor prezintă o sensibilitate foarte mare la ga ze de tip
combustibil , LPG, Propane ș i Hidrogen.
Rezistenț a senzorului are următoarea valoare exprimată prin intermediul formulei:

*RL

Figura 3.3.5 Senzor fum ș i gaze inflamabile
MQ4 este un senzor folosit la mă surarea de ga z metan. Are o mare sensiblilitate la CH4 ș i
gaze naturale, dar o sensibilitate mică la alcool ș i fum. Poate fi alimentat la 5V ș i ofe ră un
răspuns rapid. Poate fi folosit în industrie pentru detecț ia CH4, gaze naturale, LNG.

47
MQ7 este un senzor folo sit pentru d etectarea concentraț iei de monoxid de carbon. Acesta
prezintă o conductivitate mare împreun ă cu creștera concentraț iei de gaz. Când valoarea
temperaturii este mare acesta cur ăță celelalte gaze absorbite la temperatur ă scăzută .

Figura 3.3.6 Senzor MQ7

SNS-MQ135 este un senzor ce poate detecta NH3, Nox, alcool , benzen, fum ș i CO2.
Acesta opereaz ă la o tensiune de alimentare de 5V ș i un curent de 40 mA.

Figura 3.3.7 Senzor MQ135
Senzorul de temperatur ă LM50 este folosit în cadrul proiectului pentru măsurarea
temperaturii din mediul ambiant. Acesta poate detecta temperaturi î ntre -40 de grade ș i 125 de
grade. Acesta opereaz ă la tensiuni î ntre 4.5 ș i 5V. Poate fi folosit î n cadrul dispozitivelor
medicale portabile sau computere.

Figura 3.3.8 LM50

48
IV. 4.Proiectarea sistemului embedded
IV.I Proiectarea sistemului
În proiectare a sistemului am folosit placu ța Arduino Uno și toți senzorii enumerați î n
cadrul capitolului III.III.
Dispozitivu l trebuie purtat de o persoana î ntr-un loc convenabil ales. Acesta are
posibilitatea de ataș are. Pentru a oferi portabilitate sistemului am folosit o alimentare prin
intermediul unei baterii de 9V .
Mai jos se poate observa dispozitivul precum si o marcare a componentelor folosite in
cadrul proiectului.

Figura 4.1 Elementele sistemului fizic

49
IV.II Testare funcț ionalit ăți
Pentru testarea funcț ionalit ăților am afiș at datele citite de la porturile analogice î n cadrul
consolei serial. Pentru fiecare senzor am inițiat acț iuni d e modificare a parametrilor ce îi
măsoară și prin asta am observat schimb ările ce surveneau asupra valorilor. Pentru testare a fost
folosit un lemn in ardere de aici rezultand o cantitate mare de CO si fum . Am aplicat si gaz
provenit de la brichet ă, de aici rezultand elemente precum:LPG,CO,fum,N Ox.
Pentru te starea senzorului de temperatură am folosit o flacară intermitentă in jurul
senzorului.
V. Implementarea aplicaț iei software
V.I Arhitectura aplicaț iei
Aplicația după cum am descri s mai sus este de tip hybrid avâ nd la baz ă componentele
descr ise în cadrul capitolului III.II . Astfel pute m ilustra urmă toarea diagram ă care s ă ne ofere
concret arhitectura aplicaț iei, în funcț ie de tehnologiile alese.

Figura 5.1.1 Mod de comunicație al aplicaț iei
Din diagram ă se poa te observa modul de comunic are în cadrul aplicației prin intermediul
rețelei internet .

50

Figura 5.1.2 Arhitectura aplicaț iei
În figura de mai jos putem observa structura aplicației mobile î n IDE -ul IntellijIdea.

Figura 5.1.3 Structura aplicaț iei

51
V.II Implementarea aplic ației
În cadrul implementării aplicaț iei am folosit toate resursele prezente î n cadrul diagramei
5.1.2 din cadrul secț iunii de mai sus. S-a tinut cont de toate conceptele necesare unei aplicaț ii de
tip mobile cum ar fi :
 autentificare
 creare cont utilizato r
//TODO poze from device
V.III Testarea aplicaț iei
În cadrul test ării aplicaț iei s-a pus foarte mult accent pe zona de alarme, acestea
reprezentâ nd unul din obiectivele principale ale proiectului.
Un alt obiectiv al testării a fost oferirea funcț ional ităților pentru fiecare tip de utilizator.
Aceș tia nu trebuie s ă acceseze alte funcț ionalit ăți în afar ă de cele propuse pentru fiecare dintre
ei. De ac eea pentru exemplificare am ataș at urm ătorul tabel ce ajut ă la bifarea funcț ionalit ăților
pentru fiecare tip de utlizator î n parte.
Lider de echipa:
Funcț ionalitate Funcț ional
Autentificare Da
Creare cont Da
Înregistrare companie Da
Adăugarea de știri î n interiorul companiei Da
Creare planificare Da

52 Adăugare muncitor î n cadrul echipei create Da
Adăugar e activităț i pe o anumit ă perioada î n
cadrul echipei coordonate Da
Posibilitate de înregistrare și monitorizare î n
timp real a parametrilor mediului înconjură tor Da

Vizualizare date pe o anumit ă perioad ă Da

Obținere sfat pentru valorile î nregistrate Da

Vizualizare date î nregistrate pentru analizarea
mediului de lucru pe ntru fiecare membru al
echipei ș i prevenirea unui eventual accident Da
Primire alarm ă de tip vibraț ie, flashlight, push
notification Da
Conexiune bluetooth cu sistemul embedded Da
Adăugare echipă Da
Pagin ă de profil → Vizualizare date personale Da
Inbox Da
Vizualizare alarme ș i notific ări î n cadrul
inbox -ului Da
Primre alarm ă în momentul î n care un
muncitor din cadrul unei echipe conduse de Da

53 liderul de echip ă se afla î n pericol
Muncitor în cadrul unei echipe:
Funcț ionalitate Funcț ional
Autentificare Da
Creare cont Da
Adăugarea de știri î n interiorul companiei Da
Posibilitate de înregistrare și monitorizare î n
timp real a parametrilor mediului î nconjur ător Da

Vizualiza re date pe o anumit ă perioad ă Da

Obținere sfat pentru valorile î nregistrate Da

Primire alarma de tip vibraț ie, flashlight, push
notification Da
Conexiune bluetooth cu sistemul embedded Da
Pagină de profil → Vizualizare date personale Da
Inbox Da
Vizualizare alarme și notificări î n cadrul
inbox -ului Da

54
Mod de folosire individual:
Funcț ionalitate Funcț ional
Autentificare Da
Creare cont Da
Posibilitate de înregistrare ș i monitorizare în
timp real a parametrilor mediului înconjură tor Da

Vizuali zare date pe o anumit ă perioad ă Da

Obținere sfat pentru valorile î nregistrate Da

Primire alarmă de tip vibraț ie, flashlight, push
notification Da
Conexiune bluetooth cu sistemul embedded Da
Pagină de profil → Vizualizare date personale Da
Inbox Da
Vizualizare alarme și notificări î n cadrul
inbox -ului Da

55
VI. Studiu de caz

Aplicația hybrid din cadrul sistemului prezintă un modul de autentificare și creare a contului de
utilizator , în funcție de modul de folosire al sistemului .

Figura 6.1 Ecran principal Figura 6.2 Opțiuni autentificare
În cadrul opțiunii de creare cont se va deschide o fereastră în care utilizatorul își va
introduce datele personale și modul în care va folosi sistemul.Formularul prezintă validări
pentru v alorile introduse în câmpuri, pentru a nu produce inconsisten țe de date pe parcursul
folosir ii aplicației. Dacă persoana care folosește aplicația reprezintă un lider de echipă din cadrul

56
unei companii acesta trebuie să selecteze opțiunea ”Teamleader of a t eam„ și să introducă CUI –
ul aferent companiei în care își desfășoară activitatea. În cazul în care compania nu este
înregistrată acesta completează un formular pentru înregistrarea acesteia în sistem.

Figura 6.3 Creare cont Figura 6.4 Adăugare c ompanie
După introducerea datelor contul utilizatorului este creat și acesta este redirectat mai
departe către pagina de știri din cadrul companiei. Rolul acestei pagini este de a oferi un mediu
interactiv în cadrul companiei în care utilizatorii aplicație i pot posta diverse activități,
evenimente, etc.

57
După redirectare meniul inițial s -a schimbat și au apărut o serie de opțiuni noi pentru
utilizator.

Figura 6.5 Pagină adaugare știri Pagina 6.6 Meniu aplicație
Prin navigarea în diferitele pagini ale aplicației, dacă selectam opțiunea Functions vom intra în
pagina ce conține opțiuni pentru monitorizarea parametrilor din mediul înconjurător. Această
pagină conține efectiv functionalitatiile necesare pentru monitorizarea în timp real cât și
opțiunea pentru o singură scanare. Se poate observa lista cu dispozitivele bluetooth asociate
dispozitivului mobil.în cadrul graficului se poate observa că elementele din cadrul legendei pot
fi marcate sau demarcate pentru o mai bună vizualizare a caracteristicilo r dorite.
Pagina conține și o serie de elemente de tip input ce afișează valorile actualizate în cadrul
măsurării de orice tip(real time sau single time).

58

Figura 6.6.7 Pagina Functions 1 Figura 6.6.8 Pagina Functions 2

Figura 6.6. 9 Conectare sistem Figura 6.6. 10 RTS activat

59
În figura 6.6. 10 putem observa momentul activării monitorizarii in timp real.
RTS=Real Time Scan
În momentul începerii monitorizării datele se trimit către server pentr u a fi prelucrate.În
cazul detecției unor valori mari peste limita normală,se emite o notificare(alarmă ) către liderul
de echipă ș i muncitor în care se enumer ă toate pericolele ce persistă în mediul sau. Alarmă pe
dispozitivul mobil constă într -o notifica re la care vibrația atașată dureza 5 secunde.Această
durată poate fi reconfigurata.

Figura 6.6.9 Notificare in caz de pericol Figura 6.6.10 Notificare pe dispozitiv mobil

60

Figur a 6.6.13 Creș tere nivel fum Figura 6.6.14 Caracteristica creștere nivele
Opțiunea numită „Planning„ ne deschide o pagină, în care un lider de echipă sau
muncitor are posibilitatea de a -și vedea echipele în care își desfășoară activitatea la momentul
curent. Prin vizualizarea echi pei se vor afișa membrii prezenți în cadrul acesteia și lista de
activități. Utilizatorul are prezente 2 funcții în cadrul fiecărui muncitor din echipă, acesta acesta
având posibilitatea de apelare și trimitere sms.
În cazul în care un utilizator a fost adăugat de către un lider acesta primește o notificare în
care i se anunța această acțiune.În corpul notificării se precizează echipa în cadrul căreia își va
desfășura activitatea în continuare.
Liderul de echipă poate vizualiza datele monitorizate ale f iecărui membru al echipei
sale.Se pot detecta eventualele pericole din mediul angajațiilor.
Activitațiile cuprinse în listă sunt valabile pe o anumită perioadă,liderul de echipă fiind cel
ce actualizează toate activitațiile din cadrul echipei.

61

Figura 6.6.1 5 Echipe din cadr ul planificării Figura 6.6.16 Adăugare echipă

Figura 6.6.1 7 Vizualizare planificare echip ă Figura 6.6.1 8 Vizualizare list ă activități

62
Activitățiile din cadrul echipei se compun din mai multe comp onente. Liderul de echipă
adaugă un nume activității, o locație de desfășurare și o serie de remarci pentru o mai bună
înțelegere a activității respective. Activitatea prezintă o dată de valabilitate, aceasta fiind
cuprinsă între 2 perioade de timp alese d e liderul de echipă.

Figura 6.6.1 9 Adăugare activitate nou ă Figura 6.6. 20 Vizualizare date muncitor

63
În cazul în care un muncitor din cadrul unei echipe vizualizează planificarea , acesta nu
poate adauga alte persoane și nu poate vizualiza datele altui utilizator. Aces ta va fi redirectat
către pagina de profil a muncitorului selectat.

Figura 6.6.21 Pagin ă Profil utilizator

Opțiunea Personal Data oferă utilizatorului acces la toate înregistrările avute în decursul
folosirii sistemului. În această pagină se poate alege popularea primului grafic cu datele din
decursul unei zile. Pot exista cazuri în care cineva are probleme respiratorii și vrea să
investigheze dacă problema se datorează mediului de lucru. În funcție de datele salvate acesta
benficiaza de opțiunea GetAdvice ce oferă utilizatorului o serie de remarci pentru a putea da o
serie de informații utiliazatorului despre metodele pe care trebuie să le aplice pentru a evită
eventuale complicații pe cale r espiratorie.

64

Figu ra 6.1.22 Date personale Figura 6.1. 23 Primire sfat

//Poza cu dispozitivul impachetat

65 VII. Concluzii

Sistemul dezvoltat poate avea un rol deosebit în cadrul fiecărui mediu de lucru. Acesta
aduce u n plus de siguranță muncitorilor mai ales prin faptul că se va ști întotdeauna când o
persoană se află în zona unui pericol. Cele mai multe accidente se întâmplă din cauza neglijenței
personalului.
Putem preciza de altfel că acest sistem vine înglobat și cu o modalitate de lucru nouă în
cadrul unei echipe, datorită faptului că se pot organiza evenimentele într -un mod diferit, liderii
de echipă având responsabilitatea pentru desfăsurarea și crearea tutoror evenimen telor. Prin
sfaturile aplicației , utilizat orul își poate luă măsuri de precauție pentru mediul de lucru și
cunoaște în același timp pericolele la care este supus în decursul fiecărei zi de muncă.
Se oferă astfel utilizatorilor o aplic ație ce poate rula la nivel multi -platform, fiind
disponibilă p e toate platformele mobile, dar putând fi foarte ușor adaptabilă și în navigatorul
web. Datorită lansării noii versiuni de Angular și puterea de procesare a noilor device -uri gradul
de performanță nu mai reprezintă o problemă. Serviciile din cadrul aplicaț iei sunt de o rapiditate
mare. Costurile de producție pentru acest sistem sunt mici, înglobând un număr mare de
funcționalități.
Prețul senzorilor este relativ mic și nu oferă impedimente în găsirea lor. Un punct mai
complex îl reprezintă calibrarea acest ora, fiind nevoie de 24 de ore de funcționare continuă
pentru măsurări cât mai exacte . Asamblarea sistemului embedded este una de bază , aceasta
putând fi optimizată la un nivel mult mai mare. Asupra sistemului se pot aduce oricând
îmbunătățiri și funcțion alități noi acesta reprezentând în momentul de față , un proiect open –
source ce oferă servicii gratuite.
Se pot aduce și funcționalități care mai apoi să poată fi monetizate în cadrul unei
companii.

66 VIII. Bibliografie

1. http://andrei.clubcisco.ro/cursuri/f/f -sym/4idp/1_Etapele_dezvoltarii_doc.pdf
2. http://www.json.org/json -ro.html
3. https://ro.wikipedia.org/wiki/JSON
4. http://ctrl -d.ro/inspiratie/aplicatii -mobile -native -versus -aplicatii -compilate -ionut -ion-
timo-editia -14/
5. https://www.quora.com/What -are-the-latest -features -of-Bluetooth -5-0-version –
Technology
6. https://www.a2t.ro/sisteme -antiincendiu/detector -de-gaz-metan -si-monoxid -de-carbon –
standalone.html
7. http://07detector.ro/in dex-ro.html?start=sistem&but=2
8. Curs SMI Radu Pietraru
http://acs.curs.pub.ro/2015/pluginfile.php/5433/mod_resource/content/1/smi2015_curs01.
pdf
9. https://ro.wikipedia.org/wiki/Arduino
10. https://www.arduino.cc/en/tutorial/memory
11. http://www.china -total.com/Product/meter/gas -sensor/Gas -sensor.htm
12. http://laurian.ro/wordpress/wp -content/uploads/2013/JavaScript_a5.pdf
13. https://www.w3schools.com/js/js_htmldom.asp
14. https://www.tutorialspoint.com/angularjs/angularjs_tutorial.pdf
15. https://docs.angularjs.org/guide/di
16. https://www.tutorialspoint.com/angular2/angular2_dependency_injection.htm
17. https://en.wikipedia.org/wiki/Android_(operating_system)
18. https://develope r.apple.com/library/content/documentation/IDEs/Conceptual/AppDistribu
tionGuide/Introduction/Introduction.html
19. https://en.wikipedia.org/wiki/Apache_Cordova
20. https://www.tutorialspoint.com/nodejs/nodejs_tutorial.pdf
21. https://ro.wikipedia.org/wiki/MongoDB
22. https://www .mongodb.com/mongodb -architecture
23. http://acs.curs.pub.ro/2015/course/view.php?id=117 Laborator 1 SMI
24. http://www.edgefxkits.com/blog/arduino -technology -architecture -and-applications/
25. https://developer.mbed.org/users/edodm85/notebook/HC -05-bluetooth/

Similar Posts