Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2022:sionescu:gps_tracker [2022/05/11 11:54]
lcumpanasoiu [Hardware Design]
pm:prj2022:sionescu:gps_tracker [2022/05/27 15:48] (current)
lcumpanasoiu
Line 1: Line 1:
 ====== GPS Tracker ====== ====== GPS Tracker ======
 +
 +====== Autor ======
 +Cumpanasoiu Laurentiu
  
 ===== Introducere ===== ===== Introducere =====
 +<note tip>
 Proiectul de fata urmareste obtinerea unui GPS Tracker care sa poata atinge urmatoarele obiective: Proiectul de fata urmareste obtinerea unui GPS Tracker care sa poata atinge urmatoarele obiective:
   * conectare dispozitive la placa de dezvoltare   * conectare dispozitive la placa de dezvoltare
-  * aspectul de portabilitate 
   * afisarea coordonatelor pe un ecran   * afisarea coordonatelor pe un ecran
   * trimiterea datelor în retea    * trimiterea datelor în retea 
-  * afisarea datelor ​din aplicatia de la punctul anterior ​pe o harta și crearea traseului +  ​* afisare data si timpul cand au fost preluate coordonatele 
-Ideea de la care am pornit a fost aceea de a afla cu exactitate adresa zonei in care ma gasesc si sa o pot localiza pe o harta, acest proiect ajutand enorm la orientarea in spatiu.+  ​* afisarea datelor pe o harta 
 +</​note>​
  
 ===== Descriere generală ===== ===== Descriere generală =====
-Proiectul de GPS Tracker preia coordonatele din mediul extern ​sub forma de latitudine si longitudine ​pentru obtinerea adresei GPSpe care le afisez pe un ecran LCDDatele sunt trimise intr-o aplicatie ​de tip web server. De aici, datele sunt preluate ​si se transmit ​pe o harta de unde se poate vedea traseul.+<note tip> 
 +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 curentGPS 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. 
 +</​note>​
  
  
 ===== Hardware Design ===== ===== Hardware Design =====
- +<note tip> 
-=== Componentele utlizate pentru partea de hardware sunt urmatoarele: ​=== +Componentele utlizate pentru partea de hardware sunt urmatoarele:​ 
-  * GY-NEO6MV2 GPS Module ​pentru preluarea coordonatelor +  * GY-NEO6MV2 GPS Module 
-  * Placuta de dezvoltare Arduino ​Uno R3 ce primește datele de la GPS printr-un I2C si care se ocupa de calcul si partea de interconectare a componentelor +  * NodeMcu ESP8266 
-  * Ecran LCD 16x2 +  * Placuta de dezvoltare Arduino ​Plusivo 
-  * NodeMcu pentru rularea unui web server +  * Ecran LCD 16×2
-  * Baterie de 5V pentru portabilitate+
   * Breadboard   * Breadboard
   * Fire pentru conexiune   * Fire pentru conexiune
 +  * Potentiometru
 +  * Rezistenta 220 ohmi
  
-=== Schema bloc principala este urmatoarea: ​=== +Schema bloc principala este urmatoarea:​ 
-{{ :​pm:​prj2022:​sionescu:​schema_bloc.jpg?200 |}}+{{ :​pm:​prj2022:​sionescu:​bloc_schem.jpg |}}
  
 +Schema comunicarii dintre GPS si NodeMCU:
 +{{ :​pm:​prj2022:​sionescu:​gps_nodemcu.jpg |}}
  
 +Schema comunicarii dintre NodeMCU si Arduino:
 +{{ :​pm:​prj2022:​sionescu:​arduino_nodemcu.jpg?​300 |}}
 +
 +Simularea din Tinkercad cu Arduino si LCD:
 +{{ :​pm:​prj2022:​sionescu:​tinkercad.jpg?​300 |}}
 +
 +
 +</​note>​
  
 ===== Software Design ===== ===== Software Design =====
-Pentru partea acestanu exista nevoie ​de configurare,​ deoarece se foloseste un web server care ruleaza ​pe NodeMcu +<note tip> 
-Am folosit Open Street Map ca API pentru ​afisarea hartilor ​si a traseului.+Ca biblioteciam 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";
 +
 +
 +</​note>​
 +
 +
 +===== Rezultate =====
 +Imaginea cu montajul realizat:
 +{{ :​pm:​prj2022:​sionescu:​imaginea_montaj.jpeg?​300 |}}
  
-===== Rezultate Obţinute ===== 
  
 ===== Concluzii ===== ===== Concluzii =====
 +<note tip>
 +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).
 +</​note>​
  
 ===== Download ===== ===== Download =====
 +<note warning>
 +{{:​pm:​prj2022:​sionescu:​gps_tracker.rar|}}
 +</​note>​
  
  
 ===== Jurnal ===== ===== Jurnal =====
 +<​note>​
 +  * **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\\
  
 +</​note>​
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
 +Resurse Hardware:
 +  * https://​components101.com/​development-boards/​nodemcu-esp8266-pinout-features-and-datasheet
 +  * https://​www.etechnophiles.com/​nodemcu-esp8266-pinout-specs-board-layout/​
 +  * https://​www.electronicwings.com/​nodemcu/​basics
 +  * https://​diyi0t.com/​i2c-tutorial-for-arduino-and-esp8266/​
 +  * https://​components101.com/​modules/​neo-6mv2-gps-module
 +  * https://​docs.arduino.cc/​resources/​datasheets/​A000066-datasheet.pdf
 +
 +Resurse Software:
 +  * https://​tttapa.github.io/​ESP8266/​Chap07%20-%20Wi-Fi%20Connections.html ​
 +  ​
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2022/sionescu/gps_tracker.1652259252.txt.gz · Last modified: 2022/05/11 11:54 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