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.
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/