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

Dependencies:   WiflyInterface mbed

Committer:
screamer
Date:
Tue Jun 03 19:40:55 2014 +0000
Revision:
4:c45472e3e931
Parent:
2:61d5dde0c4b4
Child:
6:f80c278ca79c
Enable serial over USB by default

Who changed what in which revision?

UserRevisionLine numberNew contents of line
screamer 0:f2524261196f 1 #include "mbed.h"
screamer 0:f2524261196f 2 #include "WiflyInterface.h"
screamer 0:f2524261196f 3
screamer 4:c45472e3e931 4 /** On some platforms USBTX/USBRX overlaps with serial on D1/D0 pins and this may interrupt the communication.
screamer 4:c45472e3e931 5 * You can comment it and use an LCD display to print the values or store them on an SD card etc.
screamer 2:61d5dde0c4b4 6 */
screamer 4:c45472e3e931 7 Serial pc(USBTX, USBRX);
screamer 1:ced62d2a69f9 8
screamer 0:f2524261196f 9 /**
screamer 0:f2524261196f 10 * D1 - TX pin (RX on the WiFi side)
screamer 0:f2524261196f 11 * D0 - RX pin (TX on the WiFi side)
screamer 1:ced62d2a69f9 12 * NC - Reset pin; use D5 otherwise the shield might get into reset loop
screamer 0:f2524261196f 13 * LED1 - TCP status pin
screamer 0:f2524261196f 14 * "ssid" - hostspot name
screamer 0:f2524261196f 15 * "password" - hotspot passowrd
screamer 0:f2524261196f 16 * security method - NONE, WEP_128, WPA, WPA2
screamer 0:f2524261196f 17 */
screamer 1:ced62d2a69f9 18 WiflyInterface eth(D1, D0, D5, LED1, "hotspot", "", NONE);
screamer 0:f2524261196f 19
screamer 0:f2524261196f 20 int main()
screamer 0:f2524261196f 21 {
screamer 1:ced62d2a69f9 22 wait(3);
screamer 1:ced62d2a69f9 23
screamer 1:ced62d2a69f9 24 // Initialize the interface.
screamer 1:ced62d2a69f9 25 // If no param is passed to init() then DHCP will be used on connect()
screamer 1:ced62d2a69f9 26 int s = eth.init();
screamer 1:ced62d2a69f9 27 if (s != NULL) {
screamer 1:ced62d2a69f9 28 printf(">>> Could not initialise. Halting!\n");
screamer 0:f2524261196f 29 exit(0);
screamer 0:f2524261196f 30 }
screamer 0:f2524261196f 31
screamer 1:ced62d2a69f9 32 printf(">>> Get IP address...\n");
screamer 0:f2524261196f 33 while (1) {
screamer 1:ced62d2a69f9 34 s = eth.connect(); // Connect to network
screamer 0:f2524261196f 35
screamer 1:ced62d2a69f9 36 if (s == false || s < 0) {
screamer 1:ced62d2a69f9 37 printf(">>> Could not connect to network. Retrying!\n");
screamer 0:f2524261196f 38 wait(3);
screamer 0:f2524261196f 39 } else {
screamer 1:ced62d2a69f9 40 break;
screamer 0:f2524261196f 41 }
screamer 0:f2524261196f 42 }
screamer 1:ced62d2a69f9 43 printf(">>> Got IP address: %s\n", eth.getIPAddress());
screamer 1:ced62d2a69f9 44
screamer 1:ced62d2a69f9 45 // Prepare the http request to mbed.org
screamer 1:ced62d2a69f9 46 char http_cmd[] = "GET /media/uploads/mbed_official/hello.txt HTTP/1.0\n\n";
screamer 1:ced62d2a69f9 47 TCPSocketConnection sock;
screamer 1:ced62d2a69f9 48 sock.connect("mbed.org", 80);
screamer 1:ced62d2a69f9 49 sock.send_all(http_cmd, sizeof(http_cmd)-1);
screamer 1:ced62d2a69f9 50 printf(">>> Sent request to mbed.org\n");
screamer 1:ced62d2a69f9 51
screamer 1:ced62d2a69f9 52 // Read the response
screamer 1:ced62d2a69f9 53 char buffer[300];
screamer 1:ced62d2a69f9 54 int ret;
screamer 1:ced62d2a69f9 55 while (true) {
screamer 1:ced62d2a69f9 56 ret = sock.receive(buffer, sizeof(buffer)-1);
screamer 1:ced62d2a69f9 57 if (ret <= 0)
screamer 1:ced62d2a69f9 58 break;
screamer 1:ced62d2a69f9 59 buffer[ret] = '\0';
screamer 1:ced62d2a69f9 60 printf(">>> Received %d chars from mbed.org:\n%s\n", ret, buffer);
screamer 1:ced62d2a69f9 61 }
screamer 1:ced62d2a69f9 62 sock.close();
screamer 1:ced62d2a69f9 63
screamer 1:ced62d2a69f9 64 // Disconnect from network
screamer 1:ced62d2a69f9 65 eth.disconnect();
screamer 1:ced62d2a69f9 66 return 0;
screamer 0:f2524261196f 67 }