Sunteți pe pagina 1din 24

UNIVERSITATEA „POLITEHNICA” DIN BUCUREȘTI

FACULTATEA TRANSPORTURI

Departamentul Telecomenzi și Electronică în Transporturi

PROIECT
SISTEME DE DIRIJARE A
TRAFICULUI FEROVIAR

Îndrumător Student

Ș.l. Dr. Ing. ANDREI GHEORGHIU MIHAI MANTESCU

București

Anul 2020
Cuprins

1. Tema proict.............................................................................2
2. Schema bloc............................................................................4
3. Aplicatie calatori.....................................................................5
4. Apicatie control......................................................................6
5. Validator................................................................................10
6. Server....................................................................................16
7. Codare...................................................................................18
8. Schema logica........................................................................19
9. Bibliografie............................................................................23

1
1. Tema proiect

Sa se proiecteze un sistem de taxare compus din sistem de stocare a datelor la utilizator, sistem
automat de validare si control si o component centrala cu baza de date pentru inregistrarea
informatiilor. Sunt oligatorii urmatoarele:

- Definirea modaltatii de stocare a datelor: locala sau centrala


- Definirea tipurilor de calatorii disponibile (abonament, portofel electronic, bilet unic , set 2
calatorii etc.). Se va prezenta un algoritm pentru alegerea celei mai potrivite surse de plata din
punct de vedere al calatorului. Se vor propune valori, necesare pentru comparatii
- Definirea structurii bazei de date necesare
- Pentru comunicatii se va define continutul mesajului care se va transmite si se vor propune
modalitati de securizare a acestuia
- Componentele vor fi identificate in functie de parametrii care au importanta pentru proiect. Se
vor detalia solutii tehnice, inclusive conectarea si daca este cazul programarea modulelor
utilizate
- Justificarea solutiilor alese: pentru fiecare se vor prezenta avantaje si dezavantaje.

Pe baza notatiilor:

- nn = numarul de litere din nume (Mantescu = 8)


- np = numarul de litere din prenume (Cristian = 8)
- ng = suma ultimelor doua cifre din grupa (8410 = 1),

se considera urmatorii parametrii:

- Validarea se va face de pe shartphone, daca nn este par sau de pe dispozitive dedicate, daca nn
este impar
Validarea se va face de pe shartphone
- Controlul validarii biletului se va face de pe shartphone, dca np este par sau de pe dispozitive
dedicate daca np este impar
Controlul se va face de pe dispozitive dedicate
- Numarul de calatorii definite este egal cu (nn + np + ng)%3+2 = 4
- Viteza de circulatie intre statii este cuprinsa intre min (nn, np)*10km/h si (nn + np)*10Km/h.
Pentru comunicatii se va tine cont de specificul circulatiei feroviare, incluzand tuneluri, sau zone
fara acoperire GSM
Viteza minima = 80 km/h
Viteza maxima = 160 km/h
- Tensiunea de alimentare pentru toate echipamentele noi introduse in sistem este de nn*10
volti. Daca nn este impar alimentare disponibila este de c.c. ,iar daca nn este par, alimentarea
disponibila este de c.a.
Tensiunea de alimentare este de 80 V curent alternativ C.A.

2
Continutul proiectului
- Prezentarea schemei bloc propuse cu explicarea blocurilor componente si definirea functiilor
acestora
- Prezentarea schemei de amplasament a echipamentelor utilizate
- Descrierea solutii alese pentru realizarea fizica a fiecarui bloc din cele prezentate anterior:
schema electrica, calcule pentru dimensionarea elementelor componente, prezentarea datelor
de intrare si iesire necesare, elemente de fiabilitate
- Proiectarea interfetelor dintre blocurile functionale – daca este cazul
- Prezentarea programului software (limbaj de asamblare, C, pseudocod, schema logica etc.)-
daca seutilizeaza microcontrolar/microprocesor/placa de dezvoltare
- Prezentarea schemei complete rezultate pentru realizarea temei.

3
2. Schema bloc

Control

Bloc de Sistem de validare Server


alimentare NFC cu telefonul

Dispozitiv
utilizator

1. Blocul de alimentare are rolul de a alimenta cu energie electrica dispozitivul de validare.

2. Dispozitivul utilizatorului este un telefon mobil cu comunicatie NFC care este folosit pentru a
cumpara biletul de pe aplicatia companiei. In momentul cumparari biletului datele
utilizatorului sunt stocate in baza de date, pe telefon stocandu-se numai un numar de
rezervare, iar telefonul se va folosi pentru a trimite numarul rezervari clientului la sistemul
de validare.

