Primeros pasos con el shield GPRS

Lo relacionado con la electronica y arduino.
kurtsik
Mensajes: 124
Registrado: 30 Ene 2015 11:29

Primeros pasos con el shield GPRS

Mensaje por kurtsik » 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.
Wireless-EFCom-03.png
(180.21 KiB) Descargado 272 veces
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).
IMG_1313.JPG
IMG_1313.JPG (39.67 KiB) Visto 4777 veces
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;
La manera de solucionarlo es editar el archivo HWSerial.cpp y modificar la linea que se indica mas abajo:

Código: Seleccionar todo

//const prog_char *p = (const prog_char *)ifsh;
const char *p = (const char *)ifsh;
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):

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.

Responder