diff options
Diffstat (limited to 'libraries/GSM/examples/GsmWebClient/GsmWebClient.ino')
-rw-r--r-- | libraries/GSM/examples/GsmWebClient/GsmWebClient.ino | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/libraries/GSM/examples/GsmWebClient/GsmWebClient.ino b/libraries/GSM/examples/GsmWebClient/GsmWebClient.ino new file mode 100644 index 0000000..e7eb275 --- /dev/null +++ b/libraries/GSM/examples/GsmWebClient/GsmWebClient.ino @@ -0,0 +1,109 @@ +/* + Web client + + This sketch connects to a website through a GSM shield. Specifically, + this example downloads the URL "http://arduino.cc/asciilogo.txt" and + prints it to the Serial monitor. + + Circuit: + * GSM shield attached to an Arduino + * SIM card with a data plan + + created 8 Mar 2012 + by Tom Igoe + + http://arduino.cc/en/Tutorial/GSMExamplesWebClient + + */ + +// libraries +#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 +GSMClient client; +GPRS gprs; +GSM gsmAccess; + +// URL, path & port (for example: arduino.cc) +char server[] = "arduino.cc"; +char path[] = "/asciilogo.txt"; +int port = 80; // port 80 is the default for HTTP + +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("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 + 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("connecting..."); + + // if you get a connection, report back via serial: + if (client.connect(server, port)) + { + Serial.println("connected"); + // Make a HTTP request: + client.print("GET "); + client.print(path); + client.println(" HTTP/1.1"); + client.print("Host: "); + client.println(server); + client.println("Connection: close"); + client.println(); + } + else + { + // 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(); + Serial.print(c); + } + + // if the server's disconnected, stop the client: + if (!client.available() && !client.connected()) + { + Serial.println(); + Serial.println("disconnecting."); + client.stop(); + + // do nothing forevermore: + for(;;) + ; + } +} |