Go Down

Topic: SIM900 - Problems with GPRS Connection (Read 2230 times) 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy