- Hogyan működik:
- Szükséges alkatrészek:
- Áramkör magyarázat:
- GPS-fok perc koordináták tizedesfokra konvertálása:
- Programozási magyarázat:
A járműkövető rendszer napjainkban nagyon fontossá válik, különösen az ellopott járművek esetében. Ha GPS-rendszer van telepítve a járművébe, nyomon követheti a jármű helyét, és ez segít a rendőrségnek az ellopott járművek nyomon követésében. Korábban hasonló projektet építettünk, amelyben a jármű koordinátáit küldjük a mobiltelefonra, itt ellenőrizheti az Arduino alapú járműkövetőt GPS és GSM segítségével.
Itt építjük a járműkövető rendszer fejlettebb változatát, amelyben nyomon követheti járművét a Google Maps-en. Ebben a projektben a helykoordinátákat elküldjük a Helyi Szervernek, és csak meg kell nyitnia egy „weboldalt” a számítógépén vagy a mobilján, ahol talál egy linket a Google Maps-hez a járművek helykoordinátáival. Ha rákattint erre a linkre, az a Google Térképre viszi, és megmutatja a járművek helyét. Ebben a járműkövető rendszer a Google Maps, GPS modul használják kezd a hely koordinátái, Wi-Fi modul, hogy adatokat küld a számítógépre vagy mobil Wi-Fi-vel és Arduino használják, hogy a GPS és Wi-Fi beszélnek egymással.
Hogyan működik:
A jármű nyomon követéséhez meg kell találnunk a jármű koordinátáit a GPS modul segítségével. A GPS modul folyamatosan kommunikál a műholddal a koordináták megszerzéséhez. Ezután el kell küldenünk ezeket a koordinátákat a GPS-ről az Arduino-ra az UART használatával. Ezután az Arduino kivonja a szükséges adatokat a fogadott adatokból GPS-en keresztül.
Ezt megelőzően az Arduino parancsot küld az ESP8266 Wi-Fi modulnak az útválasztó konfigurálásához és csatlakozásához, valamint az IP-cím megszerzéséhez. Ezt követően az Arduino inicializálja a GPS-t a koordináták megszerzéséhez, és az LCD-n megjelenik egy „Oldalfrissítés üzenet”. Ez azt jelenti, hogy a felhasználónak frissítenie kell a weboldalt. Amikor a felhasználó frissíti a weboldalt, az Arduino megkapja a GPS koordinátákat, és ugyanezt elküldi a weboldalra (helyi szerverre) Wi-Fi-n keresztül, néhány további információval és egy Google Maps hivatkozással. Most erre a linkre kattintva a felhasználó átirányít a Google Maps-re a koordinátával, majd megkapja a jármű aktuális tartózkodási helyét a Google Maps piros pontján. Az egész folyamat megfelelően látható a videó végén.
Szükséges alkatrészek:
- Arduino UNO
- ESP8266 Wi-Fi modul
- GPS modul
- USB kábel
- Csatlakozó vezetékek
- Laptop
- Tápegység
- 16x2 LCD
- Kenyérlap
- Wi-Fi útválasztó
Áramkör magyarázat:
A „ Járműkövetés a Google Maps projekt segítségével ” áramkör nagyon egyszerű, és elsősorban Arduino UNO-ra, GPS-modulra és ESP8266 Wi-Fi modulra van szükségünk. Van egy opcionálisan csatlakoztatott 16x2 LCD az állapot megjelenítéséhez. Ezt az LCD-t az Arduino 14-19 (A0-A5) csapszegénél csatlakoztatják.
Itt a GPS modul Tx tűje közvetlenül csatlakozik az Arduino 10-es számú digitális tűjéhez. A Software Serial Library itt történő használatával engedélyeztük a soros kommunikációt a 10-es és a 11-es tűn, és Rx-ként, illetve Tx-kké tettük őket, és nyitva hagytuk a GPS-modul Rx-tűjét. Alapértelmezés szerint az Arduino 0-as és 1-es érintkezõjét használják a soros kommunikációhoz, de a SoftwareSerial könyvtár használatával engedélyezhetjük a soros kommunikációt az Arduino más digitális csatlakozóin. 12 V-os adaptert használnak a GPS-modul táplálásához. Itt tekintheti meg a „Hogyan használjuk a GPS-t az Arduinóval” című részt, és megtudhatja a koordinátákat.
Az ESP8266 Wi-Fi modul Vcc és GND csatlakozói közvetlenül csatlakoznak a 3,3 V-hoz, az Arduino és a CH_PD pedig a 3,3 V-hoz is. Az ESP8266 Tx és Rx csapjai közvetlenül kapcsolódnak az Arduino 2. és 3. érintkezőjéhez. A szoftveres soros könyvtárat itt is használják, hogy soros kommunikációt engedélyezzenek az Arduino 2. és 3. érintkezőjén. Az ESP8266 Wi-Fi modul interfészét az Arduino-nak már részletesen áttekintettük, és a projekt elvégzése előtt olvassa el a „Hogyan küldhetünk adatokat Arduinóról a weboldalra a WiFi segítségével” című cikket. Az alábbiakban látható az ESP8266 képe:
Az ESP8266-nak két LED-je van, az egyik piros, az áram jelzésére, a másik pedig a kék, vagyis az adatkommunikációs LED. A kék LED villog, amikor az ESP a Tx tűjén keresztül küld adatokat. Ne csatlakoztassa az ESP-t +5 voltos tápfeszültséghez, különben a készülék károsodhat. Ebben a projektben 9600 baud sebességet választottunk az összes UART kommunikációhoz.
A felhasználó láthatja az ESP8266 Wi-Fi modul és az Arduino közötti kommunikációt a soros monitoron 9600 átviteli sebességgel:
A részletes munkafolyamatért nézze meg a videó végén található projektet is.
GPS-fok perc koordináták tizedesfokra konvertálása:
A GPS modul műholdas koordinátákat kap Degree Minute formátumban (ddmm.mmmm), és itt szükségünk van a Decimal Degree formátumra a hely kereséséhez a Google Maps-en. Tehát először át kell alakítanunk a koordinátákat a fok fok perc formátumból a decimális fok formátumba egy adott képlet segítségével.
Tegyük fel, hogy a 2856.3465 (ddmm.mmmm) az a szélesség, amelyet a GPS-modulból kapunk. Az első két szám fok, a maradék pedig perc.
Tehát 28 fok és 56,3465 perc.
Most itt nincs szükség a (28) fokozat konvertálására, csak a Minute részt kell decimálissá konvertálni 60 osztásával:
Tizedes fok koordinátája = fok + perc / 60
Tizedes fokú koordináta = 28 + 56,3465 / 60
Tizedes fok koordinátája = 28 + 0,94
Tizedes fok koordinátája = 28,94
Ugyanezt a folyamatot fogjuk elvégezni a hosszúsági adatok esetében is. A koordinátákat fokpercről decimális fokozatra konvertáltuk a fenti képletek használatával az Arduino vázlatban:
float minut = lat_minut.toFloat (); perc = perc / 60; úszó fok = lat_degree.toFloat (); szélesség = fok + perc; minut = long_minut.toFloat (); perc = perc / 60; fokozat = long_degree.toFloat (); földrajzi szélesség = fok + perc;
Programozási magyarázat:
Ebben a kódban a SerialSoftware könyvtárat használtuk az ESP8266 és a GPS modul Arduino-val történő összekapcsolására. Ezután meghatároztunk különböző csapokat mindkettőhöz, és inicializáljuk az UART-ot 9600 baud sebességgel. Tartalmazza a LiquidCrystal könyvtárat is az LCD interfészhez az Arduinóval.
#include
Utána meg kell határoznunk vagy deklarálnunk kell a változót és a karakterláncot különböző célokra.
Karakterlánc-weboldal = ""; int i = 0, k = 0; int gps_status = 0; Karakterlánc neve = "
1. Név: Az Ön neve
"; // 22 karakterlánc dob ="2. Születési idő: 1993. február 12
"; // 21 karakterlánc száma ="4. Járműszám: RJ05 XY 4201
"; // 29 karakterlánc-koordináta ="Koordináták:
"; // 17 Karakterlánc szélessége =" "; String logitude =" "; Karakterlánc gpsString =" "; char * teszt =" $ GPGGA ";Ezután készítettünk néhány funkciót különböző célokra, például:
Funkció GPS adatok koordinátákkal történő lekérésére:
void gpsEvent () {gpsString = ""; while (1) {while (gps.available ()> 0) {char inChar = (char) gps.read (); gpsString + = inChar; if (i <7) {if (gpsString! = teszt) {i = 0;……………….
Funkció az adatok GPS karaktersorozatból történő kinyerésére és az adatok decimális formátumba konvertálására a tizedes perc formátumból, amint azt az earliar elmagyarázta.
void coordinate2dec () {String lat_degree = ""; for (i = 18; i <20; i ++) lat_degree + = gpsString; Karakterlánc lat_minut = ""; for (i = 20; i <28; i ++) lat_minut + = gpsString;……………….
Funkció parancsok küldéséhez az ESP8266-hoz a WIFI-hez való konfiguráláshoz és összekapcsoláshoz.
void connect_wifi (Karakterlánc cmd, int t) {int temp = 0, i = 0; míg (1) {Soros.println (cmd); Sorozat1.println (cmd); míg (Soros1.elérhető ()> 0)……………….
void show_coordinate () függvény a koordináta megjelenítéséhez az LCD-n és a soros monitoron és void get_ip () függvény az IP-cím lekéréséhez.
Void Send () függvény egy olyan információs karakterlánc létrehozásához, amelyet az ESP8266 használatával kell elküldeni a weboldalra, és void sendwebdata () függvény az információs karakterlánc weboldalra történő küldéséhez az UART használatával.
A void loop funkcióban az Arduino folyamatosan várja az igénylőlap weboldalát (Weboldal frissítése).
void loop () {k = 0; Serial.println ("Kérjük, frissítse az Ur oldalt"); lcd.setCursor (0,0); lcd.print ("Kérjük, frissítsen"); lcd.setCursor (0,1); lcd.print ("Az Ön weblapja.."); míg (k <1000)……………….
Ellenőrizze az alábbi teljes kódot.