Example program for the SeeedStudio GPRS Shield V2.0, based on UART serial port connectivity (D0/D1 pins). This program connects to GPRS APN, obtains an IP address and downloads http://mbed.org/media/uploads/mbed_official/hello.txt

Dependencies:   GPRSInterface mbed

Files at this revision

API Documentation at this revision

Comitter:
screamer
Date:
Tue May 13 16:45:06 2014 +0000
Child:
1:1204f875bde4
Commit message:
Initial revision

Changed in this revision

GPRSInterface.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GPRSInterface.lib	Tue May 13 16:45:06 2014 +0000
@@ -0,0 +1,1 @@
+https://mbed.org/users/lawliet/code/GPRSInterface/#180feb3ebe62
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue May 13 16:45:06 2014 +0000
@@ -0,0 +1,66 @@
+#include "mbed.h"
+#include "GPRSInterface.h"
+
+/** On many platforms USBTX/USBRX overlap with serial on D1/D0 pins and enabling the below will interrupt the communication.
+ *  You can use an LCD display to print the values or store them on an SD card etc.
+ */
+//Serial pc(USBTX, USBRX);
+
+/**
+ * D1 - TX pin (RX on the WiFi side)
+ * D0 - RX pin (TX on the WiFi side)
+ * 115200 - Baud rate
+ * "apn" - APN name
+ * "username" - APN username
+ * "password" - APN passowrd
+ */
+GPRSInterface eth(D1, D0, 115200, "apn", "username", "password");
+
+int main()
+{
+    wait(3);
+    
+    // Initialize the interface.
+    // If no param is passed to init() then DHCP will be used on connect()
+    int s = eth.init();
+    if (s != NULL) {
+        printf(">>> Could not initialise. Halting!\n");
+        exit(0);
+    }
+
+    printf(">>> Get IP address...\n");
+    while (1) {
+        s = eth.connect(); // Connect to network
+
+        if (s == false || s < 0) {
+            printf(">>> Could not connect to network. Retrying!\n");
+            wait(3);
+        } else {
+            break;
+        }
+    }
+    printf(">>> Got IP address: %s\n", eth.getIPAddress());
+
+    // Prepare the http request to mbed.org
+    char http_cmd[] = "GET /media/uploads/mbed_official/hello.txt HTTP/1.0\n\n";
+    TCPSocketConnection sock;
+    sock.connect("mbed.org", 80);    
+    sock.send_all(http_cmd, sizeof(http_cmd)-1);
+    printf(">>> Sent request to mbed.org\n");
+
+    // Read the response
+    char buffer[300];
+    int ret;
+    while (true) {
+        ret = sock.receive(buffer, sizeof(buffer)-1);
+        if (ret <= 0)
+            break;
+        buffer[ret] = '\0';
+        printf(">>> Received %d chars from mbed.org:\n%s\n", ret, buffer);
+    }
+    sock.close();
+    
+    // Disconnect from network
+    eth.disconnect();
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue May 13 16:45:06 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/8a40adfe8776
\ No newline at end of file