Go Down

Topic: GSM Web Client (Read 6892 times) previous topic - next topic


Apr 01, 2013, 03:34 am Last Edit: Apr 01, 2013, 05:43 am by sepy Reason: 1
I am using the GSM Shield with RFRobot backpack and I am running the program Web Client example. I have not yet set a PIN on the GSM which is for the most part in its defaulted state. I have not set a login or password either yet on the sm5100b.

Code: [Select]

 Web client

This sketch connects to a website through a GSM shield. Specifically,
this example downloads the URL "http://arduino.cc/" and prints it
to the Serial monitor.

* GSM shield attached to an Arduino
* SIM card with a data plan

created 8 Mar 2012
by Tom Igoe



// libraries
#include <GSM.h>

// PIN Number
#define PINNUMBER ""

// APN data
#define GPRS_APN       "att.mvno" // replace your GPRS APN
#define GPRS_LOGIN     ""    // replace with your GPRS login
#define GPRS_PASSWORD  "" // replace with your GPRS password

// initialize the library instance
GSMClient client;
GPRS gprs;
GSM gsmAccess;

// URL, path & port (for example: arduino.cc)
char server[] = "arduino.cc";
char path[] = "/";
int port = 80; // port 80 is the default for HTTP

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

 Serial.println("Starting Arduino web client.");
 // connection state
 boolean notConnected = true;
 // After starting the modem with GSM.begin()
 // attach the shield to the GPRS network with the APN, login and password
   if((gsmAccess.begin(PINNUMBER)==GSM_READY) &
     notConnected = false;
     Serial.println("Not connected");


 // if you get a connection, report back via serial:
 if (client.connect(server, port))
   // Make a HTTP request:
   client.print("GET ");
   client.println(" HTTP/1.0");
   // if you didn't get a connection to the server:
   Serial.println("connection failed");

void loop()
 // if there are incoming bytes available
 // from the server, read them and print them:
 if (client.available())
   char c = client.read();
 // if the server's disconnected, stop the client:
 if (!client.available() && !client.connected())

   // do nothing forevermore:

My SIM card is an H20 Wireless $40/Month plan that is supposed to have 400mb of data with it. Right now my serial output is coming out as "not connected". I am hoping to get the device to read some data from yahoo.com is all I really need to do with it right now. Thanks in advance for any help out in this regard! I am able to dial out and send SMS.

My call to at+senddata is returning

+CME ERROR: operation not supported
+CME ERROR send data failed.

What are the potential causes for this? I am following the white paper for at send data commands and manually calling the at+senddata from the terminal.



Reading your post it looks like you are not using the Arduino GSM/GPRS shield:

but another one.

The example and the supporting library are prepared for the Arduino shield. May that be the reason?


yeah in fact you have to obtain the respective datasheet of at command for your device and after thad modify the library on the At commands to acces to GPRS


Maybe you need a GSM shield? You can go to Perfectjammer
There's a lot of information out there

Go Up