bclose

SIM808: GSM/GPRS + GPS

Localización GPS, llamadas, mensajes e Internet

Objetivos

.

 
    • Presentar el módulo GSM/GPRS y GPS SIM808.
    • Aprender cómo conectarlo a nuestro Arduino.
    • Trabajar con los comandos AT.
    • Aprender a obtener las coordenadas GPS y la hora en UTC.

 

Material requerido.

 

 Tienda EspañaTienda Mexico
 ArduinoUNO  Arduino Uno o similar. Arduino Uno o similar
 GSM/GPRS GPS Shield GSM/GPRS  Shield GSM/GPRS 
 Img_3_6 Cables macho-hembra   Cables macho-hembra 
 Power supply  fuente de alimentación para Arduino fuente de alimentación para Arduino

 

EL MÓDULO SIM808: GSM/GPRS + GPS

 

Este módulo está basado en el chip SIMCOM SIM808 y nos ofrece, además de las funcionalidades de envío y recepción de datos GSM/GPRS (la de los teléfonos móviles 2g), la tecnología GPS de navegación por satélite. O sea que, gracias a este módulo y utilizando una tarjeta SIM, seremos capaces de enviar y recibir llamadas y SMS, conectarnos a Internet y conocer nuestras coordenadas y el horario UTC (Tiempo Universal Coordinado).

Y por supuesto tiene conexión para cascos y micrófono para que podamos hablar con quien nos llame o cuando llamemos nosotros.

GSM/GPRS GPS

Para comunicarnos con este tipo de módulos utilizamos los comandos AT, unos viejos conocidos de esta página.

 
  • Toda la parte de comunicaciones GSM/GPRS es semejante a la que tratamos con el SIM900.
  • Así que si queréis, os recomendamos echar un ojo a sus respectivas sesiones Módulo GSM/GPRS SIM900.
 

 

CONEXIONES Y PUESTA EN MARCHA

 

Vamos a empezar por colocar en el módulo SIM808 la tarjeta SIM que vayamos a usar, que se pone en la parte de abajo de la placa. Es para tarjetas SIM de las grandes, así o usáis una de esas o necesitaréis de un adaptador.

También deberíamos poner en el módulo las dos antenas que vienen con él, la del GPRS y la del GPS. En las conexiones de la placa vienen marcado donde se conecta cada una de ellas. Antena GPRS y GPS SIM808

Y ahora nos toca conectarlo al Arduino, para lo que usaremos los pines Tx y Rx de la tarjeta (transmisión y recepción de datos), que conectaremos a los pines 7 y 8 del  Arduino respectivamente. Pueden ser otros pines cualesquiera, siempre que los soporte la librería Software Serial que vamos a utilizar. Además uniremos las tierras y utilizaremos una fuente de alimentación externa para el módulo SIM808, ya que a la hora de comunicar este tipo de módulos consume mucho y no será suficiente con la alimentación del Arduino.

 
  • Recordad que las conexiones Rx y Tx del módulo y del SIM808 deben ser cruzadas, es decir, el Rx de uno al Tx del otro y viceversa para que se puedan comunicar de forma efectiva.
  • Y que no se os olvide unir las tierras de todos los componentes que uséis, o no funcionará.
 
SIM808 gprs gps arduino

Para encender el módulo utilizaremos el LED de encendido, y veremos como se ilumina un LED. Y para activar la alimentación a la tarjeta SIM tendremos que pulsar el pulsador un par de segundos. Al hacerlo veremos como se encienden dos LEDs, uno fijo y otro que parpadear una vez por segundo. Mientras esté así significa que no ha encontrado la red móvil, cosa que solucionaremos metiendo el PIN como veremos más adelante.

 

COMANDOS AT PARA EL GSM/GPRS

 

Para poder comunicarnos vía comandos AT tendremos que cargar un programa para la comunicación serie como hemos hecho tantas veces anteriormente. Crearemos una instancia llamada SIM808 y seleccionaremos los pines del Arduino que queramos usar para comunicarnos (Rx y Tx). Nosotros hemos elegido el 7 y el 8, pero podéis usar cualquiera que sea compatible con la librería. También podéis cambiar la velocidad de comunicación, pero debe ser la misma para el puerto serie y para la instancia que hemos creado. Nosotros hemos elegido 19200 porque es la que usa el SIM900, de forma que podamos usar los programas que ya tenemos de esas sesiones.

 

#include <SoftwareSerial.h>
SoftwareSerial SIM808(7, 8); //Seleccionamos los pines 7 como Rx y 8 como Tx

void setup()
{
 SIM808.begin(19200);
 Serial.begin(19200);
 delay(100);
}

void loop()
{
 //Envíamos y recibimos datos
 if (Serial.available() > 0)
 SIM808.write(Serial.read());
 if (SIM808.available() > 0)
 Serial.write(SIM808.read());
}

Una vez hayamos cargado el programa abrimos el monitor serie y seleccionamos la velocidad correcta. El primer comando AT nos servirá simplemente para saber si el módulo responde y que por lo tanto la comunicación funciona. Y este comando es simplemente AT, lo escribimos y pulsamos INTRO. Debería respondernos con un OK; si no deberíamos repasar que esté todo en orden: conexiones, encendido y velocidad correcta.