3. Sistemul de validare este prezent la intrare pe fiecare peron. Validarea se face cu telefonul
mobil prin intermediul comunicatiei NFC. Pe ecranul dispozitivului se va afisa mesajul „Bilet
validat” in cazul in care biletul a fost validat cu succes, iar in cazul in care nu exista un bilet
va aparea mesajul „Nu avet niciun bilet” . In cazul in care calatorul are un abonament lunar
acesta trebuie validat o singura data , la prima calatorie. Dispozitivul de validare primeste de
la telefonul mobil numarul rezervari utilizatorului si cu ajutorul acestuia cauta in baza de
date daca exista sau nu biletul.

4. Dispozitivul de control este telefonul care se afla la fiecar controlor. In cazul in care biletul a
fost validat apare mesajul „bilet valid”, iar in cazul in care biletul nu a fost validat sau nu a
fost deloc cumpara va aparea mesajul „bilet nevalidat”.

4
3. Blocul de alimentare

5
4. Cumpararea biletelor

1. Primul pas pentru a putea cumpara un bilet este crearea unui cont pe site-ul companiei

2. Dupa crearea contului trebuie se ne autentificam pe aplicatie. Aplicatia va comunica cu


sistemul de validare cu ajutorul conexiuni NFC.

6
3. Dupa conectarea pe aplicatia companiei se alege tipul de bilet si introducem ruta pe care
dorim sa calatorim, iar apoi ne vom alege locurile.

4. Dupa alegerea locului preferat se finalizeaza rezervare si vom fi redirectionati in meniul


principal al aplicatiei unde putem vizualiza biletul cumparat.

7
Aplicatie control.

Pentru control fiecare controlor va avea alocat un nume de utilizator si o parola pentru a se
conecta pe aplicatie.

Dupa conectarea pe aplicatie sa porneste automat modulul NFC al telefonului si se asteapta


apropierea de dispozitivul utilizatorului.

8
Dupa realizarea conectiuni intre cele doua telefoane aplicatia controlorului va afisa mesajul „bilet
valid” daca exista un biletul si este validat sau mesajul „bilet nevalidat” daca nu a fost niciun bilet
validat pe telefonul calatorului.

9
5. Blocul de validare

Pentru blocul de validare se folosesc un modul NFC RC522 un modul WIFI ESP8266 un afisor si o
placa arduino.

Comunicatie Validator-Server

Validatorul primeste numarul de rezervare de la telefon prin intermediul comunicatiei NFC.


Modulul NFC preia informatia de la telefon pe care o trimite la placa arduino. Placa arduino codeaza
informatia si o trimite la modulul WIFI.

Modulul WIFI trimite informatia la un router aflat in statie prin intermediul undelor
electromagnetice. De la router informatia este trimisa la server prin ethernet. Serverul decodeaza
informatia, apoi cauta numarul rezervari in baza de date pe care o marcheaza ca fiind validata. Dupa
ce rezervarea este validata servarul trimite inapoi la validator daca a reusit sau nu validarea.
Informatia este trimisa la router prin ethernet iar de la ruter ajunge la modulul WIFI. De la modulul
WIFI aceasta este trimisa la placa arduino care va afisa pe ecran mesajul „bilet valid” in cazul in care
biletul a fost validat cu succes, iar in cazul in care biletul nu a fost gasi „bilet nevalidat”

Modulul NFC RC522

Principiul de functionare

Modulul RFID cu chip RC522 este un cititor NFC, ușor de utilizat, cu costuri reduse și se aplică
dezvoltării de echipamente și de aplicații avansate. Acest modul poate fi încărcat direct în diferite
forme de cititoare. Utilizează o tensiune de 3.3V, iar comunicarea se poate face prin intermediul
interfeței SPI.

10
Caracteristici tehnice RC522:

1. Curent: 13-26mA / DC 3.3V


2. Consum in stand-by: <80uA
3. Temperatura mediului de operare: -20-80 grade Celsius
4. Umiditate relativă: 5% -95%
5. Caracteristici fizice ale produsului: Dimensiuni: 40mm × 60mm

Comunicatii:

Modulul RC522 este conectat cu placa arduino prin comunicatie SPI.

Comunicarea SPI este de tip Master/Slave, masterul fiind de obicei microcontrollerul ce controleaza
un shield.

Pentru comunicarea SPI sunt utilizati o serie de pini dedicati si care au roluri clar definite:

