- Hvordan det fungerer:
- Nødvendige komponenter:
- Kretsforklaring:
- GPS grad minutt til desimal grad konvertering av koordinater:
- Programmeringsforklaring:
Vehicle Tracking System blir veldig viktig nå dager, spesielt i tilfelle stjålne biler. Hvis du har GPS-system installert i kjøretøyet ditt, kan du spore kjøretøyets beliggenhet, og det hjelper politiet å spore stjålne kjøretøy. Tidligere har vi bygget et lignende prosjekt der posisjonskoordinatene til kjøretøyet sendes på mobiltelefonen, sjekk her 'Arduino-basert kjøretøyspor ved hjelp av GPS og GSM.
Her bygger vi en mer avansert versjon av Vehicle Tracking System der du kan spore kjøretøyet ditt på Google Maps. I dette prosjektet vil vi sende posisjonskoordinatene til den lokale serveren, og du trenger bare å åpne en 'webside' på datamaskinen eller mobilen din, hvor du finner en lenke til Google Maps med kjøretøyets plasseringskoordinater. Når du klikker på denne lenken, tar den deg på Google Maps og viser kjøretøyets beliggenhet. I denne Vehicle Tracking System ved hjelp av Google Maps, GPS-modul brukes for å få koordinatene for plasseringen, Wi-Fi-modul for å holde sende data til datamaskinen eller mobil over Wi-Fi og Arduino brukes til å lage GPS og Wi-Fi snakke med hverandre.
Hvordan det fungerer:
For å spore kjøretøyet må vi finne koordinatene til kjøretøyet ved hjelp av GPS-modulen. GPS-modulen kommuniserer kontinuerlig med satellitten for å få koordinater. Da må vi sende disse koordinatene fra GPS til Arduino ved hjelp av UART. Og så trekker Arduino ut nødvendige data fra mottatte data via GPS.
Før dette sender Arduino kommando til Wi-Fi-modul ESP8266 for å konfigurere og koble til ruteren og få IP-adressen. Etter det initialiserer Arduino GPS for å få koordinater, og LCD-skjermen viser en 'Page Refresh message'. Det betyr at brukeren må oppdatere nettsiden. Når brukeren oppdaterer nettsiden, får Arduino GPS-koordinatene og sender det samme til websiden (lokal server) via Wi-Fi, med litt tilleggsinformasjon og en Google maps-kobling i den. Nå ved å klikke på denne lenken viderekobler brukeren til Google Maps med koordinaten, og deretter får han / hun kjøretøyets nåværende plassering på det røde stedet på Google Maps. Hele prosessen vises riktig i videoen til slutt.
Nødvendige komponenter:
- Arduino UNO
- Wi-Fi-modul ESP8266
- GPS-modul
- USB-kabel
- Koble ledninger
- Laptop
- Strømforsyning
- 16x2 LCD
- Brødtavle
- Wi-Fi-ruter
Kretsforklaring:
Kretsløpet for dette ' Vehicle Tracking using Google Maps project' er veldig enkelt, og vi trenger hovedsakelig en Arduino UNO, GPS-modul og ESP8266 Wi-Fi-modul. Det er en 16x2 LCD valgfri tilkoblet for å vise statusen. Denne LCD-skjermen er koblet til 14-19 (A0-A5) Pins av Arduino.
Her er Tx pin av GPS-modulen direkte koblet til digital pin nummer 10 av Arduino. Ved å bruke Software Serial Library her, har vi tillatt seriell kommunikasjon på pin 10 og 11, og gjort dem til henholdsvis Rx og Tx og lot Rx-pin på GPS-modulen være åpen. Som standard brukes pin 0 og 1 i Arduino til seriell kommunikasjon, men ved å bruke SoftwareSerial-biblioteket kan vi tillate seriell kommunikasjon på andre digitale pinner i Arduino. 12 Volt adapter brukes til å drive GPS-modulen. Gå gjennom her for å lære "Hvordan bruke GPS med Arduino" og få koordinatene.
Wi-Fi-modul ESP8266s Vcc- og GND-pinner er direkte koblet til 3,3V og GND av Arduino og CH_PD er også koblet til 3,3V. Tx- og Rx-pinner på ESP8266 er direkte koblet til pinne 2 og 3 på Arduino. Software Serial Library brukes også her for å tillate seriell kommunikasjon på pin 2 og 3 i Arduino. Vi har allerede dekket grensesnittet til ESP8266 Wi-Fi-modulen til Arduino i detalj. Gå også gjennom “Hvordan sende data fra Arduino til websiden ved hjelp av WiFi” før du gjør dette prosjektet. Nedenfor er bildet av ESP8266:
ESP8266 har to lysdioder, den ene er rød, for å indikere strøm og den andre er blå som er datakommunikasjons-LED. Blå LED blinker når ESP sender data via Tx-pinnen. Du må heller ikke koble ESP til +5 volt forsyning, ellers kan enheten skade deg. Her i dette prosjektet har vi valgt 9600 baudrate for all UART-kommunikasjon.
Brukeren kan også se kommunikasjonen mellom Wi-Fi-modulen ESP8266 og Arduino, på Serial Monitor, med overføringshastighet på 9600:
Sjekk også videoen på slutten av dette prosjektet for detaljert arbeidsprosess.
GPS grad minutt til desimal grad konvertering av koordinater:
GPS-modul mottar koordinater fra satelitt i gradminutt format (ddmm.mmmm), og her trenger vi Desimalgrader format for søke plassering på Google Maps. Så først må vi konvertere koordinater fra Grad Minute Format til Desimal Degree Format ved å bruke gitt formel.
Anta at 2856.3465 (ddmm.mmmm) er bredden vi mottar fra GPS-modulen. Nå er de to første tallene grader og de resterende minuttene.
Så 28 er grad og 56,3465 er minutt.
Nå her, ikke noe behov for å konvertere graddel (28), men bare trenger å konvertere minuttdel til desimalgrad ved å dele 60:
Desimalgradskoordinat = Grad + minutt / 60
Desimalgradskoordinat = 28 + 56,3465 / 60
Desimalgradskoordinat = 28 + 0,94
Desimalgradskoordinat = 28,94
Samme prosess vil bli gjort for lengdegradsdata. Vi har konvertert koordinater fra gradminutt til desimalgrad ved å bruke formlene ovenfor i Arduino-skisse:
flyte minut = lat_minut.toFloat (); minut = minut / 60; flytegrad = lat_degree.toFloat (); breddegrad = grad + minut; minut = long_minut.toFloat (); minut = minut / 60; grad = lang_grad.tilFloat (); logitude = grad + minut;
Programmeringsforklaring:
I denne koden har vi brukt SerialSoftware-biblioteket til å grensesnitt ESP8266 og GPS-modul med Arduino. Så har vi definert forskjellige pinner for begge deler og initialisert UART med 9600 baud rate. Inkluderte også LiquidCrystal Library for grensesnitt LCD med Arduino.
#inkludere
Etter det må vi definere eller erklære variabel og streng for forskjellige formål.
String webside = ""; int i = 0, k = 0; int gps_status = 0; Strengnavn = "
1. Navn: Ditt navn
"; // 22 String dob ="2. Fødselsdato: 12. februar 1993
"; // 21 strengnummer ="4. Kjøretøynr.: RJ05 XY 4201
"; // 29 String cordinat ="Koordinater:
"; // 17 String latitude =" "; String logitude =" "; String gpsString =" "; char * test =" $ GPGGA ";Så har vi laget noen funksjoner for forskjellige formål som:
Funksjon for å få GPS-data med koordinater:
ugyldig gpsEvent () {gpsString = ""; mens (1) {while (gps.available ()> 0) {char inChar = (char) gps.read (); gpsString + = inChar; hvis (i <7) {if (gpsString! = test) {i = 0;……………….
Funksjon for å trekke ut data fra GPS-streng og konvertere disse dataene til desimalgradsformat fra desimalminuttformatet, som forklart tidligere.
ugyldig coordinate2dec () {String lat_degree = ""; for (i = 18; i <20; i ++) lat_degree + = gpsString; String lat_minut = ""; for (i = 20; i <28; i ++) lat_minut + = gpsString;……………….
Funksjon for å sende kommandoer til ESP8266 for å konfigurere og koble den til WIFI.
ugyldig connect_wifi (streng cmd, int t) {int temp = 0, i = 0; mens (1) {Serial.println (cmd); Serial1.println (cmd); mens (Serial1.tilgjengelig ()> 0)……………….
void show_coordinate () -funksjon for å vise koordinat på LCD og Serial Monitor og void get_ip () -funksjon for å få IP-adresse.
Void Send () -funksjon for å opprette en informasjonsstreng som skal sendes til websiden ved hjelp av ESP8266 og ugyldig sendwebdata () -funksjon for å sende informasjonsstreng til websiden ved hjelp av UART.
I ugyldig sløyfefunksjon venter Arduino kontinuerlig på nettside for forespørselsskjema (forfriskende webside).
ugyldig sløyfe () {k = 0; Serial.println ("Vennligst oppdater ur-siden"); lcd.setCursor (0,0); lcd.print ("Vennligst oppdater"); lcd.setCursor (0,1); lcd.print ("Din webside.."); mens (k <1000)……………….
Sjekk hele koden nedenfor.