Licenta Honey Bunny 1 [629761]

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

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
Lucrare de Licență
Sistem pentru evitarea pericolelor în mediile
industriale

I. Introducere
Obiectivele și scopul lucrării de licență
Această lucrare este constituită 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 muncito rii prezenț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 respirat orii ale 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 pe ricol 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 pericol e exterioare.
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 planificare î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

î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
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 astfel 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 econom iei 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 este foarte mare, chiar dacă în
majoritatea î nteprinderilor s -au adoptat mecanismele automate.

Industria petrolieră joacă un factor foarte important în cadrul fiecărei țări, doar în România
aceasta fiind estimată la sfârșitul anulu i 2017 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 m ediul industrial nu există 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
Această lucrare 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 ca pitolul 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 descrierea 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 proiectar ea acestuia. Ultima
secțiune din capitol este menită prezentării etapei de testare al acestuia. Putem preciza că aceasta
este realizarea unui procent de 50% din cadrul întregului sistem.

Implementarea aplicației software reprezintă realizarea a încă 50% din cadrul sistemului.
Această etapă este descrisă î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 întregului 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 bibliog rafiei și a resurselor folosite pentru documentare și
conceperea acestui sistem.

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 bus sines prin care un lider de echipă este
alarmat pe telefonul lui 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 tipu ri este reprezentat de o alarmă de tip sms și încă o alarmă multiplă 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 no rmale. 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 d e tip mobile. Pentru oferirea disponibilității pe cele mai folosite 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
enumera:
 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.

Figura 2.1.1 Modelul Cascada
Această 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 proiectulu i este 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

Rolul prototiplui 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 echipa 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 defi nirea
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 ame stecuri 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 g az 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 pie rderea 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 mo duri de funcționare pentru diverse tipuri de utilizatori. Utilizatorii
sunt de 3 tipuri:
 Lider de echipă în cadrul unei companii,

 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 f olosirii individuale diagrama se reduce la următoarea :

Figura 2.1.4 Diagrama statemachine pentru folosirea individuala

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 detalile 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 detectarea 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 acestora,
oferirea unei serii de servicii precum drepturi, push notifications, serviciu de sms -uri.

Acesta oferă și serviciul de autentificare pentru utilizatori, având i mplementată o politică
de securitate foarte minuțioasă. Toate parolele utilizatorilor sunt 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 execuț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țiilor î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ă n u a putut fi executată cu succes.
Baza de date este de tip NoSql în care forma de organizare 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 facto r care îl face foarte des utilizat în cadrul
aplicațiilor software este acela că se transmite 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.
Transmit erea prin rețea a unui json poartă numele de serializare, acesta fiind un procedeu în care
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 h ybrid poate rula pe orice platformă mobile. Disponibilitatea și timpul de
implementare sunt factorii existențiali în luarea deciziei. Platformele vizate sunt Android și iOS.

Figura 2.1.6 Cod portabil interpretat
Întotdeauna un client va prefera u n produs ce constă în costuri reduse de dezvoltare,
dezvoltare rapidă și mentenanță ușoară. Î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 posib ilitatea 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 sunt 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

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 preluc rarea țițeiului. Cantitățile de gaz care se degaja pot
duce la un num ăr foarte ridicat de pericolole , cele mai însemnate fiind infecția pulmonară,
intoxicarea sau chiar un incendiu devastator. Sistemele de alarmă din mediul industrial au ca
rază de detecți e interiorul unei unei încăperi de obicei largă și se declanșează în cazul unui
pericol aflat î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 ris c.
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 cun ostiintei. Î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 problemei 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 senzori 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

măsur ați din mediul în care utilizatorul se află. Dacă parametrii depășesc valorile normale se va
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 responsabil ul 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 utilizator ilor 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 da ta s-a încărcat ca dispozitivele de generație nouă să fie
echipate cu ultima versiune apărută a tehnlologiei bluetooth.

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

Figura 2.2.1 Ascens iunea bluetooth
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ă
 Umiditatea aerului
 Calitate a aerului
Fiecare dintre acești parametri, în cantități peste limită constituie un pericol pentru o
perosana aflată în decursul parcurgerii une i activități.
Fiecare alarmă ce va fi emisă va fi stocată în cadrul unei baze de date ce va reține toate
datele utilizatorilor.

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 ap licației mobile se vor emite alarme de tip push notification, sms,
vibrație, blitz pentru alertarea 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 pune
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 accidente 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