1. MISO (Master In Slave Out) - este de fapt pinul 12 al Arduino-ului. Asa cum sugereaza si
denumirea, aceasta este linia utilizata de slave pentru a trimite date catre master.
2. MOSI (Master Out Slave In) - pinul 11 al Arduino, este utilizat pentru ca masterul sa
poata trimite date catre slave.
3. SCK (Serial Clock) - pentru ca cele doua dispozitive sa poata comunica sincron (dupa cum
spuneam mai sus, comunicarea este una sincrona), este nevoie ca masterul sa pulseze la
o anumita frecventa reprezentand o cuanta de timp. Slaveul va asculta aceasta pulsatie
si va sti ca incepe un nou capitol al comunicarii dintre el si master. SCK in cazul nostru
este implementat de pinul 13 al Arduino.
4. SS (Slave Select) - Este utilizat de master pentru a selecta diversi slave.

Placa Arduino uno

Arduino UNO este o platforma de procesare open-source, bazata pe software si hardware flexibil
si simplu de folosit. Consta intr-o platforma de mici dimensiuni (6.8 cm / 5.3 cm – in cea mai des
intalnita varianta) construita in jurul unui procesor de semnal si este capabila de a prelua date din
mediul inconjurator printr-o serie de senzori si de a efectua actiuni asupra mediului prin intermediul
luminilor, motoarelor, servomotoare, si alte tipuri de dispozitive mecanice. Procesorul este capabil
sa ruleze cod scris intr-un limbaj de programare care este foarte similar cu limbajul C++.

11
Specificatii :

1. Microcontroler: ATmega328
2. Tensiune de lucru: 5V
3. Tensiune de intrare (recomandat): 7-12V
4. Pini digitali: 14 (6 PWM output)
5. Pini analogici: 6
6. Curent 3.3V: 50 mA

Modul WIFI ESP8266

Modulul WiFi ESP8266 este un SOC cu protocol TCP / IP integrat care ii poate da acces la reteaua
WiFi oricarui microcontroler. ESP8266 este capabil de hosting pentru o aplicatie sau sa preia toate
functiile de retea Wi-Fi de la un alt procesor de aplicatie. Acest modul are o capacitate de procesare
si stocare suficient de puternica, care ii permite sa fie integrat cu senzori si dispozitive specifice prin
intermediul pinilor GPIO. ESP8266 suporta APSD pentru aplicatii VoIP si interfete cu Bluetooth si
contine un RF auto-calibrat care ii permite sa lucreze in toate conditiile de functionare si nu necesita
piese RF externe.

12
Caracteristici tehnice:

1. Tensiune de alimentare: 3.3V;


2. Curent consumat: 70mA - 300mApk
3. Dimensiuni: 14.3 x 24.8 mm

Comunicatii

Modulul WIFI ESP 8266 comunica cu placa arduino prin intermediul comunicatiei seriale

Comunicarea seriala este o comunicare de tip digital, in sensul ca pe fir se transmit biti (ca la fel
cum se intampla intr-o retea de calculatoare, doar ca folosind un protocol mult simplificat). Aceasta
comunicare seriala se intampla intotdeauna intre Arduino si calculator, atunci cand Arduino este
programat. O comunicare seriala se intampla intotdeauna la o anumita rata de transfer, care
determina viteza cu care se transmit bitii pe fir. Rate comune de transfer sunt 9600, 19200, 57600,
115200.

SoftwareSerial este tot o modalitate de comunicare seriala, doar ca in loc de a utiliza pinii RX si TX
ai microcontroller-ului (care sunt dedicati pentru o astfel de comunicare), utilizam o librarie software
care emuleaza comunicarea folosind (aproape) oricare doi pini digitali ai placii Arduino. Avantajul
imediat este faptul ca in acest mod putem conecta placa Arduino cu mult mai multe dispozitive
seriale.

13
Afisor

S-a folosit un afisor TFTM050-3 deoarece este suficient de mare si se poate conecta foarte usor la
placa arduino

Caracteristici:

1. Afișare număr matrice punct: 800 x 440


2. Dimensiuni LCD 5 inch
3. Lumina de fundal: led alb
4. Modul de alimentare: 3,3 ~ 5 V
5. Interfata I2C

Comunicatii

Afisorul comunica cu placa arduino prin intermediul comunicatiei I2C

Acronimul I2C vine de la “Inter-Integrated Circuit”. Acest tip de comunicare a fost definit de Philips în
1970 din dorinţa de simplificare şi standardizare a liniilor de date din produsele lor. Prin această
soluţie s-a redus numărul de linii la două (SDA – date şi SCL – ceas). Popular această interfaţă este
cunoscută şi sub numele de „comunicare pe doua fire” sau „two wire interface”.

14
I2C presupune:

Rata de transfer: 10 Kb/s – 100Kb/s


