Utilizar el módulo GPRS/GPS SIM7100A sin morir en el intento.
Buenas a todos, hoy les traigo una guía para poder utilizar sin problema alguno el módulo GPRS/GPS SIM7100A, he decidido escribir esto debido a que cuando compré el módulo para un proyecto, me lleve demasiados tropezones al tratar de hacer que funcionara, debido a la escasa documentación y tutoriales al respecto como los hay para módulos como el SIM900 o el SIM808, los cuales hasta cuentan con librerías desarrolladas para poder utilizarlas sin mayores complicaciones, el SIM7100A aún no cuenta con una librería para utilizarla con microcontroladores, y tampoco hay mucha información al respecto; en esta guía explicaré paso a paso como conectarlo a un microcontrolador sin muchas complicaciones, comencemos!!.
Y para realizar las pruebas utilizaremos la placa arduino para realizar las interconexiones.
Bueno, una vez tengamos ambos materiales a mano, primero procedemos a la interconexión entre ambos dispositivos.
En la imagen anterior puede observar una conexión de color amarillo, el cual no es común en los otros módulos como el SIM900, debido a que el cableado común es Tx, Rx y GND y ahora explico el porqué del cableado extra, es debido a que el módulo SIM7100A que estoy utilizando utiliza un conversor de nivel lógico a 1.8V que es el voltaje de operación de los pines del SIM7100A, el cual puedes consultar la hoja de datos, y puede observar que utiliza dos voltajes de referencia, el VCCA el cual es el voltaje de referencia 1 (que en este caso son los 1.8v del SIM7100A) y el VCCB (el cual es el 5v del arduino), y ahí viene la primera dificultad, al seguir el cableado “común”, a veces funciona y a veces no, ya que no tiene una referencia de voltaje para comunicación, entonces el pin VCCB está conectado al pin VDD del módulo, el cual justamente es para dar el voltaje de referencia para la conexión(cosa que descubrí luego de leer la documentación, porque no encontré información al respecto de esa falla y me estaba matando que a veces funcionara y otras no), entonces en este caso es obligatorio conectarlo!!, también en este caso alimente el modulo con una batería de litio de 3.7v a través del pin VBAT , (recordar que debe ser 3.7 v nominales, no intente alimentar con otras de mayor tensión ya que dañaría al módulo), también puede alimentarlo con voltajes mayores pero a través del pin SUPPLY el cual está conectado a un regulador de tensión el cual se encarga de reducir la tensión a un nivel aceptable para el sistema, pero considero el regulador como bastante inestable ya que de tres placas, entre pruebas y pruebas en un momento empezaron a calentar exageradamente y quedaron prácticamente inutilizables los módulos, la solución fue desoldar los reguladores que estaban en cortocircuito y alimentar al circuito a través del pin VBAT, el cual admite entre 3.6 a 4.2 v (voltaje nominal de las baterías de litio).
Una vez aclarado todo esto, comencemos con las configuraciones básicas, primeramente vamos a establecer comunicación con al módulo a través del arduino el cual funcionara como puente entre nuestro módulo SIM7100A y nuestra PC, ya que este módulo de comunica a través del puerto serial con comandos AT, existe un manual de comandos AT que puede encontrar aquí, y toda la documentación respecto al módulo aquí, una vez claro esto, procedemos a cargar el siguiente programa en el arduino:
El código realiza lo siguiente, si hay información de la computadora la envía al módulo y si hay información entrante del módulo lo envía a la computadora el cual será visualizado en un terminal.
Si ya realizaste la conexión del circuito descrito más arriba, ya cargaste el código en tu arduino, lo que resta es acceder al monitor serial del arduino
Al darle clic debe desplegarse una pantalla similar a esta:
Debe configurar el monitor serial de la siguiente forma, activar la opción Ambos NL&CR lo cual añadirá los caracteres especiales “\n” y “\r” para que los comandos puedan ser reconocidos por el módulo, también ajuste la velocidad a 19200, deben ajustarlo en el código, porque el código está ajustado a 4800, por lo general vienen configurado en AUTOBAUD lo que significa que reconocería cualquier velocidad pero suele tener muchas fallas, más adelante configuraremos eso, una vez hecho esto presionamos el botón de power del módulo SIM7100A, llevar en cuenta que el módulo debe tener una sim card compatible insertada, al encenderse el led correspondiente a NET debe empezar a parpadear, si todo sucede como lo descrito, en el monitor serial deberíamos observar algo como esto:
Lo importante aquí es la palabra PB DONE, que indica que encendió todo correctamente.
Para probar que todo esté bien enviamos el comando AT y debemos recibir OK de respuesta.
Configuraciones básicas:
Comandos básicos para configurar el modulo:
Configuración de velocidad: “AT+IPREX=4800”, cambiar 4800 por la velocidad de comunicación deseada, tener en cuenta que debe estar entre los estándares lo cuales son 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200, 128000 y 256000 bits por segundo, en este caso voy a utilizar 4800 ya que es la que menos ruido me arrojo al momento de realizar pruebas con servidores en donde fluye mucha información y es importante que dicha información sea entendible.
Escribimos el comando y presionamos enviar y si todo es correcto deberíamos recibir un OK, una vez recibido esto debe ajustar los valores nuevamente en el código con los valores configurados y volver a subirlos al arduino y ajustar el monitor serial a los nuevos valores. Vuelvo a repetir, cargar el código puente al arduino con los valores de velocidad a 19200 luego abrir el monitor serial y configurarlo a 19200 y activar NL&CR, luego encender el modulo, esperar el mensaje, si hay respuesta enviar el comando AT y debe recibir OK como respuesta, luego ajuste a la velocidad que desee utilizar, esto para que trabaje en una velocidad en específico y no en el autobaud que esta por defecto, en este caso se eligió 4800, una vez realizado esto vuelva a cargar al código con los valores 4800.
Ahora algunos comandos de pruebas
Enviar mensaje:
Primeramente, de aquí en adelante utilizaremos la Terminal Putty debido a que ofrece mucho más funcionalidades que el monitor serial de arduino, la interfaz es la siguiente. Lo Primero que debemos hacer es saber en qué puerto está conectado nuestro arduino, para eso usamos nuestro administrador de dispositivos (caso estemos usando Windows)
Una vez hecho las configuraciones correspondientes, damos open y nos debe aparecer algo como esto:
Seguidamente procedemos a enviar el mensaje de texto.
Comando para configurar el modo texto: AT+CMGF=1
Comando para enviar el mensaje: AT+CMGS=“+5959xxxxxx”
El número que se encuentra entre comillas se reemplaza por el número del destinatario
Paso 1: Configurar el modo texto con el comando “AT+CMGF=1”, lo cual debe retornar OK si todo está bien.
Paso 2: Seguidamente usar el comando AT+CMGS=“xxxxxx”, reemplazar las “x” por el número de teléfono del destinatario, al enviar el comando presionando enter y este debe retornar el carácter “>” indicando que puede escribir el mensaje a enviar, el cual en este caso fue “Esto es una prueba”, al finalizar el mensaje se debe enviar el carácter especial ASCII 26, el cual en putty corresponde a presionar <ctrl+z>, lo cual enviara el mensaje, es importante recalcar que el mensaje no se enviara hasta que se envíe dicho carácter, todo lo escrito antes de ese carácter será tomado como parte del mensaje. Esto debería retornar algo similar a lo indicado en el punto 4 de la imagen anterior. Si todo se ejecuta correctamente el resultado debería ser al siguiente.
Hasta aquí llega el tutorial de hoy, más adelante exploraremos más comandos disponibles para el SIM7100A, así como estaremos realizando diferentes pruebas con servidores, llamadas, integración con microcontroladores, etc. Les espero en la siguiente publicación.