- Hur det fungerar:
- Komponenter som krävs:
- Kretsförklaring:
- GPS-gradminut till decimalgradskoordinering av koordinater:
- Programmeringsförklaring:
Fordonsspårningssystem blir mycket viktigt nu dagar, särskilt vid stulna fordon. Om du har ett GPS-system installerat i ditt fordon kan du spåra din fordonsplats, och det hjälper polisen att spåra de stulna fordonen. Tidigare har vi byggt liknande projekt där platskoordinater för fordon skickas på mobiltelefon, kolla här 'Arduino-baserade fordonsspårare med GPS och GSM.
Här bygger vi mer avancerad version av fordonsspårningssystem där du kan spåra ditt fordon på Google Maps. I det här projektet skickar vi platskoordinaterna till den lokala servern och du behöver bara öppna en "webbsida" på din dator eller mobil, där du hittar en länk till Google Maps med dina fordonsplatskoordinater. När du klickar på den länken tar det dig på Google Maps och visar din fordons plats. I detta fordonsspårningssystem med hjälp av Google Maps används GPS-modulen för att få platskoordinaterna, Wi-Fi-modulen för att fortsätta skicka data till dator eller mobil via Wi-Fi och Arduino används för att få GPS och Wi-Fi att prata med varandra.
Hur det fungerar:
För att spåra fordonet måste vi hitta koordinaterna för fordonet med hjälp av GPS-modulen. GPS-modulen kommunicerar kontinuerligt med satelliten för att få koordinater. Då måste vi skicka dessa koordinater från GPS till vår Arduino med hjälp av UART. Och sedan extraherar Arduino nödvändig data från mottagen data via GPS.
Innan detta skickar Arduino kommando till Wi-Fi-modulen ESP8266 för att konfigurera och ansluta till routern och få IP-adressen. Efter det initierar Arduino GPS för att få koordinater och LCD-skärmen visar ett 'Siduppdateringsmeddelande'. Det betyder att användaren måste uppdatera webbsidan. När användaren uppdaterar webbsidan får Arduino GPS-koordinaterna och skickar densamma till webbsidan (lokal server) via Wi-Fi, med ytterligare information och en Google-kartlänk i den. Genom att klicka på den här länken omdirigerar användaren till Google Maps med koordinaten och sedan får han / hon fordonets aktuella plats på den röda platsen på Google Maps. Hela processen visas korrekt i videon i slutet.
Komponenter som krävs:
- Arduino UNO
- Wi-Fi-modul ESP8266
- GPS-modul
- USB-kabel
- Anslutande ledningar
- Bärbar dator
- Strömförsörjning
- 16x2 LCD
- Brödbräda
- Wifi router
Kretsförklaring:
Kretsloppet för detta " fordonsspårning med hjälp av Google Maps-projektet" är väldigt enkelt och vi behöver främst en Arduino UNO, GPS-modul och ESP8266 Wi-Fi-modul. Det finns en 16x2 LCD som valfritt är ansluten för att visa status. Denna LCD är ansluten med 14-19 (A0-A5) Pins av Arduino.
Här är Tx-stift på GPS-modulen direkt ansluten till det digitala stiftet nummer 10 på Arduino. Genom att använda Software Serial Library här har vi tillåtit seriekommunikation på stift 10 och 11 och gjort dem till Rx respektive Tx och lämnat Rx-stiftet på GPS-modulen öppen. Som standard används stift 0 och 1 i Arduino för seriell kommunikation men med hjälp av SoftwareSerial-biblioteket kan vi tillåta seriell kommunikation på andra digitala stift i Arduino. 12-voltsadapter används för att driva GPS-modulen. Gå igenom här för att lära dig "Hur man använder GPS med Arduino" och få koordinaterna.
Wi-Fi-modul ESP8266: s Vcc- och GND-stift är direkt anslutna till 3,3 V och GND för Arduino och CH_PD är också ansluten till 3,3 V. Tx- och Rx-stiften på ESP8266 är direkt anslutna till stift 2 och 3 på Arduino. Software Serial Library används också här för att tillåta seriell kommunikation på pin 2 och 3 i Arduino. Vi har redan täckt gränssnittet mellan ESP8266 Wi-Fi-modulen och Arduino i detalj. Vänligen gå också igenom "Hur man skickar data från Arduino till webbsidan med WiFi" innan du gör detta projekt. Nedan är bilden av ESP8266:
ESP8266 har två lysdioder, en är röd, för att indikera ström och den andra är blå som är datakommunikationslampa. Den blå lysdioden blinkar när ESP skickar data via sin Tx-stift. Anslut inte heller ESP till +5 volt, annars kan enheten skada. Här i detta projekt har vi valt 9600 baudhastighet för all UART-kommunikation.
Användaren kan också se kommunikationen mellan Wi-Fi-modulen ESP8266 och Arduino, på den seriella bildskärmen, med överföringshastigheten 9600:
Läs också videon i slutet av detta projekt för detaljerad arbetsprocess.
GPS-gradminut till decimalgradskoordinering av koordinater:
GPS-modulen tar emot koordinater från satellit i Degree Minute- format (ddmm.mmmm) och här behöver vi Decimal Degree- format för att söka platsen på Google Maps. Så först måste vi konvertera koordinater från Degree Minute Format till Decimal Degree Format med hjälp av den givna formeln.
Antag att 2856.3465 (ddmm.mmmm) är den latitud som vi får från GPS-modulen. Nu är de första två siffrorna grader och återstående är minuter.
Så 28 är grad och 56,3465 är minut.
Nu behöver du inte konvertera graddel (28), utan bara konvertera minutdel till decimalgrad genom att dela 60:
Decimalgradskoordinat = Grad + minut / 60
Decimalgradskoordinat = 28 + 56,3465 / 60
Decimalgradskoordinat = 28 + 0,94
Decimalgradskoordinat = 28,94
Samma process kommer att göras för longituddata. Vi har konverterat koordinater från gradminut till decimalgrad med ovanstående formler i Arduino-skiss:
flyta minut = lat_minut.toFloat (); minut = minut / 60; float degree = lat_degree.toFloat (); latitud = grad + minut; minut = long_minut.toFloat (); minut = minut / 60; grad = long_degree.toFloat (); logitude = grad + minut;
Programmeringsförklaring:
I den här koden har vi använt SerialSoftware-biblioteket för att gränssnitt ESP8266 och GPS-modul med Arduino. Sedan har vi definierat olika stift för båda och initialiserat UART med 9600 baudhastighet. Inkluderade också LiquidCrystal Library för gränssnitt LCD med Arduino.
#omfatta
Efter det måste vi definiera eller deklarera variabel och sträng för olika syften.
String webpage = ""; int i = 0, k = 0; int gps_status = 0; Strängnamn = "
1. Namn: Ditt namn
"; // 22 String dob ="2. DUB: 12 februari 1993
"; // 21 Strängnummer ="4. Fordonsnummer: RJ05 XY 4201
"; // 29 Sträng cordinat ="Koordinater:
"; // 17 String latitude =" "; String logitude =" "; String gpsString =" "; char * test =" $ GPGGA ";Sedan har vi gjort några funktioner för olika ändamål som:
Funktion för att få GPS-data med koordinater:
ogiltigt gpsEvent () {gpsString = ""; medan (1) {while (gps.available ()> 0) {char inChar = (char) gps.read (); gpsString + = inChar; om (i <7) {if (gpsString! = test) {i = 0;……………….
Funktion för att extrahera data från GPS-sträng och konvertera dessa data till decimalgradsformat från decimalminutformat, som förklaras i första hand.
ogiltig coordinate2dec () {String lat_degree = ""; för (i = 18; i <20; i ++) lat_degree + = gpsString; Sträng lat_minut = ""; för (i = 20; i <28; i ++) lat_minut + = gpsString;……………….
Funktion för att skicka kommandon till ESP8266 för att konfigurera och ansluta den till WIFI.
ogiltig connect_wifi (String cmd, int t) {int temp = 0, i = 0; medan (1) {Serial.println (cmd); Serial1.println (cmd); medan (Serial1.available ()> 0)……………….
void show_coordinate () -funktion för att visa koordinat på LCD och Serial Monitor och void get_ip () -funktion för att få IP-adress.
Void Send () -funktion för att skapa en informationssträng som ska skickas till webbsidan med ESP8266 och ogiltig sendwebdata () -funktion för att skicka informationssträng till webbsidan med UART.
I ogiltig slingfunktion väntar Arduino kontinuerligt på webbsidan för begäran (uppfriskande webbsida).
ogiltig slinga () {k = 0; Serial.println ("Uppdatera ur-sidan"); lcd.setCursor (0,0); lcd.print ("Vänligen uppdatera"); lcd.setCursor (0,1); lcd.print ("Din webbsida.."); medan (k <1000)……………….
Kontrollera hela koden nedan.