- Cómo funciona:
- Componentes requeridos:
- Explicación del circuito:
- Conversión de Coordenadas de Grados Minutos a Grados Decimales:
- Explicación de programación:
El sistema de seguimiento de vehículos se vuelve muy importante hoy en día, especialmente en el caso de vehículos robados. Si tiene un sistema GPS instalado en su vehículo, puede rastrear la ubicación de su vehículo, y ayuda a la policía a rastrear los vehículos robados. Anteriormente, hemos construido un proyecto similar en el que las coordenadas de ubicación del vehículo se envían en el teléfono celular, marque aquí 'Rastreador de vehículos basado en Arduino usando GPS y GSM.
Aquí estamos creando una versión más avanzada del sistema de seguimiento de vehículos en el que puede realizar un seguimiento de su vehículo en Google Maps. En este proyecto, enviaremos las coordenadas de ubicación al servidor local y solo necesita abrir una 'página web' en su computadora o móvil, donde encontrará un enlace a Google Maps con las coordenadas de ubicación de sus vehículos. Cuando hace clic en ese enlace, lo lleva a Google Maps, mostrando la ubicación de sus vehículos. En este sistema de seguimiento de vehículos que usa Google Maps, el módulo GPS se usa para obtener las coordenadas de ubicación, el módulo Wi-Fi para mantener el envío de datos a la computadora o móvil a través de Wi-Fi y Arduino se usa para hacer que el GPS y el Wi-Fi se comuniquen.
Cómo funciona:
Para rastrear el vehículo, necesitamos encontrar las coordenadas del vehículo usando el módulo GPS. El módulo GPS se comunica continuamente con el satélite para obtener coordenadas. Entonces necesitamos enviar estas coordenadas desde GPS a nuestro Arduino usando UART. Y luego Arduino extrae los datos requeridos de los datos recibidos por GPS.
Antes de esto, Arduino envía un comando al módulo Wi-Fi ESP8266 para configurar y conectarse al enrutador y obtener la dirección IP. Después, Arduino inicializa el GPS para obtener coordenadas y la pantalla LCD muestra un 'Mensaje de actualización de página'. Eso significa que el usuario debe actualizar la página web. Cuando el usuario actualiza la página web, Arduino obtiene las coordenadas GPS y envía las mismas a la página web (servidor local) a través de Wi-Fi, con información adicional y un enlace de mapas de Google en ella. Ahora, al hacer clic en este enlace, el usuario redirige a Google Maps con la coordenada y luego obtendrá la ubicación actual del vehículo en el punto rojo en Google Maps. Todo el proceso se muestra correctamente en el video al final.
Componentes requeridos:
- Arduino UNO
- Módulo Wi-Fi ESP8266
- Módulo GPS
- Cable USB
- Cables de conexión
- Ordenador portátil
- Fuente de alimentación
- LCD de 16x2
- Tabla de pan
- Router de wifi
Explicación del circuito:
El circuito para este ' Proyecto de seguimiento de vehículos usando Google Maps' es muy simple y principalmente necesitamos un módulo Arduino UNO, GPS y módulo Wi-Fi ESP8266. Hay una pantalla LCD de 16x2 opcionalmente conectada para mostrar el estado. Esta pantalla LCD está conectada a 14-19 (A0-A5) pines de Arduino.
Aquí el pin Tx del módulo GPS está conectado directamente al pin digital número 10 de Arduino. Al usar Software Serial Library aquí, permitimos la comunicación serial en los pines 10 y 11, y los hicimos Rx y Tx respectivamente y dejamos abierto el pin Rx del Módulo GPS. Por defecto, los pines 0 y 1 de Arduino se utilizan para la comunicación en serie, pero al usar la biblioteca SoftwareSerial, podemos permitir la comunicación en serie en otros pines digitales del Arduino. El adaptador de 12 voltios se utiliza para alimentar el módulo GPS. Vaya aquí para aprender "Cómo usar GPS con Arduino" y obtener las coordenadas.
Los pines Vcc y GND del módulo Wi-Fi ESP8266 están conectados directamente a 3.3V y GND de Arduino y CH_PD también está conectado con 3.3V. Los pines Tx y Rx de ESP8266 están conectados directamente a los pines 2 y 3 de Arduino. La biblioteca serial de software también se usa aquí para permitir la comunicación serial en los pines 2 y 3 de Arduino. Ya hemos cubierto en detalle la Interfaz del módulo Wi-Fi ESP8266 con Arduino, también consulte "Cómo enviar datos desde Arduino a una página web usando WiFi" antes de realizar este proyecto. A continuación se muestra la imagen de ESP8266:
ESP8266 tiene dos LED, uno es rojo, para indicar energía y el segundo es azul que es el LED de comunicación de datos. El LED azul parpadea cuando el ESP envía algunos datos a través de su pin Tx. Además, no conecte el ESP a un suministro de +5 voltios, de lo contrario su dispositivo podría dañarse. Aquí, en este proyecto, hemos seleccionado 9600 baudios para todas las comunicaciones UART.
El usuario también puede ver la comunicación entre el módulo Wi-Fi ESP8266 y Arduino, en el monitor serial, a la velocidad de transmisión de 9600:
También consulte el video al final de este proyecto, para conocer el proceso de trabajo detallado.
Conversión de Coordenadas de Grados Minutos a Grados Decimales:
El módulo GPS recibe coordenadas del satélite en formato de grados y minutos (ddmm.mmmm) y aquí necesitamos el formato de grados decimales para buscar la ubicación en Google Maps. Entonces, primero debemos convertir las coordenadas del formato de grados y minutos al formato de grados decimales utilizando la fórmula dada.
Suponga que 2856.3465 (ddmm.mmmm) es la latitud que recibimos del módulo GPS. Ahora los dos primeros números son grados y el resto son minutos.
Entonces 28 es grado y 56,3465 es minuto.
Ahora aquí, no es necesario convertir la parte de Grado (28), solo es necesario convertir la parte de Minuto en Grado Decimal dividiendo 60:
Coordenada de grado decimal = Grado + Minuto / 60
Coordenada de grado decimal = 28 + 56,3465 / 60
Coordenada de grado decimal = 28 + 0.94
Coordenada de grado decimal = 28,94
Se realizará el mismo proceso para los datos de longitud. Hemos convertido coordenadas de Grado Minuto a Grado Decimal utilizando las fórmulas anteriores en Arduino Sketch:
flotador minut = lat_minut.toFloat (); minut = minut / 60; grado de flotación = lat_degree.toFloat (); latitud = grado + minuto; minut = long_minut.toFloat (); minut = minut / 60; grado = largo_degree.toFloat (); logitud = grado + minuto;
Explicación de programación:
En este código, hemos utilizado la biblioteca SerialSoftware para conectar ESP8266 y el módulo GPS con Arduino. Luego, hemos definido diferentes pines para ambos e inicializamos UART con una velocidad de 9600 baudios. También se incluye LiquidCrystal Library para interfaz LCD con Arduino.
#incluir
Después de eso, necesitamos definir o declarar variable y cadena para diferentes propósitos.
String webpage = ""; int i = 0, k = 0; int gps_status = 0; Nombre de cadena = "
1. Nombre: su nombre
"; // 22 String dob ="2. Fecha de nacimiento: 12 de febrero de 1993
"; // 21 Número de cadena ="4. Número de vehículo: RJ05 XY 4201
"; // 29 String cordinat ="Coordenadas:
"; // 17 String latitude =" "; String logitude =" "; String gpsString =" "; char * test =" $ GPGGA ";Luego hemos realizado algunas funciones para diferentes propósitos como:
Función para obtener datos GPS con coordenadas:
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ón para extraer datos de la cadena de GPS y convertir esos datos a formato de grado decimal desde el formato de minuto decimal, como se explicó anteriormente.
void coordenadas2dec () {String lat_degree = ""; para (i = 18; i <20; i ++) lat_degree + = gpsString; String lat_minut = ""; para (i = 20; i <28; i ++) lat_minut + = gpsString;……………….
Función de envío de comandos al ESP8266 para configurarlo y conectarlo con 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 función show_coordinate () para mostrar las coordenadas en la pantalla LCD y el monitor serial y void función get_ip () para obtener la dirección IP.
Función Void Send () para crear una cadena de información que se enviará a la página web mediante ESP8266 y función void sendwebdata () para enviar información a la página web mediante UART.
En la función de bucle vacío , Arduino espera continuamente la página web del formulario de solicitud (página web de actualización).
bucle vacío () {k = 0; Serial.println ("Actualizar la página Ur"); lcd.setCursor (0,0); lcd.print ("Actualizar"); lcd.setCursor (0,1); lcd.print ("Su página web…"); mientras que (k <1000)……………….
Consulte el código completo a continuación.