SDA – Serial Data line
SCL – Serial Clock line
128 de adrese posibile
16 adrese rezervate
112 dispozitive se pot conecta pe I2C

Dispozitivele conectate trebuie sa aibă masa comuna (GND)

Controlul

Dispozitivul de control este reprezentat de un telefon care se afla la fiecare controlor. Aceste
comunica cu telefonul calatorului prin comunicatie NFC.

Comunicatia NFC

NFC sau Near Field Communication (comunicare în câmp apropiat) este un set de standarde de
comunicare fără fir, pe distanțe foarte scurte. Tehnologia permite dispozitivelor electronice să
stabilească linii de comunicare radio între ele, în ambele direcții, folosind alte tehnologii
complementare precum Bluetooth sau WiFi. NFC funcționează prin atingerea a două dispozitive sau
prin alăturarea lor, la o distanță mai mică de 10 centimetri.

NFC este o tehnologie similară cu RFID, dar cu diferența crucială că, cipurile RFID pot doar să fie
citite. NFC îi permite dispozitivului să transmită și să primească informații de la alte dispozitive cu
NFC. Drept urmare, deși NFC și RFID sunt similare, aceste tehnologii nu sunt același lucru. Cea mai
mare slăbiciune a tehnologiei NFC este că nu oferă niciun fel de securitate și protecție în afara
faptului că astfel de conexiuni se realizează doar pe o rază de câțiva centimetri. NFC este vulnerabilă
la multe tipuri de atacuri informaționale precum și susceptibilă la modificarea datelor transmise
între două terminale.

Dispozitivul controlorului primeste prin NFC de la dispozitivul calatorului numarul de rezervare pe


care il trimite la server. Serverul verifica numarul de rezervare in baza de date si daca aceasta a fost
validata, iar apoi trimite inapoi la dispozitivul controlorului daca rezervarea este validata sau nu.

15
6. Serverul

In momentul in care calatorul a finalizat rezervarea datele sunt trimise la server si memorate intr-o
baza de date, iar serverul va trimite inapoi utilizatorului un numar de rezervare care este memorat in
aplicatie. In momentul in care calatorul valideaza biletul, validatorul trimite numarul rezervari la
server care bifeaza rezervarea respectiva ca fiind validate, iar apoi va trimite inapoi la validator daca
rezervarea a fost sau nu validata.

Un server este un program de calculator sau un dispozitiv care oferă funcționalitate pentru alte
programe sau dispozitive, numite „ clienți ”. Această arhitectură se numește modelul client-server și
un singur calcul general este distribuit pe mai multe procese sau dispozitive. Serverele pot oferi
diferite funcționalități, adesea numite „servicii”, cum ar fi partajarea de date sau resurse între mai
mulți clienți sau efectuarea de calcul pentru un client. Un singur server poate servi mai mulți clienți
și un singur client poate utiliza mai multe servere. Serverele deservesc resurse hardware care sunt
partajate și pot uneori fi comandate de către calculatoarele-client, cum ar fi imprimante (atunci
serverul se numește print server) sau sisteme de fișiere (atunci el se numește file server). Această
partajare permite un acces și o securitate mai bune; ea poate reduce cheltuielile pentru dispozitivele
periferice. De obicei, aplicația server așteaptă conexiuni din partea aplicațiilor client. Se mai
numește server și calculatorul pe care rulează una sau mai multe asemenea aplicații. Deseori soluția
pentru mari aplicații cu mulți utilizatori se bazează tocmai pe arhitectura client-server, care constă
din cel puțin 2 aplicații (și deseori cel puțin 2 computere).

16
Baza de date

Tabela Preturi

O bază de date (abreviat BD), reprezintă o modalitate de stocare a unor informații și date pe un
suport extern (un dispozitiv de stocare), cu posibilitatea extinderii ușoare și a regăsirii rapide a
acestora.

De obicei o bază de date este memorată într-unul sau mai multe fișiere. Bazele de date sunt
manipulate cu ajutorul sistemelor de gestiune a bazelor de date.

Cel mai răspândit tip de baze de date este cel relațional, în care datele sunt memorate în tabele. Pe
lânga tabele, o bază de date relațională mai poate conține: indecși, proceduri stocate, declanșatori,
utilizatori și grupuri de utilizatori, tipuri de date, mecanisme de securitate și de gestiune a
tranzacțiilor etc.

Alte tipuri de baze de date sunt modelul ierarhic, modelul orientat pe obiecte și, mai nou,
modelul XML.

17
7. Codarea mesajului

Algoritmul Lempel-Ziv 1977 (LZ77)

Pentru început, se vor explica denumirile şi noţiunile folosite în descrierea algoritmului:

