Go Down

Topic: SIM900 - Problems with GPRS Connection (Read 1 time) previous topic - next topic

n17r0m

Nov 26, 2012, 05:43 pm Last Edit: Nov 26, 2012, 05:49 pm by n17r0m Reason: 1
Hello,

I have an Arduino Mega, Ethernet Shield and a IComSat SIM900-Shield.
I can send SMS with the module but I can't connect with GPRS.

I'm not sure but I think after the command "AT+CIICR" the module give no "OK"

I already changed the sim-card (t-mobile // blau.de // congstar).

The source code should be okay.

OUTPUT:
GSM Shield testing.
DB:NO RESP
DB:ELSE
DB:ELSE
DB:CORRECT BR

status=READY
DB:STARTING NEW CONNECTION
DB:APN OK
status=ERROR

ERROR
DB:NOT CONN
DB:NOT CONN
DB:NOT CONN

Number of data received:
0

Data received:

code
Code: [Select]

#include "SIM900.h"
#include <SoftwareSerial.h>
#include "inetGSM.h"
//#include "sms.h"
//#include "call.h"

//To change pins for Software Serial, use the two lines in GSM.cpp.

//GSM Shield for Arduino
//www.open-electronics.org
//this code is based on the example of Arduino Labs.

//Simple sketch to start a connection as client.

InetGSM inet;
//CallGSM call;
//SMSGSM sms;

char msg[50];
int numdata;
char inSerial[50];
int i=0;
boolean started=false;

void setup()
{
 //Serial connection.
 Serial.begin(9600);
 Serial.println("GSM Shield testing.");
 //Start configuration of shield with baudrate.
 //For http uses is raccomanded to use 4800 or slower.
 if (gsm.begin(2400)){
   Serial.println("\nstatus=READY");
   started=true;
   gsm.forceON();
 }
 else Serial.println("\nstatus=IDLE");
 
 if(started){
   //GPRS attach, put in order APN, username and password.
   //If no needed auth let them blank.
   if (inet.attachGPRS("internet.t-mobile", "t-mobile", "tm"))
     Serial.println("status=ATTACHED");
   else Serial.println("status=ERROR");
   delay(1000);
   
   //Read IP address.
   gsm.SimpleWriteln("AT+CIFSR");
   delay(5000);
   //Read until serial buffer is empty.
   gsm.WhileSimpleRead();
 
   //TCP Client GET, send a GET request to the server and
   //save the reply.
   numdata=inet.httpGET("www.google.com", 80, "/", msg, 50);
   //Print the results.
   Serial.println("\nNumber of data received:");
   Serial.println(numdata);  
   Serial.println("\nData received:");
   Serial.println(msg);
 }
};

void loop()
{
 //Read for new byte on serial hardware,
 //and write them on NewSoftSerial.
 serialhwread();
 //Read for new byte on NewSoftSerial.
 serialswread();
};

void serialhwread(){
 i=0;
 if (Serial.available() > 0){            
   while (Serial.available() > 0) {
     inSerial[i]=(Serial.read());
     delay(10);
     i++;      
   }
   
   inSerial[i]='\0';
   if(!strcmp(inSerial,"/END")){
     Serial.println("_");
     inSerial[0]=0x1a;
     inSerial[1]='\0';
     gsm.SimpleWriteln(inSerial);
   }
   //Send a saved AT command using serial port.
   if(!strcmp(inSerial,"TEST")){
     Serial.println("SIGNAL QUALITY");
     gsm.SimpleWriteln("AT+CSQ");
   }
   //Read last message saved.
   if(!strcmp(inSerial,"MSG")){
     Serial.println(msg);
   }
   else{
     Serial.println(inSerial);
     gsm.SimpleWriteln(inSerial);
   }    
   inSerial[0]='\0';
 }
}

void serialswread(){
 gsm.SimpleRead();
}


mee0496

I have had the same problem. It was solved changing gsm speed to 9600 (according to gsm.cpp)
gsm.begin(9600)

Go Up