Go Down

Topic: ICOMSATv1.1  (Read 795 times) previous topic - next topic

Burdos


Hola a todos muchachos estoy teniendo problemas al inciar con el icomsatv1.1, al parecer la tarjeta no reconoce el comando if (gsmAccess.begin(PINNUMBER) == GSM_READY) ya que no lo descubre y el programa queda ahi, lo que corri es lo siguiente


#include <GSM.h>

// PIN Number
#define PINNUMBER "1508"

// initialize the library instance
GSM gsmAccess; // include a 'true' parameter for debug enabled
GSMVoiceCall vcs;

String remoteNumber = "51xxxxxxxxx";  // the number you will call
char charbuffer[20];

void setup()
{

  // initialize serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  Serial.println("Make Voice Call");

  // connection state
  boolean notConnected = true;

  // Start GSM shield
  // If your SIM has PIN, pass it as a parameter of begin() in quotes
  while (notConnected)
  {
    if (gsmAccess.begin(PINNUMBER) == GSM_READY)
      notConnected = false;
    else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }

  Serial.println("GSM initialized.");
  Serial.println("Enter phone number to call.");

}

void loop()
{

  // add any incoming characters to the String:
  while (Serial.available() > 0)
  {
    char inChar = Serial.read();
    // if it's a newline, that means you should make the call:
    if (inChar == '\n')
    {
      // make sure the phone number is not too long:
      if (remoteNumber.length() < 20)
      {
        // let the user know you're calling:
        Serial.print("Calling to : ");
        Serial.println(remoteNumber);
        Serial.println();

        // Call the remote number
        remoteNumber.toCharArray(charbuffer, 20);


        // Check if the receiving end has picked up the call
        if (vcs.voiceCall(charbuffer))
        {
          Serial.println("Call Established. Enter line to end");
          // Wait for some input from the line
          while (Serial.read() != '\n' && (vcs.getvoiceCallStatus() == TALKING));
          // And hang up
          vcs.hangCall();
        }
        Serial.println("Call Finished");
        remoteNumber = "";
        Serial.println("Enter phone number to call.");
      }
      else
      {
        Serial.println("That's too long for a phone number. I'm forgetting it");
        remoteNumber = "";
      }
    }
    else
    {
      // add the latest character to the message to send:
      if (inChar != '\r')
        remoteNumber += inChar;
    }
  }
}


no se si alguien pueda ayudarme a encontrar una solucion a esto, adicionalmente el datasheet que tengo del modulo no  me es muy claro alguien que me pueda ayudar

surbyte

#1
Mar 30, 2015, 01:51 pm Last Edit: Mar 30, 2015, 01:52 pm by surbyte
Que es esto
Code: [Select]
#define PINNUMBER "1508"
Ese no es un valor válido para un pin de Arduino

EDITO: Por favor lee las normas del foro y edita tu código. Debes usar tags. Las normas esta justo encima de tu post.

PeterKantTropus

Hola a todos muchachos estoy teniendo problemas al inciar con el icomsatv1.1, al parecer la tarjeta no reconoce el comando if (gsmAccess.begin(PINNUMBER) == GSM_READY) ya que no lo descubre y el programa queda ahi, lo que corri es lo siguiente



Cuando afirmas que "se queda ahi", quieres  decir que  al compilar le programa  te marca un  error? o al correr el programa en el arduino te devuelve por el monitor serial "Not connected"? Si es el segundo caso, agrega la linea Serial.println(gsmAccess.begin(PINNUMBER)) antes del if para saber el error que envía.

Saludos.
"Si no entra como tornillo, entra como clavo"

Burdos

Surbyte el #define PINNUMBER "1508" solo era el PIN que tenia mi tarjeta SIM, ahora respondiendo a PeterKantTropus hice lo siguiente:
while (notConnected)
 {
   
   Serial.println("entra al while");
   if (gsmAccess.begin(PINNUMBER) == GSM_READY)
   
     notConnected = false;
     
     if (notConnected == false)
      Serial.println("entra al primer If");
     
   else
   {
     Serial.println("Not connected");
     delay(1000);
   }
 }
Para verificar que entra al while pero el mensaje "entra al primer If"("entra al while" si se muestra) nunca se mostro por lo que el codigo no ingresa al bucle while(adjunto código completo).
Otra cosa que estoy tratando de validar es si mi conexion esta bien(adjunto detalle en imagen). Estoy utilizando la configuración de UART entre el arduinouno y la tarjeta según dicta manuales de usuario, sin embargo encontre que tambien podria realizarse con comandos AT para ello utilice el pin de TXD y RXD del mismo SIM900(no el UART del jumper) con mi arduinouno y de la misma forma tampoco funciono y valide que la cofiguracion serial de mi arduino si estaba bien(lo probe usando comandos AT con un HC05).

Por favor gente del foro apoyo con esto estoy con este problemaa XD

ICOMSATV1.1 problem if somebody can support in another language is welcome.

surbyte

Bueno, esto es lo primero que hago yo, busco una librería apropiada, no digo que la tuya no lo sea.
Pero al menos prueba con esta a ver que resulta.
Tiene 4 ejemplos disponibles, uno de ellos incluye un número de prueba.

Librería GSM_Shield

Burdos

Lo probare pero de todas maneras quisiera saber si mi conexión fisica es la correcta

surbyte

Tu conexión parece estar bien.
repaso por las dudas.

Gnd arduino a Gnd de ICOMSATv1.1
5V arduino a 5V del ICOMSATv1.1
Tx arduino a RX del ICOMSATv1.1
Rx ardino a TX del ICOMSATv1.1


Go Up