ayuda con modulo gprs

hola soy nuevo con arduino, y tengo una duda con el módulo gprs de libelium, lo que quiero hacer, es "atrapar" la respuesta de un comando AT, por ejemplo: lo que me interesa saber es el nivel de cobertura que tengo, para eso hago un Serial.println("AT+CSQ"); me responde: 17 (por ejemplo) e intento capturar ese resultado con

if (Serial.available() > 0) { // while(byteGPS2 != 13){ // leemos hasta retorno de carro

byteAT = Serial.read(); //Asigno el byte leido a variable byteAT RespuestaAT[i2]=byteAT; i2++; delay(200); //pausa }

}

Alguna idea de que puedo hacer para capturar las respuestas de los comandos AT. Muchas gracias. ;)

Hola! Tengo la misma duda que tú. Has conseguido solucionarlo?

hola !

pues yo tengo tambien esa duda... alguna ayuda?

muchisimas gracias

Muy buenas,

Yo tengo exactamente el mismo problema, y llevo días dándole vueltas. El caso es que tras mandar comandos al módulo desde un programa arduino (es decir, con la configuración de pines en modo Arduino), no lo gro leer la respuesta desde el programa, mientras que si uso el módulo en modo USB (arduino sin cpu, pines en modo USB e interactuando desde hyperterminal) sí que puedo ver cómo me responde el módulo, mando SMS, hago llamadas, compruebo el estado, etc. Es más, si trabajando en modo stand-alone (interactuando con arduino) uso otra placa arduino sin cpu al lado, conectada a la primera como explica en el turorial del nuevo módulo de la wiki de SqueedBee para monitorizar los pines no parece que el módulo esté respondiendo a la placa arduino con los pines configurados como sale en la imagen. Trastenado con los pines he logrado descubrir que si de las dos filas de tres pines, dejo el jumper sólo en la más exterior (la más cercana al borde) en modo arduino, y la otra la dejo sin jumper, el pin del centro de la que está sin jumper está generando una especia de salida compuesta con la entrada que le llega al módulo y la supuesta salida de respuesta. Sin embargo, cuando coloco el jumper también en esta fila de pine (supuestamente para hacer que esa salida llegue a la placa arduino) el pin deja de emitir esa salida y ya no la puedo monitorizar.

La verdad es que es todo muy confuso, y no sé si se trata de un problema de diseño, que mi módulo está mal, o que no estoy leyendo adecuadamente la respuesta del módulo. Ahora pondré otro post con el código que he usado.

JA.

Esta es la configuración para monitorizar:

http://www.libelium.com/squidbee/index.php?title=Image:Tcp_connection_4.jpg

del tutorial:

http://www.libelium.com/squidbee/index.php?title=New_GPRS_module_for_Arduino_(Hilo_-_Sagem)

El programa intenta detectar una llamada entrante y colgar. El código que estoy usando:

void switchModule(){
  digitalWrite(onModulePin,HIGH);
  delay(2000);
  digitalWrite(onModulePin,LOW);
}

void setup(){

  pinMode(led, OUTPUT);
  pinMode(onModulePin, OUTPUT);

  Serial.begin(115200);              // the GPRS baud rate
    
  switchModule();                    // swith the module ON
 
  delay(20000);                       
  Serial.println("ATQ[0]");
  delay(2000);
  Serial.println("AT+IPR=115200");
  delay(2000);
  
}


void loop()
{
  while (true)
  {
    Serial.println("AT+CPAS");
    delay(2000);
    if (serialReadLine(LINE_LENGTH, newLine)) 
    {
      if (strcmp(newLine,"+CPAS: 3")==0)
      {
        Serial.println("ATH");              // disconnect the call
      }
      delay(1000);
    }
  }
  Serial.println("AT*PSCPOF");        // switch the module off
}

La función readLine es de Luke Orland y aparece en este thread: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1257731439

Buenas supongo que segurias en tu andadura o que quizas ya la tengas resuelta, pues yo ni he empezado veras estoy investigando con arduino mega y estoy completamente perdido porque segun las indicaciones para comunicarse con el mudlo gprs se supone que la placa tiene que tener el micro quitado y en el mega viene soldado y no se puede quitar asi que mi pregunta es??? Es necesario tener el arduino con la posibilidad de quitar el micro o se puede desactivar usando los pines??

Otra pregunta que tengo es que me hes imposible poderme comunicar con el modulo por hyperterminal, no se si sera por el problema que te comento antes, pero me es imposible

Asi que si no te sirve de molestia rogaria que me comentaras como has solucionado el problema de comunicación o como lo haces porque yo he seguido la documentacion de la web de libelium una y otra vez y me estoy dando por vencido

Muchas gracias

Yo tampoco puedo usar el ejemplo, falta algo del codigo..

Como capturo en arduino la respuesta que da la shiel del gprs?

diablet69, es el mismo código que pusiste tu mismo en otro post y a este le falta declarar las variables. Y para capturar el puerto serie, pues leerlo y guardar los datos en un vector

Y por si a superturbo2001, le da por pasarse 2 meses después: no te consigues comunicar porque estás conectandote al arduino, no a la placa gprs.

Un saludo

chiva:

Ya pero las variables:

LINE_LENGTH newLine

¿de que tipo son?

y la funcion

serialReadLine(LINE_LENGTH, newLine)

¿esta en alguna libreria?

No hay manera de recoger lo que devuelve la shield. Puedes ponerme algun codigo de ejemplo?

Gracias.

La función readLine es de Luke Orland y aparece en este thread: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1257731439

Para lo de leer el puerto serie sería similar a lo que ha puesto Ja_73 en el primer post. Ahora mismo no estoy de humor para ponerme a programar nada, ya lo siento