GPS Tracker

Autor

Cumpanasoiu Laurentiu

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:

  • GY-NEO6MV2 GPS Module
  • NodeMcu ESP8266
  • Placuta de dezvoltare Arduino Plusivo
  • Ecran LCD 16×2
  • Breadboard
  • Fire pentru conexiune
  • Potentiometru
  • Rezistenta 220 ohmi

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

Ca biblioteci, am folosit pentru codul de pe NodeMCU TinyGPS++.h, SoftwareSerial.h si ESP8266WiFi.h, iar pentru Arduino SoftwareSerial.h si LiquidCrystal.h.

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

pm/prj2022/sionescu/gps_tracker.txt · Last modified: 2022/05/27 15:48 by lcumpanasoiu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0