Dispozitivul de mai sus prezintă o alimentare ce necesită 220V pentru funcționare.Acesta emite
o alarmă puternică la fiecare 15 mi nute î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 figura 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

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ă ace ste 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 codul 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 sistem 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ă rulez e 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

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

Figura 3.1.1 Arduino Genuino Uno

Figura 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.

Pentru conexiunea bluetooth am ales modulul HC -05. A cesta 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 vedere 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 gazelor 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
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

am putut să integrez în cadrul proiectul concepul MVC(Model -View -Controlle r). Prin
intermediul acestuia am reușit să structurez aplicația în funcție de funcționalitate.
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 Ang ularJS ce poate invocă funcționalitățile native ale telefonului cum ar fi
GPS, Finger 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 hybri d. ReactJS față de Ionic nu se
poate adapta la toate platformele. Acesta nu funcționează 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 c unoscute exemple
sunt reprezentate de Heroku și Openshift dezvoltat de Redhat, acesta 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#, NodeJs
prezintă un driver de conexiune la baza de date ce permite executarea mult mai rapidă a query –
urilor.

Datorită faptului că predominantă este tehnologia Javascript am al es să folosesc MongoDb
ca bază de date datorită faptului că formatul de lucru era reprezentat 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 r eprezintă 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

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.
Folosind 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ă avem 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.getElementByName()
 prin identificarea după tag -ul documentului
Metodă fol osită: 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

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 folosire 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 persoane
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 stans 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.

Cum am enumera t 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 folosite 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 reprezintă 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 c ea mai importantă 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 vin e definit cu un set foarte extins de componente pentru realizarea de diverse
funcționalități.

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. Mot ivul pentru care 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 pagi ni 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 rootScope . 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, dar ș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 intitializ at î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 view -urile dorite la anumite acțiuni ale utilizatorului precum:
 redirectarea la altă pagină
 schimbarea unei secțiuni
 afișarea u nui mesaj de eroare
Prin intermediul acestui framework ne bucurăm de o serie de funcționalități precum:
• Servicii
Angular vine predefinit cu un serviciu întâlnit sub formă de $http pentru crearea de cereri
de tim XMLHttpRequest.

Acestea reprezin tă obiecte de tip singleton și au proprietatea că sunt inițializate doar o
singură dată în aplicație
• Directive
Prin intermediul directivelor un dezvoltator ce folosește AngularJS își poate crea propriile
lui componente ce pot fi mai apoi reutilizat e. 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 , ngSto rage .
• 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 injection

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âmpuri Angular vine cu 3 componente pentru preluarea erorilor de pe
un câmp. Acestea sunt:
 $dirty ->ne arată că valoarea câm pului s -a schimbat
 $invalid ->ne arată că ce s -a introdus este invalid
 $error ->eroare survenită în momentul introducerii
Aceste componente 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:
 $routeProviderSer vice → 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.

Exempl e:
 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 Ang ularJS [14]

În prezent exist ă 2 versiuni ale acestui framework, cea mai recent î fiind versiunea 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

Refolosirea de componente în cadrul altei componente se face prin intermediul 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 provider,
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 dezvol tarea aplicațiilor de tip
hybrid, oferind servicii și componente bazate pe 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 a plicațiilor. Ionic vine cu o serie de componente foarte
puternice, dezvoltatorul 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 performanță, 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 oricine 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 acestei 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 po rnirea 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 i OS.
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.

