Simple Demo that gets a webpage

Dependencies:   HTTPClient cc3000_hostdriver_mbedsocket mbed

Fork of EECS149_email_notifier by Antonio Iannopollo

Committer:
nebgnahz
Date:
Mon Oct 20 17:10:46 2014 +0000
Revision:
17:97c355870263
Parent:
16:d40dee28b02e
Another small style change

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nebgnahz 13:26905142e97b 1 /**
nebgnahz 15:ac15ec676d87 2 * \brief CS294-84 demo \author Ben Zhang, Antonio Iannopollo
nebgnahz 14:efd42910791b 3 *
nebgnahz 14:efd42910791b 4 * This sampel code illustrates how to connect the mbed KL25Z platform to internet
nebgnahz 14:efd42910791b 5 * thorugh the CC3000 wifi breakout board (http://www.adafruit.com/product/1469).
nebgnahz 14:efd42910791b 6 * Connections between the KL25Z and the CC3000 are made according to the
nebgnahz 14:efd42910791b 7 * guide at https://learn.adafruit.com/adafruit-cc3000-wifi -- KL25Z and arduino
nebgnahz 14:efd42910791b 8 * UNO are pin to pin compatible --
nebgnahz 14:efd42910791b 9 *
nebgnahz 14:efd42910791b 10 * This application uses the following libraries:
nebgnahz 14:efd42910791b 11 * - cc3000_hostdriver_mbedsocket
nebgnahz 14:efd42910791b 12 * (http://developer.mbed.org/users/Kojto/code/cc3000_hostdriver_mbedsocket/)
nebgnahz 14:efd42910791b 13 * - HTTPClient (http://developer.mbed.org/users/donatien/code/HTTPClient/)
nebgnahz 14:efd42910791b 14 */
nebgnahz 13:26905142e97b 15
Kojto 0:fe1445e57b7d 16 #include "mbed.h"
Kojto 0:fe1445e57b7d 17 #include "cc3000.h"
Kojto 0:fe1445e57b7d 18 #include "HTTPClient.h"
Kojto 0:fe1445e57b7d 19
nebgnahz 13:26905142e97b 20 // KL25Z wifi connection
nebgnahz 13:26905142e97b 21 // we need to define connection pins for:
nebgnahz 13:26905142e97b 22 // - IRQ => (pin D3)
nebgnahz 13:26905142e97b 23 // - Enable => (pin D5)
nebgnahz 13:26905142e97b 24 // - SPI CS => (pin D10)
nebgnahz 13:26905142e97b 25 // - SPI MOSI => (pin D11)
nebgnahz 13:26905142e97b 26 // - SPI MISO => (pin D12)
nebgnahz 13:26905142e97b 27 // - SPI CLK => (pin D13)
nebgnahz 13:26905142e97b 28 // plus wifi network SSID, password, security level and smart-configuration flag.
nebgnahz 14:efd42910791b 29 mbed_cc3000::cc3000 wifi(D3, D5, D10, SPI(D11, D12, D13),
nebgnahz 16:d40dee28b02e 30 "SSID", "PASSWORD", WPA2, false);
antoni0 10:1804a9dbaee0 31
nebgnahz 13:26905142e97b 32 // create an http instance
nebgnahz 13:26905142e97b 33 HTTPClient http;
Kojto 0:fe1445e57b7d 34
nebgnahz 13:26905142e97b 35 // str is used to hold the response data
nebgnahz 13:26905142e97b 36 char str[512];
nebgnahz 14:efd42910791b 37 char url[80];
antoni0 7:47cd0d3d5e4d 38
nebgnahz 13:26905142e97b 39 // setup the serial connection, and LEDs
nebgnahz 13:26905142e97b 40 Serial pc(USBTX, USBRX);
antoni0 7:47cd0d3d5e4d 41 DigitalOut led_red(LED_RED);
nebgnahz 13:26905142e97b 42 DigitalOut led_green(LED_GREEN);
antoni0 7:47cd0d3d5e4d 43
nebgnahz 16:d40dee28b02e 44 int main() {
nebgnahz 15:ac15ec676d87 45 // by default, it's red
nebgnahz 15:ac15ec676d87 46 led_red = 0;
nebgnahz 15:ac15ec676d87 47 led_green = 1;
Kojto 0:fe1445e57b7d 48
nebgnahz 15:ac15ec676d87 49 // print message to indicate the program has started
nebgnahz 15:ac15ec676d87 50 pc.printf("CC3000 Sample Program\r\n");
nebgnahz 15:ac15ec676d87 51 wifi.init();
nebgnahz 13:26905142e97b 52
nebgnahz 15:ac15ec676d87 53 while(1) {
nebgnahz 15:ac15ec676d87 54 // continuosly check connection status
nebgnahz 15:ac15ec676d87 55 if(wifi.is_connected() == false) {
nebgnahz 15:ac15ec676d87 56 // try to connect
nebgnahz 15:ac15ec676d87 57 if (wifi.connect() == -1) {
nebgnahz 15:ac15ec676d87 58 pc.printf("Failed to connect."
nebgnahz 17:97c355870263 59 "Please verify connection details and try again.\r\n");
nebgnahz 15:ac15ec676d87 60 } else {
nebgnahz 15:ac15ec676d87 61 pc.printf("IP address: %s \r\n", wifi.getIPAddress());
nebgnahz 13:26905142e97b 62
nebgnahz 15:ac15ec676d87 63 //once connected, turn green LED on and red LED off
nebgnahz 15:ac15ec676d87 64 led_red = 1;
nebgnahz 15:ac15ec676d87 65 led_green = 0;
nebgnahz 15:ac15ec676d87 66 }
nebgnahz 15:ac15ec676d87 67 } else {
nebgnahz 15:ac15ec676d87 68 // get input url and then return the value
nebgnahz 15:ac15ec676d87 69 pc.printf("> ");
nebgnahz 15:ac15ec676d87 70 pc.scanf("%s", url);
nebgnahz 14:efd42910791b 71
nebgnahz 15:ac15ec676d87 72 int ret = http.get(url, str, 128);
nebgnahz 15:ac15ec676d87 73 if (!ret) {
nebgnahz 15:ac15ec676d87 74 pc.printf("Requested %s\r\n", url);
nebgnahz 15:ac15ec676d87 75 pc.printf("Page fetched successfully - read %d characters\r\n",
nebgnahz 15:ac15ec676d87 76 strlen(str));
nebgnahz 15:ac15ec676d87 77 pc.printf("Result: %s\r\n", str);
nebgnahz 15:ac15ec676d87 78 } else {
nebgnahz 15:ac15ec676d87 79 pc.printf("Error - ret = %d - HTTP return code = %d\r\n",
nebgnahz 15:ac15ec676d87 80 ret,
nebgnahz 15:ac15ec676d87 81 http.getHTTPResponseCode());
nebgnahz 15:ac15ec676d87 82 }
Kojto 0:fe1445e57b7d 83 }
nebgnahz 15:ac15ec676d87 84 }
nebgnahz 14:efd42910791b 85 }