diff options
Diffstat (limited to 'libraries/GSM/examples/GsmWebServer')
| -rw-r--r-- | libraries/GSM/examples/GsmWebServer/GsmWebServer.ino | 118 | 
1 files changed, 118 insertions, 0 deletions
| diff --git a/libraries/GSM/examples/GsmWebServer/GsmWebServer.ino b/libraries/GSM/examples/GsmWebServer/GsmWebServer.ino new file mode 100644 index 0000000..e957b4c --- /dev/null +++ b/libraries/GSM/examples/GsmWebServer/GsmWebServer.ino @@ -0,0 +1,118 @@ +/* + GSM Web Server +  + A simple web server that shows the value of the analog input pins. + using a GSM shield. + + Circuit: + * GSM shield attached + * Analog inputs attached to pins A0 through A5 (optional) +  + created 8 Mar 2012 + by Tom Igoe + */ + +// 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 +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 and wait for port to open: +  Serial.begin(9600); +  while (!Serial) { +    ; // wait for serial port to connect. Needed for Leonardo only +  } +   +  // 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 +  GSMClient 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(); +        } +      } +    } +  } +} + + | 
