Arduino Function: GPRS.attachGPRS

Description

Connects to the specified Access Point Name (APN) (that serves as a bridge between the cellular network and the internet) to initiate GPRS communication (with username and password if necessary). You may need to get this information from your service provider.

Syntax

grps.attachGPRS(APN, user, password)

Parameters

  • APN : char array, the Access Point Name (APN) provided by the mobile operator
  • user : char array, the username for the APN
  • password : char array, the password to access the APN

Returns

 char array : ERROR, IDLE, CONNECTING, GSM_READY, GPRS_READY, TRANSPARENT_CONNECTED

Examples

#include <GSM.h>

// PIN Number
#define PINNUMBER ""

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


// initialize the library instance
GPRS gprs;
GSM gsmAccess; // include a 'true' parameter for debug enabled
GSMServer server(80); // port 80 (http default)

// timeout
const unsigned long __TIMEOUT__ = 10*1000;

void setup()
{
// initialize serial communications
Serial.begin(9600);

// 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) &
(gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD)==GPRS_READY))
notConnected = false;
else
{
Serial.println("Not connected");
delay(1000);
}
}

Serial.println("Connected to GPRS network");

// start server
server.begin();

//Get IP.
IPAddress LocalIP = gprs.getIPAddress();
Serial.println("Server IP address=");
Serial.println(LocalIP);
}

void loop() {


// listen for incoming clients
GSM3MobileClientService client = server.available();

if (client)
{
while (client.connected())
{
if (client.available())
{
Serial.println("Receiving request!");
bool sendResponse = false;
while(char c=client.read()) {
if (c == '\n') sendResponse = true;
}

// if you've gotten to the end of the line (received a newline
// character)
if (sendResponse)
{
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<html>");
// output the value of each analog input pin
for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
client.print("analog input ");
client.print(analogChannel);
client.print(" is ");
client.print(analogRead(analogChannel));
client.println("<br />");
}
client.println("</html>");
//necessary delay
delay(1000);
client.stop();
}
}
}
}
}

Related Functions


Based on the reference originally written by Arduino Community,  wiring.org.co and  arduino.cc