- Wie es funktioniert:
- Erforderliche Komponenten:
- Schaltungserklärung:
- GPS-Grad-Konvertierung von Koordinaten von Minute zu Dezimalgrad:
- Programmiererklärung:
Das Fahrzeugverfolgungssystem wird heutzutage sehr wichtig, insbesondere bei gestohlenen Fahrzeugen. Wenn in Ihrem Fahrzeug ein GPS-System installiert ist, können Sie den Standort Ihres Fahrzeugs verfolgen. Dies hilft der Polizei, die gestohlenen Fahrzeuge zu verfolgen. Zuvor haben wir ein ähnliches Projekt erstellt, bei dem Standortkoordinaten des Fahrzeugs auf dem Handy gesendet werden. Überprüfen Sie hier 'Arduino-basierter Fahrzeug-Tracker mit GPS und GSM.
Hier erstellen wir eine erweiterte Version des Fahrzeugverfolgungssystems, mit der Sie Ihr Fahrzeug auf Google Maps verfolgen können. In diesem Projekt senden wir die Standortkoordinaten an den lokalen Server. Sie müssen lediglich eine "Webseite" auf Ihrem Computer oder Mobiltelefon öffnen, auf der Sie einen Link zu Google Maps mit Ihren Fahrzeugstandortkoordinaten finden. Wenn Sie auf diesen Link klicken, gelangen Sie zu Google Maps und zeigen den Standort Ihres Fahrzeugs an. In diesem Fahrzeugverfolgungssystem, das Google Maps verwendet, wird das GPS-Modul zum Abrufen der Standortkoordinaten verwendet. Das Wi-Fi-Modul sendet weiterhin Daten über Wi-Fi an einen Computer oder ein Mobiltelefon, und Arduino wird verwendet, um GPS und Wi-Fi miteinander zu kommunizieren.
Wie es funktioniert:
Um das Fahrzeug zu verfolgen, müssen wir die Fahrzeugkoordinaten mithilfe des GPS-Moduls ermitteln. Das GPS-Modul kommuniziert kontinuierlich mit dem Satelliten, um Koordinaten zu erhalten. Dann müssen wir diese Koordinaten mithilfe von UART vom GPS an unser Arduino senden. Und dann extrahiert Arduino die erforderlichen Daten aus den vom GPS empfangenen Daten.
Zuvor sendet Arduino einen Befehl an das Wi-Fi-Modul ESP8266, um den Router zu konfigurieren, eine Verbindung herzustellen und die IP-Adresse abzurufen. Danach initialisiert Arduino GPS, um Koordinaten zu erhalten, und auf dem LCD wird die Meldung "Seitenaktualisierung" angezeigt. Das heißt, der Benutzer muss die Webseite aktualisieren. Wenn der Benutzer die Webseite aktualisiert, erhält Arduino die GPS-Koordinaten und sendet diese über WLAN mit einigen zusätzlichen Informationen und einem Google Maps-Link an die Webseite (lokaler Server). Durch Klicken auf diesen Link leitet der Benutzer nun mit der Koordinate zu Google Maps weiter und erhält dann den aktuellen Standort des Fahrzeugs am roten Punkt in Google Maps. Der gesamte Vorgang wird am Ende im Video korrekt dargestellt.
Erforderliche Komponenten:
- Arduino UNO
- Wi-Fi-Modul ESP8266
- GPS-Modul
- USB-Kabel
- Kabel anschließen
- Laptop
- Energieversorgung
- 16x2 LCD
- Brotbrett
- Wlan Router
Schaltungserklärung:
Die Schaltung für dieses ' Fahrzeugverfolgung mit Google Maps-Projekt' ist sehr einfach und wir benötigen hauptsächlich ein Arduino UNO-, GPS-Modul und ein ESP8266-Wi-Fi-Modul. Optional ist ein 16x2-LCD zur Anzeige des Status angeschlossen. Dieses LCD wird an 14-19 (A0-A5) Pins von Arduino angeschlossen.
Hier ist der Tx-Pin des GPS-Moduls direkt mit dem digitalen Pin Nummer 10 von Arduino verbunden. Durch die Verwendung der Software Serial Library haben wir die serielle Kommunikation an Pin 10 und 11 zugelassen, sie auf Rx bzw. Tx eingestellt und den Rx-Pin des GPS-Moduls offen gelassen. Standardmäßig werden Pin 0 und 1 von Arduino für die serielle Kommunikation verwendet. Mithilfe der SoftwareSerial-Bibliothek können wir jedoch die serielle Kommunikation über andere digitale Pins des Arduino zulassen. Der 12-Volt-Adapter wird zur Stromversorgung des GPS-Moduls verwendet. Hier erfahren Sie, wie Sie GPS mit Arduino verwenden und die Koordinaten abrufen.
Die Vcc- und GND-Pins des Wi-Fi-Moduls ESP8266 sind direkt mit 3,3 V verbunden, und GND von Arduino und CH_PD sind ebenfalls mit 3,3 V verbunden. Die Tx- und Rx-Pins von ESP8266 sind direkt mit Pin 2 und 3 von Arduino verbunden. Die Software Serial Library wird auch hier verwendet, um die serielle Kommunikation an Pin 2 und 3 von Arduino zu ermöglichen. Wir haben die Schnittstelle des ESP8266-Wi-Fi-Moduls zu Arduino bereits ausführlich behandelt. Lesen Sie auch „Senden von Daten von Arduino an eine Webseite mithilfe von WiFi“, bevor Sie dieses Projekt durchführen. Unten ist das Bild von ESP8266:
Der ESP8266 verfügt über zwei LEDs, eine rote Anzeige für die Stromversorgung und eine blaue LED für die Datenkommunikations-LED. Die blaue LED blinkt, wenn ESP einige Daten über seinen Tx-Pin sendet. Schließen Sie das ESP auch nicht an die +5 Volt-Versorgung an, da Ihr Gerät sonst beschädigt werden kann. Hier in diesem Projekt haben wir eine Baudrate von 9600 für die gesamte UART-Kommunikation ausgewählt.
Der Benutzer kann auch die Kommunikation zwischen dem Wi-Fi-Modul ESP8266 und Arduino auf dem seriellen Monitor mit einer Baudrate von 9600 sehen:
Überprüfen Sie auch das Video am Ende dieses Projekts, um einen detaillierten Arbeitsprozess zu erhalten.
GPS-Grad-Konvertierung von Koordinaten von Minute zu Dezimalgrad:
Das GPS-Modul empfängt Koordinaten vom Satelliten im Grad-Minuten- Format (ddmm.mmmm). Hier benötigen wir das Dezimal-Grad- Format für die Suche nach dem Standort in Google Maps. Also müssen wir zuerst die Koordinaten vom Grad-Minuten-Format in das Dezimal-Grad-Format konvertieren, indem wir die angegebene Formel verwenden.
Angenommen, 2856.3465 (ddmm.mmmm) ist der Breitengrad, den wir vom GPS-Modul erhalten. Jetzt sind die ersten beiden Zahlen Grad und die verbleibenden Minuten.
28 ist also Grad und 56,3465 ist Minute.
Hier müssen Sie den Grad-Teil (28) nicht konvertieren, sondern nur den Minuten-Teil durch Teilen von 60 in Dezimalgrad konvertieren:
Dezimalgradkoordinate = Grad + Minute / 60
Dezimalgradkoordinate = 28 + 56,3465 / 60
Dezimalgradkoordinate = 28 + 0,94
Dezimalgradkoordinate = 28,94
Der gleiche Vorgang wird für Längengraddaten durchgeführt. Wir haben die Koordinaten von Grad Minute in Dezimalgrad konvertiert, indem wir die obigen Formeln in Arduino Sketch verwendet haben:
float minut = lat_minut.toFloat (); minut = minut / 60; float grad = lat_degree.toFloat (); Breitengrad = Grad + Minute; minut = long_minut.toFloat (); minut = minut / 60; Grad = long_degree.toFloat (); Logitude = Grad + Minute;
Programmiererklärung:
In diesem Code haben wir die SerialSoftware-Bibliothek verwendet, um ESP8266 und GPS-Modul mit Arduino zu verbinden. Dann haben wir verschiedene Pins für beide definiert und UART mit einer Baudrate von 9600 initialisiert. Ebenfalls enthalten ist die LiquidCrystal Library für die Schnittstellen-LCD mit Arduino.
#einschließen
Danach müssen wir Variable und Zeichenfolge für verschiedene Zwecke definieren oder deklarieren.
String webpage = ""; int i = 0, k = 0; int gps_status = 0; String name = "
1. Name: Ihr Name
"; // 22 String dob ="2. Geburtsdatum: 12. Februar 1993
"; // 21 String number ="4. Fahrzeugnummer: RJ05 XY 4201
"; // 29 String cordinat ="Koordinaten:
"; // 17 String latitude =" "; String logitude =" "; String gpsString =" "; char * test =" $ GPGGA ";Dann haben wir einige Funktionen für verschiedene Zwecke gemacht wie:
Funktion zum Abrufen von GPS-Daten mit Koordinaten:
void gpsEvent () {gpsString = ""; while (1) {while (gps.available ()> 0) {char inChar = (char) gps.read (); gpsString + = inChar; if (i <7) {if (gpsString! = test) {i = 0;……………………
Funktion zum Extrahieren von Daten aus einer GPS-Zeichenfolge und zum Konvertieren dieser Daten in das Dezimalgradformat aus dem Dezimalminutenformat, wie zuvor erläutert.
void Koordinate2dec () {String lat_degree = ""; für (i = 18; i <20; i ++) lat_degree + = gpsString; String lat_minut = ""; für (i = 20; i <28; i ++) lat_minut + = gpsString;……………………
Funktion zum Senden von Befehlen an ESP8266 zum Konfigurieren und Verbinden mit WIFI.
void connect_wifi (String cmd, int t) {int temp = 0, i = 0; während (1) {Serial.println (cmd); Serial1.println (cmd); while (Serial1.available ()> 0)……………….
Die Funktion void show_coordinate () zum Anzeigen der Koordinaten auf dem LCD und dem seriellen Monitor und die Funktion void get_ip () zum Abrufen der IP-Adresse.
Void Send () -Funktion zum Erstellen einer Informationszeichenfolge, die mit ESP8266 an eine Webseite gesendet werden soll, und void sendwebdata () -Funktion zum Senden einer Informationszeichenfolge an eine Webseite mit UART.
In Leerer Schleife Funktion warten Arduino kontinuierlich auf Anfrage Webseite (Refreshing Webseite).
void loop () {k = 0; Serial.println ("Bitte aktualisieren Sie Ihre Seite"); lcd.setCursor (0,0); lcd.print ("Bitte aktualisieren"); lcd.setCursor (0,1); lcd.print ("Ihre Webseite.."); während (k <1000)……………….
Überprüfen Sie den vollständigen Code unten.