- Jak to funguje:
- Požadované komponenty:
- Vysvětlení obvodu:
- Převod souřadnic GPS na minuty na desetiny:
- Vysvětlení programování:
Systém sledování vozidel se v dnešní době stává velmi důležitým, zejména v případě odcizení vozidel. Pokud máte ve vozidle nainstalován systém GPS, můžete sledovat polohu vašeho vozidla a pomáhá policii sledovat odcizená vozidla. Dříve jsme vytvořili podobný projekt, ve kterém jsou souřadnice polohy vozidla odesílány na mobilní telefon, zde zkontrolujte 'Sledování vozidel založené na Arduinu pomocí GPS a GSM.
Zde vytváříme pokročilejší verzi systému sledování vozidel, ve kterém můžete sledovat své vozidlo na Mapách Google. V tomto projektu pošleme souřadnice polohy na místní server a stačí otevřít „webovou stránku“ v počítači nebo mobilu, kde najdete odkaz na Mapy Google s vašimi souřadnicemi polohy vozidel. Když kliknete na tento odkaz, dostanete se do Map Google a zobrazí polohu vašich vozidel. V tomto systému sledování vozidel pomocí Google Maps se modul GPS používá k získávání souřadnic polohy, modul Wi-Fi k udržování odesílání dat do počítače nebo mobilu přes Wi-Fi a Arduino se používá k vzájemnému vzájemnému hovoru GPS a Wi-Fi.
Jak to funguje:
Chcete-li sledovat vozidlo, musíme najít souřadnice vozidla pomocí modulu GPS. GPS modul nepřetržitě komunikuje se satelitem a získává souřadnice. Pak musíme tyto souřadnice odeslat z GPS do našeho Arduina pomocí UART. A poté Arduino extrahuje požadovaná data z přijatých dat pomocí GPS.
Před tím Arduino odešle příkaz do modulu Wi-Fi ESP8266 pro konfiguraci a připojení k routeru a získání adresy IP. Poté Arduino inicializuje GPS pro získání souřadnic a na LCD se zobrazí zpráva „Obnovit stránku“. To znamená, že uživatel musí obnovit webovou stránku. Když uživatel obnoví webovou stránku, Arduino získá souřadnice GPS a odešle je na web (místní server) přes Wi-Fi, s dalšími informacemi a odkazem na mapy Google. Nyní kliknutím na tento odkaz uživatel přesměruje souřadnici na Mapy Google a poté získá aktuální polohu vozidla na červeném místě v Mapách Google. Celý proces je správně zobrazen ve videu na konci.
Požadované komponenty:
- Arduino UNO
- Modul Wi-Fi ESP8266
- GPS modul
- USB kabel
- Připojovací vodiče
- Notebook
- Zdroj napájení
- 16x2 LCD
- Chlebová deska
- Wi-Fi router
Vysvětlení obvodu:
Okruh pro toto „ Sledování vozidel pomocí projektu Google Maps“ je velmi jednoduchý a potřebujeme hlavně Arduino UNO, GPS modul a modul ESP8266 Wi-Fi. K zobrazení stavu je volitelně připojen 16x2 LCD. Tento LCD je připojen na 14-19 (A0-A5) pinů Arduina.
Zde je Tx pin modulu GPS přímo připojen k digitálnímu pinu číslo 10 Arduina. Tím, že zde používáme softwarovou sériovou knihovnu, jsme povolili sériovou komunikaci na pinech 10 a 11, udělali jsme jim Rx a Tx a ponechali jsme Rx pin modulu GPS otevřený. Ve výchozím nastavení se pro sériovou komunikaci používají Pin 0 a 1 Arduina, ale pomocí knihovny SoftwareSerial můžeme povolit sériovou komunikaci na jiných digitálních pinech Arduina. K napájení modulu GPS se používá 12voltový adaptér. Projděte si zde a naučte se „Jak používat GPS s Arduinem“ a získejte souřadnice.
Kolíky Vcc a GND modulu Wi-Fi ESP8266 jsou přímo připojeny k 3,3 V a GND Arduina a CH_PD je také připojeno k 3,3 V. Kolíky Tx a Rx ESP8266 jsou přímo připojeny k pinům 2 a 3 Arduina. Zde se také používá softwarová sériová knihovna, která umožňuje sériovou komunikaci na pinech 2 a 3 Arduina. Propojení Wi-Fi modulu ESP8266 na Arduino jsme již podrobně popsali. Před provedením tohoto projektu si prosím projděte „Jak odeslat data z Arduina na web pomocí WiFi“. Níže je obrázek ESP8266:
ESP8266 má dvě LED diody, jedna je červená pro indikaci napájení a druhá je modrá, což je LED pro datovou komunikaci. Modrá kontrolka LED bliká, když ESP odesílá některá data prostřednictvím svého kolíku Tx. Nepřipojujte také ESP k +5 voltovému zdroji, jinak by mohlo dojít k poškození vašeho zařízení. Tady v tomto projektu jsme vybrali 9600 baudů pro veškerou komunikaci UART.
Uživatel také může vidět komunikaci mezi Wi-Fi modulem ESP8266 a Arduino na sériovém monitoru při přenosové rychlosti 9600:
Zkontrolujte také video na konci tohoto projektu, kde najdete podrobný pracovní postup.
Převod souřadnic GPS na minuty na desetiny:
GPS modul přijímá souřadnice ze satelitu ve formátu stupně minuty (ddmm.mmmm) a zde potřebujeme formát desetinného stupně pro vyhledávání polohy na Google Maps. Nejprve tedy musíme převést souřadnice z formátu minutových stupňů na desítkový formát stupňů pomocí daného vzorce.
Předpokládejme, že 2856,3465 (ddmm.mmmm) je zeměpisná šířka, kterou obdržíme z modulu GPS. Nyní jsou první dvě čísla stupně a zbývající jsou minuty.
Takže 28 je stupeň a 56,3465 je minuta.
Nyní zde není potřeba převádět titulní část (28), ale stačí převést minutovou část na desetinnou část dělením 60:
Souřadnice desetinného stupně = stupeň + minuta / 60
Souřadnice desetinného stupně = 28 + 56,3465 / 60
Souřadnice desetinného stupně = 28 + 0,94
Souřadnice desetinného stupně = 28,94
Stejný proces bude proveden u dat zeměpisné délky. Převedli jsme souřadnice z minutových stupňů na desetinné stupně pomocí výše uvedených vzorců v náčrtu Arduino:
float minut = lat_minut.toFloat (); minut = minuta / 60; float degree = lat_degree.toFloat (); zeměpisná šířka = stupeň + minuta; minut = long_minut.toFloat (); minut = minuta / 60; stupeň = long_degree.toFloat (); logitude = stupeň + minuta;
Vysvětlení programování:
V tomto kódu jsme použili knihovnu SerialSoftware k propojení ESP8266 a GPS modulu s Arduino. Pak jsme definovali různé piny pro oba a inicializovali UART s přenosovou rychlostí 9600. Zahrnuta také knihovna LiquidCrystal pro rozhraní LCD s Arduino.
#zahrnout
Poté musíme definovat nebo deklarovat proměnnou a řetězec pro různé účely.
Řetězcová webová stránka = ""; int i = 0, k = 0; int gps_status = 0; Název řetězce = "
1. Jméno: Vaše jméno
"; // 22 Řetězec dob ="2. Datum narození: 12. února 1993
"; // 21 Číslo řetězce ="4. Číslo vozidla: RJ05 XY 4201
"; // 29 Řetězec cordinat ="Souřadnice:
"; // 17 String latitude =" "; String logitude =" "; String gpsString =" "; char * test =" $ GPGGA ";Pak jsme vytvořili některé funkce pro různé účely, jako například:
Funkce pro získávání dat GPS se souřadnicemi:
void gpsEvent () {gpsString = ""; while (1) {while (gps.available ()> 0) {char inChar = (char) gps.read (); gpsString + = inChar; if (i <7) {if (gpsString! = test) {i = 0;……………….
Funkce pro extrakci dat z řetězce GPS a převádění těchto dat do formátu desetinného stupně z formátu desetinné minuty, jak bylo vysvětleno dříve.
void coordinate2dec () {String lat_degree = ""; pro (i = 18; i <20; i ++) lat_degree + = gpsString; Řetězec lat_minut = ""; pro (i = 20; i <28; i ++) lat_minut + = gpsString;……………….
Funkce pro odesílání příkazů do ESP8266 pro konfiguraci a připojení pomocí WIFI.
void connect_wifi (String cmd, int t) {int temp = 0, i = 0; while (1) {Serial.println (cmd); Serial1.println (cmd); while (Serial1.available ()> 0)……………….
void show_coordinate () funkce pro zobrazení souřadnic na LCD a Serial Monitoru a void get_ip () funkce pro získání IP adresy.
Funkce Void Send () pro vytvoření řetězce informací, které mají být odeslány na web pomocí ESP8266, a funkce void sendwebdata () pro odeslání informačního řetězce na web pomocí UART.
Ve funkci neplatné smyčky Arduino nepřetržitě čeká na webovou stránku formuláře žádosti (osvěžující webová stránka).
void loop () {k = 0; Serial.println ("Obnovte prosím svou stránku"); lcd.setCursor (0,0); lcd.print ("Obnovte prosím"); lcd.setCursor (0,1); lcd.print („Vaše webová stránka..“); while (k <1000)……………….
Zkontrolujte celý kód níže.