Differences

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

Link to this comparison view

pm:prj2025:avaduva:alexandra.bulgaru [2025/05/29 21:48]
alexandra.bulgaru [Software Design]
pm:prj2025:avaduva:alexandra.bulgaru [2025/05/29 21:58] (current)
alexandra.bulgaru [GPS Tracker]
Line 1: Line 1:
 ====== GPS Tracker ====== ====== GPS Tracker ======
 **Autor:** Alexandra Bulgaru \\ **Autor:** Alexandra Bulgaru \\
-**Grupa:** 331CD+**Grupa:** 331CD  \\ 
 +**Repo GitHub:** https://​github.com/​alexabulgaru/​GPS-Tracker
 ===== Introducere ===== ===== Introducere =====
  
Line 110: Line 111:
  
 **Algoritmi și structuri implementate:​** **Algoritmi și structuri implementate:​**
-  * Detectare SMS +  * Citire ​și parsare NMEA 
-    - simSerial.readStringUntil('​\n'​) + trim() +    - while (gpsSer.available()) gps.encode(gpsSer.read()); 
-    - Căutare line.startsWith("​+CMT:"​) - salvare incomingNumber +    - TinyGPSPlus gps stochează ultima ​locație validă ​și numărul de sateliți 
-  * Parser SMS +  * Construire mesaj SMS 
-    - Flag boolean waitingForSMSbody - următoarea linie e conținutul efectiv +    - Dacă fix GPS: String link = "​https://​maps.google.com/?​q="​ + String(lat, 6) + ","​ + String(lon, 6) 
-    - Convertire msg.toUpperCase() ​și msg.indexOf("​GET LOCATION"​) +    - Altfel: String link = "GPS NO FIX" 
-  * Colectare GPS +  * AT-commands ​pentru ​SMS 
-    - În loop(), buclă ​while (gpsSerial.available()) gps.encode(...+    - AT("​AT+CMGF=1"​);​ - modul text 
-    - TinyGPSPlus gps păstrează ultima ​poziție și numărul de sateliți +    - AT+CMGS="<​număr>" ​-> așteaptă prompt ‘>​’ ​-> conținut ​-> 0x1A 
-  * Trimitere ​SMS cu locația +    - Citire răspuns +CMGS pentru confirmare 
-    - Blink LED pe D13 pentru ​feedback vizual +  * Control ​OLED 
-    - Construire mesaj în char buf[160] cu snprintf +    - showOLED() -> afișează ​mesaj fix 
-    - AT+CMGS -> text -> CTRL-Z ​-> pauză 5s +    - clearOLED() ​-> golește display-ul
-  * Afișare pe OLED +
-    - După trimitere, ștergere ecran +
-    - Dacă gps.location.isValid() -> afișează ​„GPS FIX OK” + coordonate +
-    - Altfel ​-> „NO GPS FIX”+
  
 **Funcții implementate:​** \\ **Funcții implementate:​** \\
-setup() +bool AT(const char* cmd, const char* ok = "​OK",​ uint16_t tout = 800
-  ​configurează pinii, pornește interfețele seriale, inițializează SIM800L ​și OLED, și afișează mesajul de start+  ​trimite un AT-command ​și așteaptă un răspuns până la timeout.
   ​   ​
-loop(+bool sendSMS(const char* num, const String& ​msg
-  ascultă SMS-urile primite și datele de la GPSdeclanșează trimiterea răspunsului dacă mesajul conține comanda de locație +  ​configurează modul textinițiază AT+CMGStrimite textul ​și verifică confirmarea
- +
-sendLocationSMS(const String &to+
-  ​construiește și trimite SMS-ul cu coordonate (sau mesaj de eroare)dă un blink LED-uluiapoi afișează rezultatul pe OLED+
  
 +void showOLED()
 +  afişează pe OLED mesajul „Te cauta la jefa”
 + 
 +void clearOLED()
 +  curăţă ecranul OLED
 +  ​
 +void setup()
 +  iniţializează toate perifericele:​ seriale, I2C, OLED, GSM, și curăţă ecranul
 +  ​
 +void loop()
 +  primește date GPS continuu și la interval, apelează showOLED(), construiește mesajul, apelează sendSMS(), apoi clearOLED()
 ===== Rezultate obținute ===== ===== Rezultate obținute =====
 {{:​pm:​prj2025:​avaduva:​gps_tracker_1.jpeg?​500x500|1}} {{:​pm:​prj2025:​avaduva:​gps_tracker_1.jpeg?​500x500|1}}
pm/prj2025/avaduva/alexandra.bulgaru.1748544523.txt.gz · Last modified: 2025/05/29 21:48 by alexandra.bulgaru
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