- Kako radi:
- Potrebne komponente:
- Objašnjenje sklopa:
- GPS pretvorba koordinata u minutu u decimalni stupanj:
- Objašnjenje programiranja:
Sustav za praćenje vozila postaje vrlo važan danas, posebno u slučaju ukradenih vozila. Ako je u vašem vozilu instaliran GPS sustav, možete pratiti lokaciju vozila i on pomaže policiji da prati ukradena vozila. Prije smo izradili sličan projekt u kojem se koordinate lokacije vozila šalju na mobitel, ovdje provjerite 'Tracker vozila temeljen na Arduinu koristeći GPS i GSM.
Ovdje gradimo napredniju verziju Sustava za praćenje vozila u kojoj možete pratiti svoje vozilo na Google kartama. U ovom ćemo projektu koordinate lokacije poslati lokalnom poslužitelju, a vi samo trebate otvoriti 'web stranicu' na računalu ili mobitelu, gdje ćete pronaći vezu do Google Mapsa s vašim koordinatama lokacije vozila. Kada kliknete na tu vezu, preusmjerit će vas na Google Maps, pokazujući lokaciju vašeg vozila. U ovom sustavu za praćenje vozila pomoću Google Mapsa, GPS modul se koristi za dobivanje koordinata lokacije, Wi-Fi modul za zadržavanje slanja podataka na računalo ili mobitel putem Wi-Fi-ja, a Arduino se koristi za međusobno međusobno razgovaranje GPS-a i Wi-Fi.

Kako radi:
Da bismo pratili vozilo, moramo pronaći koordinate vozila pomoću GPS modula. GPS modul kontinuirano komunicira sa satelitom radi dobivanja koordinata. Zatim ove koordinate moramo poslati s GPS-a na naš Arduino pomoću UART-a. A zatim Arduino iz GPS-a izvadi potrebne podatke iz primljenih podataka.

Prije toga, Arduino šalje naredbu Wi-Fi modulu ESP8266 za konfiguriranje i povezivanje s usmjerivačem i dobivanje IP adrese. Nakon toga Arduino inicijalizira GPS za dobivanje koordinata, a LCD prikazuje poruku "Osvježavanje stranice". To znači da korisnik treba osvježiti web stranicu. Kada korisnik osvježi web stranicu, Arduino dobiva GPS koordinate i šalje je na web stranicu (lokalni poslužitelj) putem Wi-Fi mreže, s nekim dodatnim informacijama i vezom na Google karte. Klikom na ovu vezu korisnik se preusmjerava na Google Maps s koordinatama, a zatim će dobiti trenutnu lokaciju vozila na crvenoj točki na Google Mapsu. Čitav postupak na kraju je pravilno prikazan u videozapisu.
Potrebne komponente:
- Arduino UNO
- Wi-Fi modul ESP8266
- GPS modul
- USB kabl
- Spajanje žica
- Laptop
- Napajanje
- LCD 16x2
- Daska za kruh
- Wi-Fi usmjerivač
Objašnjenje sklopa:
Krug za ovaj ' Praćenje vozila pomoću projekta Google Maps' vrlo je jednostavan i uglavnom su nam potrebni Arduino UNO, GPS modul i ESP8266 Wi-Fi modul. Za prikaz statusa postoji opcionalno povezan LCD dimenzija 16x2. Ovaj je LCD povezan na 14-19 (A0-A5) pinove Arduina.

Ovdje je Tx pin GPS modula izravno povezan s digitalnim pinom 10 Arduina. Koristeći ovdje softversku serijsku biblioteku, dopustili smo serijsku komunikaciju na pinovima 10 i 11, te ih učinili Rx odnosno Tx, a Rx pin GPS modula ostavili otvorenim. Prema zadanim postavkama pin 0 i 1 Arduina koriste se za serijsku komunikaciju, ali pomoću biblioteke SoftwareSerial možemo dopustiti serijsku komunikaciju na drugim digitalnim pinovima Arduina. 12-voltni adapter koristi se za napajanje GPS modula. Prođite ovdje da biste saznali "Kako koristiti GPS s Arduinom" i dobiti koordinate.
Vcc i GND pinovi Wi-Fi modula ESP8266 izravno su povezani s 3,3 V, a GND Arduina, a CH_PD je također povezan s 3,3 V. Tx i Rx pinovi ESP8266 izravno su povezani s pinovima 2 i 3 Arduina. Ovdje se koristi i softverska serijska biblioteka koja omogućuje serijsku komunikaciju na pinovima 2 i 3 Arduina. Već smo detaljno obradili povezivanje Wi-Fi modula ESP8266 s Arduinom, također prije početka ovog projekta prođite kroz "Kako poslati podatke s Arduina na web stranicu putem WiFi-a". Ispod je slika ESP8266:

