Simple Demo that gets a webpage

Dependencies:   HTTPClient cc3000_hostdriver_mbedsocket mbed

Fork of EECS149_email_notifier by Antonio Iannopollo

main.cpp

Committer:
nebgnahz
Date:
2014-10-20
Revision:
14:efd42910791b
Parent:
13:26905142e97b
Child:
15:ac15ec676d87

File content as of revision 14:efd42910791b:

/**
 *  \brief CS294-84 demo
 *  \author Ben Zhang, Antonio Iannopollo
 *
 * This sampel code illustrates how to connect the mbed KL25Z platform to internet
 * thorugh the CC3000 wifi breakout board (http://www.adafruit.com/product/1469).
 * Connections between the KL25Z and the CC3000 are made according to the
 * guide at https://learn.adafruit.com/adafruit-cc3000-wifi -- KL25Z and arduino
 * UNO are pin to pin compatible --
 *
 * This application uses the following libraries:
 * - cc3000_hostdriver_mbedsocket
 *   (http://developer.mbed.org/users/Kojto/code/cc3000_hostdriver_mbedsocket/)
 * - HTTPClient (http://developer.mbed.org/users/donatien/code/HTTPClient/)
 */

#include "mbed.h"
#include "cc3000.h"
#include "HTTPClient.h"

// KL25Z wifi connection
// we need to define connection pins for:
// - IRQ      => (pin D3)
// - Enable   => (pin D5)
// - SPI CS   => (pin D10)
// - SPI MOSI => (pin D11)
// - SPI MISO => (pin D12)
// - SPI CLK  => (pin D13)
// plus wifi network SSID, password, security level and smart-configuration flag.
mbed_cc3000::cc3000 wifi(D3, D5, D10, SPI(D11, D12, D13),
                                                 "EECS-PSK", "Thequickbrown", WPA2, false);

// create an http instance
HTTPClient http;

// str is used to hold the response data
char str[512];
char url[80];

// setup the serial connection, and LEDs
Serial pc(USBTX, USBRX);
DigitalOut led_red(LED_RED);
DigitalOut led_green(LED_GREEN);

int main()
{
    // by default, it's red
    led_red = 0;
    led_green = 1;

    // print message to indicate the program has started
    pc.printf("CC3000 Sample Program\r\n");
    wifi.init();

    while(1) {
        // continuosly check connection status
        if(wifi.is_connected() == false) {
            // try to connect
            if (wifi.connect() == -1) {
                pc.printf("Failed to connect."
                             "Please verify connection details and try again. \r\n");
            } else {
                pc.printf("IP address: %s \r\n", wifi.getIPAddress());

                //once connected, turn green LED on and red LED off
                led_red = 1;
                led_green = 0;
            }
        } else {
            // get input url and then return the value
            pc.printf("> ");
            pc.scanf("%s", url);

            int ret = http.get(url, str, 128);
            if (!ret) {
                pc.printf("Requested %s\r\n", url);
                pc.printf("Page fetched successfully - read %d characters\r\n",
                                    strlen(str));
                pc.printf("Result: %s\r\n", str);
            } else {
                pc.printf("Error - ret = %d - HTTP return code = %d\r\n",
                                    ret,
                                    http.getHTTPResponseCode());
            }
        }
    }
}