Localización mediante el uso del módulo GPS y el módulo GSM SIM800L

Localización a través de un enlace recibido en un mensaje de texto (SMS) utilizando los módulos GSM SIM800L y GPS.

...
Posteado por Yanez el 28-05-2024 a las 13:04
Categoria: Arduino
Realizado por: Alejandro Yañez Alvarado y Jose Francisco Cat Aviles

Presentación.

Este proyecto funcionará como una guía para conseguir la ubicación del módulo GPS a través de un link de Google Maps, el cual se recibirá mediante un mensaje de texto después de hacer una llamada usando el módulo GSM SIM800L. Este proyecto es una aplicación tanto práctica, como útil para esas situaciones en las que es necesario saber la ubicación exacta de un objeto o persona.

Funcionamiento.

Al insertar una tarjeta SIM compatible con red 3G en el módulo GSM SIM800L, el usuario hará una llamada telefónica al número asociado a la tarjeta SIM. La llamada será contestada y finalizada automáticamente después de un segundo. Al termino de la llamada, se enviará un mensaje de texto (SMS) al número que realizó la llamada, el cual contendrá un enlace de Google Maps con la ubicación del módulo GPS.

Realización.

Materiales necesarios para el ensamblado del proyecto:

  • 1 módulo GSM SIM800L.
  • 1 módulo GPS
  • 1 tarjeta SIM
  • 1 fuente de alimentación para protoboard de 3.3 v y 5 v
  • 1 capacitor
  • Cables dupont
  •  1 Protoboard
  • 1 Arduino UNO

En el primer paso hay que conectar el módulo GSM SIM800L, el capacitor, la fuente de alimentación para protoboard y el Arduino UNO de acuerdo al siguiente esquema:

 

-Conexión del Módulo GSM SIM800L al Arduino UNO:

VCC del SIM800L: Conéctalo al positivo del capacitor.

GND del SIM800L: Conéctalo al GND del Arduino UNO.

TX del SIM800L: Conéctalo al pin digital 10 del Arduino UNO.

RX del SIM800L: Conéctalo al pin digital 11 del Arduino UNO.

 

-Conexión del Capacitor:

Conectamos el terminal positivo del capacitor (por ejemplo, de 1000uF) al VCC del módulo GSM SIM800L.

Conectamos el terminal negativo del capacitor al GND del módulo GSM SIM800L.

Ahora debemos conectar el módulo GPS como se muestra en el siguiente esquema:

-Conexión del Módulo GPS al Arduino UNO:

VCC del GPS: Conéctalo a la salida de 3.3V del Arduino UNO.

GND del GPS: Conéctalo al GND del Arduino UNO.

TX del GPS: Conéctalo al pin digital 0 (RX) del Arduino UNO.

RX del GPS: Conéctalo al pin digital 1 (TX) del Arduino UNO.

 

Nos quedaría de la siguiente manera:

 

Programación.

#include <SoftwareSerial.h>
#include <TinyGPS.h> // Incluimos TinyGPS

SoftwareSerial mySerial(10, 11); // RX, TX
TinyGPS gps; // Declaramos el objeto gps

String quienLlama;
String url;
float latitude, longitude;

void setup() {
    Serial.begin(9600); // Iniciamos el puerto serie
    mySerial.begin(9600); // Iniciamos el puerto serie del módulo GSM
    delay(1000);
    
    // Comandos de inicialización del módulo GSM
    mySerial.println("AT ");
    delay(1000);
    mySerial.println("AT+CLIP=1 ");
    delay(2000);

    Serial.println(" ---Buscando señal--- ");
}

void loop() {
    while (Serial.available()) {
        int c = Serial.read();

        if (gps.encode(c)) {
            gps.f_get_position(&latitude, &longitude);
            url = "http://maps.google.com/maps?f=q&hl=en&q=";
            url += String(latitude, 5);
            url += ",";
            url += String(longitude, 5);
            Serial.println(url);
            llaman();
        }
    }
}

void llaman() {
    Serial.println("Entrando a subrutina");
    quienLlama = "";

    while (mySerial.available() > 0) {
        delay(10);
        quienLlama += (char)mySerial.read();
    }

    Serial.print(quienLlama);

    if (quienLlama.indexOf("RING") > -1) {
        delay(1000);
        String num;
        int inicio = quienLlama.indexOf('"') + 1;
        int fin = inicio + 10;
        num = quienLlama.substring(inicio, fin);
        Serial.println(num);
        delay(2000);
        
        mySerial.println("ATH "); // Finaliza llamada
        delay(5000);
        mySerial.println("AT+CMGF=1 "); // Configura SMS en modo texto
        delay(2000);

        String part1 = "AT+CMGS="";
        String part2 = "" ";
        String todo = part1 + num + part2;
        mySerial.print(todo); // Envia el comando para iniciar SMS
        delay(2000);

        mySerial.print(url);
        mySerial.print(char(0x1A)); // Fin de mensaje del SMS
        delay(2000);
    }
}
 

Utilización.

Cuando tengamos todas las conexiones necesarias, insertamos la tarjeta SIM (con saldo suficiente para enviar mensajes de texto) en el módulo GSM SIM800L. Luego, se conecta la fuente de alimentación a una toma de corriente y espera a que el módulo se conecte a la red.

Sabremos que el módulo GSM SIM800L está conectado a la red cuando su LED parpadee a intervalos de aproximadamente 5 segundos. En el caso del módulo GPS, sabremos que está conectado cuando su LED comience a parpadear.

 

 

  • Ahora hacemos la llamada al número correspondiente de la tarjeta SIM que insertamos en el módulo GSM, la llamada será respondida y finalizada automáticamente como se mencionó.

  • Unos segundos después vamos a recibir un mensaje de texto con un link de Google Maps, cuando abramos el link nos mostrara la ubicación del módulo GPS.

 

Conclusiones.

Alejandro Yañez Alvarado: Este proyecto es perfecto para aquellos que necesitan saber la ubicación de algún objeto o vehículo, o para quienes desean conocer su propia ubicación en áreas desconocidas, inclusive la de otra persona, suponiendo que una persona sale a un lugar peligroso, puede llevar el módulo consigo en su bolsa o mochila y así tener una manera más de poder donde se encuentra sin necesidad de que nos comparta su ubicación y no tenga datos etc. . Se puede adaptar y personalizar según diferentes necesidades y contextos, similares al ejemplo que mencione.

Jose Francisco Cat Aviles: En conclusión, este proyecto nos permite obtener la ubicación de nuestro dispositivo de forma remota, útil para esos proyectos de monitoreo o seguimiento. Además, nos proporciona experiencia práctica con módulos GPS y GSM, demostrando cómo integrarlos en proyectos de electrónica.

Referencias.

Aguilar, F. (2019). Tutorial Módulo GPS con Arduino. Naylamp Mechatronics. Recuperado 27 de mayo de 2024, de https://naylampmechatronics.com/blog/18_tutorial-modulo-gps-con-arduino.html

Llamas, L. (2016, 27 septiembre). Localización GPS con Arduino. Luis Llamas. Recuperado 27 de mayo de 2024, de https://www.luisllamas.es/localizacion-gps-con-arduino-y-los-modulos-gps-neo-6/

Damián, J. (2020, 8 diciembre). Enviar SMS con Arduino y módulo GSM SIM800L. Electrogeek. Recuperado 27 de mayo de 2024, de https://www.electrogeekshop.com/enviar-sms-con-arduino-y-modulo-gsm-sim800l/

Para comentar debes acceder Acceder

Comentarios


No hay comentarios en este post