Platformele pe care rulează aplicația sunt reprezentate de An droid, iOS respectiv Windows
Phone.
Android reprezintă un sistem de operare 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 inte rfață foarte spectaculoasă și bine adaptată device –
urilor Android a crescut 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 f iș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
semnificativ 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 t oate
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 dispozitiv
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 elementele 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.

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 sistem 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
bazea ză 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 pro duce singur ă piesele pentru
dispozitivele create.
iOS poate rula pe mai multe tipuri de dizpozitive precum smartphone -uri, tablete, sau
media playere portabile. 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

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 dorind să ofere integritate datelor.
Pentru dezvoltarea aplicaț iilor ce ruleaz ă pe acest si stem 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 element extrem de important î l reprezint ă partea de securitate pe care
Apple o ofer ă dezvolta torilor 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 dispozitivului î 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
punerea î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:
Figu ra 3.2.8 Pasi distributie iOS [18]

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 Apple are niște teste foarte succinte în ceea ce o privește și
de aceea aplicația trebu ie 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 posibilitate a 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 cu 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 aplicaț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 operar e 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

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ă aplicația într -un sin gur 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(Silverlight Applicati on 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 reprezintă 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 Eng ine versiunea 8. Acesta
folosește un model non -blocking I/O, de aici rezultând o eficiență mai mare, oferind mediul

perfect pentru aplicații în timp real ce rulează pe diferite dispozitive. Poate fi rulat pe mai multe
sisteme de operare precum OS X, Micros oft 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 singl e-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 -socketu ri 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 extined erea unor funcț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:

 repository online pentru pachete baz ate pe Nojde.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 su nt 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

ș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 f ișierelor. Acesta 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 s unt reprezentate
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 JSO N API.

Figura 3.2.11 Arbore structura MongoDB

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 seri e de modific ări din punct de vedere arhitectural elementele
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 disponibile atâ t sub format electronic câ t și sub form ă de cărți.

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 repreze ntaț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 se parat, cu versiuni compatibile. Costurile pentru
menținerea unei baze MongoDb sunt foarte mici, acestea depinzând de dimensiunea bazei de
date. Dimensiunea bazei de date poate fi foarte ușor setată, Mongo oferind acest stil arhitectural.

În diagrama de mai jos se exemplifica motoarele de stocare ale MongoDb.
Figura 3.3.13 Motoare de stocare 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 nive lul de management. Nivelul de
securitate se ocup ă cu operați le de autentificare, criptare ș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 echipam entelor hardware utilizate
Arduino Uno reprezint ă o placut ă ce ofer ă suport pentru diverse 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.

Placuta Arduino este format ă 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 alimenta re
extern ă la 5 ș i 3.3V, porturi digitale ș i analogice.
Modu lele se pot reprezenta prin urmă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 memor ie:
 Memorie flash ->32KB
 Memoria SRAM ->1KB
 Memorie EEPROM ->2KB

Figura 3.3.2 Organizare pini ATmega328

Figura 3.3.3 Arhitectura Arduino[24]

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
dispozitiv bluetooth.
Portul PIO11 este folosit pentru seta rea a doua moduri pentru HC -05 și anume:

 Modul de tip comand ă AT dac ă pinul este conectat la 3.3V
 Automatic bindi ng dacă pinul este conectat la GND
Gama de senzori MQ este folosit ă pentru monitorizarea diferitelor 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 gaze de tip
combustibil , LPG, Propane ș i Hidrogen.
Rezistenț a senzorului are următoarea valoare exprimată prin intermediul formulei:

𝑅𝑠=𝑉𝑐/(𝑉𝑅𝐿−1)*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.

MQ7 este un senzor folo sit pentru detectarea concentraț iei de monoxid de carbon. Acesta
prezintă o conductivitate mare împreun ă cu creștera concentraț iei de gaz. Când valoarea
temperat urii 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

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 . Sistemul are capa bilitatea de a transmite un semnal de alarm ă
dacă bateria este la un voltaj mai mic.

TODO:poz ă dispozitiv desfă cut + poza dispozitiv î mpachetat +
schem ă descriptiv ă

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.
//TODO ..poza consol ă serial cu va lorile citite de la senzori..poza cu mediu de incercare de
modifcare a parametrilor
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
descrise î 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 comunicare în cadrul aplicației prin intermediul
rețelei internet .

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

V.II Implementarea aplicaț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 utilizator
//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ț ionalit ăț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 ut lizator î 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
Adăugare muncitor î n cadrul echipei create Da

Adăugare 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
liderul de echip ă se afla î n pericol Da

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

Vizualizare 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

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

Vizualizare 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

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 prezi ntă validări
pentru valorile 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

unei companii acesta trebuie să selecteze opțiun ea ”Teamleader of a team„ ș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 companie
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 u tilizatorii aplicației pot posta diverse activități,
evenimente, etc.

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 monitor izarea î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 caracteristicilor 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).

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

Î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 pentru 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 notificare 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

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 echipei 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 fiecă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 actualiz ează toate
activitațiile din
cadrul echipei.

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

VII.

Figura 6.6.1 7 Vizualizare planificare echip ă Figura 6.6.1 8 Vizualizare list ă activități
Activi tățiile din cadrul echipei se compun din mai multe componente. 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 de liderul de echipă.

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

Î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 respiratorie.

Figu ra 6.1.22 Date personale Figura 6.1. 23 Primire sfat
Mai jos se poate observa dispozitivul precum si o marcare a componentelor folosite in
cadrul proiectului.

//Poza cu dispozitivul impachetat

VIII. Concluzii

Sistemul dezvoltat poate avea un rol deosebit în cadrul fiecărui mediu de lucru. Acesta
aduce un 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ă fapt ului 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 , utilizatorul îș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ă pe 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 acestora, 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ționalităț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.

Similar Posts