This is an old revision of the document!
GPS Tracker
Autor
Introducere
Proiectul de fata urmareste obtinerea unui GPS Tracker care sa poata atinge urmatoarele obiective:
conectare dispozitive la placa de dezvoltare
afisarea coordonatelor pe un ecran
trimiterea datelor în retea
afisare data si timpul cand au fost preluate coordonatele
afisarea datelor pe o harta
Descriere generală
Proiectul de GPS Tracker, pentru inceput, preia cu ajutorul senzorului de GPS Module adresa sub formă de latitudine si longitudine, dar si data si timpul curent. GPS Module comunica serial prin UART cu NodeMCU si ii transmite aceste informatii. NodeMCU are incorporat in el un ESP8266 pentru conectare pe WiFi si se ocupa de partea de interconectare a componentelor si partea de calcul. De la el, datele sunt transmise prin I2C la Arduino Plusivo (care este compatibil cu Arduino Uno) si la un server web prin WiFi. Pe laptop, pe o pagina creata cu html pe care o accesez cu adresa IP, voi afisa atat latitudinea si longitudinea, cat si data si ora respectiva, dupa care pot apasa pe un buton care imi va arata locatia de pe o harta, folosind google maps. De pe Arduino, voi afisa pe un ecran LCD latitudinea si longitudinea provenite de la GPS.
Hardware Design
Componentele utlizate pentru partea de hardware sunt urmatoarele:
Schema bloc principala este urmatoarea:
Schema comunicarii dintre GPS si NodeMCU:
Schema comunicarii dintre NodeMCU si Arduino:
Simularea din Tinkercad cu Arduino si LCD:
Software Design
Pentru partea acesta, nu exista nevoie de configurare, deoarece se foloseste un web server care ruleaza pe NodeMcu.
Am folosit Google Maps pentru afisarea hartilor.
Comunicarea client-server se face prin intermediul
HTML.
In functia loop() de pe NodeMCU, verificam ca locatia, data si ora sunt valide. Daca da, atunci luam aceste date si le trimitem server-ului web care le afiseaza pe o pagina html, al carei cod de creare este mai jos:
String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n <!DOCTYPE html> <html> <head> <title>GPS Tracker project</title> <style>";
s += "a:link {background-color: YELLOW;text-decoration: none;}";
s += "table, th, td {border: 1px solid black;} </style> </head> <body> <h1 style=";
s += "font-size:300%;";
s += " ALIGN=CENTER> GPS Tracker project</h1>";
s += "<p ALIGN=CENTER style=""font-size:150%;""";
s += "> <b>Location and Time Details</b></p> <table ALIGN=CENTER style=";
s += "width:50%";
s += "> <tr> <th>Latitude</th>";
s += "<td ALIGN=CENTER >";
s += lat_str;
s += "</td> </tr> <tr> <th>Longitude</th> <td ALIGN=CENTER >";
s += lng_str;
s += "</td> </tr> <tr> <th>Date</th> <td ALIGN=CENTER >";
s += date_str;
s += "</td></tr> <tr> <th>Time</th> <td ALIGN=CENTER >";
s += time_str;
s += "</td> </tr> </table> ";
if (gps.location.isValid())
{
s += "<p align=center><a style=""color:RED;font-size:125%;"" href=""http://maps.google.com/maps?&z=15&mrt=yp&t=k&q=";
s += lat_str;
s += "+";
s += lng_str;
s += """ target=""_top"">Click here!</a> To check your location in Google maps.</p>";
}
s += "</body> </html> \n";
Rezultate
Imaginea cu montajul realizat:
Concluzii
Acest proiect este foarte util la orientarea in spatiu, stiind in orice moment de timp locatia exacta unde te gasesti.
Ca realizare, partea cea mai grea pentru mine a fost aceea de conectare a placutei de NodeMCU cu Arduino. Intrucat exista doar doi pini pentru comunicare I2C, D1 si D2 (acestia ii foloseam initial pentru conectarea cu GPS), a fost nevoie sa ma documentez foarte mult pentru a putea face legatura cu succes dintre cele placute. In final am folosit alti 2 pini de pe NodeMCU pentru conectarea cu GPS.
O problema majora pe care o are proiectul de GPS Tracker este aceea de preluare corecta a locatiei si a timpului. In interiorul cladirilor, senzorul nu face fata si nu poate lua coordonatele, astfel ca este nevoie de un spatiu in exteriorul cladirilor (unde locatia este preluata cu exactitate) sau langa o fereastra deschisa (unde locatia este data ca fiind cladirea de vizavi).
Download
Jurnal
martie 2022 - Ideea inițială de GPS Tracker
25 aprilie 2022 - Alegere proiect
26 aprilie 2022 - Schema proiect, lista de piese, documentare pe internet
28 aprilie 2022 - Cumparare si obtinere piese
11 mai 2022 - Milestone 1 si inceput documentație
25 mai 2022 - Finalizare construcție proiect
27 mai 2022 - Milestone 2 si finalizare documentație
Bibliografie/Resurse