Primeros pasos con el shield GPRS
Publicado: 28 Feb 2015 13:16
He tenido bastantes quebraderos de cabeza para echar a andar el shield GPRS con en el Arduino Mega asi que voy a poner algunas indicaciones por si a alguien le pudieran ser de utilidad.
El primero problema fue que la version de la libreria que encontre en la documentacion del shield era muy antigua y no funcionaba correctamente en las versiones actuales del IDE de Arduino. La version mas actual de esta libreria mantenida por Marco Martines es esta:
https://github.com/MarcoMartines/GSM-GPRS-GPS-Shield
Una vez instalada la libreria debemos conectarla con la placa Arduino y hacer algunos ajustes en los ficheros.
Tal y como indicaba la placa en la que ira pinchado el shield es la Mega. La manera de conectar los pines para la comunicacion serie es el RX del shield con el pin 18 del Arduino y el TX con el 19 (fijarse en la imagen).
Posteriormente debemos acudir al directorio donde tengamos la libreria y realizar las siguientes modificaciones:
vim GSM.h: (comentar la del UNO y descomentar la del MEGA)
vim HWSerial.h (descomentar la linea)
En este momento ya deberia compilar sin embargo al intentarlo se muestra un error similar a este:
La manera de solucionarlo es editar el archivo HWSerial.cpp y modificar la linea que se indica mas abajo:
Una vez hecho esto ya podremos compilar el sketch y enviarlo a la placa.
Para testear que todo es correcto conectaremos la placa (*) y pulsaremos el boton S_PWR durante algunos segundos para activarla (se encendera el led STA) y enviaremos el sketch.
Abriremos el terminal serie e introduciremos los siguientes comandos AT (muestra del dialogo con el comando que introduzco y la salida):
(*) El modulo SIM900 con el que cuenta el shield consume bastante asi que para evitar errores aleatorios que pueden volverte loco es recomendable proveer al conjunto con una fuente que pueda entregar al menos 1 amperio.
Se trata del modulo de ElectroFreacks efcom 1.2 adquirido en DX. Lo primero que hice fue buscar una libreria para el IDE de Arduino y como la han publicado recientemente queria usar la version 1.6.El primero problema fue que la version de la libreria que encontre en la documentacion del shield era muy antigua y no funcionaba correctamente en las versiones actuales del IDE de Arduino. La version mas actual de esta libreria mantenida por Marco Martines es esta:
https://github.com/MarcoMartines/GSM-GPRS-GPS-Shield
Una vez instalada la libreria debemos conectarla con la placa Arduino y hacer algunos ajustes en los ficheros.
Tal y como indicaba la placa en la que ira pinchado el shield es la Mega. La manera de conectar los pines para la comunicacion serie es el RX del shield con el pin 18 del Arduino y el TX con el 19 (fijarse en la imagen).
Posteriormente debemos acudir al directorio donde tengamos la libreria y realizar las siguientes modificaciones:
vim GSM.h: (comentar la del UNO y descomentar la del MEGA)
Código: Seleccionar todo
//#define UNO
#define MEGA
vim HWSerial.h (descomentar la linea)
Código: Seleccionar todo
#define MEGA
En este momento ya deberia compilar sin embargo al intentarlo se muestra un error similar a este:
Código: Seleccionar todo
GSMSHIELD2/HWSerial.cpp:55:9: error: 'prog_char' does not name a type
const prog_char *p = (const prog_char *)ifsh;
Código: Seleccionar todo
//const prog_char *p = (const prog_char *)ifsh;
const char *p = (const char *)ifsh;
Para testear que todo es correcto conectaremos la placa (*) y pulsaremos el boton S_PWR durante algunos segundos para activarla (se encendera el led STA) y enviaremos el sketch.
Abriremos el terminal serie e introduciremos los siguientes comandos AT (muestra del dialogo con el comando que introduzco y la salida):
Código: Seleccionar todo
AT
OK
AT+CPIN="****"
OK
Call Ready
AT+COPS?
+COPS: 0,0,"EUSKALTEL"
OK
(*) El modulo SIM900 con el que cuenta el shield consume bastante asi que para evitar errores aleatorios que pueden volverte loco es recomendable proveer al conjunto con una fuente que pueda entregar al menos 1 amperio.