- Com funciona:
- Components necessaris:
- Explicació del circuit:
- Conversió de coordenades entre el grau GPS i el grau decimal:
- Explicació de la programació:
Actualment, el sistema de rastreig de vehicles esdevé molt important, sobretot en cas de robatori de vehicles. Si teniu instal·lat el sistema GPS al vostre vehicle, podeu fer un seguiment de la ubicació del vehicle i ajudarà la policia a rastrejar els vehicles robats. Anteriorment, hem construït un projecte similar en el qual les coordenades d'ubicació del vehicle s'envien al telèfon mòbil, comproveu aquí 'Vehicle Tracker basat en Arduino mitjançant GPS i GSM.
Aquí estem construint una versió més avançada del sistema de seguiment de vehicles en què podeu fer el seguiment del vostre vehicle a Google Maps. En aquest projecte, enviarem les coordenades d'ubicació al servidor local i només cal que obriu una "pàgina web" al vostre ordinador o mòbil, on trobareu un enllaç a Google Maps amb les vostres coordenades d'ubicació dels vehicles. Quan feu clic a aquest enllaç, us dirigirà a Google Maps, mostrant la ubicació dels vostres vehicles. En aquest sistema de seguiment de vehicles que utilitza Google Maps, el mòdul GPS s’utilitza per obtenir les coordenades d’ubicació, el mòdul Wi-Fi per mantenir l’enviament de dades a l’ordinador o al mòbil mitjançant Wi-Fi i Arduino s’utilitza per fer que el GPS i el Wi-Fi parlin entre ells..

Com funciona:
Per fer un seguiment del vehicle, hem de trobar les coordenades del vehicle mitjançant el mòdul GPS. El mòdul GPS es comunica contínuament amb el satèl·lit per obtenir coordenades. Després, hem d’enviar aquestes coordenades des del GPS al nostre Arduino mitjançant UART. I, a continuació, Arduino extreu les dades necessàries de les dades rebudes per GPS.

Abans, Arduino envia ordres al mòdul Wi-Fi ESP8266 per configurar i connectar-se al router i obtenir l'adreça IP. Després, Arduino inicialitza el GPS per obtenir coordenades i la pantalla LCD mostra un "missatge d'actualització de pàgina". Això vol dir que l'usuari ha d'actualitzar la pàgina web. Quan l'usuari actualitza la pàgina web, Arduino obté les coordenades GPS i les envia a la pàgina web (servidor local) mitjançant Wi-Fi, amb informació addicional i un enllaç de Google Maps. Fent clic en aquest enllaç, l'usuari redirigeix a Google Maps amb la coordenada i obtindrà la ubicació actual del vehicle al punt vermell de Google Maps. Al final es mostra correctament tot el procés al vídeo.
Components necessaris:
- Arduino UNO
- Mòdul Wi-Fi ESP8266
- Mòdul GPS
- Cable USB
- Connexió de cables
- Portàtil
- Font d'alimentació
- LCD de 16x2
- Taula de pa
- Encaminador Wi-Fi
Explicació del circuit:
El circuit d’aquest “ seguiment de vehicles mitjançant el projecte Google Maps” és molt senzill i necessitem principalment un mòdul Arduino UNO, un mòdul GPS i un mòdul Wi-Fi ESP8266. Hi ha una pantalla LCD de 16x2 opcionalment connectada per mostrar l'estat. Aquesta pantalla LCD està connectada a 14-19 (A0-A5) pins d'Arduino.

Aquí el pin Tx del mòdul GPS està directament connectat al pin digital número 10 d’Arduino. Mitjançant l’ús de Software Serial Library aquí, hem permès la comunicació en sèrie als pins 10 i 11 i els hem fet Rx i Tx respectivament i hem deixat obert el pin Rx del mòdul GPS. Per defecte, els pins 0 i 1 d’Arduino s’utilitzen per a la comunicació en sèrie, però mitjançant la biblioteca SoftwareSerial podem permetre la comunicació en sèrie en altres pins digitals de l’Arduino. L’adaptador de 12 volts s’utilitza per alimentar el mòdul GPS. Aneu aquí per aprendre "Com utilitzar el GPS amb Arduino" i obtenir les coordenades.
Els pins Vcc i GND del mòdul Wi-Fi ESP8266 estan connectats directament a 3,3 V i GND d’Arduino i CH_PD també està connectat a 3,3V. Els pins Tx i Rx de l’ESP8266 estan connectats directament als pins 2 i 3 d’Arduino. La Biblioteca de programari en sèrie també s’utilitza aquí per permetre la comunicació en sèrie als pins 2 i 3 d’Arduino. Ja hem tractat detalladament la interfície del mòdul Wi-Fi ESP8266 a Arduino, també si us plau aneu a “Com enviar dades des d’Arduino a la pàgina web mitjançant WiFi” abans de fer aquest projecte. A continuació es mostra la imatge de l’ESP8266:

