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:22]
lcumpanasoiu
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 
- 
 <note tip> <note tip>
-O schemă bloc cu toate modulele proiectului vostruatât software cât şi hardware însoţită de o descriere ​acestora precum şi a modului în care interacţionează. +Proiectul de GPS Trackerpentru 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 ​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 WiFiPe 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 mapsDe pe Arduino, voi afisa pe un ecran LCD latitudinea si longitudinea provenite de la GPS.
- +
-Exemplu ​de schemă bloc: http://www.robs-projects.com/​mp3proj/​newplayer.html+
 </​note>​ </​note>​
  
-===== Hardware Design ===== 
  
 +===== Hardware Design =====
 <note tip> <note tip>
-Aici puneţi tot ce ţine de hardware ​design+Componentele utlizate pentru partea ​de hardware ​sunt urmatoarele
-  * listă de piese +  * GY-NEO6MV2 GPS Module 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.ghttp://www.captain.at/​electronic-atmega16-mmc-schematic.png) +  * NodeMcu ESP8266 
-  * diagrame de semnal ​ +  * Placuta ​de dezvoltare Arduino Plusivo 
-  * rezultatele simulării+  * Ecran LCD 16×2 
 +  * Breadboard 
 +  * Fire pentru conexiune 
 +  * Potentiometru 
 +  * Rezistenta 220 ohmi 
 + 
 +Schema bloc principala este urmatoarea:​ 
 +{{ :​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>​ </​note>​
  
 ===== Software Design ===== ===== Software Design =====
 +<note tip>
 +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.
  
-<note tip+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: 
-Descrierea codului aplicaţiei (firmware)+  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>";​ 
-  ​* mediu de dezvoltare (if any) (e.gAVR Studio, CodeVisionAVR+  s += "a:link {background-color:​ YELLOW;​text-decoration:​ none;​}";​ 
-  ​* librării şi surse 3rd-party (e.gProcyon AVRlib) +  s += "​table,​ th, td {border: 1px solid black;} </​style>​ </​head>​ <​body>​ <​h1 ​ style=";​ 
-  * algoritmi şi structuri pe care plănuiţi ​să le implementaţi +  s += "​font-size:​300%;";​ 
-  ​* (etapa 3) surse şi funcţii implementate +  s += " ALIGN=CENTER>​ GPS Tracker project</​h1>";​ 
-</note>+  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=";​ 
 +    += 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 Obţinute ===== 
  
-<note tip> 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. 
 </​note>​ </​note>​
 +
 +
 +===== Rezultate =====
 +Imaginea cu montajul realizat:
 +{{ :​pm:​prj2022:​sionescu:​imaginea_montaj.jpeg?​300 |}}
 +
  
 ===== 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.
  
-===== Download =====+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 =====
 <note warning> <note warning>
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). +{{:pm:prj2022:sionescu:gps_tracker.rar|}}
- +
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**.+
 </​note>​ </​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 tip> 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. 
 </​note>​ </​note>​
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +Resurse Hardware: 
-Listă cu documente, ​datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse ​Hardware**. +  * https://​components101.com/​development-boards/​nodemcu-esp8266-pinout-features-and-datasheet 
-</note>+  * 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.1652257327.txt.gz · Last modified: 2022/05/11 11:22 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