ESP8266 ima dvije LED diode, jedna je crvena za označavanje napajanja, a druga je plava, odnosno LED za komunikaciju podataka. Plava LED lampica trepće kad ESP pošalje neke podatke putem svog Tx pina. Također, nemojte spajati ESP na napajanje od +5 volta, inače vaš uređaj može oštetiti. Ovdje smo u ovom projektu odabrali 9600 brzina prijenosa za sve UART komunikacije.
Korisnik također može vidjeti komunikaciju između Wi-Fi modula ESP8266 i Arduina, na serijskom monitoru, brzinom prijenosa od 9600:

Također pogledajte Video na kraju ovog projekta, za detaljan radni postupak.
GPS pretvorba koordinata u minutu u decimalni stupanj:
GPS modul prima koordinate sa satelita u formatu stupnjeva minuta (ddmm.mmmm) i ovdje nam je potreban format decimalnog stupnja za traženje lokacije na Google kartama. Dakle, prvo moramo pretvoriti koordinate iz formata stupnjevne minute u decimalni format stupnja pomoću zadane formule.
Pretpostavimo da je 2856.3465 (ddmm.mmmm) Latitude koji primamo od GPS modula. Sad su prva dva broja stupnjevi, a preostali minute.
Dakle 28 je stupanj, a 56,3465 minuta.
Sada ovdje nema potrebe za pretvaranjem dijela stupnja (28), već samo pretvaranjem minutnog dijela u decimalni stupanj dijeljenjem 60:
Koordinata decimalnog stupnja = Stupanj + minuta / 60
Koordinata decimalnog stupnja = 28 + 56,3465 / 60
Koordinata decimalnog stupnja = 28 + 0,94
Koordinata decimalnog stupnja = 28,94
Isti će se postupak izvršiti za podatke o zemljopisnoj dužini. Koristili smo gornje formule u Arduino Sketch pretvorili smo koordinate iz stupnjevne minute u decimalni stupanj:
plutajuća minuta = lat_minut.toFloat (); minut = minut / 60; plutajući stupanj = lat_degree.toFloat (); zemljopisna širina = stupanj + minuta; minut = long_minut.toFloat (); minut = minut / 60; stupanj = long_degree.toFloat (); zemljopisna širina = stupanj + minuta;
Objašnjenje programiranja:
U ovom kodu koristili smo biblioteku SerialSoftware za povezivanje ESP8266 i GPS modula s Arduinom. Tada smo definirali različite pinove za oba i inicijaliziramo UART sa 9600 brzina prijenosa. Uključena je i LiquidCrystal knjižnica za LCD sučelje s Arduinom.
#include
Nakon njega moramo definirati ili deklarirati varijablu i niz za različite svrhe.
Niz web stranice = ""; int i = 0, k = 0; int gps_status = 0; Naziv niza = "
1. Ime: Vaše ime
"; // 22 Niz dob ="2. DOB: 12. veljače 1993
"; // 21 Niz niza ="4. Broj vozila: RJ05 XY 4201
"; // 29 Niz string cordinat ="Koordinate:
"; // 17 Širina niza =" "; Loguda niza =" "; Niz gpsString =" "; char * test =" $ GPGGA ";Tada smo napravili neke funkcije za različite svrhe kao što su:
Funkcija za dobivanje GPS podataka s koordinatama:
void gpsEvent () {gpsString = ""; while (1) {while (gps.available ()> 0) {char inChar = (char) gps.read (); gpsString + = inChar; if (i <7) {if (gpsString! = test) {i = 0;……………….
Funkcija za izdvajanje podataka iz GPS niza i pretvaranje tih podataka u decimalni format stupnja iz decimalnog minuta, kako je objašnjeno.
void coordinate2dec () {Niz lat_degree = ""; za (i = 18; i <20; i ++) lat_degree + = gpsString; Niz lat_minut = ""; za (i = 20; i <28; i ++) lat_minut + = gpsString;……………….
Funkcija za slanje naredbi na ESP8266 za njegovo konfiguriranje i povezivanje s WIFI-jem.
nevažeće connect_wifi (Niz cmd, int t) {int temp = 0, i = 0; while (1) {Serial.println (cmd); Serial1.println (cmd); while (Serial1.available ()> 0)……………….
void show_coordinate () funkcija za prikaz koordinata na LCD-u i serijskom monitoru i void get_ip () funkcija za dobivanje IP adrese.
Funkcija Void Send () za stvaranje niza podataka koji će se poslati na web stranicu pomoću ESP8266 i void sendwebdata () funkcija za slanje niza podataka na web stranicu pomoću UART-a.
U void loop funkciji Arduino kontinuirano čeka web stranicu obrasca zahtjeva (osvježavajuća web stranica).
petlja void () {k = 0; Serial.println ("Osvježite ur stranicu"); lcd.setCursor (0,0); lcd.print ("Osvježite"); lcd.setCursor (0,1); lcd.print ("Vaša web stranica.."); dok (k <1000)……………….
Potpuno provjerite donji kod.
