- Hvordan det virker:
- Nødvendige komponenter:
- Forklaring af kredsløb:
- GPS grad minut til decimal grad konvertering af koordinater:
- Programmeringsforklaring:
Vehicle Tracking System bliver meget vigtigt nu dage, især i tilfælde af stjålne køretøjer. Hvis du har et GPS-system installeret i dit køretøj, kan du spore køretøjets placering, og det hjælper politiet med at spore de stjålne køretøjer. Tidligere har vi bygget et lignende projekt, hvor placeringskoordinater for køretøj sendes på mobiltelefon, se her 'Arduino-baseret køretøjsspor ved hjælp af GPS og GSM.
Her bygger vi en mere avanceret version af Vehicle Tracking System, hvor du kan spore dit køretøj på Google Maps. I dette projekt sender vi placeringskoordinaterne til den lokale server, og du skal bare åbne en 'webside' på din computer eller mobil, hvor du finder et link til Google Maps med dine køretøjers placeringskoordinater. Når du klikker på dette link, tager det dig på Google Maps og viser din bilers placering. I denne Vehicle Tracking System ved hjælp af Google Maps, GPS-modul bruges til at få det Sted koordinater, Wi-Fi modul til at holde sende data til computeren eller mobil via Wi-Fi og Arduino bruges til at gøre GPS og Wi-Fi-talk til hinanden.
Hvordan det virker:
For at spore køretøjet skal vi finde koordinaterne til køretøjet ved hjælp af GPS-modulet. GPS-modulet kommunikerer kontinuerligt med satellitten for at få koordinater. Så er vi nødt til at sende disse koordinater fra GPS til vores Arduino ved hjælp af UART. Og så ekstraherer Arduino de krævede data fra modtagne data via GPS.
Før dette sender Arduino kommando til Wi-Fi-modul ESP8266 for at konfigurere og oprette forbindelse til routeren og få IP-adressen. Efter det initialiserer Arduino GPS for at få koordinater, og LCD'et viser en 'Page Refresh meddelelse'. Det betyder, at brugeren skal opdatere websiden. Når brugeren opdaterer websiden, får Arduino GPS-koordinaterne og sender det samme til websiden (lokal server) via Wi-Fi, med nogle yderligere oplysninger og et Google maps-link i det. Nu ved at klikke på dette link omdirigerer brugeren til Google Maps med koordinaten, og derefter får han / hun køretøjets aktuelle placering på det røde sted på Google Maps. Hele processen vises korrekt i videoen i slutningen.
Nødvendige komponenter:
- Arduino UNO
- Wi-Fi-modul ESP8266
- GPS-modul
- USB-kabel
- Tilslutning af ledninger
- Bærbar
- Strømforsyning
- 16x2 LCD
- Brødbræt
- Wi-Fi-router
Forklaring af kredsløb:
Kredsløb til dette ' køretøjssporing ved hjælp af Google Maps-projekt' er meget simpelt, og vi har hovedsagelig brug for et Arduino UNO, GPS-modul og ESP8266 Wi-Fi-modul. Der er en 16x2 LCD valgfri tilsluttet til visning af status. Denne LCD-forbindelse er forbundet med 14-19 (A0-A5) Pins af Arduino.
Her er Tx-stift på GPS-modulet direkte forbundet til det digitale pin nummer 10 på Arduino. Ved at bruge softwareseriebibliotek her har vi tilladt seriel kommunikation på pin 10 og 11 og gjort dem henholdsvis Rx og Tx og efterladt Rx-pin i GPS-modulet åben. Som standard bruges pin 0 og 1 i Arduino til seriel kommunikation, men ved hjælp af SoftwareSerial-biblioteket kan vi tillade seriel kommunikation på andre digitale pins i Arduino. 12 volt adapter bruges til at drive GPS-modulet. Gå igennem her for at lære "Sådan bruges GPS med Arduino" og få koordinaterne.
Wi-Fi-modul ESP8266s Vcc- og GND-stifter er direkte tilsluttet til 3.3V, og GND af Arduino og CH_PD er også forbundet med 3.3V. Tx- og Rx-stifter på ESP8266 er direkte forbundet til pin 2 og 3 i Arduino. Software Serial Library bruges også her til at tillade seriel kommunikation på pin 2 og 3 i Arduino. Vi har allerede dækket interfacing af ESP8266 Wi-Fi-modulet til Arduino i detaljer. Gå også igennem "Sådan sendes data fra Arduino til websiden ved hjælp af WiFi", inden du udfører dette projekt. Nedenfor er billedet af ESP8266:
ESP8266 har to lysdioder, den ene er rød, for at indikere strøm og den anden er blå, der er datakommunikations-LED. Den blå LED blinker, når ESP sender nogle data via sin Tx-pin. Tilslut heller ikke ESP til +5 volt forsyning, ellers kan enheden beskadiges. Her i dette projekt har vi valgt 9600 baudrate for al UART-kommunikation.
Brugeren kan også se kommunikationen mellem Wi-Fi-modulet ESP8266 og Arduino på den serielle skærm med en baudhastighed på 9600:
Tjek også videoen i slutningen af dette projekt for en detaljeret arbejdsproces.
GPS grad minut til decimal grad konvertering af koordinater:
GPS-modul modtager koordinater fra satellit i Grad Minut -format (ddmm.mmmm) og her har vi brug for Decimal Degree format til søge placeringen på Google Maps. Så først skal vi konvertere koordinater fra Grad Minute Format til Decimal Degree Format ved hjælp af den givne formel.
Antag, at 2856.3465 (ddmm.mmmm) er den bredde, vi modtager fra GPS-modulet. Nu er de første to tal grader og de resterende minutter.
Så 28 er grad, og 56,3465 er minut.
Nu er der ikke behov for at konvertere graddel (28), men kun behøver at konvertere minutdel til decimalgrad ved at dividere 60:
Decimal gradskoordinering = Grad + minut / 60
Decimalgradskoordinat = 28 + 56,3465 / 60
Decimalgradskoordinat = 28 + 0,94
Decimalgradskoordinat = 28,94
Den samme proces udføres for længdegradsdata. Vi har konverteret koordinater fra gradminut til decimalgrad ved hjælp af ovenstående formler i Arduino-skitse:
flyde minut = lat_minut.toFloat (); minut = minut / 60; flydningsgrad = lat_degree.toFloat (); breddegrad = grad + minut; minut = long_minut.toFloat (); minut = minut / 60; grad = long_degree.toFloat (); logitude = grad + minut;
Programmeringsforklaring:
I denne kode har vi brugt SerialSoftware-biblioteket til at interface ESP8266 og GPS-modul med Arduino. Så har vi defineret forskellige ben for begge og initialiseret UART med 9600 baudrate. Inkluderet også LiquidCrystal Library til interface LCD med Arduino.
#omfatte
Efter det er vi nødt til at definere eller erklære variabel og streng til forskellige formål.
String webside = ""; int i = 0, k = 0; int gps_status = 0; String name = "
1. Navn: Dit navn
"; // 22 streng dob ="2. Fødselsdato: 12. februar 1993
"; // 21 String nummer ="4. Køretøj nr.: RJ05 XY 4201
"; // 29 streng cordinat ="Koordinater:
"; // 17 String latitude =" "; String logitude =" "; String gpsString =" "; char * test =" $ GPGGA ";Så har vi lavet nogle funktioner til forskellige formål som:
Funktion til at hente GPS-data med koordinater:
ugyldigt gpsEvent () {gpsString = ""; mens (1) {while (gps.available ()> 0) {char inChar = (char) gps.read (); gpsString + = inChar; hvis (i <7) {hvis (gpsString! = test) {i = 0;……………….
Funktion til udpakning af data fra GPS-streng og konvertering af disse data til decimalgradsformat fra formatet decimalminut, som forklaret tidligere.
ugyldig koordinat2dec () {String lat_degree = ""; for (i = 18; i <20; i ++) lat_degree + = gpsString; String lat_minut = ""; for (i = 20; i <28; i ++) lat_minut + = gpsString;……………….
Funktion til at sende kommandoer til ESP8266 til konfiguration og tilslutning af den til WIFI.
ugyldig connect_wifi (String cmd, int t) {int temp = 0, i = 0; mens (1) {Serial.println (cmd); Serial1.println (cmd); mens (Serial1.tilgængelig ()> 0)……………….
ugyldig show_coordinate () funktion til visning af koordinater på LCD og Serial Monitor og ugyldig get_ip () funktion til at få IP-adresse.
Void Send () -funktion til oprettelse af en informationsstreng, der skal sendes til websiden ved hjælp af ESP8266 og ugyldig sendwebdata () -funktion til afsendelse af informationsstreng til websiden ved hjælp af UART.
I ugyldig sløjfe- funktion venter Arduino kontinuerligt på websiden med anmodningsformularen (Opfriskende webside).
ugyldig sløjfe () {k = 0; Serial.println ("Opdater venligst ur-siden"); lcd.setCursor (0,0); lcd.print ("Opdater venligst"); lcd.setCursor (0,1); lcd.print ("Din webside.."); mens (k <1000)……………….
Tjek den fulde kode nedenfor.