L'ESP8266 té dos LEDs, un de color vermell per indicar l'alimentació i el segon de color blau que és LED de comunicació de dades. El LED blau parpelleja quan l’ESP envia algunes dades mitjançant el seu pin Tx. A més, no connecteu ESP a una font de +5 volts, ja que el dispositiu podria danyar-se. Aquí, en aquest projecte, hem seleccionat 9600 baud rate per a totes les comunicacions UART.
L'usuari també pot veure la comunicació entre el mòdul Wi-Fi ESP8266 i Arduino, al monitor de sèrie, a la velocitat de transmissió de 9600:

Consulteu també el vídeo al final d’aquest projecte per obtenir un procés de treball detallat.
Conversió de coordenades entre el grau GPS i el grau decimal:
El mòdul GPS rep coordenades del satèl·lit en format Degree Minute (ddmm.mmmm) i aquí necessitem el format Decimal Degree per cercar la ubicació a Google Maps. Per tant, primer hem de convertir les coordenades del format de minut de grau a format de grau decimal mitjançant la fórmula donada.
Suposem que 2856.3465 (ddmm.mmmm) és la latitud que rebem del mòdul GPS. Ara els dos primers números són Graus i la resta són Minuts.
Així doncs, 28 és grau i 56,3465 és mínim.
Ara, aquí no cal convertir la part de grau (28), sinó que només cal convertir la part de minut en grau decimal dividint 60:
Coordenada decimal del grau = Grau + Minut / 60
Coordenada del grau decimal = 28 + 56,3465 / 60
Coordenada decimal del grau = 28 + 0,94
Coordenada decimal del grau = 28,94
Es farà el mateix procés per a les dades de longitud. Hem convertit coordenades de grau minut a grau decimal mitjançant l'ús de les fórmules anteriors a Arduino Sketch:
float minut = lat_minut.toFloat (); minut = minut / 60; float degree = lat_degree.toFloat (); latitud = grau + minut; minut = long_minut.toFloat (); minut = minut / 60; degree = long_degree.toFloat (); logitud = grau + minut;
Explicació de la programació:
En aquest codi, hem utilitzat la biblioteca SerialSoftware per a la interfície ESP8266 i el mòdul GPS amb Arduino. A continuació, hem definit diferents pins per a tots dos i inicialitzem UART amb una velocitat de 9600 baud. També s'inclou la biblioteca LiquidCrystal per a interfície LCD amb Arduino.
#incloure
Després d'això, hem de definir o declarar variables i cadenes per a diferents propòsits.
Pàgina web de cadena = ""; int i = 0, k = 0; int gps_status = 0; Nom de la cadena = "
1. Nom: el vostre nom
"; // 22 String dob ="2. Nascut: 12 de febrer de 1993
"; // 21 Número de cadena ="4. No de vehicle: RJ05 XY 4201
"; // 29 Corda cordinat ="Coordenades:
"; // 17 String latitude =" "; String logitude =" "; String gpsString =" "; char * test =" $ GPGGA ";A continuació, hem fet algunes funcions per a diferents propòsits, com ara:
Funció per obtenir dades GPS amb coordenades:
void gpsEvent () {gpsString = ""; while (1) {while (gps.available ()> 0) {char inChar = (char) gps.read (); gpsString + = inChar; if (i <7) {if (gpsString! = test) {i = 0;……………….
Funció per extreure dades de la cadena GPS i convertir-les en format de grau decimal a partir del format de minuts decimals, tal com s'ha explicat.
void coordinate2dec () {String lat_degree = ""; for (i = 18; i <20; i ++) lat_degree + = gpsString; Cadena lat_minut = ""; per a (i = 20; i <28; i ++) lat_minut + = gpsString;……………….
Funció per enviar comandes a ESP8266 per configurar-lo i connectar-lo amb WIFI.
void connect_wifi (String cmd, int t) {int temp = 0, i = 0; while (1) {Serial.println (cmd); Sèrie1.println (cmd); mentre que (Sèrie1.available ()> 0)……………….
funció void show_coordinate () per mostrar les coordenades a la pantalla LCD i el monitor sèrie i la funció void get_ip () per obtenir l'adreça IP.
Funció Void Send () per crear una cadena d'informació que s'ha d'enviar a la pàgina web mitjançant ESP8266 i void sendwebdata () Funció per enviar una cadena d'informació a la pàgina web mitjançant UART.
En funció de bucle buit, Arduino espera contínuament la pàgina web del formulari de sol·licitud (pàgina web actualitzadora).
bucle buit () {k = 0; Serial.println ("Actualitzeu la pàgina d'Ur"); lcd.setCursor (0,0); lcd.print ("Si us plau, actualitzeu"); lcd.setCursor (0,1); lcd.print ("La vostra pàgina web.."); mentre que (k <1000)……………….
Consulteu el codi complet a continuació.
