- Ako to funguje:
- Požadované komponenty:
- Vysvetlenie obvodu:
- Prepočet súradníc stupňa GPS na minútu na desatinné miesto:
- Vysvetlenie programovania:
Systém sledovania vozidiel je dnes veľmi dôležitý, najmä v prípade odcudzenia vozidiel. Ak máte vo vozidle nainštalovaný systém GPS, môžete sledovať polohu vášho vozidla a pomáha polícii sledovať ukradnuté vozidlá. Predtým sme vytvorili podobný projekt, v ktorom sa súradnice polohy vozidla odosielajú na mobilný telefón, tu si pozrite „Sledovač vozidiel založený na Arduine pomocou GPS a GSM.
Tu budujeme pokročilejšiu verziu systému sledovania vozidiel, v ktorom môžete sledovať svoje vozidlo v Mapách Google. V tomto projekte pošleme súradnice polohy na miestny server a stačí otvoriť „webovú stránku“ v počítači alebo mobile, kde nájdete odkaz na Mapy Google so svojimi súradnicami polohy vozidiel. Keď kliknete na tento odkaz, dostanete sa do služby Mapy Google a zobrazí polohu vašich vozidiel. V tomto systéme vozidla sledovania pomocou Google Maps, GPS modul sa používa na získanie umiestnenia súradníc, Wi-Fi modul, aby odosielanie dát do počítača alebo mobilného cez Wi-Fi a Arduino sa používa na výrobu GPS a Wi-Fi hovoriť k sebe navzájom.
Ako to funguje:
Na sledovanie vozidla musíme pomocou GPS modulu nájsť súradnice vozidla. GPS modul nepretržite komunikuje so satelitom za účelom získania súradníc. Potom musíme tieto súradnice poslať z GPS do nášho Arduina pomocou UART. A potom Arduino extrahuje požadované údaje z prijatých údajov pomocou GPS.
Predtým Arduino pošle príkaz modulu Wi-Fi ESP8266 na konfiguráciu a pripojenie k smerovaču a na získanie adresy IP. Potom Arduino inicializuje GPS na získanie súradníc a na displeji LCD sa zobrazí správa „Obnoviť stránku“. To znamená, že používateľ musí obnoviť webovú stránku. Keď používateľ obnoví webovú stránku, Arduino získa súradnice GPS a pošle ich na webovú stránku (miestny server) cez Wi-Fi s ďalšími informáciami a odkazom na mapy Google. Teraz kliknutím na tento odkaz používateľ presmeruje súradnice na Mapy Google a potom získa aktuálnu polohu vozidla na červenom mieste v Mapách Google. Celý proces je správne zobrazený na konci videa.
Požadované komponenty:
- Arduino UNO
- Modul Wi-Fi ESP8266
- GPS modul
- USB kábel
- Pripojovacie vodiče
- Notebook
- Zdroj
- 16x2 LCD
- Chlebová doska
- Smerovač Wi-Fi
Vysvetlenie obvodu:
Okruh pre toto „ Sledovanie vozidiel pomocou projektu Google Maps“ je veľmi jednoduchý a potrebujeme hlavne Arduino UNO, GPS modul a modul Wi-Fi ESP8266. Na zobrazenie stavu je voliteľne pripojený displej 16x2 LCD. Tento LCD je pripojený na 14-19 (A0-A5) pinoch Arduino.
Tu je pin Tx GPS modulu priamo pripojený k digitálnemu kolíku číslo 10 Arduina. Použitím softvérovej sériovej knižnice tu sme povolili sériovú komunikáciu na pinoch 10 a 11, vytvorili sme ich Rx a Tx a ponechali sme pin Rx modulu GPS otvorený. V predvolenom nastavení sa pin 0 a 1 Arduina používajú na sériovú komunikáciu, ale pomocou knižnice SoftwareSerial môžeme povoliť sériovú komunikáciu na iných digitálnych pinoch Arduina. Na napájanie modulu GPS sa používa 12 voltový adaptér. Prejdite sem a naučte sa „Ako používať GPS s Arduino“ a získajte súradnice.
Kolíky Vcc a GND modulu Wi-Fi ESP8266 sú priamo pripojené k 3,3 V a GND Arduina a CH_PD je tiež pripojené k 3,3 V. Kolíky Tx a Rx ESP8266 sú priamo pripojené k pinom 2 a 3 Arduina. Softvérová sériová knižnica sa tu tiež používa na umožnenie sériovej komunikácie na pinoch 2 a 3 na Arduine. Prepojenie Wi-Fi modulu ESP8266 na Arduino sme už podrobne rozobrali. Pred uskutočnením tohto projektu si prosím tiež prečítajte časť „Ako posielať údaje z Arduina na webovú stránku pomocou WiFi“. Nižšie je obrázok ESP8266:
ESP8266 má dve LED diódy, jedna je červená pre indikáciu napájania a druhá je modrá, čo je LED pre dátovú komunikáciu. Modrá LED dióda bliká, keď ESP odosiela niektoré údaje cez svoj pin Tx. Nepripájajte tiež ESP k napätiu +5 V, inak by mohlo dôjsť k poškodeniu zariadenia. Tu v tomto projekte sme vybrali 9600 prenosovú rýchlosť pre všetku komunikáciu UART.
Užívateľ tiež môže vidieť komunikáciu medzi Wi-Fi modulom ESP8266 a Arduino na sériovom monitore pri prenosovej rýchlosti 9600:
Skontrolujte tiež video na konci tohto projektu, kde nájdete podrobný pracovný postup.
Prepočet súradníc stupňa GPS na minútu na desatinné miesto:
GPS modul prijíma súradnice zo satelitu vo formáte stupňa minúty (ddmm.mmmm) a tu potrebujeme formát desatinného stupňa pre vyhľadávanie polohy v Mapách Google. Najprv teda musíme pomocou uvedeného vzorca previesť súradnice z formátu stupňa na minútu do formátu desatinného stupňa.
Predpokladajme, že 2856,3465 (ddmm.mmmm) je Latitude, ktorú dostaneme z modulu GPS. Prvé dve čísla sú teraz Stupne a zvyšné sú Minúty.
Takže 28 je stupeň a 56,3465 je minúta.
Teraz tu nie je potrebné prevádzať časť titulu (28), ale stačí konvertovať minútovú časť na desatinný stupeň vydelením 60:
Desatinná súradnica stupňa = stupeň + minúta / 60
Desatinná súradnica stupňa = 28 + 56,3465 / 60
Desatinná súradnica stupňa = 28 + 0,94
Desatinné súradnice stupňa = 28,94
Rovnaký postup sa vykoná pre údaje o zemepisnej dĺžke. Konvertovali sme súradnice z stupňa minúty na desatinné miesto pomocou vyššie uvedených vzorcov v náčrte Arduino:
float minut = lat_minut.toFloat (); minúta = minutka / 60; float degree = lat_degree.toFloat (); zemepisná šírka = stupeň + minúta; minut = long_minut.toFloat (); minúta = minutka / 60; stupeň = long_degree.toFloat (); logitude = stupeň + minúta;
Vysvetlenie programovania:
V tomto kóde sme použili knižnicu SerialSoftware na prepojenie ESP8266 a GPS modulu s Arduino. Potom sme pre oba nadefinovali rôzne piny a inicializovali UART s prenosovou rýchlosťou 9600. Súčasťou je aj LiquidCrystal Library pre rozhranie LCD s Arduino.
#include
Potom musíme definovať alebo deklarovať premennú a reťazec na rôzne účely.
Reťazcová webová stránka = ""; int i = 0, k = 0; int gps_status = 0; Názov reťazca = "
1. Meno: Vaše meno
"; // 22 Reťazec dob ="2. Dátum narodenia: 12. februára 1993
"; // 21 Číslo reťazca ="4. Číslo vozidla: RJ05 XY 4201
"; // 29 Reťazec cordinat ="Súradnice:
"; // 17 String latitude =" "; String logitude =" "; String gpsString =" "; char * test =" $ GPGGA ";Potom sme vytvorili niektoré funkcie na rôzne účely, ako napríklad:
Funkcia na získanie údajov GPS so súradnicami:
void gpsEvent () {gpsString = ""; while (1) {while (gps.available ()> 0) {char inChar = (char) gps.read (); gpsString + = inChar; if (i <7) {if (gpsString! = test) {i = 0;……………….
Funkcia na extrakciu údajov z reťazca GPS a ich prevedenie do formátu desatinného stupňa z formátu desatinnej minúty, ako bolo vysvetlené skôr.
void coordinate2dec () {String lat_degree = ""; pre (i = 18; i <20; i ++) lat_degree + = gpsString; Reťazec lat_minut = ""; pre (i = 20; i <28; i ++) lat_minut + = gpsString;……………….
Funkcia na odosielanie príkazov do ESP8266 na konfiguráciu a pripojenie pomocou WIFI.
void connect_wifi (reťazec cmd, int t) {int temp = 0, i = 0; while (1) {Serial.println (cmd); Serial1.println (cmd); while (Serial1.available ()> 0)……………….
void show_coordinate () funkcia na zobrazenie súradníc na LCD a Serial Monitor a void get_ip () funkcia na získanie IP adresy.
Funkcia Void Send () na vytvorenie reťazca informácií, ktoré sa majú odoslať na webovú stránku pomocou ESP8266, a void sendwebdata () funkcia na odoslanie informačného reťazca na webovú stránku pomocou UART.
Vo funkcii void loop Arduino neustále čaká na webovú stránku formulára žiadosti (obnovujúca webová stránka).
neplatná slučka () {k = 0; Serial.println ("Obnovte prosím svoju stránku"); lcd.setCursor (0,0); lcd.print ("Obnovte prosím"); lcd.setCursor (0,1); lcd.print ("Vaša webová stránka.."); while (k <1000)……………….
Celý kód skontrolujte nižšie.