1. şir de intrare = secvenţa de caractere care urmează a fi codată;


2. caracter = elementul de bază (simbolul) din şirul de intrare;
3. poziţie de codare = poziţia caracterului din şirul de intrare care tocmai este codat (începutul
buffer-ului lookahead);
4. buffer lookahead („priveşte înainte”) = secvenţa de caractere de la poziţia de codare până la
sfârşitul şirului de intrare (de lungime Ls, lungimea cuvintelor sursă);
5. fereastră de dimensiune N = subşirul care conţine N caractere de la poziţia de codare înapoi
(ultimele N caractere procesate);
6. pointer = indicatorul care arată potrivirea faşă de fereastră şi specifică lungimea acestei
potriviri;
7. n = lungimea totală a buffer-ului (include buffer-ul lookahead şi fereastra).

Algoritmul caută în fereastră cea mai lungă potrivire cu începutul buffer-ului lookahead şi oferă la
ieşire un pointer către acea potrivire. Deoarece este posibil să nu fie găsită nici măcar o potrivire de
caracter, ieşirea nu poate fi formată doar din pointer-i. Algoritmul LZ77 rezolvă această problemă în
felul următor: după fiecare pointer, furnizează la ieşire primul caracter din buffer-ul lookahead după
potrivire. Deci, dacă apare nici o potrivire, la ieşire va rezulta un pointer nul şi caracterul de la poziţia
de codare.

Algoritmul de codare LZ77 decurge în felul următor:

Pasul 1. Se setează poziţia de codare la începutul şirului de intrare.

Pasul 2. Se caută cea mai lungă potrivire în fereastră pentru buffer-ul lookahead.

Pasul 3. Se furnizează la ieşire perechea (P,C) – P este pointer-ul către potrivirea din fereastră, iar C
este primul caracter din buffer-ul lookahead care nu se mai potriveşte.

Pasul 4. Dacă buffer-ul lookahead nu este gol, se mută poziţia de codare şi fereastra cu L+1 caractere
înainte şi se reia Pasul 2 (L este numărul de caractere al potrivirii).

Algoritmul de decodare LZ77 decurge similar:

Pasul 1. Din şirul codat se extrag pointer-ul P şi lungimea secvenţei L.

Pasul 2. Se execută L deplasări, în timp ce se încarcă conţinutul din poziţia P a buffer-ului în ultima
poziţie n – Ls.

18
8. Schema logica

Aplicatie calatori

Start

NU DA
Exista cont? Start

Start

Introducere date (nume,


prenume, email telefon,
parola)

Trimitere la baza de
date

Memorare in baza de Trimitere mesaj de Deschidere fereastra


date confirmare in aplicatie conectare(email,parola)

Memorare numar Alegere tip bilet


rezervare in aplicatie

Trimite la aplicatie
Alegere data
numrul de rezervare

Memorare in baza de
Alegere ruta si tren
date (alocare numar)

Trimite rezultatul la Apasa confirma Alegere loc


server

19
Aplicatie control

Start

Exista cont?

Conectare in aplicatie

Conectare NFC cu
telefonul calatorului

NU

Primeste numar
rezervare

DA

Afisare “bilet Trimite numar de Afisare “bilet validat”


nevalidat” rezervare la server

NU DA
Trimite raspuns la Rezervarea este Trimitere raspuns la
aplicatie validate? aplicatie

20
Validator

Start

NU

S-a conectat
telefonul?

DA

Trimite numar rezervare


la Arduino pe pinii
D1….D9

Afisare mesaj timp de


Codare
30 de secunde

Trimite mesaj la afisor


Trimite la modulul
pe pinii A4 si A5
WIFI pe pinii Rx si Tx

Primire mesaj la
Trimite mesaj la Arduino pe
modulul WIFI pinii Rx si Tx

21
Server

Start

Primeste informatia de
la router prin ethernet

Decodare informatie

Cauta numarul rezervari


in baza de date

NU
Trimite la router “nu S-a gasit numarul de
exista rezervare”. rezervare?

DA

Trimite la router
“bilet validat”

22
9. Bibliografie

1. https://eu.mouser.com/ProductDetail/Diodes-
Incorporated/ZSR1000GTA?qs=GBLSl2AkirswktLieU4Zqw==
2. https://www.buydisplay.com/default/5-inch-tft-lcd-module-800x480-display-
controller-i2c-serial-spi
3. https://ro.wikipedia.org/wiki/Server
4. https://ro.wikipedia.org/wiki/Arduino
5. https://ro.wikipedia.org/wiki/Baz%C4%83_de_date

23