Gps Traking System
CUPRINS
Introducere
Prin intermediul acestei lucrări de licență, intitulată GPS Traking System, mi-am propus să realizez un dispozitiv de localizare auto, deoarece statisticile în ceea ce privesc furturile auto anuale prezintă o crestere masivă.
În România anual sunt furate peste 1.200 de mașini, astfel plasându-ne pe locul 51 în lume și pe locul 24 în UE, înaintea Ciprului, Sloveniei și Maltei.
Prin crearea dispozitivului de localizarea mi-am propus rezolvarea problema mai sus menționată, astfel încât, pe viitor realizându-se o scădere a acestor infracțiuni sau cel puțin existența unei posibile recuperări a autovehiculului. Acest dispozitiv va putea fi folosit atât de persoanele fizice, cât și de firme, pentru a putea urmarii spre exemplu, dacă angajații urmează sau nu ruta stabilită – prin această achiziționare, crește posibilitatea de reducere a cheltuielilor legate de consum, ȋn cazul respectării traseului hotărȃt.
Capitolul 2, respectiv 3 vizează conceptul teoretic al dispozitivului de localizare. Așadar, în cadrul acestor părți ale lucrării am încercat să concentrez și să sistematizez obiectivele privind modul de realizare a modulului, totodată, am prezentat analiza studiului bibliografic care stă la baza aceastei lucrări.
În capitolul 4 am prezentat informații generale despre Global Positioning System (GPS), respectiv principiul său de funcționare; de asemenea am prezentat ce este Arduino, modelul de placă Arduino pe care am utilizat-o, totodată și cateva informații legate de anatomia unui sketch.
În capitolul 5 am prezentat placa de delvoltare folosită, Arduino UNO incluzȃnd informațiile legate de circuitul integrat ATmega328, pe care aceasta îl folosește. În plus ȋn cadrul acestui capitolul am prezentat modulele utilizate în realizarea proiectului propus, dar și regulatorul de tensiune folosit pentru alimentarea de la mașină.
În capitolul 6 am prezentat pas cu pas ce se întâmplă după ce alimentăm dispozitivul de localizare, cât și spațiul ocupat de datele salvate pe card, respectiv conținutul mesajului primit pe telefon și harta din Google Maps ȋn urma încărcării datelor de pe card.
Pentru capitolul 7 am realizat în Fritzing schema dispizitivului spre a putea fi văzut modul de conectare a pieselor, ȋn plus am explicat cum să ,,citim” cele 2 led-uri aflate în carcasa dispozitivului.
Încercând să păstrez o organizare sistematică a lucrării, dacă capitolele anterior prezentate vizau modul de realizare și asamblare a dispizitivului, capitolul 8 prezintă cateva imbunătățiri ce pot fi aduse acestui sistem de localizare GPS pentru o eventuală aprofundare.
În concluzie, în cadrul acestei lucrări de licența GPS Traking System am abordat problema procentului ridicat al furturilor de autovehicule, idee care în urma cercetării științifice a constituit alegerea realizării dispozitivului de localizare GPS.
Eu, ȋn postura de student al [anonimizat] Cluj-Napoca, Centrul Universitar Nord Baia Mare, Facultatea de Inginerie, profil Calculatoare, proaspăt licențiat și viitor inginer, având reale tangențe cu partea hardware, cât și cu cea software, am considerat necesar să cercetez și să dezbat importanța unui sistem de localizare în societatea contemporană, pornind de la problema mai sus menționată.
Pentru toată implicarea acordată ȋn conceperea acestei lucrări, mulțumesc domnului Șef lucrări dr. ing. Claudiu LUNG.
Obiectivele Proiectului
În cadrul acestei lucrări mi-am propus să realizez un dispozitiv, denumit GPS Tracking System, conceput pentru urmărirea unui vehicul staționat sau aflat în mișcare, care utilizează Global Positioning System pentru a determina și a urmări locația exactă respectiv, localizarea acestuia ȋn mers la intervale de timp diferite.
Pentru realizarea acestui dispozitiv am folosit o placuță Arduino Uno – pentru a interconecta urmatoarele module:
GSM (SIM900) – folosit pentru trimiterea mesajelor cu datele primite de la modulul GPS,
GPS (NEO6MV2) – care comunică cu sectorul spațial pentru identificarea coordonatelor
Modulul SD – folosit pentru a salva pe card datele de localizare, in fișierul DATALOG.csv
Îmi propun să realizez conecatrea celor trei module cu placa Arduino UNO, atât hardware cât și software, să realizez un dispozitiv care să fie folosit fără mari eforturi și să trasmită informațiile necesare proprietarului, dar să le și salveze pe card pentru a putea fi verificată ruta parcursă.
Un alt obiectiv este acela de a realiza un dispozitil durabil și precis, care să poată fi folosit 24 din 24 de ore fără a întâmpina probleme.
În plus mi-am propus să găsesc o modalitate simplă și ușor de folosit pentru a vizualiza traseele salvate pe card.
Prin realizarea acestui dispozitiv intenționez să sprijin reducerea semnificativă a furturile auto, respectiv de a afla cu ușurință locația mașinii furate, iar după recuperarea acesteia, traseul se va putea vizualiza de către proprietar.
Testarea dispozitivului de localizare va fi realizată pe mașina personală, urmând să conduc prin oraș pentru a aduna datele necesare realizării unui traseu, care ulterior va fi urcat pe Google Maps pentru a verifica dacă fucționează așa cum mi-am propus.
Studiu Bibliografic
Ȋn realizarea proiectului m-am documentat din diferite surse bibliografice mai mult sau mai puțin cunoscute. Ȋn continuare voi enumera sursele de inspirație, fără de ajutorul cărora nu ar fi fost posibilă desfășurarea ȋntr-un mod concret și corespunzător a acestui proiect.
Principala sursă de inspirație a fost articolul Desing and Development of GPS-GSM Based Tracking System with Google Map Based Monitoring[1], publicat în International Journal of Computer Science, Engineering and Applications (IJCSEA), realizat de Pankaj Verma și J.S Bhatia, cei doi confruntȃndu-se cu următoarele probleme: numărul mare de furturi de autovehicule și creșterea cererii de dispozitive pentru urmărire și localizare auto.
După ce am stabilit direcția și domeniul în care intenționez să realizez acest proiect, a fost necesar să stabilesc un studiu de informare asupra dispozitivelor de localizare care au fost, deja, realizate de alte persoane sau, diferite firme.
Scopul urmărit a vizat o idee asupra dispozitivului ce trebuie realizat, pașii necesari ȋn urma ȋnfăptuirii ansamblului – pentru a observa problemele întâmpinate de ceilalți investigatori, precum și modul de rezolvare și abordare a acestui domeniu științific.
În modul acesta am aflat necesitatea unui astfel de dispozitiv de localizare, am reușit să găsesc vaste informații despre proiectele – din această categorie, deja existente și modul de obținere a unui sistem mai bun, mai stabil și mai precis.
Analizarea a cât mai ample informații legate, ȋndeosebi, de acest domeniu, a ajutat la efectuarea dispozitivului ȋntr-un mod foarte accesibil și eficient.
Analiză și Fundamentare Teoretică
Global Positioning System (GPS)
Istoric
Am putea spune că primul GPS a fost inventat de catre J.W. Jones, în anul 1909. Dispozitivul „Jones Live Map” a fost primul sistem de ghidaj pentru automobiliști realizat pe vremea când călătoria cu mașina era o adevărată aventură: nu existau autostrăzi, drumuri erau foarte puține și cu multe gropi, iar stațiile de carburanți erau la sute de kilometri distanță una de cealaltă. Dispozitivul inventat de Jones constă într-un sistem de discuri imprimate cu harți care ii arată șoferului direcția prin manevrarea unui cadran special.
Fig. 4.1 Dispozitivul „Jones Live Map”
Design-ul GPS-ului este parțial bazat pe sisteme similare de radio-navigație la sol, cum ar fi „LORAN” și „Decca Navigator”, dezvoltate la începutul anilor 1940 și folosite de catre Marina Regală Britanică în timpul celui de-Al Doilea Război Mondial.
Uniunea Sovietică a lansat primul satelit artificial, Sputnik, în 1957. Doi fizicieni americani, William Guier și George Weiffenbach, de la Laboratorul de Fizică Aplicată (LFA) al lui John Hopkins, au decis să monitorizeze transmisiile radio ale satelitului.
În câteva ore au realizat că, din cauza efectului Doppler, puteau puncta locul satelitului în orbită. Directorul LFA le-a oferit acces la UNIVAC pentru a face calculele necesare. Primăvara următoare, Frank McClure, directorul adjunct al LFA, i-a pus pe Guier și Weiffenbach să investigheze problema inversă, adică să puncteze locul utilizatorului cunoscând-ul pe cel al satelitului.
Aceasta a condus LFA să dezvolte sistemul Transit. În 1959, ARPA (redenumită DARPA în 1972) a jucat un rol în Transit.
Primul sistem de navigație prin satelit, Transit, folosit de Marina SUA, a fost testat cu succes în 1960. A folosit o constelație de cinci sateliți și puteau furniza o poziționare actualizată aproximativ o dată pe oră.
Proiectul GPS a fost dezvoltat în 1973 pentru a depăși limitările sistemelor de navigație precedente, integrând idei din mai mulți predecesori, inclusiv un număr de studii de proiectări de inginerie secrete din anii '60. GPS-ul a fost creat și realizat de Departamentul de Apărare SUA și era operat cu ajutorul a 24 de sateliți. A devenit în totalitate operațional în anul 1995. Bradford Parkinson, Roger L. Easton și Ivan A. Getting sunt creditați pentru invenția acestuia.
Despre Global Positioning System (GPS)
Global Positioning System este un sistem global de navigație prin satelit și unde radio. Acest sistem de sateliți, calculatoare și receptoare, este în măsură să determine latitudinea și longitudinea unui receptor de pe Pământ prin calcularea diferenței de timp pentru semnale de la sateliți diferiți pentru a ajunge la receptor. Sistemul de poziționare globală transmite semnale în mod continuu spre pământ, care permite poziția unui dispozitiv de recepție pe sau în apropierea suprafeței pământului să fie estimat cu exactitate din diferența dintre timpii de sosire a semnalelor.
Principalul sistem de poziționare prin satelit de tip GPS este reprezentat de sistemul militar american numit Navigational Satellite Timing and Ranging[2], abreviere NAVSTAR, alcătuit din trei sectoare.
Fig 4.2 Componentele sistemului GPS[3]
Sectorul spațial include în prezent 24 de sateliți amplasați pe orbite la aproximativ 20.200 km de Pamânt, cu o perioadă de revoluție de aproximativ 1 – 2 ore. Sateliți sunt repartizați pe șase planuri, înclinate la aproximativ 55° față de ecuator. Fiecare satelit este dotat cu ceasuri atomice de foarte mare precizie și transmite semnale radio sub forma a două unde: L1, cu o frecvență de 1 575,42 MHz și L2, cu o frecvență de 1 227,60 MHz. Dintre acestea, doar L1 poate fi folosită de către utilizatorii civili, L2 având doar utilizatori militari.
Fig. 4.3 Sectorul spațial
Sistemul, poate calcula coordonatele geografice exacte ale unui obiect aflat pe suprafața Pământului, cu condiția ca acesta să fie echipat cu dispozitivul necesar, un receptor GPS. Determinarea distanței față de satelit se face pe baza diferenței de timp necesare semnalului emis de satelit să ajungă la receptor. Cunoscând acest interval de timp și viteza propagării semnalului, adică viteza luminii, putem determina distanța.
Intervalul de timp necesar semnalului emis de satelit să ajungă la receptor poate fi determinat foarte precis – acesta din urma emite un semnal identic, care va fi decalat față de cel provenit de la satelit.
Constelația de sateliți face posibilă indicarea locației geografice a corpurilor cu receptoare la sol. Așadar, precizia de locație este de la aproximativ 100 de metri la 10 de metri pentru cele mai multe echipamente.
Obiectul vizat, poate ȋn acest fel să se orienteze la nivel terestru, acvativ, în aer sau / și în spațiul cosmic de precizat – în apropierea Pământului.
NAVSTAR utilizează sistemul geodezic WGS84, la care se referă toate coordonatele geografice calculate de sistem.
Fiecare satelit poate fi identificat pe baza unui număr atribuit PRN- Pseudo Random Number, număr care este inclus în semnalul radio emis.
Fig. 4.4 (O imagine realizată de un artist grafic sugerând
poziționarea față de Terra a unuia din sateliții sistemului GPS)
Principiul de funcționare
Ca principiul de funcționare al GPS-ului pentru a putea determina coordonatele unui punct de pe suprafața Pământului, respectiv din apropierea acesteia, este nevoie de semnale provenind de la cel puțin patru sateliți.
Fig. 4.5 Stabilirea poziției spațiale a unui punct utilizand semnalele GPS[3]
Ȋn consecință, fiecare satelit trimite un semnal electromagnetic, un fascicul de microunde, care transmite informații către orice dispozitiv de receptare a semnalului. Deci, în orice moment, un dispozitiv de receptare GPS primește semnal de la cei patru sateliți. Computerul încorporat folosește aceste semnale pentru a identifica distanța exactă față de fiecare dintre cei patru sateliți și pentru a calcula apoi poziția cu maximă precizie bazată pe aceste distanțe.
Fig. 4.6 Masurarea decalajului de timp dintre momentul emiterii semnalului și momentul recepționării acestuia de catre GPS[3]
Măsurarea decalajului de timp dintre momentul emiterii semnalului de către satelit și momentul recepționării acestuia de către receptorul GPS în zone fără comunicații nu este precisă, datorită pierderilor frecvente de semnal. Necesită o staționare de cel puțin 10 minute într-un punct, timp în care receptorul trebuie să fie absolut imobil și să nu existe perioade fără semnal GPS.
Înregistrarea datelor se realizează în deplasare. Receptorul înregistrează astfel la diferite intervalede timp, aproximativ 5 secunde, câte o valoare: X, Y, Z, iar la sfârșit se obține o succesiune de puncte.
În mod normal pentru determinarea poziției în 3D a unui punct de pe suprafața terestră cu ajutorul poziției sateliților ar fi nevoie de doar trei distanțe, trei sateliți, deoarece metoda care se utilizează este cea a triangulației.
Fig 4.7 Metoda triangulației
Totuși la GPS este nevoie și de a patra distanță, pentru minimizarea erorilor de poziționare datorate ceasurilor din receptoare, care nu sunt suficient de exacte în comparație cu ceasurile atomice din sateliții utilizați. Distanța dintre satelit și receptor se calculează prin cronometrarea timpului de care are nevoie semnalul radio să ajungă de la satelit la receptor.
Știind că semnalul radio se deplasează cu 300.000 km/s, viteza luminii, recepționarea semnalelor emise de sateliți și calculul poziției se poate face în două moduri: modul absolut (sau autonom) și modul diferențial (ȋn timp real sau ȋn post-procesare).
Modul absolut folosește un singur receptor GPS. Dacă până la data de 1 mai 2000 se obținea poziția unui punct în timp real, dar cu o precizie mică, ȋncepȃnd cu 1 mai 2000 aprobȃndu-se ȋntreruperea bruiajului, precizia de poziționare este de circa 10 – 15 m.
Fig. 4.8 Modul absolut[3]
Modul diferențial presupune folosirea a două receptoare, dintre care unul are rolul de stație de bază, fiind instalat într-un punct fix cu coordonate cunoscute. Se măsoară diferența dintre coordonatele punctului cunoscut și cele rezultate pentru același punct din analiza semnalelor GPS. Pentru a lucra în timp real, aceste diferențe se pot înregistra într-un mesaj de tip RTCM (Radio Techical Commision for Marine) și acesta se transmite cu ajutorulunui emițător radio. Receptorul GPS are nevoie în acest caz de o antenă suplimentară pentru recepționarea semnalului RTCM. Aceste diferențele se folosesc pentru corectarea coordonatelor determinate cu un receptor mobil în alte puncte din zona respectivă. Acest mod de lucru este foarte precis (1 – 5 cm), dar distanța dintre receptorul mobil și stația de bază fixă nu are voie să depășească 30 km.
Fig. 4.9 Modul diferențial[3]
Coordonatele geografice:
latitudinea (Lat.) este unghiul dintre orice punct și ecuatorul. Liniile cu o latitudine constantă sunt numite paralele. Ele trasează cercuri pe suprafața Pământului, dar singura paralelă care este un cerc mare este ecuatorul (latitudine=0 grade), cu fiecare pol geografic aflat la 90 de grade (Polul Nord 90° N; Polul Sud 90° S).
longitudine (Long.) este unghiul spre est sau vest al unui punct arbitrar de pe Pământ: Observatorul din Greenwich (Marea Britanie) este considerat punctul internațional cu longitudine 0 grade. Anti-meridianul Greenwich este atât 180°V cât și 180°E. Liniile de longitudine constantă sunt numite meridiane. Meridianul care trece prin Greenwich este meridianul primar. Spre deosebire de paralele, toate meridianele sunt jumătăți de cercuri complete și nu sunt paralele: ele se intersectează la polul nord și la cel sud.
altitudinea este înălțimea unui punct de pe suprafața pământului în raport cu un nivel de referință, considerat, de obicei, suprafața liniștită a mării, denumită altitudine absolută, sau față de alt punct de referință de pe suprafața terestră, denumită altitudine relativă.
Tabel 4.1 Sisteme de navigație prin satelit
Ce este semnalul GPS ?
Un satelit GPS transmite două semnale radio, acestea sunt de putere joasă, denumite L1 și L2. Gps-urile civile utilizează frecvența L1 (L1C) de 1575,42 MHz în banda UHF. Semnalul L2 utilizează frecvența de 1227,60MHz, fiind cunoscut si sub numele de L2C.
Semnalele sunt in spectrul vizibil, însemnând că acestea vor trece prin nori, plastic, sticlă, dar nu vor trece de obiectele solide (cladiri, munti, etc).
Fig. 4.10 Semnalele GPS (L1 și L2)
Semnalul GPS este alcătuit din trei biți de informație:
un cod pseudoaleator;
date efemeride;
date almanah.
Codul pseudoaleator este un cod de identificare, prin acesta se cunoaște care este satelitul care trimite informația.
Datele efemeride, sunt transmise tot timpul de către fiecare satelit, conținând informații importante, precum data, ora și starea acestuia. Secțiunea aceasta este fundamentală pentru determinarea poziției curente a receptorului.
Datele almanah informează receptorul GPS unde anume ar trebui să fie identificat fiecare satelit la un anumit moment. Așadar un satelit transmite date almanah conținând informații orbitale despre el, dar și pentru toți ceilalți sateliți din sistem.
Cauza erorilor semnalului GPS
Principalii factori care pot altera semnalul GPS sunt :
Reflexia semnalului
Numărul sateliților vizibili
Geometria sateliților
Întârzierile în ionosferă și troposferă
Erori orbitale
Erori datorate ceasului receptorului
Prin degradarea semnalului precizia poate fi afectată, mai mult sau mai puțin, în funcție de gradul de influențare.
Despre dispozitivul de localizare a autovehiculelor
Localizarea GPS este un procedeu simplu care se realizează prin instalarea unui dispozitiv de localizare pe un autovehicul, acesta se va conecta la sateliții GPS situați in jurul pământului obținând poziția exactă (Latitudine – Longitudine) iar informațiile cu locația autovehiculului, viteza de deplasare și altitudinea vor fi trimise către propietar, prin intermediul internetului sau al unui mesaj.
Noțiunea de Live-Tracking (urmărire în timp real) este una dintre cele mai noi tehnologii în materie de localizare GPS, fiind acum accesibilă oricărei persoane. Această urmărire în timp real permite vizualizarea traseului unei mașini direct de pe telefonul mobil sau calculator, în timp real. Astfel vom ști exact unde este obiectivul monitorizat sau unde a staționat și cât timp.
Avantajele și beneficiile unui dispozitiv de localizare:
Aflarea traseului unui autovehicul
Monitorizare și urmărire GPS
Reducerea costurilor pentru firmele de transport și logistică
Optimizarea cheltuielilor pentru combustibil
Dimensiuni reduse ale dispozitivelor
Live-tracking (Urmărire în timp real)
Arduino
Istoric
Arduino a început în 2005, ca un proiect al unui student al Institutului de Interacțiune a Designului din Ivrea, Italia. La acea vreme studenții foloseau o plăcuță de dezvoltare BASIC Stamp, care costa 100 de dolari, ceea ce era considerat foarte scump pentru studenți. Massimo Banzi, unul dintre fondatori, era student la Ivrea.
Numele "Arduino" provine de la un bar din Ivrea, locul unde o parte din fondatori obișnuiau să se întâlnească. Studentul columbian Hernando Barragán a creat platforma de dezvoltare Wiring care a servit ca bază pentru Arduino. După finalizarea platformei Wiring, mai multe versiuni, mai light și mai ieftine au fost create și puse la dispoziția comunităților open-source. Din echipa inițială Arduino au făcut parte Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino și David Mellis.
Ce este Arduino ?
Fig. 4.11 Logo Arduino
Companie open-source care produce, atât plăcuțe de dezvoltare bazate pe microcontrolere, cât și partea de software destinată funcționării și programării acestora, arduino include și o comunitate dezvoltată care se ocupă cu crearea și distribuirea de proiecte ce vizează drept scop crearea unor dispozitive care pot atȃt sesiza, cȃt și controla diverse activități, ori procese în lumea reală.
Sub forma unei plăci de dezvoltare, alcatuită dintr-un microprocessor, un cristal sau un oscillator și un regulator liniar de 5 volți, arduino poate fi considerat asemenea unui mic computer căruia ȋi poți controla intrările și ieșirile de la cip.
Așadar, proiectul este bazat pe proiectarea plăcilor cu microcontroler. Plăcile pun la dispoziția utilizatorului pini de intrare și ieșire ( I/O ) – digitali și analogici, interfațați cu o gamă largă de plăcuțe numite module ( shields) și/sau cu alte circuite.
Exemple de module (shields) Arduino :
Wifi – modul pentru comunicarea wireless
GSM GPRS – utilizat pentru comunicarea cu telefoanele mobile
GPS – utilizat pentru realizarea conexiunii cu sistemul global de navigație prin satelit
ArduCAM – este un modul utilizat pentru realizarea fotografiilor și a capturilor video
Plăcile au interfețe seriale de comunicații, inclusiv USB (pe unele modele), obiectivul fiind de a încărca programe din calculatorele personale. De asemenea, placa dispune de un anumit număr de pinii dispuși pentru intrare (Input Pins), respectiv pentru ieșire (Output Pins) prin intermediul cărora să poată fi conectatate diferite circuite precum: senzori, LED-uri, motorase, etc.
Programele Arduino pot fi scrise în orice limbaj de programare ce vizează un compilator capabil să producă un cod mașină binar. Altfel spus, limbajul de programare se bazează pe Wiring – o platformă de calcul fizic similară, bazată pe mediul de programare de procesare multimedia. Pe scurt, limbajul pe care plăcuța ȋl folosește este C, deasemenea suportă și limbajul de programare C++.
Proiectul Arduino, oferă un mediu inclus de dezvoltare (IDE), o aplicație cross-platform, scrisă în limbajul Java. Arduino IDE permite astfel, scrierea programului pe calculator, sub forma unui set de instrucțiuni pas cu pas ȋncărcate mai apoi pe placa de dezvoltare. Ȋn urma ȋncărcării programului propriu-zis ,,Sketches’’ (schițe), placa ARDUINO va efectua instrucțiunile date, interacționȃnd cu celalalte componente utilizate.
Ȋn urma compilării și legării cu GNU toolchain, de asemenea, inclus în IDE, mediul de dezvoltare al Arduino trimite o comandă spre programul avrdude pentru a efectua convertirea codului executabil într-un fișier text codat hexazecimal, fisier care poate fi încărcat în placa Arduino de un program de încărcare.
Ca descriere a plăcii de dezvoltare Arduino, putem afirma faptul că seamănă foarte mult între ele. Din elementele comune putem enumera: intrările și ieșirile digitale, intrările analogice, microcontrolerul etc.
Fig. 4.12 Arduino IDE
Versiuni de plăci de dezvoltare Arduino:
UNO
Mega 2560
Leonardo
Lilypad
Nano
Mini
Zero
Due
Yun
Duemilanove
Diecimila
Anatomia unui program Arduino
Fiecare program Arduino (sketch – schiță) are la bază două secțiuni:
"setup" – această secțiune este rulata doar o singură dată, în momentul în care placa este alimentată sau de fiecare dată când butonul "Reset" a fost apăsat
"loop" – această secțiune este rulată la infinit, doar cât timp placa este alimentată
void setup()
{
/*codul care este scris aici ruleaza o singura data*/
}
void loop()
{
/*codul care este scris aici o sa ruleaza tot timpul*/
}
Astfel, în secțiunea "setup" vom avea de obicei cod de initializare, iar ȋn secțiunea "loop" scriem partea principală a programului nostru.
Proiectare de Detaliu si Implementare
Pentru a realiza comunicarea modulelor cu placa Arduino UNO am utilizat următoarele librării:
SD.h
TinyGPS.h
SoftwareSerial.h
Fig. 5.1 Schema comunicații dispozitiv
Pentru a putea trimite mesaj cu locația autovehiculului o dată la 10 minute am folosit funcția millis(), este una dintre cele mai puternice funcții din librariile Arduino.
Pentru această funcție am avut nevoie de trei variabile:
currentMillis – de tipul unsigned long
previousMillis – de tipul unsigned long
interval – de tipul const long
Modul în care am folosit această funcție este următorul :
unsigned long previousMillis = 0;
const long interval = 600000;
void setup() {
…
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis – previousMillis >= interval)
{
previousMillis = currentMillis;
sms();
}
}
Placa de dezvoltare Arduino UNO
Arduino UNO este o placă de dezvoltare bazată exclusiv pe microcontrolerul ATmega328. Are 14 intrări digitale / pini de ieșire, din care 6 se pot utiliza ca ieșiri PWM, 6 ca intrări analogice, un oscilator cu quart de 16 MHz, o conexiune USB, mufă de alimentare, mufă ICSP, respectiv un buton Reset (resetare).
Placa de dezvoltare poate opera pe o sursă externă de 6-20 volți. Dacă este alimentată la mai puțin de 7V, există posibilitatea, ca pinul de 5V să furnizeze mai puțin de cinci volți și placa să devină instabilă. Dacă se alimentează cu mai mult de 12V, regulatorul de tensiune se poate supra-ȋncălzi acest lucru ducȃnd la deteriorarea plăcii. Intervalul de tensiune recomandat de către producător este de 7-12 volți.
Pinii de tensiune și alimentarea sunt, după cum urmează:
V’in – tensiune de intrare pe placa de dezvoltare, cȃnd este utilizată o sursă de alimentare externă ;
5V – regulator de tensiune utilizat pentru alimentarea microcontrolerului, respectiv a altor componente de pe placa de dezvoltare ;
3V3 – alimentare de 3.3 volți generat de către regulatorul de tensiune de pe placă. Curentul maxim furnizat este de 50 mA ;
GND – Pini de ȋmpămȃntare.
Placa de dezvoltare Arduino UNO este diferită față de plăcile anterioare, datorită faptului că nu folosește un chip driver FTDI USB-la-serial, ȋn schimb, are încorporat microcontrolerul ATmega328 programat asemeni unui convertor USB-la-serial.
Pentru ce sunt folositi pinii placuței Arduino UNO :
– intrare analogică: folosită pentru a citi semnalele nondigitale ;
Exemplu : senzori de temperatură, senzori de lumină, senzori de presiune, umiditate etc.
– intrare/ieșire digitală ;
– pwm (Pulse-width modulation) modulația în durată a impulsurilor.
Fig. 5.2 Descriere placa de dezvoltare ArduinoUno
Tabel 5.1 Specificații tehnice Arduino UNO
Despre ATmega328
Fig. 5.3 Diagrama pini ATmega328
ATmega328P este o alternativă destul de comună pentru a înlocui ATmega328.
Este un circuit integrat creat de Atmel, face parte din seria megaAVR, acesta fiind de înaltă performanță, bazandu-se pe un microcontroler RISC.
ATmega328 este tot frecvent utilizat în foarte multe proiecte și sisteme autonome unde este nevoie de un microprocesor simplu, de consum redus și cost scăzut. Poate cea mai comună implementare a acestui chip este populara platforma Arduino, pentru modelele Uno și Nano.
Tabel 5.2 Specificații ATmega328
Modulul GPRS/GSM SIMCom (SIM900 )
Fig. 5.4 Modul GSM
SIM900 este un dispozitiv GSM/GPRS care funcționează pe frecvențele 850/900/1800/1900MHz, astfel acesta poate fi utilizat pentru apeluri de voce, mesaje și date mobile, având un consum redus de energie.
Acest modul este controlat cu ajutorul comenzilor AT (ATention). Fiecare comandă ȋncepe cu “at” sau “AT”.
Comenzile AT fiind grupate în patru grupe:
Comenzi de bază, altcătuite dintr-o literă mare și o cifră;
Comenzi extinse precedate de caracterul “&” urmat de o literă mare și o cifră;
Comenzi specifice fiecărui producător, precedate de % sau de \ care sunt disponibile în documentația fiecărui modul;
Comenzi de încărcare a regiștrilor Sn=v , n este numărul registrului și v valoarea cu care o să fie încărcat.
Comenzile AT utilizate în acest proiect :
AT+CMGF=1 : această comandă setează modulul GSM în modul SMS
AT + CMGS = \"+40752482543\ : această comandă este folosită pentru a stabili numărul de telefon la care urmează să fie trimis mesajul
Tabel 5.3 Specificații SIM900
Modulul GPS Ublox ( GY-NEO6MV2 )
Fig. 5.5 Modul GPS
Seria de module NEO-6 face parte din familia GPS-urilor stand-alone, având performanțe înalte datorită motorului de poziționare u-blox 6. Aceste receptoare eficiente și flexibile oferă numeroase opțiuni de conectivitate, având o arhitectură compactă, fiind ideal pentru dispozitive mobile sau situații unde sunt constrângeri de spațiu.
Tabel 5.4 Specificații NEO6MV2
Modul card SD
Fig. 5.6 Modul SD
Acest modul este utilizat pentru a salva pe card, în fișierul DATALOG.csv datele de localizare primite de la GPS referitoare la ruta parcursă de mașină.
Cardul folosit trebuie să fie formatat doar în FAT16 sau FAT32 ca să fie recunoscut de modul.
Acesta comunică cu Arduino prin următorii pini :
CS – Chip Select
MOSI – Master-Out Slave-In
SCK – Serial Clock
MISO – Master-In Slave-Out
Regulator tensiune LM2576
Fig. 5.7 Regulator tensiune
Tabel 5.5 Specificații LM2576
Acest regulator de tensiune l-am folosit pentru a reduce tensiunea și intesitatea curentului primit de la bateria mașinii, pentru a reduce riscul de a arde placa Arduino și celelalte module dar și de a reduce temperatura componentelor.
Cu acest regulator de tensiune dispozitivul poate fi folosit atȃt la bateria de 12V, cȃt și la bateria de 24V.
Testare și Validare
După alimentarea dispozitivului, placa Arduino va inițializa cele trei module astfel: se realizează detectarea cartelei SIM și se înregistrează în rețea, modului GPS stabilește conexiunea cu sateliții, iar modulul SD verifică dacă este disponibil cardul, pentru a fi pregătit pentru stocarea informațiilor care urmeaza să fie recepționate de dispozitiv. După inițializarea celor 3 module am setat un delay (întârziere) de 60 de secunde pentru a fi realizate toate conexiunile necesare funcționării acestui dispozitiv.
În momentul în care toate conexiunile au fost realizate și dupa ce datele primite de GPS au fost procesate, vor fi salvate pe card și va fi trimis mesaj cu locația autovehiculului. Mesajul urmȃnd să fie trimis o dată la 10 minute, atât timp cât mașina este pornită.
Fig. 6.1 Informațiile afișate în monitor
Spațiul ocupat de datele salvate pe card este foarte mic, astfel, după ce vor fi salvate pe card o sută de puncte de localizare, fișierul DATALOG.csv va ocupa ~ 5kB. Prin urmare 1MB poate stoca ~ 20000 de puncte de localizare.
Mărimea schiței fiind de ~5kB, astfel după încărcarea pe placa Arduino ocupând 65% din spațiul de stocare (21,096 bytes) și 75% din memoria dinamică (1,524 bytes), folosită pentru variabilele globale.
Fig. 6.2 Mesaj primit de la dispozitiv
Fig. 6.3 Locația trimisă în mesaj deschisă în Google Maps
Fișierul cu datele, salvat pe cardul SD este încărcat pe Google Drive unde ȋn mod automat va fi creată ruta cu datele din fisier. Pentru o utilizare cât mai ușoară recomand accesarea link-ului: https://www.google.com/maps/d (necesită autentificarea sau crearea unui cont Google)
Fisierele folosite pe Google Drive trebuie să aibă una din urmatoarele extensii :
.csv
.xls
.xlsx
.kml
.kmz
.gpx
.ods
.tsv
Fig. 6.4 Modul de încărcare a fișierului
Fig. 6.5 Datele din fișierul DATALOG.csv urcate pe Google Drive – Google Maps
Manual de Instalare si Utilizare
Fig 7.1 Conectarea modulelor la Arduino UNO
(Schemă realizată în Fritzing)
Pentru utilizarea acestui dispozitiv conexiunile trebuie realizare după cum se poate observa în Fig. 7.1, astfel că modulul GSM se montează direct pe placuța Arduino UNO, acest modul va comunica prin pinii 7 și 8(TX,RX), modulul GPS se conectează la modulul GSM prin pinii 2 și 3(TX,RX). Modulul GPS va fi alimentat cu tensiune de 5V. Modulul SD este alimentat de asemenea cu 5V, iar cei 4 pini (CS, MOSI, SCK și MISO) trebuie conectați în următorul mod :
CS – pin 4
MOSI – pin 11
SCK – pin 13
MISO – pin 12
De asemenea trebuie să setăm un pin (10) de ieșire implicit pentru CS , care nu va fi folosit, acesta fiind necesar pentru a putea fi folosit modulul.
Fig. 7.2 Interior dispozitiv
Pentru alimentare am ales să pun la dispoziție 2 moduri:
Alimentare directă cu tensiuni de 6V-12V și un curent de 1A – 2A
Alimentare de la surse cu tensiuni de 12V – 46V : tensiunea va fi transformată cu ajutorul regulatorului de tensiune LM2576, pentru a obține tensiunea de 9V și curent de 1A.
Tipul alimentării fiind selectat cu ajutorul unui întrerupător cu 3 poziții ( 0, I și II ):
0 – oprit;
I – pentru alimentare directă;
II – pentru alimentarea prin regulatorul de tensiune.
Tot dispozitivul de localizare trebuie alimentat cu o tensiune cuprinsă între 5V-12V și cu un curent de 1A – 2A.
Fig. 7.3 Alimentare
Pentru alimentarea prin regulatorul de tensiune, pentru a preveni supraîncărcarea dispozitivul și de a nu arde modulele am folosit o siguranță fuzibilă de 3A, care este montată înainte de intrarea curentului în regulatorul de tensiune.
Regulatorul de tensiune are un potențiometru care este folosit pentru a regla tensiunea de ieșire, acesta fiind setat implicit pentru alimentarea de la o sursă care are 12V. Dacă se dorește schimbarea tensiunii de alimentare, trebuie reglată tensiunea de ieșire pentru a preveni arderea modulelor.
Fig 7.4 Exterior dispozitiv
În Fig. 7.4 se pot observa cele două LED-uri: cel pentru cardul SD va clipi doar când se primesc date de la GPS, acestea fiind scrise în fișierul de pe card, iar cel al GPS-ului va clipi numai în momentul în care modulul va stabili conexiunea cu sateliții.
Led-ul GPS-ului o să înceapă să clipească în funcție de cât de repede s-a stabilit conexiunea cu minim 4 sateliți, acest lucru este condiționat și de vizibilitatea receptorului de către sateliți. Timpul realizării conexiunii poate diferii, începând de la 3-4 secunde și ajungând până la 1 minut.
Concluzii
Utilizarea acestui dispozitiv GPS permite o localizare rapidă și precisă. Sistemul fiind foarte ușor de utilizat și având un consum redus de energie.
În urma realizării capitolului 5 am constatat că temperatura minimă la care acest sistem de localizare poate să functioneze în parametri normali este de până la -30°C, deoarece modulul GPS nu funcționează la o temperatură mai mare de -30°C, pe cȃnd celelalte module au capacitatea de a funcționa la o temperatură de până la -40°C.
Toate obiectivele stabilite au fost realizate cu succes, în plus am adăugat un led care indică momentul în care datele sunt memorate pe card, de asemenea am folosit și led-ul deja existent pe modulul GPS, care indică efectuarea conexiuni dintre modul și sateliți.
Îmbunătățiri care pot fi implementate pe viitor:
schimbarea plăci UNO cu MEGA pentru a putea comunica cu modulele GSM și GPS simultan, în acest mod va fi posibilă implementarea unei funcții de “logare”, respectiv setarea unui cuvânt cheie. Doar când acesta este primit și verificat, va fi trimisă locația autovehiculului. În acest mod se pot seta mai multe cuvinte cheie pentru informații diferite;
implementarea unei funcții care să încarce datele pe un site, pentru a vizualiza locația în timp real;
posibilitatea de a trimite ultima locație cunoscută;
adăugarea senzorilor de impact, și realizarea unei funcții care în caz de impact va trimite automat mesaj membrilor familiei, ori un mesaj prestabilit la numarul 113 alături de locația GPS. Această funcție trebuie să poată fi oprită printr- un buton sau întrerupător, astfel, dacă într-un interval de timp nu va fi oprită funcția din procesul de apelare, numai atunci va trimite mesajul.
În concluzie GPS Tracking System este un sistem care permite localizarea poziției pe întreg globul, în orice condiții meteorologice, indiferent de zi sau noapte.
Bibliografie
[1] International Journal of Computer Science,
http://airccse.org/journal/ijcsea/papers/3313ijcsea04.pdf
[2] Global Positioning System, https://ro.wikipedia.org/wiki/Global_Positioning_System
[3] GPS (Global Positioning System). Principii de funcționare și aplicații în silvicultură, http://www.bucovina-forestiera.ro/arhiva/2000/8(1)/gps.pdf
[4] Atmel 8-bit Microcontroller, http://www.atmel.com/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Summary.pdf
[5] Secure Digital Card Interface for the MSP430, http://alumni.cs.ucr.edu/~amitra/sdcard/Additional/sdcard_appnote_foust.pdf
[6] EE-379 Embedded Systems and Applications Electrical Engineering Department, University at Buffalo : http://www.dejazzer.com/ee379/lecture_notes/lec12_sd_card.pdf
[7]Department of Defense World Geodetic System 1984,
http://earth-info.nga.mil/GandG/publications/tr8350.2/wgs84fin.pdf
[8] Hurn, J., 1993, Differential GPS explained, Trimble Navigation Ltd, Sunnyvale, USA
[9] Hurn, J., 1989, GPS: A Guide to the Next Utility, Trimble Navigation Ltd, Sunnyvale,
USA
[10] Introduction to Arduino,
http://www.princeton.edu/~ffab/media___downloads_files/IntroArduinoBook.pdf
[11] Arduino Programming Notebook,
http://playground.arduino.cc/uploads/Main/arduino_notebook_v1-1.pdf
[12] Getting Started with Arduino,
http://eclass.sch.gr/modules/document/file.php/EL19138/Massimo%20Banzi-
Getting%20Started%20with%20Arduino%20-Make%20(2011).pdf
[13] SIM900 – Hardware Design,
http://www.tme.eu/ro/Document/3428bae894bc311e83c44aca8a5e5174/sim900.pdf
[14] Introduction to GPS Based Vehicle and Person Tracking System,
http://www.gpstracking.co.in/documents/Introduction%20To%20GPS%20Vehicle%20or
%20Person%20Tracking%20System.pdf
[15]AT Commands,
http://www.electrodragon.com/w/SIM908_SIM900_Common_AT_Commands
[16]SIM900 AT Commands, http://www.espruino.com/datasheets/SIM900_AT.pdf
[17]U-Blox 6 GPS Modules ,
https://www.u-blox.com/sites/default/files/products/documents/NEO-6_DataSheet_
%28GPS.G6-HW-09005%29.pdf?utm_source=en%2Fimages%2Fdownloads%2
FProduct_Docs%2FNEO-6_DataSheet_%28GPS.G6-HW-09005%29.pdf
[18] LM2576, http://www.ti.com/lit/ds/symlink/lm2576.pdf
[19] Arduino – Millis, https://www.arduino.cc/en/Reference/Millis
[20] Global Positioning System (GPS) Time Dissemination for Real-Time Applications, http://www.pdana.com/phdwww_files/rtgps.pdf
[21] The Global Positioning System,
http://web.ics.purdue.edu/~ecalais/teaching/geodesy/GPS_observables.pdf
[22] Introduction to Global Positioning System, http://www.nhdfl.org/library/pdf/
Forest%20Protection/Introduction%20to%20Global%20Positioning%20System.pdf
Anexa 1
/*
CS – 4
MOSI – 11
SCK – 13
MISO – 12
RX GPS – 3
TX GPS – 2
RX GSM – 8
TX GSM – 7
LED – 5
*/
#include <SD.h>
#include "TinyGPS.h"
#include "SoftwareSerial.h"
SoftwareSerial GPS_Conection(2, 3);
SoftwareSerial SIM900(7, 8);
TinyGPS gps;
const int chipSelect = 4;
unsigned long previousMillis = 0;
const long interval = 600000;
unsigned long previousMillis2 = 0;
const long interval2 = 3000;
int Flag = 0x00;
int Flag2 = 0x00;
void setup()
{
Serial.begin(9600);
Serial.print("Initializare dispozitiv…");
pinMode(10, OUTPUT);
pinMode(5, OUTPUT);
SIM900.begin(19200);
GPS_Conection.begin(9600);
if (!SD.begin(chipSelect)) {
Serial.println("Card error");
return;
}
delay(60000);
Serial.println("Card OK.");
}
void Led(){
digitalWrite(5, HIGH);
delay(100);
digitalWrite(5, LOW);
delay(100);
}
void sms() {
float flat, flon;
unsigned long age;
gps.f_get_position(&flat, &flon, &age);
Serial.println("Colectare informatii SMS");
delay(1000);
SIM900.print("AT+CMGF=1\r");
delay(100);
SIM900.println("AT + CMGS = \"+40752482543\"");
delay(100);
SIM900.println("Google Maps URL:");
SIM900.print("http://maps.google.com/?q=");
SIM900.print(flat, 7);
SIM900.print(",");
SIM900.print(flon, 7);
SIM900.println("");
SIM900.print("\nSpeed ");
SIM900.print(gps.f_speed_kmph(), 0);
SIM900.print("km/h");
SIM900.print("");
SIM900.print("\nAltitude ");
SIM900.print(gps.f_altitude(), 0);
SIM900.println("m ");
delay(100);
SIM900.println((char)26);
delay(100);
SIM900.println();
delay(5000);
Serial.println("\nMesaj trimis");
delay(500);
}
void gps_sd()
{
while (GPS_Conection.available())
{
gps.encode(GPS_Conection.read());
}
float flat, flon;
unsigned long age;
gps.f_get_position(&flat, &flon, &age);
if (flat == TinyGPS::GPS_INVALID_F_ANGLE ) {
Serial.println("Va rugam asteptati!");
} else {
unsigned long currentMillis = millis();
if (currentMillis – previousMillis >= interval)
{
previousMillis = currentMillis;
sms();
} else {
if (Flag2 == 0x00) {
unsigned long currentMillis2 = millis();
if (currentMillis2 – previousMillis2 >= interval2) {
sms();
Flag2 = 0x01;
}
}
}
}
unsigned long currentMillis2 = millis();
if (currentMillis2 – previousMillis2 >= interval2) {
previousMillis2 = currentMillis2;
if (flat == TinyGPS::GPS_INVALID_F_ANGLE ) {
Serial.println("Datele nu pot fi memorate");
} else
{
File dataFile = SD.open("DATALOG.csv", FILE_WRITE);
if (dataFile) {
unsigned long age, date, time;
int year;
byte month, day, hour, minute, second, hundredths;
gps.get_datetime(&date, &time, &age);
gps.crack_datetime(&year, &month, &day, &hour, &minute, &second, &hundredths, &age);
if (Flag == 0x00) {
dataFile.print("Data & Ora");
dataFile.print(",");
dataFile.print("Lat");
dataFile.print(",");
dataFile.print("Lon");
dataFile.print(",");
dataFile.print("Viteza ( KM/H )");
dataFile.print(",");
dataFile.println("Altitudine ( metri )");
Flag = 0x01;
}
dataFile.print(day);
dataFile.print("/");
dataFile.print(month);
dataFile.print("/");
dataFile.print(year);
dataFile.print(" – ");
dataFile.print(hour);
dataFile.print(":");
dataFile.print(minute);
dataFile.print(",");
dataFile.print(flat, 7);
dataFile.print(",");
dataFile.print(flon, 7);
dataFile.print(",");
dataFile.print(gps.f_speed_kmph(), 0);
dataFile.print(",");
delay(1000);
dataFile.println(gps.f_altitude(), 0);
dataFile.close();
Led();
Serial.println("Locatie salvata…");
}
else {
Serial.println("eroare fisier");
}
}
}
}
void loop()
{
gps_sd();
}
Anexa 2
Data & Ora,Lat,Lon,Viteza ( KM/H ),Altitudine ( metri )
25/6/2016 – 15:27,47.6599655,23.5497436,0,222
25/6/2016 – 15:27,47.6599769,23.5497493,0,220
25/6/2016 – 15:27,47.6599807,23.5497474,0,220
25/6/2016 – 15:27,47.6599845,23.5497493,0,219
25/6/2016 – 15:27,47.6599807,23.5497512,0,219
25/6/2016 – 15:27,47.6599769,23.5497512,0,218
25/6/2016 – 15:27,47.6599769,23.5497512,0,218
25/6/2016 – 15:27,47.6599731,23.5497474,0,218
25/6/2016 – 15:27,47.6599731,23.5497474,0,218
25/6/2016 – 15:27,47.6599731,23.5497474,0,218
25/6/2016 – 15:27,47.6599731,23.5497474,0,217
25/6/2016 – 15:27,47.6599731,23.5497455,0,217
25/6/2016 – 15:27,47.6599693,23.5497455,0,217
25/6/2016 – 15:27,47.6599693,23.5497436,0,216
25/6/2016 – 15:27,47.6599693,23.5497436,0,217
25/6/2016 – 15:27,47.6599693,23.5497398,0,217
25/6/2016 – 15:27,47.6599655,23.5497436,1,217
25/6/2016 – 15:28,47.6599578,23.5497436,1,216
25/6/2016 – 15:28,47.6599426,23.5497436,2,216
25/6/2016 – 15:28,47.6599197,23.5497550,3,214
25/6/2016 – 15:28,47.6599121,23.5497608,1,213
25/6/2016 – 15:28,47.6599388,23.5498275,6,212
25/6/2016 – 15:28,47.6599426,23.5498638,2,211
25/6/2016 – 15:28,47.6599464,23.5498867,2,211
25/6/2016 – 15:28,47.6599502,23.5499935,13,209
25/6/2016 – 15:28,47.6599617,23.5501918,22,208
25/6/2016 – 15:28,47.6599998,23.5505008,31,209
25/6/2016 – 15:28,47.6600723,23.5508480,34,211
25/6/2016 – 15:28,47.6601371,23.5512619,39,212
25/6/2016 – 15:28,47.6601943,23.5517044,38,212
25/6/2016 – 15:28,47.6602249,23.5519962,17,211
25/6/2016 – 15:28,47.6601829,23.5520896,8,211
25/6/2016 – 15:28,47.6600799,23.5521316,18,212
25/6/2016 – 15:28,47.6598777,23.5521831,25,211
25/6/2016 – 15:28,47.6596641,23.5522327,30,213
25/6/2016 – 15:28,47.6594429,23.5522727,29,214
25/6/2016 – 15:28,47.6592369,23.5523109,28,216
25/6/2016 – 15:29,47.6591110,23.5524044,15,214
25/6/2016 – 15:29,47.6590995,23.5525608,12,214
25/6/2016 – 15:29,47.6591186,23.5527591,19,213
25/6/2016 – 15:29,47.6591224,23.5530109,25,212
25/6/2016 – 15:29,47.6591110,23.5533218,30,212
25/6/2016 – 15:29,47.6590995,23.5536956,37,211
25/6/2016 – 15:29,47.6590766,23.5541725,43,211
25/6/2016 – 15:29,47.6590652,23.5546512,44,212
25/6/2016 – 15:29,47.6590576,23.5551280,40,211
25/6/2016 – 15:29,47.6590576,23.5554904,27,212
25/6/2016 – 15:29,47.6590614,23.5556678,8,211
25/6/2016 – 15:29,47.6589584,23.5557422,17,211
25/6/2016 – 15:29,47.6587791,23.5557765,25,209
25/6/2016 – 15:29,47.6585998,23.5558185,23,207
25/6/2016 – 15:29,47.6584014,23.5558757,26,208
25/6/2016 – 15:29,47.6582298,23.5559234,18,209
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: Gps Traking System (ID: 115948)
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.