monitor serie AT

Comprobado esto, ya podemos meter el PIN de la tarjeta SIM, que se hace mediante el comando AT+CPIN=”XXXX”; donde tendréis que sustituir XXXX por el pin que corresponda, en mi caso 1867, o sea, AT+CPIN=”1867″. Obtendremos un mensaje de respuesta indicando si el PIN es correcto, y en caso de que lo sea, el LED que parpadeaba una vez por segundo pasará a hacerlo cada 3 segundos (más o menos), indicando que ha encontrado la red móvil.

comando at pin sim

Y ahora ya estamos en disposición de enviar y recibir llamadas y conectarnos a Internet. Para comprobar que efectivamente podéis llamaros al numero de teléfono de la SIM que hayáis puesto en el módulo, o usar el comando ATDXXXXXXXXX; (sustituyendo las X por el número de teléfono y respetando el “;”) para llamar a quien queráis. Y si le conectáis unos cascos y un micrófono al módulo podréis hablar como si fuera un teléfono normal.

monitor serie llamar recibir

Os dejamos una tabla con los comandos AT más utilizados con este tipo de módulos y enlaces a las sesiones de SIM900 donde ya tratamos eso, porque los comandos AT son los mismos y la programación también.

 

COMANDOS AT PARA EL GPS

 

La parte del GPS se controla igual, mediante comandos AT, y vamos a verlos usando el mismo programa que en el apartado anterior. Primero activaremos el GPS mediante el comando AT+CGPSPWR=1. Y después preguntaremos por el estado del GPS hasta que veamos que ya nos ha posicionado utilizando AT+CGPSSTATUS?. Cuando nos devuelva “Location 3D Fix” ya podremos seguir, lo que suele llevar unos 30 segundos la primera vez.

buscar red gps

Contenido solo disponible para suscriptores. ¡Accede al contenido!

Y si queréis comprobarlo buscad en Google “posición por coordenadas” o algo parecido e introducir los datos de latitud y longitud que hemos obtenido. No es que tenga una precisión del 100% pero no está mal. Al menos a mí me ha localizado con un margen de error aceptable.

mapa

 

Resumen de la sesión

 

En esta sesión hemos aprendido varias cosas importantes:

 
    • Hemos presentado los módulos GSM/GPRS + GPS basados en el chip SIM808.
    • Sabemos como conectarlo y ponerlo en marcha.
    • A utilizar la parte GSM/GPRS para enviar y recibir llamadas y mensajes y conectarnos a Internet.
    • A obtener los datos del GPS: localización, horario y fecha UTC…
 

Para porder realizar consultas a nuestros expertos, tienes que ser suscriptor. Suscribiendote nos ayudas a mantener este proyecto en marcha.

¡ Quiero Suscribirme !

Si ya eres premium y no puedes comentar haz login. Hacer login

(193) Comments

  • Hola buen dia! Primero que nada gracias por el tutorial, al momento de escribir el comando AT+CGPSSTATUS? me muestra Location not fix, ya intente poner la antena en un lugar abierto, he esperado varios minutos y me sigue arrojando el mismo error, de casualidad sabran como solucionarlo? Gracias!

  • Hola.
    Estoy usando el mismo modulo SIM808, sigo todos los pasos pero cuando me devuelve en el monitor las coordenadas GPS escribiendo AT+CGPSINF=0 no se corresponden a mi ubicacion. Yo vivo en Madrid y me sale casi en Mallorca. He probado a hacerlo al aire libre y da lo mismo. Alguna idea de por que me pasa esto?
    Gracias de antemano.

  • Buenas tengo dos dudas, ¿es necesario tener saldo en la sim para usar el gps?,¿existe una secuencia para poder activar el gps? ya que he seguido todas las recomendaciones de ponerlo en la ventana pero aun asi me muestra Location Not Fixed

    • Eduardo Garrido

    Hola que tal, buenas tardes.
    He encontrado este post, para la manipulación del modulo. Seguí los pasos tal cual, realice la conexión de lo componentes, compile el código en el IDE de Arduino, realice los cambios del PIN. Pero al momento de comenzar a usar los comandos AT para el uso del GPS me arroja un error.

    Introduzco “AT+CGPSPWR=1”
    Como resultado me arroja
    AT+CGPSPWR=1
    ERROR

    Observo que no realizan más configuraciones previas para la manipulación del módulo. ¿Que puedo hacer para que el GPS me arroje los datos necesarios?

      • Ivan Uriarte

      Cómo lo estás alimentando? Puede que sea insuficiente y por eso no pueda arrancarlo.

    • Andres

    Hola, alguna idea de como trabajar con este modulo y una placa raspberry pi ?
    Me sería de mucha ayuda, gracias.

      • Ivan Uriarte

      Ni idea, supongo que podrías usar un arduino de intermediario y comunicarlo luego con la raspi a través de un puerto serie.

Para porder realizar consultas a nuestros expertos, tienes que ser suscriptor. Suscribiendote nos ayudas a mantener este proyecto en marcha.

¡ Quiero Suscribirme !

Si ya eres premium y no puedes comentar haz login. Hacer login