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
afisare data si timpul cand au fost preluate coordonatele
trimiterea datelor în retea
afisarea datelor din aplicatia de la punctul anterior 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:
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.
Codul pentru crearea paginii html din functia loop() 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 este urmatorul:
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 loc din spatiul exterior 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