INFORMAȚIEI AUTOMATICĂ, ELECTRONICĂ ȘI MECATRONICĂ [617199]
i
UNIVERSITATEA DIN CRAIOVA
FACULTATEA DE AUTOMATICĂ, CALCULATOARE ȘI
ELECTRONICĂ
DEPARTAMENTUL DE [CALCULATOARE ȘI TEHNOLOGIA
INFORMAȚIEI / AUTOMATICĂ, ELECTRONICĂ ȘI MECATRONICĂ ]
PROIECT DE DIPLOMĂ
Dumitresc u Cosmin -Alexa ndru
COORDONA TOR ȘTIINȚI FIC
Profesor Doctor Inginer Viorel Stoian
Iulie 20 20
CRAIOVA
ii
UNIVERSITATEA DIN CRAIOVA
FACULTATEA DE AUTOMATICĂ, CALCULATOARE ȘI
ELECTRONICĂ
DEPARTAMENTUL DE [CALCULATOARE ȘI TEHNOLOGIA
INFORMAȚIEI / AUTOMATICĂ, ELECTRONICĂ ȘI
MECATRONICĂ ]
Creare a unui „ecosistem ” pentru trotinete le electrice
Dumitrescu Cosmin -Alexandru
COORDONATOR ȘTIINȚIFIC
Profesor Doctor Inginer Viorel Stoian
Iulie 2020
CRAIOVA
iii
„Adevărata plăcere constă în descoperire, nu în cuno aștere. .”
Isaac Asimov
iv
DECLARAȚIE DE ORIGINALITATE
Subsemnatul Dumitrescu Cosmin -Alexa ndru, student: [anonimizat], Calculatoare și Electronică a Universit ății din Craiova, certific prin prezent a că am
luat la c unoștință de cele prezentate mai jos și că î mi asum, în acest context, originalita tea proiectului
meu de licență :
• cu titlul „Creare a unui ecosistem pentru trotinete le electrice ”,
• coordonată de Prof. Dr . Ing. Viorel Stoian ,
• prezentată în sesiunea Iulie 20 20.
La elaborarea proiectului de licență, se consideră plagiat una dintre următoarele acțiuni:
• reproducerea exactă a cuvintelor unui alt autor, dintr -o altă lucrare, în limba română sau prin
traduce re dintr -o altă limbă, dacă se omit ghilimele și referinț a precisă,
• redarea cu alte cuvinte, reformularea prin cuvinte proprii sau rezumarea ideilor din alte
lucrări , dacă nu se indică sursa bibliografică,
• prezentarea unor date experimentale obținute sau a unor aplicații realizate de alți autori fără
menționar ea corectă a acestor surse,
• însușirea totală sau parțială a unei lucrări în care reg ulile de mai sus sunt respectate, dar care
are alt autor.
Pentru evitarea acest or situații neplăcute se recomandă :
• plasarea într e ghilimele a citatelor directe și indica rea referinței într-o listă corespunzătoare la
sfărșitul lucrării,
• indicarea în text a reformulării unei idei, opinii sau teorii și corespunzător în lista de referințe
a sursei originale de la care s-a făcut preluarea,
• precizarea sursei de la care s -au preluat date experimentale, descrieri tehnice, figuri, imagini,
statistici, tabele et caetera ,
• precizarea referințelor poate fi omisă dacă se folosesc informații sau teorii arhicunoscute, a
căror pat ernitate este unanim cunoscută și acceptată.
Data, Semnătura candidat: [anonimizat] ,
v
UNIVERSITATEA DIN CRAIOVA
Facultatea de Automat ică, Calculatoare și Electronică
Departamentul de [Calculatoare și Tehnologia Informației /
Automatică, Electroni că și Mecatronică]
Aprobat la data de
…………………
Șef de dep artament,
Prof. dr. ing.
Marius BREZOVAN /
Emil PETRE
PROIECTUL DE DIPLOMĂ
Numele și prenumele student: [anonimizat]/ -ei:
Dumitr escu Cosmin -Alexandru
Enunțul temei:
Creare a unui ecosistem pentru trotinete le electrice
Datele de pornire:
Crearea une i tran smiteri de date intre trotineta si o baza de
date, pentru a putea mani pula datele trimise de trotineta si
pentru a putea trimite comenzi la ace asta.
Conținutul proiectului :
[Desc rierea succintă a conținutului fiecărui capitol al
lucrării ]
Material grafic obligatoriu:
safasfasff
Consultații:
Săptămânale
Conducătorul științific
(titlul, nume și prenume, semnătura): Prof. Dr. Ing. Viorel Stoian
Data el iberării temei :
05.11.20 19
Termenul estimat de predare a
proiectului :
28.06.2020
Data pr edării proiectului de către
student și semnătura acestuia:
vi
UNIVERSITATEA DIN CRAIOVA
Facultatea de Automatică, Calculatoare și Electronică
Departamentul de [Calculatoare și Tehnologia Informației /
Automatică, Electronică și Mecatronică]
REFERA TUL CONDUCĂTORULUI ȘTIINȚIFIC
Numele și prenumele candida tului/ -ei: Dumitrescu Cosmin -Alexandru
Specializarea: Robotic ă
Titlul proiectu lui: Creare a unui ecosistem pentru trotinete le electrice
Locația în care s -a realizat practica de
documentare (se bi fează una sau mai
multe din opțiunile din dreapta): În facultate □
În producție □
În cercetare □
Altă locație:
În urma a nalizei lucrării candid atului au fost constatate următoarele:
Nivelul documentării Insuficient
□ Satisfăcător
□ Bine
□ Foarte bine
□
Tipul proiectului Cercetare
□ Proiectare
□ Realizare
practică □ Altul
[se detaliază ]
Aparatul matematic utilizat Simplu
□ Mediu
□ Comp lex
□ Absent
□
Utilitate Contract de
cercetare □ Cercetare
internă □ Utilare
□ Altul
[se detali ază]
Redactarea lucrării Insuficient
□ Satisfăcător
□ Bine
□ Foarte bine
□
Partea grafică, desene Insuficient ă
□ Satisfăcătoare
□ Bună
□ Foarte bună
□
Realizarea
practică Contribuția autorului Insuficientă
□ Satisfăcătoare
□ Mare
□ Foarte ma re
□
Complexitatea
temei Simplă
□ Medie
□ Mare
□ Complexă
□
Analiza cerințelor Insuficient
□ Satisfăcător
□ Bine
□ Foarte bine
□
Arhitectura Simplă Medie Mare Complexă
vii
□ □ □ □
Întocmirea
specificațiilor
funcționale Insuficientă
□ Satisfăcătoare
□ Bună
□ Foarte bună
□
Implementarea Insuficientă
□ Satisfăcătoare
□ Bună
□ Foarte bună
□
Testarea Insuficien tă
□ Satisfăcătoare
□ Bună
□ Foarte bună
□
Funcționarea Da
□ Parțială
□ Nu
□
Rezultate experimentale Experimen t propriu
□ Preluare din bibliografie
□
Bibliografie Cărți
Reviste
Articole
Referințe web
Comentarii
și
observații
În concluzie, se propune:
ADMITEREA PROIECTULUI
□ RESPINGEREA PROIECTULUI
□
Data, Semnătura conducătorului științific,
viii
REZUMATUL PROIECTULUI
Lucrarea d e față descrie, așa cum sugerează titlul , un ecosistem pentru trotinetele electrice,
mai exact un user isi poate atasa un cod al unei trotinete electrice , apoi isi poate acti va/dezactiva
anumite f unctii la a ceasta, o sa poata vedea locatia trotinetei , poa te vedea alti useri ai altor trotinete,
comunica cu acestea, e tc. In principal controlul trotinete i electrice.
Acest ecosi stem o sa contina o aplicatie mobile pentru android si ios.
Termenii cheie : Ecosistem pentru trotinetele electrice, controlul trotinetei electrice, aplicati e mobile,
android, ios.
ix
MULȚUMIRI
Aș dori să încep prin a -i mulțumi domnului profesor Doctor Inginer Viorel Stoian , pentr u
sfaturile și indicațiile sale .
În al 2 -lea rând aș vrea să ii mu lțumesc colegului meu de munca, Cristian Sima , care m -a
ajutat cu comuni carea dintre trotinet a si baza de date .
În al 3-lea r ând aș vrea sa ii mul țumesc domnului profesor Florin Manta , pentru anumite
sfaturi la structura proiectului de licen ță.
Și nu în ultimul rând aș vrea să le mulțumesc tuturor cadrelor didactice de la Robotică.
x
CUPRI NSUL
1 INTRODUCERE ………………………….. ………………………….. ………………………….. ……………………….. 1
1.1 SCOPUL ………………………….. ………………………….. ………………………….. ………………………….. ……………….. 1
1.2 MOTIVAȚIA ………………………….. ………………………….. ………………………….. ………………………….. …………… 1
1.3 REZUMATE CAPITOLE ………………………….. ………………………….. ………………………….. ………………………….. .. 1
2 INSPIRAȚIE ………………………….. ………………………….. ………………………….. ………………………….. .. 2
3 TEHNOLOGII ȘI CONCEPTE UTILIZATE PEN TRU D EZVOLTAREA APLICA ȚIEI MOBILE ………………………… 3
3.1 HARDWARE ………………………….. ………………………….. ………………………….. ………………………….. …………… 3
3.2 FLUXUL COMENZILOR ÎN SISTEM ………………………….. ………………………….. ………………………….. ……………….. 9
3.2.1 Accelerare ………………………….. ………………………….. ………………………….. ………………………….. ……… 9
3.2.2 Frânare ………………………….. ………………………….. ………………………….. ………………………….. ………… 10
3.2.3 Modulul GPS ………………………….. ………………………….. ………………………….. ………………………….. …. 11
3.2.4 Modulul GPRS ………………………….. ………………………….. ………………………….. ………………………….. . 12
3.3 SERVER ȘI MANIPULARE DATE SERVER ………………………….. ………………………….. ………………………….. ……….. 13
3.3.1 MySQL ………………………….. ………………………….. ………………………….. ………………………….. …………. 13
3.3.2 phpMyAdmin ………………………….. ………………………….. ………………………….. ………………………….. .. 13
3.3.3 PHP………………………….. ………………………….. ………………………….. ………………………….. ……………… 14
3.3.4 Node JS ………………………….. ………………………….. ………………………….. ………………………….. ………… 15
3.3.5 Protocolul pentru transfer de fișiere ………………………….. ………………………….. …………………………. 15
3.4 TEHNOLO GII FOLOSITE PENTRU CREAREA INTERFE ȚEI UTILIZATORULUI ………………………….. ………………………….. .. 17
3.4.1 React Native ………………………….. ………………………….. ………………………….. ………………………….. …. 17
3.5 PROGRAME FOLOSITE PENTRU CREAR E APLICA ȚIEI ………………………….. ………………………….. ……………………… 18
3.5.1 Visual Studio Code ………………………….. ………………………….. ………………………….. …………………….. 18
3.5.2 Filezila ………………………….. ………………………….. ………………………….. ………………………….. …………. 18
3.5.3 Android Studio ………………………….. ………………………….. ………………………….. ………………………….. 18
3.5.4 XCODE ………………………….. ………………………….. ………………………….. ………………………….. …………. 21
4 CREAREA APLICAȚIEI ………………………….. ………………………….. ………………………….. ………………. 22
4.1 PERMISIUNI APLICA ȚIE ………………………….. ………………………….. ………………………….. …………………………. 22
4.1.1 Permisiunea de citire mesaj sms ………………………….. ………………………….. ………………………….. ….. 22
4.1.2 Permisiunea de acces la loca ție dispozitiv ………………………….. ………………………….. …………………. 23
4.1.3 Permisiunea de acces la camera foto ………………………….. ………………………….. ……………………….. 23
4.1.4 Configurare permisiuni ………………………….. ………………………….. ………………………….. ………………. 24
4.2 AUTENTIFICARE ………………………….. ………………………….. ………………………….. ………………………….. …….. 25
4.2.1 Trimitere cod de ver ificare prin sms ………………………….. ………………………….. ………………………….. 26
xi
4.2.2 Verificare cod primit prin sms ………………………….. ………………………….. ………………………….. ……… 28
4.2.3 Adaugare email ………………………….. ………………………….. ………………………….. …………………………. 31
4.3 ECRANUL „ACASĂ” ………………………….. ………………………….. ………………………….. ………………………….. … 33
4.4 ECRANUL „TROTINETA MEA ” ………………………….. ………………………….. ………………………….. …………………. 35
4.4.1 Asocierea unei trotinete la contul utilizatorului ………………………….. ………………………….. ………….. 36
4.4.2 Acces funcții trotineta ………………………….. ………………………….. ………………………….. ………………… 37
4.5 ÎMPRUMUTĂ TROTINETA ………………………….. ………………………….. ………………………….. ………………………. 41
4.6 ECRANUL „FORUM ”………………………….. ………………………….. ………………………….. ………………………….. .. 43
4.6.1 Comunicare între utilizatori ………………………….. ………………………….. ………………………….. ………… 43
4.6.1.1 Creare topic nou ………………………….. ………………………….. ………………………….. ………………………….. ……….. 45
4.6.1.2 Ecranul „Topic” ………………………….. ………………………….. ………………………….. ………………………….. …………. 48
4.6.2 Categoria „Istoric” ………………………….. ………………………….. ………………………….. …………………….. 50
INDEX ………………………….. ………………………….. ………………………….. ………………………….. ……………. 55
xii
LISTA FIGURILOR
FIGURA 1 HARTA CU LOCATIILE IMPORTANTE TESLA ………………………….. ………………………….. ………………………….. ………… 2
FIGURA 2 MOTOR CURENT CONTINUU CU PERII /FARĂ PERII ………………………….. ………………………….. ………………………….. .. 4
FIGURA 3 MICROCONTROLER RASBERRY PI ………………………….. ………………………….. ………………………….. ………………….. 6
FIGURA 4 DISPLAY TROTINETĂ ELECTRICĂ ………………………….. ………………………….. ………………………….. ……………………. 7
FIGURA 5 MODUL GPRS ………………………….. ………………………….. ………………………….. ………………………….. ………….. 8
FIGURA 6 DESCRIERE FUNCȚIONALITATE TROTINETĂ ………………………….. ………………………….. ………………………….. ………… 9
FIGURA 7 DESCRIERE FUNCȚIONALITATE TROTINETĂ ………………………….. ………………………….. ………………………….. ………. 10
FIGURA 8 COMUNICARE MODUL GPS/SERVER ………………………….. ………………………….. ………………………….. ………….. 11
FIGURA 9 SCHEMA BLOC FUNCTIONARE TROTINETA COMP LETĂ ………………………….. ………………………….. ……………………… 12
FIGURA 10 INTERFAȚA PHP MYADMIN ………………………….. ………………………….. ………………………….. ……………………… 14
FIGURA 11 SCHEMA PROTOCOL TRANSFER FIȘIERE ………………………….. ………………………….. ………………………….. ………… 16
FIGURA 12 CREARE DISPOZITIV VIRTUAL ANDROID ………………………….. ………………………….. ………………………….. ………… 19
FIGURA 13 ALEGEREA DISPOZITIVULUI VIRTUAL DORIT ………………………….. ………………………….. ………………………….. ……. 20
FIGURA 14 ALEGER EA TIPULUI DE ANDROID DORIT PE DISPOZITIV ………………………….. ………………………….. …………………… 20
FIGURA 15 CREAREA UNUI DISPOZITIV VIRTUAL IOS ………………………….. ………………………….. ………………………….. ……… 21
FIGURA 16 PERMISIUNEA DE CITIRE MESAJ SMS ………………………….. ………………………….. ………………………….. …………… 22
FIGURA 17 PERMISIUNEA DE ACCES LA LOCAȚIE DISPOZITIV ………………………….. ………………………….. ………………………….. 23
FIGURA 18 PERMISIUNEA DE ACCES LA CAMERA FOTO ………………………….. ………………………….. ………………………….. ……. 23
FIGURA 19 CONFIGURARE PERMISIUNI ………………………….. ………………………….. ………………………….. ……………………… 24
FIGURA 20 CONFIGURARE PERMISIUNE GOOGLE MAPS ………………………….. ………………………….. ………………………….. …… 24
FIGURA 21 ECRAN PENTRU TRIMITERE COD DE VERIFICARE PRIN SMS ………………………….. ………………………….. ……………….. 26
FIGURA 22 ECRAN PENTRU VERIFICARE COD PRIMIT PRIN SMS ………………………….. ………………………….. ………………………. 28
FIGURA 23 ECRAN PE NTRU ADAUGARE EMAIL ………………………….. ………………………….. ………………………….. …………….. 31
FIGURA 24 ECRANUL "ACASĂ " ………………………….. ………………………….. ………………………….. ………………………….. ….. 33
FIGURA 25 SCANNER PRIN CARE ASOCIEM O TROTINETĂ LA CONTUL DE UTILIZATOR ………………………….. ………………………….. . 36
FIGURA 26 ECRANUL "TROTINETA MEA " (TROTINETA PORNITA ) ………………………….. ………………………….. …………………….. 37
FIGURA 27 ECRANUL "TROTINETA MEA " (TROTINETA TRECE DIN STAREA PORNITA IN OPRITA ) ………………………….. ………………. 38
FIGURA 28 ECRANUL "TROTINETA MEA " (TROTINETA OPRITA ) ………………………….. ………………………….. ………………………. 39
FIGURA 29 ECRANUL "ÎMPRUMUTĂ TROTINETA " (TROTINETA NU ESTE ASOCIATA UNUI UTILIZATOR /ESTE ASOCIATA ) ………………… 41
FIGURA 30 ECRANUL PRINCIPAL "FORUM " ………………………….. ………………………….. ………………………….. ………………… 44
FIGURA 31 ECRANUL "FORUM " (ADAUGARE TOPIC NOU ) ………………………….. ………………………….. ………………………….. .. 46
FIGURA 32 ECRANUL "TOPIC" ………………………….. ………………………….. ………………………….. ………………………….. …… 49
FIGURA 33 CATEGORIA SPECIALA "ISTORIC TROTIN ETA" ………………………….. ………………………….. ………………………….. …. 51
xiii
LISTA TABELELOR
TABEL 1 PERMISIUNI ––––––––––– ––––––––––– ––––––––––– –––––– 24
TABEL 2 SCHEMA TABEL SQL PENTRU AUT ENTIFICARE ––––––––––– ––––––––––– –––––- 25
TABEL 3 PREZENTARE ELEMENTE UI PENTRU ECRANUL TRIMITER E COD VALIDARE PRIN SMS ––––––––––– –––- 27
TABEL 4 PREZENTARE ELEMENTE UI PENTRU ECRANUL VERIFICARE COD PRIMIT PRIN SMS ––––––––––– –––– 30
TABEL 5 PREZENTARE ELEMENTE UI PENTRU ECRANUL ADAUGARE EMAIL ––––––––––– –––––––––- 32
TABEL 6 PREZENTARE ELEMEN TE UI PENTRU ECRANUL "ACASĂ " ––––––––––– ––––––––––– –– 34
TABEL 7 SCHEMA TABEL SQL PENTRU TROTINETA PERSONALĂ ––––––––––– ––––––––––– ––– 35
TABEL 8 PREZENTARE ELEMENTE UI PENTRU ECRANUL "TROTINETA MEA " ––––––––––– ––––––––– 40
TABEL 9 PREZENTARE ELEMENTE UI PENTRU ECRANUL "ÎMPRUMUTĂ TROTINETA " ––––––––––– ––––––- 42
TABEL 10 SCHEMA TABEL SQL PENTRU FORUM ––––––––––– ––––––––––– –––––––- 43
TABEL 11 PREZENTARE ELEMENTE UI PENTRU ECRANUL "FORUM " ––––––––––– ––––––––––– – 45
TABEL 12 PREZENTARE ELEMENTE UI PENTRU POSTARE TOPIC ––––––––––– ––––––––––– ––– 47
TABEL 13 SCHEMA TABEL SQL PENTRU ECRAN “TOPIC” ––––––––––– ––––––––––– ––––– 48
TABEL 14 COMPONENTE UI PENTRU ECRANUL "TOPIC" ––––––––––– ––––––––––– ––––– 50
TABEL 15 PREZENTAREA ELEMENTELOR UI PENTRU CATEGORIA "ISTORIC TROTINETĂ " ––––––––––– ––––– 52
1
1 INTRODUCERE
1.1 Scopul
Aces t proiect are ca scop crearea u nui „ecosistem ”, cum tesla au conectate intre ele ma șinile,
sau app le dispozit ivele elec tronice, a șa și eu doresc sa creez un „ecosistem ” pentru trot inetele
electric e.
Acestea o sa comunice cu un server și o sa poa tă să impart ă informa ții cu ceilalti use ri de
trotinete, daca doresc acest lucru . Aceasta comunicare intre d ispoz itive s e face cu ajutorul internetului
și mai pe scurt s e numește IOT( Internet of Things ), și această denumire de ecosi stem( in pri ncipal
proveni ta de la apple in domeniul tehnologi c) este tot o com unicare intre dispozi tive cu a jutorul
internetului, dispozi tivele trimitand date de la unul la altul .
Desigur prin acest server , fiecare useri i și poate trimite comenzi catre tr otineta printr -o
aplica ție.
1.2 Motivația
In ultimii ani mijloacele d e deplasare electrice au avut o cre ștere i n popularitate foarte mare,
fiind non-poluante sau polu ând foarte pu țin, dar și indus tria aceasta a ev oluat foarte mu lt.
Trotinetele electrice și scooterele electrice fi ind un mijloc de transport ideal pentru ora șe mici
sau medii , reduc ând din poluarea ma sivă a aut oturismelor la orele de vârf si aglom erațiile produse de
acestea. Foarte mul te persoane folosesc un autoturism s ă se deplaseze pe dist ante foarte scurte , care ar
fi parcurse mai lejer pe o tr otineta electr ică, iar ma șinile ar trebu i folosite fie l a parcurge rea de
distan țe foa rte mar i, fie de exemplu când trebuie c ărate anumite luc ruri care necesita o ma șina
(cumparatu ri de la supermarket de e xemplu ).
1.3 Rezumate capitole
Capitol ul 2: In acest capitol o sa prezint, in mare, alte exemple de „ecosisteme ”, ce a mai fost
făcut pana ac um in acest conce pt IOT si cum func ționează acele exempl e similare a ce a ce doresc sa
fac eu , dife rențele fiind date de „obiectul ” care se vrea a fi conectat cu alte obiecte similare.
Capitol ul 3: In capitolul 3 o sa prezint co mponentele hard ware si soft ware folosite p entru ce
doresc eu sa creez , in ce conte xt o sa folosesc fiecare tehnologie in parte si câteva informa ții despre
ele.
Capit olul 4 : Aici o sa prezint pașii par cursi pentru a aduce aplica ția in stare finala , o sa
vorbesc despre anumite func ții principale si o sa spun ce imbuna tațiri se pot face.
2
2 INSPIRAȚIE
Inspirați a principal a a venit de la Apple și Tesla, amb ele companii având ușeri i proprii conectaț i intre
ei, anume apple are aplicați i specifice pr in care ușeri i lor le pot folosii pentru comu nicare text sau
video, doar ușeri i lor. Ios dispunân d de aplicați i specifice, având acces la ele doar printr -un dispozi tiv
apple. Tesla are toate mașinil e conectate la o baza de date pr in care acestea comunic a una cu alta, unul
din lucrurile care ajuta la progres ia succesi va a mașinilo r este aceast a legătur ă. Tesla având și cel mai
avansat sistem de pilot automat, totul se bazeaz ă pe aceast a interconectare, mașinil e trimițân d mereu
date despre drum la o baza de d ate, când șoferu l conduce mașin ă pe un anumit drum aceast a
înregistreaz ă date despre cum a mers, când a luat curbe, etc, astfel devine mai bun. Deținători i
mașinilo r pot vedea intre ei alti șoferi de tesla, daca doresc asta, pot c hiar cere sfaturi altor deținător i
de tesla sau pot vedea pe o harta unde se afla sediil e, service -urile sau stațiil e de încărc are
tesla.
Figura 1 Harta cu locatiil e importante Tes la
3
3 TEHNOLOGII ȘI CONCEPTE UTILIZ ATE PENTRU
DEZVOLTAREA APLICA ȚIEI MOBILE
3.1 Hardware
O trotin etă electic ă este a lcatuita din:
1. Un motor de curent continu fără perii
2. Microcontroler Ra sberry Pi
3. Display
4. Acumulator
5. Frana electromagnet ică
6. Modul GPRS
1. Un motor electric fără perie de curent continuu, cunoscut și sub denumirea de
motorul comutat electroni c și motoarele cu s incronizare conti nuă, sunt motoare sincrone
alimentate cu curent elec tric continuu printr -un invertor sau o sursă de ali mentar e cu comutar e
care produce electrici tate sub formă de curent alternativ pentru a conduce fiecare fază a
motorul ui printr -un contro ler cu buclă înch isă. Controlerul oferă impulsuri de curent
înfășurăr ilor motorului care control ează viteza și cuplul mo torulu i.
Construcția unui sistem cu motor fără perii este de obicei similară cu un motor sincron cu
magnet permanent , dar poate fi, de asemenea, un moto r cu reticență comutată sau un motor cu
inducție (as incron).
Avantajel e unui m otor fără perie, față de motoa rele periate sunt raportul dint re puterea și
greutatea mare, viteza mare, controlul electronic și întreținerea redusă. Motoarele f ără perie găsesc
aplicații în locu ri precum periferice pentru compute r (unități de disc, imprima nte), scule electrice de
mână și vehicule care variază de la aeronave model până la automobile.
4
Motoare cu perie vs motoare fara perie
Figura 2 Motor curent c ontinuu cu perii/ fară perii
Un motor e lectric dezvoltă cuplul alternând polaritatea magneților rotan ți ataș ați rotorului, a
părții rotative a mașin ii și a magnețilo r staționari de pe sta torul care înconjoară rotorul. Unul sau
ambele seturi de m agneți sunt electromagneti, alcătuiți dintr -o bobi nă de sârmă înfășurată în jurul unui
miez de fier. Curentul co ntinu care trece prin înfășurarea sârme i creeaz ă câmpul magnetic , oferind
puterea care conduce motorul. Cu t oate acestea, de fiecare dată când r otorul se rotește cu 180 ° (o
jumă tate de viraj), poziția polilor nord și sud pe rotor se inversează. Dacă câmpu l magne tic al poli lor
ar rămâne același , acest lucru ar provoca o inversare a cuplului pe rotor la fiecare j umătate de rotație,
deci cuplul medi u ar fi zero și rotorul nu s -ar ro ti. Prin urmare, într-un motor cu curent continuu,
pentru a crea cuplul într -o singur ă direcție, direcția curentului electric prin înfășurări trebuie inversată
cu fiecare rotire de 180 ° a rotorului (sau oprită în timpul î n care este în direcția greșită) . Aceasta
inverse ază direcția câmpului magnetic pe măsură ce rotorul se învârte , astfe l că cuplul pe rotor este
întotd eauna în aceeași direcție .
Aceste perii de carbon au fost utilizate p entru a transmite curentul electric de la sursa de
alimentare în motor, reprezentân d factorul fundamental care a dus la evoluți a motorului. Însă, aceasta
tehnic a s-a dovedit a fi nu foarte practic a deoarece, în timp, periile de carbon se deteriorau și trebuiau
înlocuit e. În plus, atunci când motorul era pornit, lovea periile de carbon, gene rând astfel căldur ă și
frecare, ambele fiind forme de energie neutili zata, risipit a. Cu alte cuvinte, energia creat a de bateri e
nu era utilizat a la capacitate maxim a.
5
Avantaje motoare fără perii
• Nu este n ecesara schimbarea de perii, deci nu neccesita aceasta întreținer e.
• Nu există forță de f recare ceea ce duce la o bținere a de cuplu și viteză mai mare c ât și
o ma i bună răcire.
• Un dezavantaj îl constituie faptul că, contro lul lui se face într -un mod mai comp lex,
deci e nevoie de un controller neapărat.
• Tran smiterea semnalelor în bobine se face cu ajutorul senzorilor H all car e pot da
bătăi de cap dacă se întrerup. ( Problemă rezolva tă cu ajutorul controlle relor u niversale .)
• Dimensiuni mai reduse și mai compacte, dar f ără să afecteze cuplul.
2. Raspberry Pi e ste o serie de mici calculatoare uni ce, dezvoltate în Regatul Unit de către Fundația
Raspberry Pi pe ntru a promov a predarea informaticii de bază în școli ș i în țările în curs de dezvoltare.
Modelu l original a dev enit mult mai popular decât cel anticipat, v ânzându -se în afara pieței vizate
pentru utilizări pr ecum robotic a.
Viteza procesorulu i este cuprinsă între 700 MHz și 1,4 GHz pentru Pi 3 Model B + sau 1, 5
GHz pentru Pi 4; Memoria la bord este c uprinsă între 2 56 MiB și 1 GiB memorie cu acces aleatoriu
(RAM), cu până la 4 GiB disponibile pe Pi 4. Cardurile SD în factorul de formă MicroSDHC (SDHC
la modelele timpurii) su nt utilizate pentru a stoca sis temul d e operare și memoria programului. Plăci le
au un ul până la cinci porturi USB. Pentru ieșire video , HDM I și video compozit sunt acceptate, cu o
mufă tip manșon tip inel tip 3,5 mm pentru ie șire audio. Ieșirea la nivel inferior este asigurată de o
serie de pi ni GPIO, care acceptă protocoale comune precum I²C. Model ele B au un port Ethernet
8P8C, iar Pi 3, Pi 4 și Pi Zero W au Wi -Fi 802.11n și Bluetooth la bord.
6
Figura 3 Microcontroler Rasberry P i
7
3. Display -ul este folosit pentru afisarea informatiilor de baza ale trotinetei .
Figura 4 Display trotinet ă electric ă
Pe displ ay dupa cum se vede in poza de mai sus o sa fie afisata viteza de deplasare, bateria,
temperatura si dac a este aprins sau nu fa rul de noapte.
5. Frânele electromagnetic e încetin esc sau opresc mișcarea folosind forța electromagnetică pentru a
aplica rezistență mecanică (frecare). Denum irea iniț ială a fost „frâne electromecanice”, dar de -a
lungul anilor, numele a fost schimbat în „frâne electromagnetice”, referindu -se la metoda de acționar e
a acestora. De când a devenit popular la mijlo cul secolului XX, în special în tren uri și tramvaie,
varietat ea aplicațiilor și a modelelor de frână a crescut dramatic, dar funcționarea de bază ră mâne
aceeași.
8
Atât frânele electromagnetice, cât și frânele cu curent de rotire folosesc forța
electromagne tică, dar frânele electromagnetice d epind în cele di n urmă de frecare, iar frânele de
curent vor folosi direct forța magnetică.
Frânele opresc sau ț in o sarcină atunci când energia electrică este pier dută acc idental sau
deconectată intenționat. În trecut, unele companii au menționat că acest e frâne„nu reușe sc oprire a în
siguranță”. Aceste frâne sunt utilizate de obicei pe un motor electric sau în apro pierea acestuia.
Aplicațiile tipice includ robotica, frânele de susținere pentru șuruburile cu bilă pe axa Z și frânele
servo -motorului. Frânele sunt disponibil e în mai multe tensiuni și pot avea fie butucuri de backlash
standard, fie zero. Discuri multipl e pot fi, de asemenea, utilizate pentru a crește cup lul de f rână, fără a
crește diametrul frânei. Există 2 t ipuri principale de frâne de susține re, frânele cu a rcuri si frânele cu
magnet permanent.
2. GPRS (General Packet Radio Service) este un standard de d ate mobile orientat pe pachete
de pe sistemul glo bal de c omunicații mobile (GSM) al rețelei de comunicații celulare 2G
și 3G. GPRS a fost înfiin țat de European Telecommu nications Standards Institute (ETSI)
ca răspuns la tehnologiile celulare CDPD anterioar e și i -mode -switch -packet. Acum este
menținută de proiect ul de parteneriat pentru generația a treia (3GPP ).
Figura 5 Modul GPRS
9
GPRS este vândut în mod obișnuit în func ție de vo lumul total de date transferate în timpul
ciclului de facturare, spre deosebire de datele comutate de circuit, care sunt de obicei facturate pe
minut de ti mp de conectare sau, uneori, cu creșteri de o tre ime de minute. Utilizarea deasupra
capaculu i de date pachet GP RS poate fi taxată pentru fiecare MB de d ate, limitată la viteză sau
invalidată.
Cu ajutorul acestui modul vom face comunicarea intre se rver si trotineta, asa vom trimite
comenzi la tr otineta.
GPRS implică un ritm variabil și o latență care dep ind d e num ărul de alți utilizatori care
împart serv iciul concomitent, spre deosebire de comu tarea circuitului, unde o anumită calitate a
serviciulu i (QoS) este garantată în timpul conexiunii. În sistemele 2G, GPRS oferă rate de date de 56 –
114 kbit / sec
3.2 Fluxul comenzilor În sistem
3.2.1 Accelerare
In poza de ma i jos se poate vedea ce se intampla cand se va actiona maneta de accelerare de pe
trotinet ă.
Figura 6 Descriere func ționalitate trotinet ă
10
După ce maneta este acționată la un anumit p unct, în funcție de acel punct microcontrolerul o
să trim iță viteza de depl asare către motor iar motorul către roata , aceleași date despre viteza vor fi
transmise și către display, aceasta afișând kilometr ajul.
Kilometr ii se calculează în funcție de rotațiile care le face motorul, daca ținem maneta la
jumătate și avem 15km/h și la un moment dat o să urcam un deal, o să scadă km/h daca nu acționam
mai mult maneta.
De la microcontroler o să mai plece date ș i către server, prin modulul GPRS, dar și de la
server către modul și apoi către microcontroler, a stfel o trotine ta poate fi controlata prin server în
prima faza și pe baza acestui server se poate face o ap licație pentru manipularea acestui s erver.
Toate datele trec mai întăi prin microcontroler, fiind pr elucrate de acesta. Putem seta chiar și
o limita de vitez a prin acel server , putem porni/opri trotineta sau chiar putem face anumite funcții
custom, cum ar fi să nu plece trotineta de pe loc chiar daca am acționa t maneta până nu aceasta vă fi
împinsă puț în, pentru a evita bruscarea.
3.2.2 Frânare
Figura 7 Descriere funcționalitate trotinetă
În figur a de mai sus este prezentat a acționar ea frânei electromagnetice, aceasta acționând
direct pe motorul conținu /roata și apoi microcontrolerul calculea ză kilometrajul în funcț ie de rotații le
pe minut .
11
3.2.3 Modulul GPS
Trotineta are și un modul GPS pentru localizar e.
Figura 8 Comunicare modul GPS/SERVE R
După cum se vede în schema de mai sus, modulul GPS o să trimiță date tot către server, și
trotineta poate fi localiza ta ușor, de exem plu în caz de furt.
În acest ciclu nu exista schimb de informații GPRS –server și server -GPRS ci doa r GPRS –
server, neavand ce dat e să trimitem către modulul GPS de la server.
12
3.2.4 Modulul GPRS
Schema complet ă ar fi urm ătoarea:
Figura 9 Schema bloc functionare trotineta complet ă
După cum se poate vede a, modulul GPRS este c u verde, daca microcontroleru l este cr eierul
sistemului, modului GPRS putem s pune că e ste inima , acesta daca nu mai comunica cu
microcontrolerul dintr -un motiv anume, trotineta nu o să mai funcționeze. În caz că cineva vrea să îl
înlăture pe el sau modulul G PS, trotineta o să se trans forme înt r-un morman de fier și plastic.
O să ex iste un schimb constant de informații intre microcontr oler și server cât timp trotineta
este pornita prin modulul GPRS.
Fiecare trotineta are o cartela sim specifica pentru a putea primii comenzi e xterne.
Toate compon entele hardware mentionate sunt aliment ate de un acum ulator.
13
3.3 Server și manipulare date server
3.3.1 MyS QL
MySQL este un sistem de gestiune a bazelo r de date relaționale, dezvoltat de Oracle. Acesta
este scris în C, C++ și poate fi folosit pe ori ce sist em de ope rare.
Cu acesta se pot contrui orice f el de aplicații în orice limbaj, în principal PHP dar se poate
folosii cu orice alt limbaj major. Există multe scheme API disponibile pentru MySQL ce permit
scrierea aplicațiilor în numeroase limbaje de progr amare pen tru accesarea bazelo r de date MySQL,
cum ar fi: C, C+ +, C#, Java, Perl, PHP, Python, JavaScri pt, etc., fiecare dintre acestea folosind un tip
specific API.
Pentru administrarea acestei baze de da te în proiectul meu o să folosesc phpMyAdmin .
Manip ularea bazelor de date se pot face cu diferite l imbare de programare de backend, cum ar fi PHP,
nodeJS , Java, C# .net, etc. Eu o să folosesc PHP și nodeJS.
3.3.2 phpMyAdmi n
phpMyAdmin este un sistem de gesti une pentru bazel e de dat e MySql/MariaDB, scris în PHP și
JavaScript, și este folosit la administrar ea bazelo r de date printr -un browser web.
Prin phpMyA dmin putem crea baze de date, modificarea acestora sau ștergere a acestora, aceleaș i
operați i sunt și la tabelele din acele baze de date, câmpuril e și rândurile.
14
Figura 10 Interfa ța phpMyAdmin
3.3.3 PHP
PHP este un limbaj de scripting, open source, folosit în trecut pentru a crea site-uri web dinamice
(REST api) dar mai nou este folosit pentru orice alta aplic ație pe parte a de bac kend, anume
manipularea bazelo r de date.
PHP in momen tul o să facă un call catre server o să aștept e să îl și termine (să primea scă un răspun s),
apoi o să treac ă la următoru l. Acest lucru nu ne încurc ă în aproape nici o ac tivitate de manipulare, în
majoritatea procesero l nu o să avem multe procese odată pentru a pierde foarte mult timp, dar de
exemplu la parte a de IOT de la trotine te, comunicarea acestora cu serverul, o să se piard ă mai mult
timp cu cât mai mulți utilizator i o interacț ioneze cu trotinet a.
15
3.3.4 Node JS
Node Js că și PHP este un limbaj de scripting Open Sourc e (free) care merge pe orice platform a
(windows ,mac,linux,etc). Acesta are la baza Chromium, adică engine -ul V8 pe care funcționeaz ă
google C hrome și care es te extrem de puternic. V8 este scris în C++ și compilează cod de JavaScript
în codul nativ al mașin ii la rulare .
Node cand o sa fac a un call nu o sa astepte dupa raspunsul l ui inainte de a fac e un altul, de exemplu
daca o sa faci 5 calluri o sa dea raspuns la primul t erminat, nu primul care a fost ce rut.
Acest engine e ste extras separat și pe acesta este create node. Node are la baza JavaScript și are o
popularitate foarte mare develop erii putân d folosii JS și pe front -end și pe back -end, putân d crea
aplicați i complete mai simplu. Acesta funcționeaz ă pe mai multe core -uri, adică asyncrone, nu
așteapt ă să se termine un proces pentru a îl începe pe altul, și a fost folosit în proiect la gestionarea
datelor de la trotinete.
3.3.5 Protocol ul pentru transfe r de fișiere
FTP (file transfer protocol) este este un pro tocol standar d de rețea folosit pent ru tra nsferul de fișier e
dintre un client și un ser ver.
FTP este construit pe o arhitectură de mode l client -serve r folosind controlul separat și conexiunile de
date între client și ser ver. Utilizatorii FTP se pot autenti fica cu un protocol de conectare în text clar, în
mod normal, sub forma unui nume de ut ilizator și a unei parole, dar se pot conecta an onim dacă
serverul este configurat să -l permită .
16
Figura 11 Schema protoc ol transfer fi șiere
17
3.4 Tehnologii folosite pentru crearea interfe ței utilizat orului
3.4.1 React Native
React este o librăr ie creat ă de facebook pentru a realiza parte a de front -end a site-urilor
web, aceste a având un timp de încărcar e foarte mic, a proape instant .
Cu timpul aceast ă librărie a luat amploare foarte mare și dorindu –
se că odată învățată să se poată realiz a pe lângă aplucatii web și aplicați i mobile sau desktop cu
anumite modificăr i în parte a de cod da r nu foarte di ferite .
De exemplu este total diferit să creezi aplicați i pentru android în java față de aplicațiil e de
ios în objective -c sau swift, fiind și foarte co stisitor, necesitân d numă r mult mai mare de developeri .
Cu react native s -a dorit că un de veloper care cunoașt e javascript, un
limbaj mai ușor de înțele s decât java sau swift, să poată coda pentru
cele două platforme odată, fiind necesare niște cunoștinț e avansate de web development, dar acel
developer poate fi pus să facă trei lucruri diferite (site web, aplicați e android sau aplicație ios).
Folosin d react na tive la un proiect ios sau android tot este necesa r că developerul să știe conceptele
de codare nativă, implementarea de anumite m odule neputân d fi făcut ă decât nativ (push notification,
detectarea locației, folosirea camere i telefonului,etc) .
La pa rtea de design se foloseste un styleshee t, acest a cuprinde JSX si se poat e face design -ul cu
concepte si milare de css, cunostinde dobandi te pe partea de web .
Deci mai pe scurt react este o libra rie cu care se vrea si in mare parte a reusit sa poti coda pentru
web,mob ile si desktop fara a fi nevoie ca developerul sa invete multe limbaje di ferite, c ostul firme lor
fiind unul m ult mai mic.
Deza vantajul folosirii acestei librarii pentru aplicatii de m obile este ca nu este la fel de rapid a ca o
aplicatie nativa, dar in prop ortie de aproximati v 85% aplicatiile din i ndustrie sunt de ni vel mic sau
mediu, react native exceland pentru aceste aplic atii. De exemplu o aplicatie ca youtube n u ar fi putea
fi sustinuta de rea ct native la acelasi po tential cum este acum.
React a casti gat foarte mu lta popularitate fiind o librarie, nu neaparat un framework, adica nu e un
pachet mare cu tool -uri ajutatoare, da r asta nu e u n avantaj, nu are tool -uri incluse de la inc eput,
develope rul putand adauga doar ce tool-uri ii sunt ne cesare, aplica tia nefiind ingreunata de cod inutil.
18
3.5 Programe folosite pentru creare aplica ției
Un mediu de dezvolt are integrat (IDE) este o aplicație software care oferă facilități complete
progr amatorilor de computer pentru dezvolta rea de software. În mod normal, un I DE constă din cel
puțin un e ditor de cod s ursă, instrumente de automatizare pentru construire și un d epanator.
3.5.1 Visual Studio Code
Visual studio code este editorul de cod folosit de mine pentru a scrie codul de React Na tive,
PHP și Node. Acest a având integrad un interpretor de cod care ajută la codarea mai rapid ă a
scriptului .
Fiind unul din cele mai dezvoltate medii de dezvolta re și susținu t de microsoft
are creat e foarte multe plugi nuri care vor ajută la debug .
3.5.2 Filez ila
Pentru urcar ea pe server a fișierelor o să folosesc Filezila client care e ste o soluți e pentru transfer de
fișier e. Prin file zila o să putem urca și cobora fișiere de pe server când vrem după ce ne vom conecta
cu o parol a.
3.5.3 Android Studio
Android studio este mediul o ficial de dezvoltare android, acest a dezvoltând u-se constant p entru o
dezvoltare cât mai bună a aplicațiilo r android.
Acesta oferă multe funcții java ajutătoare specifice programării android, alte editoa re neavând aceste
funcții. De exemplu pentru configurarea permisiunilor d e citire mesaje sau push notification sunt
create funcții specifice în android studio.
Acesta mai a re și un program terță integrat și anume android virtual emulator unde se poate test a
programul pe diferite telefoane vir tuale fără a fi necesare mai multe t elefoane fizice pe diferite
rezoluții.
19
Crearea unui di spozitiv virtual ( emulator ) pentru and roid se face prin urmatorii pași:
Se apasă butonul „Create Virtual Device… ”
Figura 12 Creare dispozitiv virtual android
20
Alegerea tip ului de dispozitiv dorit, în general se alege în funcți e de rezoluți e și mărim e
Figura 13 Alegerea dispozitivului virtual dorit
Apoi se alege tipul de android dorit pentru testarea aplicație i, in general se a lege ultimu l android
apăru t
Figura 14 Alegerea tipului de android dorit pe d ispozitiv
21
3.5.4 XCODE
XCODE este pentru IOS ce este Android studio pentru android, este singurul mediu de programare
oferit de apple pentru crea rea de aplicații ios/macos/appletv.
Acesta, că și android studio, oferă funcții specifice pentru permisiuni, sau de exemplu pentr u
adăugarea iconitelor aplica ției sau splash screen.
Are fo arte multe funcții integrate pentru a fi mult mai ușor programatoril or la funcții repetitive.
Acesta, că și android studio, conține un program terță pentru emularea telefoanelor, nefiind necesare
device -uri mobile pentru toate modelele.
Crearea unui di spozitiv virtual ( emulato r) pentru ios se face prin următori i pași:
1. Se alege device -ul dorit
2. Se apasă buton ul play pentru a porni un simulator și o să se compileze progr amul , iar apoi o
sa se instale ze pe acel em ulator.
Figura 15 Crearea unui dispozitiv virtual IOS
22
4 CREAREA APLICAȚIE I
4.1 Permisiuni ap licație
Orice aplicați e care solicit a accesul la alte funcționalităț i ale te lefonului, care sunt înafar ă acelei
aplicați i, o să întreb e mai întăi daca îi oferim accesul la acele permisiuni (citire mesaj sms, locați a
telefonului, camer a telefonului,etc). As tfel utilizato rul poate alege să nu dea acces acelei aplicați i la
anumite da te, dar asta și limitân d experienț ă acestuia cu aplic ația.
4.1.1 Permisiunea de citire me saj sms
Folosind o autentificare prin verificare cod sms pr imit pe un numă r de telefon, utilizat orul poate, daca
accept a aceast a permisiune să foloseasc ă o funcți e de autoc omplete a codului de sms, acesta nu să mai
fie nevoie să copieze codul manual .
Figura 16 Permisiunea de citire mesaj sms
23
4.1.2 Permisiunea de acces la loca ție dispo zitiv
Utiliza torul o sa aiba optiunea sa vada locatia pe google maps dar si locatia trotinetei personale si ale
altor util izatori.
Figura 17 Permisiunea de acces la locație dispozitiv
4.1.3 Permisiunea de acces la ca mera foto
Fiecare utilizator o să poată să își asocieze o trotineta personala, aceasta se poate ata șă contului
scanând un cod qr atașat pe trotineta. Accesul la camera fiind necesar pentru a prelucra imaginea
codului qr pe care aceasta îl vede.
Figura 18 Permisiunea de acces la camera foto
24
4.1.4 Configurare permi siuni
Aceste module su nt native, nu se pot activa prin javascript, se vor conf igura prin partea nativa de
android , anum e Android Mani fest.xml .
Figura 19 Configura re permisiuni
Google maps fiind un script extern, este nevoie de un cod api de la google special pentru aplicați a
noastr ă, fară acest cod api mapa nu o să se încarc e.
Figura 20 Configurare permisiune google maps
Acces
permisiune Internet Locatie Camera Vibratie Mesaj
primit Citir e
mesaj
Necesar DA DA DA NU NU NU
Acceptare
automata DA NU NU In functie
de camera NU In functie
de mesaj
primit
Ecran
bene ficiar Toate ecranel e Acasa Trotineta
mea Trotineta
mea Verificare
Cod Sms Verificare
Cod Sms
Func tie
indeplinita Manipulare baza
de date
Functii trot ineta
Modul plata Locatia
utilizatorulu i
pe harta Procesare
cod q r prin
comp onenta
scanner Confirmare
cod q r citit Activare
citire
mesaj Citire
mesaj
primit
Tabel 1 Permisiuni
25
4.2 Autentificare
O să fie folosit un model de autentificare prin sms, fata de clasica aute ntificare prin username și
parola. Aceasta autentificare fiind mai rapida si mai usoara, o mare part e din ea fiind automata.
Aceasta autentificare presupune asocierez unui cod de verif icare random de fiecare data când se vă
cere un nou sms cu acel cod.
Tabel creare user:
Nume
tabel ID nr.telefon cod verificare email data_creare
tip id varchar varchar varchar timestamp
Scrie re
date in
tabel autoincr ementare send_s ms.php send_s ms.php add_email.php automat
Tip
scriere
date
HTTP GET
Citire
date in
tabel verify_sms.php verify_sms.php verify_sms.php
Tip citire
date
HTTP GET
Tip chei e primary
Tabel 2 Schema tabel SQL p entru autentificare
26
4.2.1 Trimiter e cod de verificare prin sms
Figura 21 Ecran pentr u trimitere cod de verificare prin sms
1. Un input de tip numeric pentru completarea numărului de telefon, acesta acceptă doar un
număr de zece cifre.
2. Un c heckbox prin care utilizatorul o să confirme dacă a acceptat termenii și condițiile , prin
confirma rea acestuia o să se deblocheze butonu l de submit.
3. Butonul de submit la apăs are o să se acceseze funcția sensSms, această o să acceseze scriptul
sens_sms.php și o să trimită către acesta număru l de telefon din inputul număr telefon și o să
27
treacă la ecranul următor, anume “Verifică Cod SMS”, trimițând către acest ecran și numărul
de telefon.
Scriptul sens_sms.php o să trimită codul random prin sms ș i în acelaș i timp o să creeze în
tabel o nouă i ntrare cu numărul de telefon și codul sms, sau dacă există deja numărul de
telefon în acel tabel, o să facă update la cod.
Mesajul se trimite cu ajutorul unui sms g ateaway kannel care primește mesaje de pe
web și le redirecțion ează către modemul gsm.
ID 1 2 3
Nume
compo nenta Input numar
telefon Check box acceptare
termeni si co nditii Buton submit
Tip Input numeric Checkbox tip adevăra t/fals Buton custom
cu iconiț ă în form ă de săgeat a
Functii
folosite phone Number
setPhoneNum ber setTerms( true/f alse) Event de activa re functie
(send_sm s.php ) prin apasare a
acestuia
Tabel 3 Prezentare elemente UI pentru ecranul trimitere cod validare prin sms
28
4.2.2 Verificare cod primit prin sms
Figura 22 Ecran pentru v erificar e cod primit prin sms
1. Acest input este unul custom, anume este repr ezentat dintr -un numar de șase
inputuri, fie care input are un id numeric propriu (de la 1 la 6) și un număr maxim de 1
caracter.
Prin completarea pri mului input o să se facă un focus că tre id -ul următor, inputul
focusat o să aibă un background diferit față de celelalte, oferind un feedback
utilizato rului.
În momentul în care toate inputurile sunt completate o să se apeleze automat funcția
29
verify_sms.p hp.
Dacă utilizatorul a activat perm isiune a pentru citire sms acest input o să se
completeze automat la primirea unui sms.
Sms-ul o să fie verificat da că conține un anumit set de caractere, dacă acesta găsește
acele caractere cheie o să caute codul de șase cifre din acel mesaj, în caz că nu se
găsește acest set de caractere pentru verificare sms, nu o să fie băgat în seama acel
mesaj.
Dacă codul nu coinc ide cu cel care este salvat în baza de date, serverul o să ne dea un
valid: 0 și o să ne apară un mesaj d e eroare, dacă codul este bun, o să ne fie transmis
înapoi un obiect numit user, dacă nu există un cont înregistrat o să primim un user gol
și o să tri mitem utilizatorul în ecranul următor, anume “Înregistrare Ema il” pentru a
atașa un user acelui număr de telefon.
Dar dacă există deja un use r ataș at acelui cont, o să fim logați în aplicație și
redirecționați către ecranul “Acasă”.
2. Dacă utilizatorul a ref uzat permisiunea de citi re mesaje, scriptul de citire
mesaj nu a funcționat dintr -un anume motiv și totuș i dorește o com pletare semi –
automată acest a poate da “copy” la codul din mesaj și poate apasă
butonul paste pentru completarea inputului.
3. Butonul “ Înapoi” are că scop retrimit erea în primul ecran dacă utilizatorul
a greșit numărul de telefon.
4. Acest buton a re că scop retrimi terea codului sms în caz că nu a fost primit de
utilizator.
30
ID 1 2 3 4
Nume compo nenta Input cod sms Buton pas te Buton inapoi Buton retrimitere
cod
Tip 6x Input numeric Buton Buton custon cu
iconi ta si text Buton
Functii folosite verifyCode
setVer ifyCode setVerifyC ode() setStep( 1) send_sms .php
Tabel 4 Prezentare elemente UI pentru ecranul verificare cod primit prin sms
31
4.2.3 Adaugare email
Figura 23 Ecran pentru adaugare email
1. Inpu t pentru adăugare a unui email pent ru contul utilizatorului .
2. Buton custom, prin apăsarea acestui buton o să verificăm dacă email -ul are formatul corect,
exemplu text@text.com .
Verifica rea o să o facem cu un regex :
const mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,7})+$/;
32
Dacă fo rmatul nu este corect o să primim un mesaj de eroare , dacă formatul este unul corect o să se
acceseze scriptul add_email.php, o să se asocieze emai l-ul la contul nostru și o să fim logați și
redirecționați către ecran ul “Acasă”.
ID 1 2
Nume compo nenta Input adaugare email Buton submit
Tip Input email Buton custom care
conține text și iconita
Functii folosite email
setEmail add_email.php
Tabel 5 Prezentare elemente UI pentru ecranul adaugare email
33
4.3 Ecranul „Acasă”
Ecranul acasă o să conțînă mapa de la google care o să conțină locația utilizatorul ui și locațiile trotine
telor.
Această o să afișeze locația trotinetelor în timp real, făcând o reîmprospătare odată la 2 secunde.
Figura 24 Ecranul "Acas ă"
34
1. Prin funcția de geolocatie o să se citească locația utilizatorului cu ajutorul GPS -ului.
După citirea locației o să atașăm varia bilei userLocation
latitudinea și longitudinea locației userului .
2. Fiecare trotinet ă o să apară pe mapa cu o iconiță pentru a putea fi identificată ușor.
Latitudinea și longit udinea trotinetelor o să fie luate de pe server și salvate în variabile
trotiData.
Prin selectarea unei trotinete prin apăsare o să ne apară id-ul acesteia .
3. Un buto n care o să centreze mapa pe locația utilizatorului cu o animație .
Acea stă o să ajute la găsirea mai ușoară a locației utilizatorului.
5. Dacă avem o trotinetă asocia tă contului prin ecranul „Trotinetă mea” o să ne apară acest
buton prin care putem porni/oprii troti netă rapid, dacă nu avem nici o tr otinetă a sociată
contului acesta nu o să apară.
ID 1 2 3 4 5
Nume
componenta Iconita
geoloca ție Iconi ta
trotineta Callout
(Informati e
pentru
marker ) Buton locatie Buton
START/STOP
Tip Iconita Iconita Componenta
text cust om Buton Buton
Func ții
folos ite userLocation trotiData trotiData.id setUserL ocati on
(geolocation ) Daca este
stocata in
memoria
telefonului un
id trot ineta o
sa apara
Tabel 6 Prezentare elemente UI pentru ecranul "Acas ă"
35
4.4 Ecranul „Trotineta mea ”
Pentru ecranul acasă o să fie creat un nou tab el cu date referitoare la trotinetă noastră .
Toată aceste informații o să fie legate de e mailul utilizatorului.
Relația dintre tabele este one to one (unul la unul) , fiecare user putând să aibă doar o trotinetă .
Tabel date trotin eta mea:
Nume
tabel ID user id_troti security rent_user
tip int varchar varchar int timestamp
Scriere
date i n
tabel autoincrementare insertUser.php insertUser.php updateUser. php upda teUser .php
Tip scriere
date HTTP POST
Citire date
in tabel selectUser .php selectUser.php selectU ser.php selectUser.php
Tip citire
date HTTP GET
Tip c heie primary secondary
Tabel 7 Schema tabel SQL pentru trotineta per sonal ă
36
4.4.1 Asoci erea unei trotinet e la cont ul utilizatorului
La intrarea în ecra nul „Trotineta mea”, daca nu avem o trotineta asociata contului o să ni se activeze
camera în aplicație, aceasta daca vede un cod qr o să îl decodeze într-un string și o să ni se asocieze o
trotine ta care are codul decod at din acel cod qr. După asociere o să ne apară funcțiile de customizare
ale trotinetei și butonul de comanda rapid ă start/stop din ecranul „Acasă”.
Figura 25 Scanner prin care asociem o tr otine tă la contul de utilizator
37
4.4.2 Acces f uncții trotinet a
Pentru trimitere a comenzilor c ătre trotineta nu s -a folosit php că până acum, ci node .js, php daca
primeșt e anumite cereri o să trimiță răspuns în ordinea în care au venit cererile, indiferent cât durează
una din ele. Node în schimb daca primește mai mu lte cereri în acela și timp o să t rimiță răspunsul la
care termina prima, neasteptand să se termine cea dinain te. Astfel daca un call durează prea multe nu
o să aștepte după el, cele mai rapide o să fie primele rezolvate. În figura 28 trotine ta este oprița, prin
apăsarea buto nului start o să se treacă în loading până se transmite comanda la tr otineta, figura 27, i ar
apoi trotineta o să pornească și o să ne apară butonul stop.
Figura 26 Ecranul "Trotin eta mea" ( trotin eta pornita )
38
Figura 27 Ecranul "Trotineta mea" (trotineta trece din star ea pornita in oprita )
39
Figura 28 Ecranul "Trotineta mea" (trotineta oprita )
1. Butonul o să se schimbe în funcție de ce com anda urm ează să trimitem către trotineta p rin apăsarea
acestuia. Daca am apăsat butonul pornește o să se acti veze o animație car e simulează o încărcare până
când comanda este trimisa cu succes, urmând că butonul să se mute pe stop, funcționând și invers
(stop/load ing/start).
2. Prin selectarea unu ia din cele doua radio button o să afișam sau nu poziți a trotinetei pe harta de la
ecranul „Acas ă”.
3. Putem selecta dintr -un dropdown o anumită viteza maxima a trotinetei. Ultima viteza selectata o să
se salveze în memor ia telefonului pentru a putea afla ultima viteza selectata a trotinetei.
40
4. Kickstarter este o funcți e care ajuta în cazul în care vi se pare că trotineta vă bruschează, activarea
acesteia o să necesite că trotineta să fie împinsă ușer la plecare, accelera ția acesteia nu se vă activa
decât după ce displ ayul înregistrează 2km/h.
5. Security este o funcție antifurt, se poate activa și daca trotineta este pornita și daca este oprița, în
cazul în care aceasta este activa, roata din fata se vă înfrână și la mișc are buzzer -ul o să scoață un
sunet .
ID 1 2 3 4 5
Nume
comp onentă Buton
pornit/oprit Radio Butoane Dropdown Radio Butoane Buton
securitate/opri re
Tip Buton
customizabil
cu loading Radio Dropdown Radio Buton
Func ții
folos ite startTrot i
stopTro ti updateUs er.php setSpeed() setKicks tarter() startSecurity
stopTroti
Tabel 8 Prezentare elemente UI pentru ecranu l "Trotineta mea "
41
4.5 Împrumut ă trotineta
În acest e cran put em împrumută trotineta unui alt utilizator, acestea o să aibă acces d oar la funcțiile de
start și stop. Este foarte utila și pentru copii î n cazul în care vrem să îi lașam trotineta dar nu vrem s ă
modifice viteza acesteia sau funcția de dezactivare gps.
Figura 29 Ecranul "Împrumută trotineta " (trotineta nu este asociata u nui uti lizator/este asociata )
1. Prin acest input putem adaugă email -ul altui utilizator al aplica ției pentru a -i oferi acces la funcțiile
de start/stop, dup ă asocierea unui ușer cu trotineta o să ne apară în locul acelui input o componenta
42
care ne spune cui am împrumutat trotineta și un bu ton de anulează, pentru a anula împrumutul. După
anulare trotin eta nu o să mai apară în ecranul de împrumut al beneficiaru lui.
2. Putem vedea o listă cu toate trotinetele care ne -au fost împrum utate, apăsând pe una din ele o
putem porni sau oprii.
ID 1 2
Nume compo nenta Input adaugare email Listă trotinete
Tip Input email Flatlist care insira toate
trotinetele inchiria te
noua
Functii folosite borrowe dEmail
setBorrowe dEmail selectUser.php
Tabel 9 Prezentare elemente UI pentru e cranul " Împrumut ă trotineta "
43
4.6 Ecranul „Forum”
Forumul apli catiei este realizat pentru comunicare utilizator ilor intre ei in legatura cu anumite situatii.
Aces ta este compus din din categoria „Probleme”, „ Discuții gene rale”, „Nou tăți” și o categorie
speciala numita „Istoric trotineta”.
4.6.1 Comunicare între utilizatori
Categoriile „Probleme”, „Discuții generale” și „Noutăți” sunt pentru comunicarea intre u seri.
În funcție de categoria selectata o să se facă un select din ta belul din b ackend în funcție de id -ul
categoriei respective.
Tabelul din baza de date este de tipul one to ma ny (un ușer poate avea mai multe topicuri create, dar
un topic nu poate avea mai mulți u seri care l -au creat .)
Tabel topic forum:
Nume tabel ID user topic catetgory date closed
tip int varchar varchar varchar varchar varchar
Scriere date i n tabe l autoin crementare addTopic .php update Topic .php
Tip scriere date
HTTP POST
Citire date i n tabel selectAllTopics .php
Tip citire date HTTP GET
Tip ch eie primary secondary
Tabel 10 Schema tabel SQL pentru F orum
44
Figura 30 Ecra nul principal "Forum"
1. Componenta care conține un flatlist pe orizontala (o lista pe ca re se poate face scrol) cu toate
categoriile, putând selecta o categorie apăsând pe aceasta .
2. Prin apăsarea acestui buton o să se ascundă topicurile și o să apară un input pentru adăugarea
unui topic și un buton pentru postarea acestuia (Figura 31 ).
3. Fiecar e topic are forma unui card ș i sunt s ortate în ordine a în care au fost adăugate. Acestea
conțin numele utilizatorului , data la care a fost creat și ora și textul pentru topic .
Prin apăsarea pe unul din aceste topicuri o să fim duși la ecranul acestui topic (Figura 32) .
45
4. Topicul poate f i închi s de utilizatorul care l -a creat, închiderea unui topic o să împiedice alti
ușeri în a putea adaugă comentarii nou în ecranul acelui topic .
ID 1 2 3 4
Nume
compo nenta Componenta
custom scrolabila
care conține
butoane
(activare event la
apasare ) Buton posta re Card topic Card topic inchi s
Tip Component a
custom Buton Component a
custom
care prin apasare o
sa ne duca la
ecranul topicului Componenta
custom
care prin apasare o
sa ne duca la
ecranul topicului
Functii
folosite selectAll Topics.php
+ trimite re
categ oria dorita setPostActive (true) navigate( “Topic ”) navig ate(“Topic ”)
Tabel 11 Prezentare elemente UI pentru ecranul " Forum "
4.6.1.1 Creare topic nou
Utilizatorul are posibilitatea să creeze un topic nou și a porni o noua discuție cu alti utilizatori.
46
Figura 31 Ecranul "Forum" (adaugare topic n ou)
1. Prin apa sarea acestui buton, utilizatorul o sa re vina la ecranu l principal al ecranului „Forum ”
prin setarea variabilei postTopicActive in false (Figura 30 ).
2. In acest input utilizat orul poate sa scrie c ontentul care o sa il aiba topicul ce urmeaza a fi
creat.
3. Prin apasarea butonului „Posteaza ” o sa se salveze contentul din inputul „Adauga postare
noua ” in baza de date , o sa se accese ze variabila postTopic Activ e in false si o sa se fa ca un
recall la scriptul selectAllTopics.php, acesta reincarcand posturile din forum.
47
ID 1 2 3
Nume
compo nenta Buton Input Buton
Tip Buton Input Buton
Functii
folosite selectAll Topics.php
setPost Topic Active (true) setTopic Conte nt(“”) addTopic .php
setPostTopicActive( false)
selectAll Topics.php
Tabel 12 Prezentare elemente UI pentru postare topic
48
4.6.1.2 Ecran ul „Topic”
Acest ecran este unul dinamic, o sa se faca un call din server diferit in functie de id -ul topicu lui
accesat in ecran ul „Forum ”.
Daca topicul este inchis de utilizator (Figura 30.4 ) atunci o sa putem vedea in ecranul topic toate
comentar iile din acel topic dar nu o sa putem adauga alte comentarii.
Tabelul SQL pentru comentarii este legat de cel de topic. Pu tem ave a mai multe comentarii la un top ic
de la acela si user.
Nume
tabel ID topic_id user comment date
tip int varchar varchar varchar varchar
Scriere
date i n
tabel addComment.php
Tip
scriere
date
HTTP POST
Citire
date i n
tabel selec tComment .php
Tip
citire
date
HTTP GET
Tip
cheie primary secondary
Tabel 13 Schema tabel SQL pentru ecran “Topic ”
49
Figura 32 Ecranul "Topic"
1. Cardul principal al acelui topic care contine numele utilizatorului care l -a creat, cont entul acelui
topic si butonul “Inchide topic ” care o sa apara doar utilizatorului care a creat topicul.
2. Prin apasarea acestui buton o sa reincarcam comentariile/o sa ascundem comentariile.
3. Fiecare comentariu este prezentat de cate un card care contin e si data la care a fost crea t, fiind
sortate in functie de momentul in care au fost ada ugare. In partea d e jos avem si un input prin care
putem adauga un comentariu nou. La adaugarea unui comentariu nou o sa facem o noua cerere de la
server pentru a reimp rospata comentari ile.
Daca topicul e ste inchi s, acest input “Adauga comentariu ” nu o sa mai apara.
50
ID 1 2 3
Nume
compo nenta Card Buton FlatList( scrola bila) +
input
Tip Componenta custom Buton Componenta custom +
input
Functii
folosite update Topic .php (folosit
pentru inchidere topic ) selectComment. php addTopic .php
setPostTopicActive( false)
selectAll Topics.php
Tabel 14 Compo nente UI pentru ecranul "Topic "
4.6.2 Categoria „Istoric ”
Tabelul i storic ne oferă informații în legătu ră cu r eparațiile făcute la o anumită trotineta. Fiecare
trotineta are propriul istoric și data la care a fost realizata reparația.
Nume tabel ID id_troti state
(stare ) faulty
(defect) warranty
(cu/far a garantie) time
tip int varchar varchar varchar int varchar
Scriere date i n tabe l
Tip scriere date
HTTP
Citire date in tabel getTrotiState .php
Tip citire date HTTP GET
Tip ch eie primary secondary
Tabel 15 Schema tabel SQL pentru categoria “Istoric "
51
Figura 33 Categoria specia la "Istoric trotineta"
1. Input pentru adaugare id ului trotinet ei careia dorin sa ii vedem istoricul reparatiilor.
2. Card custom care contine numele trotinetei, motivul reparatie i, reparati a realizata , efectuata in
garantie sau nu si data la care s -a efectua t reparatia.
ID 1 2
Nume compo nenta Input adaugare id
trotineta Listă reparatii
Tip Input defau lt Flatlist care insira toate reparatiile
efectuate trotinetei
52
Functii folosite idTroti
setIdTroti getTrotiState .php
Tabel 15 Prezent area elemente lor UI pentru categoria "Istoric trotinetă"
53
5 BIBLIOGRAFIE
(Motor de curent continuu fără perii, n.d.)
54
CD / DVD
Autorul a tașează în această an exă obligatorie , versiunea electron ică a ap licației, a acestei
lucrări, precum și prezentarea finală a tez ei.
55
INDEX
B
Bibliografie ………………………….. ………………………. 9
C
CUPRINS UL ………………………….. …………………… xi
D
Dimensiuni ………………………….. ………………………. 3
F
Figuri ………………………….. ………………………….. ….. 4
Formulele m atematice ………………………….. ……….. 4
I
Ilustra țiile ………………………….. …………………………. 4 L
Legenda ………………………….. ………………………….. .. 6
LISTA FIGURILOR ………………………….. ………… xii
LISTA T ABELELOR ………………………….. ……… xiii
R
Referințe web ………………………….. ………………….. 10
S
Structura documentului ………………………….. ………. 2
T
Tabe le ………………………….. ………………………….. …. 5
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: INFORMAȚIEI AUTOMATICĂ, ELECTRONICĂ ȘI MECATRONICĂ [617199] (ID: 617199)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
