This is an old revision of the document!
Autor: Alexandra Bulgaru
Grupa: 331CD
Proiectul constă în urmărirea în timp real a coordonatelor GPS, răspunzând la comenzi primite prin SMS. Când primește mesajul “get location”, preia poziția curentă și trimite înapoi un SMS cu un link către Google Maps pentru vizualizarea locației, afișând aceste informații și pe un ecran OLED.
Scopul său principal este de a oferi părinților posibilitatea de a monitoriza rapid și eficient locația copiilor lor, dar poate să fie folosit și pentru urmărirea unor obiecte (cum ar fi un bagaj într-un aeroport).
Ideea a pornit de la dorința de a oferi o soluție accesibilă și ușor de extins pentru orice aplicație de urmărire, oferind siguranță și control în timp real.
În paralel, Arduino comunică cu un ecran OLED prin I²C pentru a afișa coordonatele curente și starea de funcționare. Întregul sistem este alimentat direct de la o baterie externă, fără circuite de reglare de tensiune adiționale.
Componente:
1. Conectare OLED I²C 0.91″: - GND la GND de pe Arduino Nano - VCC la +5V de pe Arduino Nano - SDA la pinul A4 de pe Arduino Nano - SCL la pinul A5 de pe Arduino Nano
2. Conectare modul GPS GY-NEO6M: - GND la GND de pe Arduino Nano - VCC la +5V de pe Arduino Nano - TX (ieșire GPS) la pinul digital D10 (RX SoftwareSerial) de pe Arduino Nano - RX (intrare GPS) la pinul digital D11 (TX SoftwareSerial) de pe Arduino Nano
3. Conectare modul GSM-GPRS SIM800L - GND la GND comun (Arduino Nano + USB) - VCC la +5V - TXD (ieșire SIM) la pinul digital D8 (RX SoftwareSerial) de pe Arduino Nano - RXD (intrare SIM) la pinul digital D9 (TX SoftwareSerial) de pe Arduino Nano, prin divizor de tensiune format din: - R1 = 2k2 între D9 de pe Arduino Nano și nodul comun - R2 = 3k3 între nodul comun și GND - Nodul comun trimite apoi un semnal de aproximativ 3V la RXD SIM800L, protejându-l de nivelul de 5V, pe care nu îl acceptă. - Modulul SIM800L are intrarea RXD tolerantă la maxim 3.3V.
4. Conectare modul DC-DC LM2596 - IN+ la +5 V a breadboard-ului (de la pinul 5 V al Arduino Nano) - IN- la GND - Reglat trimmer până la 4V - OUT+ la un rând liber pe breadboard (desemnat “+4V rail”) - OUT- la GND
5. Alimentare și conexiune la PC - Pinul 5V de pe Arduino Nano la rândul +5V al breadboard-ului - Pinul GND de pe Arduino Nano la rândul GND al breadboard-ului
Mediu de dezvoltare: Arduino IDE 2.3.6
Microcontroller: Arduino Nano (ATmega328P, 5V)
Descrierea codului aplicației:
Proiectul este un GPS-tracker care răspunde la SMS-uri de tip „GET LOCATION”. El folosește:
Fluxul principal:
1. Se așteaptă sosirea unui SMS. 2. La SMS cu header +CMT: se extrage numărul expeditorului. 3. Dacă textul conține GET LOCATION sau GETLOC, se apelează rutina de trimitere a SMS-ului cu locația. 4. Între timp, datele NMEA de la GPS sunt colectate continuu în fundal.
Biblioteci utilizate:
Algoritmi și structuri implementate:
Funcții implementate:
setup()
configurează pinii, pornește interfețele seriale, inițializează SIM800L și OLED, și afișează mesajul de start
loop()
ascultă SMS-urile primite și datele de la GPS, declanșează trimiterea răspunsului dacă mesajul conține comanda de locație
sendLocationSMS(const String &to)
construiește și trimite SMS-ul cu coordonate (sau mesaj de eroare), dă un blink LED-ului, apoi afișează rezultatul pe OLED
Proiectul m-a ajutat să îmi consolidez înțelegerea modului în care interfețele UART și I2C pot fi folosite simultan pe un singur microcontroller pentru a integra module GPS, GSM şi un display OLED. Totodată, am aprofundat utilizarea GPIO pentru feedback vizual şi controlul stărilor aplicaţiei, precum şi gestionarea fluxului de date în loop-ul principal al firmware-ului.