mirror of
https://github.com/arduino/Arduino.git
synced 2024-12-05 16:24:12 +01:00
9eaea4205d
According to #3786 removed the reference to Leonardo only in while(!Serial) of the examples. Changed in in "wait for serial port to connect. Needed for native USB port only"
101 lines
2.5 KiB
C++
101 lines
2.5 KiB
C++
/*
|
|
Web client
|
|
|
|
This sketch connects to a website through a GSM shield. Specifically,
|
|
this example downloads the URL "http://www.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://www.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 native USB port 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 (;;)
|
|
;
|
|
}
|
|
}
|